feat(fix-system): 添加维修模块运行状态表现
This commit is contained in:
@@ -91,6 +91,8 @@ namespace AibisDream.FixSystem
|
||||
var name = module.data.moduleName;
|
||||
if (module.IsHighlighted) dto.highlightedModules.Add(name);
|
||||
if (module.IsAlarmed) dto.alarmedModules.Add(name);
|
||||
if (module.SupportsConditionVisual)
|
||||
dto.moduleConditions[name] = module.Condition.ToString();
|
||||
}
|
||||
|
||||
return dto;
|
||||
@@ -115,12 +117,26 @@ namespace AibisDream.FixSystem
|
||||
|
||||
var highlighted = new HashSet<string>(dto.highlightedModules ?? Enumerable.Empty<string>());
|
||||
var alarmed = new HashSet<string>(dto.alarmedModules ?? Enumerable.Empty<string>());
|
||||
var moduleConditions = dto.moduleConditions ?? new Dictionary<string, string>();
|
||||
|
||||
foreach (var module in EnumerateAllBodyModules())
|
||||
{
|
||||
var name = module.data.moduleName;
|
||||
module.Highlight(highlighted.Contains(name));
|
||||
module.Alarm(alarmed.Contains(name));
|
||||
|
||||
if (!module.SupportsConditionVisual)
|
||||
continue;
|
||||
|
||||
var condition = ModuleCondition.Normal;
|
||||
if (moduleConditions.TryGetValue(name, out var conditionName)
|
||||
&& !Enum.TryParse(conditionName, true, out condition))
|
||||
{
|
||||
Debug.LogWarning($"[BodyModuleSystem] Unknown saved module condition '{conditionName}' for {name}; using Normal.");
|
||||
condition = ModuleCondition.Normal;
|
||||
}
|
||||
|
||||
module.SetCondition(condition);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -220,6 +236,15 @@ namespace AibisDream.FixSystem
|
||||
return BodyModules?.FirstOrDefault(module => module.data.moduleName == modulename);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找任意分组中的模块,包含 inactive 对象。用于可在模块显示前预设状态的 Yarn 命令。
|
||||
/// </summary>
|
||||
public BodyModule FindAnyBodyModuleByName(string moduleName)
|
||||
{
|
||||
return EnumerateAllBodyModules()
|
||||
.FirstOrDefault(module => module.data.moduleName == moduleName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 寻找指定类型的BodyModule
|
||||
/// </summary>
|
||||
@@ -463,4 +488,4 @@ namespace AibisDream.FixSystem
|
||||
Body,
|
||||
Head
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user