diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index 9449026..652d822 100644
Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ
diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml
index fbb66f2..9c9c0d9 100644
--- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml
+++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml
@@ -14,36 +14,7 @@
0.3
1.1
-
-
-
- ARA_Sowing
- ARA_PlantCutting
-
-
-
-
-
-
- Plants
- 10
- true
-
-
-
-
-
- ARA_Sowing
- Growing
-
-
- ARA_PlantCutting
- PlantCutting
-
-
-
-
-
+
@@ -104,19 +75,19 @@
-
-
-
- Plants
- 10
-
-
-
- ARA_Sowing
-
- true
-
-
+
+
+
+ Plants
+ 10
+
+
+
+ ARA_Sowing
+
+ true
+
+
AnimalInsect
diff --git a/Source/ArachnaeSwarm/JobGiver_Grower.cs b/Source/ArachnaeSwarm/JobGiver_Grower.cs
index 2c10f81..2447445 100644
--- a/Source/ArachnaeSwarm/JobGiver_Grower.cs
+++ b/Source/ArachnaeSwarm/JobGiver_Grower.cs
@@ -5,39 +5,24 @@ using RimWorld;
namespace ArachnaeSwarm
{
- // 确保 WorkGiverDefOf 被正确初始化
- [DefOf]
- public static class WorkGiverDefOf
- {
- public static WorkGiverDef Harvest;
- public static WorkGiverDef GrowerSow;
-
- static WorkGiverDefOf()
- {
- DefOfHelper.EnsureInitializedInCtor(typeof(WorkGiverDefOf));
- }
- }
-
public class JobGiver_Grower : ThinkNode_JobGiver
{
- private static WorkGiver_GrowerHarvest _workGiverHarvest;
- private static WorkGiver_GrowerSow _workGiverSow;
-
- static JobGiver_Grower()
- {
- // 确保在访问 WorkGiverDefOf 之前,它已经被初始化
- // 尽管 [DefOf] 会自动处理,但显式调用可以避免某些加载时序问题
- DefOfHelper.EnsureInitializedInCtor(typeof(WorkGiverDefOf));
- _workGiverHarvest = WorkGiverDefOf.Harvest.Worker as WorkGiver_GrowerHarvest;
- _workGiverSow = WorkGiverDefOf.GrowerSow.Worker as WorkGiver_GrowerSow;
- }
+ private WorkGiver_GrowerHarvest _workGiverHarvest;
+ private WorkGiver_GrowerSow _workGiverSow;
protected override Job TryGiveJob(Pawn pawn)
{
- if (_workGiverHarvest == null || _workGiverSow == null)
+ // 懒加载 WorkGiver 实例,确保 DefOf 已被初始化
+ if (_workGiverHarvest == null)
{
- Log.ErrorOnce("JobGiver_Grower could not find vanilla Grower WorkGivers.", 123457);
- return null;
+ _workGiverHarvest = WorkGiverDefOf.GrowerHarvest.Worker as WorkGiver_GrowerHarvest;
+ _workGiverSow = WorkGiverDefOf.GrowerSow.Worker as WorkGiver_GrowerSow;
+
+ if (_workGiverHarvest == null || _workGiverSow == null)
+ {
+ Log.ErrorOnce("JobGiver_Grower: Failed to get WorkGiver_GrowerHarvest or WorkGiver_GrowerSow. DefOfs might not be initialized or DefNames are incorrect.", 123457);
+ return null;
+ }
}
// 1. 优先收获
@@ -96,4 +81,17 @@ namespace ArachnaeSwarm
return bestCell;
}
}
+}
+
+// 确保 WorkGiverDefOf 被正确初始化,放在命名空间顶层
+[DefOf]
+public static class WorkGiverDefOf
+{
+ public static WorkGiverDef GrowerHarvest;
+ public static WorkGiverDef GrowerSow;
+
+ static WorkGiverDefOf()
+ {
+ DefOfHelper.EnsureInitializedInCtor(typeof(WorkGiverDefOf));
+ }
}
\ No newline at end of file
diff --git a/Source/ArachnaeSwarm/ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs b/Source/ArachnaeSwarm/ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs
index 3170615..c577380 100644
--- a/Source/ArachnaeSwarm/ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs
+++ b/Source/ArachnaeSwarm/ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs
@@ -9,7 +9,6 @@ namespace ArachnaeSwarm
public static class ARA_TrainableDefOf
{
public static TrainableDef ARA_Sowing;
- public static TrainableDef ARA_PlantCutting;
static ARA_TrainableDefOf()
{
@@ -32,12 +31,8 @@ namespace ArachnaeSwarm
bool canSow = pawn.training.HasLearned(ARA_TrainableDefOf.ARA_Sowing) &&
pawn.training.GetWanted(ARA_TrainableDefOf.ARA_Sowing);
- // 检查动物是否学会并被允许执行“植物切割”工作
- bool canCut = pawn.training.HasLearned(ARA_TrainableDefOf.ARA_PlantCutting) &&
- pawn.training.GetWanted(ARA_TrainableDefOf.ARA_PlantCutting);
-
- // 只要满足其中任何一个条件,就返回 true
- return canSow || canCut;
+ // 现在只需要检查播种技能,因为切割功能已合并
+ return canSow;
}
}
}
\ No newline at end of file