Files
ArachnaeSwarm/Source/ArachnaeSwarm/ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs
2025-09-03 12:07:45 +08:00

38 lines
1.2 KiB
C#

using Verse;
using Verse.AI;
using RimWorld;
namespace ArachnaeSwarm
{
// 将 DefOf 类放在这里,以便在命名空间内共享
[DefOf]
public static class ARA_TrainableDefOf
{
public static TrainableDef ARA_Sowing;
static ARA_TrainableDefOf()
{
DefOfHelper.EnsureInitializedInCtor(typeof(ARA_TrainableDefOf));
}
}
// 这个新的条件节点将检查动物是否应该执行任何农业工作(播种或切割/收获)
public class ThinkNode_ConditionalAnimalShouldDoGrowingWork : ThinkNode_Conditional
{
protected override bool Satisfied(Pawn pawn)
{
// 首先,进行安全检查,确保 pawn.training 存在
if (pawn.training == null)
{
return false;
}
// 检查动物是否学会并被允许执行“播种”工作
bool canSow = pawn.training.HasLearned(ARA_TrainableDefOf.ARA_Sowing) &&
pawn.training.GetWanted(ARA_TrainableDefOf.ARA_Sowing);
// 现在只需要检查播种技能,因为切割功能已合并
return canSow;
}
}
}