58 lines
1.9 KiB
C#
58 lines
1.9 KiB
C#
using UnityEngine;
|
||
using PhxhSDK.Editor.FileChecker.Data;
|
||
using Gameplay.Level;
|
||
using PhxhSDK.Phxh;
|
||
using System.Collections.Generic;
|
||
|
||
namespace PhxhSDK.Editor.FileChecker
|
||
{
|
||
/// <summary>
|
||
/// 关卡文件引导检查器
|
||
/// 检查关卡json文件的引导配置是否正确
|
||
/// </summary>
|
||
public class LevelFileGuideChecker : BaseLevelChecker
|
||
{
|
||
public override string CheckerName => "关卡文件引导检查";
|
||
public override string RecommendedHandling => "修改关卡文件引导配置";
|
||
public override CheckerTabType belongTab => CheckerTabType.Level;
|
||
public override bool HasAutoProgress => false;
|
||
|
||
private HashSet<int> setId = new();
|
||
|
||
public override string CheckLevel(string filePath, TextAsset textAsset)
|
||
{
|
||
string res = string.Empty;
|
||
|
||
if (null == textAsset)
|
||
return "文件加载失败";
|
||
|
||
LevelData levelData = JsonHelper.LoadJsonFromText<LevelData>(textAsset.text);
|
||
if(null == levelData)
|
||
return $"关卡json反序列化为{nameof(LevelData)}失败";
|
||
|
||
setId.Clear();
|
||
foreach (var guideData in levelData.progressGuideDatas)
|
||
{
|
||
if(!setId.Add(guideData.id))
|
||
res += $"关卡进度引导id重复,id:{guideData.id}\n";
|
||
}
|
||
|
||
foreach (var guideData in levelData.setFlagGuideDatas)
|
||
{
|
||
if (!setId.Add(guideData.id))
|
||
res += $"关卡立标引导id重复,id:{guideData.id}\n";
|
||
}
|
||
|
||
foreach (var guideData in levelData.infoPanelGuideDatas)
|
||
{
|
||
if (!setId.Add(guideData.id))
|
||
res += $"关卡信息版引导id重复,id:{guideData.id}\n";
|
||
}
|
||
|
||
if (res.Equals(string.Empty))
|
||
return null;
|
||
else
|
||
return res;
|
||
}
|
||
}
|
||
} |