(client) feat:添加临时动画组件,添加逃跑逻辑
This commit is contained in:
@ -80,35 +80,7 @@ namespace Entity
|
||||
// 确保阶段列表按开始时间排序,以便正确判断当前阶段。
|
||||
if (this.def.stages == null) this.def.stages = new List<HediffStageDef>();
|
||||
this.def.stages = this.def.stages.OrderBy(s => s.start).ToList();
|
||||
|
||||
// 实例化所有定义的组件。
|
||||
if (def.comps != null)
|
||||
{
|
||||
foreach (var compDef in def.comps)
|
||||
{
|
||||
if (compDef.compClass != null && typeof(HediffComp).IsAssignableFrom(compDef.compClass))
|
||||
{
|
||||
try
|
||||
{
|
||||
// 使用 Activator.CreateInstance 动态创建组件实例,并传入构造函数参数。
|
||||
// HediffComp 的构造函数需要接受 Hediff parentHediff 和 HediffCompDef def。
|
||||
var comp = (HediffComp)Activator.CreateInstance(compDef.compClass, this, compDef);
|
||||
Comps.Add(comp);
|
||||
comp.Initialize(); // 初始化组件
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogError(
|
||||
$"实例化健康状态组件 '{compDef.compClass?.Name ?? "空"}' 失败,所属健康状态 '{def.defName ?? def.GetType().Name}':{ex.Message}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning(
|
||||
$"警告:健康状态组件定义 '{compDef.compClass?.Name ?? "空"}' 无效或未继承自 HediffComp,所属健康状态 '{def.defName ?? def.GetType().Name}'。");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 初始化时确定第一个阶段,这会触发 SetDirty()。
|
||||
UpdateStageIndex();
|
||||
|
Reference in New Issue
Block a user