From a98b4d2612c0d792277588c1764f5119b84a35d4 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Wed, 3 Sep 2025 13:26:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=8F=8D=E5=A4=8D=E5=89=B2=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/1.6/Assemblies/ArachnaeSwarm.dll | Bin 49664 -> 49664 bytes Source/ArachnaeSwarm/JobGiver_Grower.cs | 96 +++++++++----- Source/ArachnaeSwarm/WorkGiver_ArachnaeSow.cs | 125 ++++++++++-------- 3 files changed, 128 insertions(+), 93 deletions(-) diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index a96127847152940b932f96111a83023f09ecd896..4060780bf00819fbdcc334fdc21206627b7f81c7 100644 GIT binary patch literal 49664 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 S@3Ve;{}+YuOFaKi68JCGIkwOM diff --git a/Source/ArachnaeSwarm/JobGiver_Grower.cs b/Source/ArachnaeSwarm/JobGiver_Grower.cs index babf782..0e42089 100644 --- a/Source/ArachnaeSwarm/JobGiver_Grower.cs +++ b/Source/ArachnaeSwarm/JobGiver_Grower.cs @@ -13,13 +13,14 @@ namespace ArachnaeSwarm protected override Job TryGiveJob(Pawn pawn) { + // 懒加载 WorkGiver 实例,确保 DefOf 已被初始化 if (_workGiverHarvest == null) { - _workGiverHarvest = WorkGiverDefOf.GrowerHarvest.Worker as WorkGiver_GrowerHarvest; - _workGiverPlantsCut = WorkGiverDefOf.PlantsCut.Worker as WorkGiver_Scanner; + _workGiverHarvest = DefDatabase.GetNamed("GrowerHarvest").Worker as WorkGiver_GrowerHarvest; + _workGiverPlantsCut = DefDatabase.GetNamed("PlantsCut").Worker as WorkGiver_Scanner; _workGiverArachnaeSow = new WorkGiver_ArachnaeSow(); - if (_workGiverHarvest == null || _workGiverPlantsCut == null) + if (_workGiverHarvest == null || _workGiverPlantsCut == null || _workGiverArachnaeSow == null) { Log.ErrorOnce("JobGiver_Grower: Failed to get a required WorkGiver. DefOfs might not be initialized.", 123458); return null; @@ -30,21 +31,29 @@ namespace ArachnaeSwarm IntVec3 bestHarvestCell = FindClosestHarvestableCell(pawn); if (bestHarvestCell.IsValid) { - return _workGiverHarvest.JobOnCell(pawn, bestHarvestCell); + Job harvestJob = _workGiverHarvest.JobOnCell(pawn, bestHarvestCell); + if (harvestJob != null) + { + return harvestJob; + } } // 2. 其次处理手动指定的砍伐/收获任务 Thing bestCuttable = FindClosestWorkableThing(pawn, _workGiverPlantsCut); if (bestCuttable != null) { - return _workGiverPlantsCut.JobOnThing(pawn, bestCuttable); + Job cutJob = _workGiverPlantsCut.JobOnThing(pawn, bestCuttable); + if (cutJob != null) + { + return cutJob; + } } - // 3. 最后播种(自动,并清理障碍) - (IntVec3 bestSowCell, ThingDef plantToSow) = FindClosestSowableCellAndPlant(pawn, _workGiverArachnaeSow); - if (bestSowCell.IsValid && plantToSow != null) + // 3. 最后处理播种或清理障碍(由 WorkGiver_ArachnaeSow 处理) + Job sowOrClearJob = FindClosestSowableOrClearJob(pawn, _workGiverArachnaeSow); + if (sowOrClearJob != null) { - return _workGiverArachnaeSow.JobOnCell(pawn, bestSowCell); + return sowOrClearJob; } return null; @@ -53,9 +62,9 @@ namespace ArachnaeSwarm private Thing FindClosestWorkableThing(Pawn pawn, WorkGiver_Scanner scanner) { return GenClosest.ClosestThing_Global( - pawn.Position, - scanner.PotentialWorkThingsGlobal(pawn), - maxDistance: 9999f, + pawn.Position, + scanner.PotentialWorkThingsGlobal(pawn), + maxDistance: 9999f, validator: t => t != null && !t.IsForbidden(pawn) && scanner.HasJobOnThing(pawn, t) && pawn.CanReach(t, PathEndMode.Touch, Danger.Deadly) ); } @@ -86,47 +95,64 @@ namespace ArachnaeSwarm return bestCell; } - private (IntVec3, ThingDef) FindClosestSowableCellAndPlant(Pawn pawn, WorkGiver_ArachnaeSow scanner) + // 修改后的方法:寻找最近的播种或清理 Job + private Job FindClosestSowableOrClearJob(Pawn pawn, WorkGiver_ArachnaeSow scanner) { - IntVec3 bestCell = IntVec3.Invalid; - ThingDef bestPlantToSow = null; - float bestDistSq = float.MaxValue; + IntVec3 bestClearCell = IntVec3.Invalid; + Job bestClearJob = null; + float bestClearDistSq = float.MaxValue; + + IntVec3 bestSowCell = IntVec3.Invalid; + Job bestSowJob = null; + float bestSowDistSq = float.MaxValue; foreach (Zone zone in pawn.Map.zoneManager.AllZones) { if (zone is Zone_Growing growingZone) { - ThingDef wantedPlant = growingZone.GetPlantDefToGrow(); + ThingDef wantedPlant = growingZone.GetPlantDefToGrow(); if (wantedPlant == null) continue; foreach (IntVec3 cell in growingZone.Cells) { float distSq = pawn.Position.DistanceToSquared(cell); - if (distSq < bestDistSq && pawn.CanReach(cell, PathEndMode.ClosestTouch, Danger.Deadly)) + if (pawn.CanReach(cell, PathEndMode.ClosestTouch, Danger.Deadly)) { - if (scanner.HasJobOnCell(pawn, cell)) + Job potentialJob = scanner.JobOnCell(pawn, cell); + if (potentialJob != null) { - bestDistSq = distSq; - bestCell = cell; - bestPlantToSow = wantedPlant; + if (potentialJob.def == JobDefOf.CutPlant || potentialJob.def == JobDefOf.HaulToContainer || potentialJob.def == JobDefOf.HaulToCell) + { + if (distSq < bestClearDistSq) + { + bestClearDistSq = distSq; + bestClearJob = potentialJob; + } + } + else if (potentialJob.def == JobDefOf.Sow) + { + if (distSq < bestSowDistSq) + { + bestSowDistSq = distSq; + bestSowJob = potentialJob; + } + } } } } } } - return (bestCell, bestPlantToSow); + // 优先返回清理 Job + if (bestClearJob != null) + { + return bestClearJob; + } + // 其次返回播种 Job + if (bestSowJob != null) + { + return bestSowJob; + } + return null; } } -} - -[DefOf] -public static class WorkGiverDefOf -{ - public static WorkGiverDef GrowerHarvest; - public static WorkGiverDef PlantsCut; - - static WorkGiverDefOf() - { - DefOfHelper.EnsureInitializedInCtor(typeof(WorkGiverDefOf)); - } } \ No newline at end of file diff --git a/Source/ArachnaeSwarm/WorkGiver_ArachnaeSow.cs b/Source/ArachnaeSwarm/WorkGiver_ArachnaeSow.cs index ca6c4a3..6ff01b2 100644 --- a/Source/ArachnaeSwarm/WorkGiver_ArachnaeSow.cs +++ b/Source/ArachnaeSwarm/WorkGiver_ArachnaeSow.cs @@ -52,8 +52,8 @@ namespace ArachnaeSwarm { return null; } - - // 直接计算 wantedPlantDef,不再依赖静态字段 + + // 直接计算 wantedPlantDef ThingDef wantedPlantDefLocal = WorkGiver_Grower.CalculateWantedPlantDef(c, map); if (wantedPlantDefLocal == null) { @@ -105,56 +105,65 @@ namespace ArachnaeSwarm return null; } Plant plant = c.GetPlant(map); - if (plant != null && plant.def.plant.blockAdjacentSow) + if (plant != null) // 只要地块上有植物 { - if (!pawn.CanReserve(plant, 1, -1, null, forced) || plant.IsForbidden(pawn)) + // 如果地块上的植物不是我们想要种植的植物,就割除 + if (plant.def != wantedPlantDefLocal) + { + if (!pawn.CanReserve(plant, 1, -1, null, forced) || plant.IsForbidden(pawn)) + { + return null; + } + if (zone_Growing != null && !zone_Growing.allowCut) + { + return null; + } + if (!forced && plant.TryGetComp(out var comp) && comp.PreventCutting) + { + return null; + } + return JobMaker.MakeJob(JobDefOf.CutPlant, plant); + } + // 如果地块上的植物是我们想要种植的植物,并且它阻碍了相邻播种,则不割除 + // 因为它已经是我们想要种植的植物了 + if (plant.def.plant.blockAdjacentSow) { return null; } - if (zone_Growing != null && !zone_Growing.allowCut) - { - return null; - } - if (!forced && plant.TryGetComp(out var comp) && comp.PreventCutting) - { - return null; - } - if (!PlantUtility.PawnWillingToCutPlant_Job(plant, pawn)) - { - return null; - } - return JobMaker.MakeJob(JobDefOf.CutPlant, plant); } Thing thing2 = PlantUtility.AdjacentSowBlocker(wantedPlantDefLocal, c, map); if (thing2 != null) { - if (thing2 is Plant plant2 && pawn.CanReserveAndReach(plant2, PathEndMode.Touch, Danger.Deadly, 1, -1, null, forced) && !plant2.IsForbidden(pawn)) + if (thing2 is Plant plant2) { - IPlantToGrowSettable plantToGrowSettable = plant2.Position.GetPlantToGrowSettable(plant2.Map); - if (plantToGrowSettable == null || plantToGrowSettable.GetPlantDefToGrow() != plant2.def) + // 如果阻碍播种的是植物,并且不是我们想要种植的植物,就割除 + if (plant2.def != wantedPlantDefLocal) { - Zone_Growing zone_Growing2 = c.GetZone(map) as Zone_Growing; - Zone_Growing zone_Growing3 = plant2.Position.GetZone(map) as Zone_Growing; - if ((zone_Growing2 != null && !zone_Growing2.allowCut) || (zone_Growing3 != null && !zone_Growing3.allowCut && plant2.def == zone_Growing3.GetPlantDefToGrow())) + if (pawn.CanReserveAndReach(plant2, PathEndMode.Touch, Danger.Deadly, 1, -1, null, forced) && !plant2.IsForbidden(pawn)) { - return null; + IPlantToGrowSettable plantToGrowSettable = plant2.Position.GetPlantToGrowSettable(plant2.Map); + if (plantToGrowSettable == null || plantToGrowSettable.GetPlantDefToGrow() != plant2.def) + { + Zone_Growing zone_Growing2 = c.GetZone(map) as Zone_Growing; + Zone_Growing zone_Growing3 = c.GetZone(map) as Zone_Growing; + if ((zone_Growing2 != null && !zone_Growing2.allowCut) || (zone_Growing3 != null && !zone_Growing3.allowCut && plant2.def == zone_Growing3.GetPlantDefToGrow())) + { + return null; + } + } + if (!forced && thing2.TryGetComp(out CompPlantPreventCutting comp2) && comp2.PreventCutting) + { + return null; + } + if (PlantUtility.TreeMarkedForExtraction(plant2)) + { + return null; + } + return JobMaker.MakeJob(JobDefOf.CutPlant, plant2); } } - if (!forced && thing2.TryGetComp(out CompPlantPreventCutting comp2) && comp2.PreventCutting) - { - return null; - } - if (PlantUtility.TreeMarkedForExtraction(plant2)) - { - return null; - } - if (!PlantUtility.PawnWillingToCutPlant_Job(plant2, pawn)) - { - return null; - } - return JobMaker.MakeJob(JobDefOf.CutPlant, plant2); } - if (thing2.def.EverHaulable) + else if (thing2.def.EverHaulable) { return HaulAIUtility.HaulAsideJobFor(pawn, thing2); } @@ -178,29 +187,29 @@ namespace ArachnaeSwarm } if (thing3.def.category == ThingCategory.Plant) { - if (thing3.IsForbidden(pawn)) + // 如果阻碍播种的是植物,并且不是我们想要种植的植物,就割除 + if (thing3.def != wantedPlantDefLocal) { - return null; + if (thing3.IsForbidden(pawn)) + { + return null; + } + if (zone_Growing != null && !zone_Growing.allowCut) + { + return null; + } + if (!forced && thing3.TryGetComp(out var comp3) && comp3.PreventCutting) + { + return null; + } + if (PlantUtility.TreeMarkedForExtraction(thing3)) + { + return null; + } + return JobMaker.MakeJob(JobDefOf.CutPlant, thing3); } - if (zone_Growing != null && !zone_Growing.allowCut) - { - return null; - } - if (!forced && plant.TryGetComp(out var comp3) && comp3.PreventCutting) - { - return null; - } - if (!PlantUtility.PawnWillingToCutPlant_Job(thing3, pawn)) - { - return null; - } - if (PlantUtility.TreeMarkedForExtraction(thing3)) - { - return null; - } - return JobMaker.MakeJob(JobDefOf.CutPlant, thing3); } - if (thing3.def.EverHaulable) + else if (thing3.def.EverHaulable) { return HaulAIUtility.HaulAsideJobFor(pawn, thing3); }