From f6ac6478f2ebac7dcbe80c82b57f2b6d3b445381 Mon Sep 17 00:00:00 2001 From: Matthew Walls Date: Fri, 14 Sep 2018 02:45:44 +0900 Subject: [PATCH] git commit from PowerShell in C#Doors Expanded Player animals now properly go to restricted areas that use doors from DoorsExpanded. Prisoners now properly go along with caravaners. Manhunters should not give errors when seeking targets hiding behind doors from Doors Expanded. --- About/DiscordURL.txt | 1 + About/LudeonURL.txt | 1 + About/PatreonURL.txt | 1 + Assemblies/0Harmony.dll | Bin 0 -> 65536 bytes Assemblies/DoorsExpanded.dll | Bin 34816 -> 37376 bytes .../.idea.ProjectHeron/.idea/contentModel.xml | 7 +- .../.idea.ProjectHeron/.idea/indexLayout.xml | 1 + Source/.idea/.idea.ProjectHeron/.idea/vcs.xml | 2 +- Source/Building_DoorExpanded.cs | 4 +- Source/Building_DoorRegionHandler.cs | 27 +- Source/DiscordWebhookToken.txt | 1 + Source/HarmonyPatches.cs | 381 +++++++++++++----- Source/ProjectHeron.csproj | 2 +- Source/obj/Debug/DoorsExpanded.dll | Bin 34816 -> 37376 bytes ...rojectHeron.csproj.CoreCompileInputs.cache | 2 +- .../ProjectHeron.csproj.FileListAbsolute.txt | 5 + ...ProjectHeron.csprojAssemblyReference.cache | Bin 37480 -> 57638 bytes 17 files changed, 318 insertions(+), 117 deletions(-) create mode 100644 About/DiscordURL.txt create mode 100644 About/LudeonURL.txt create mode 100644 About/PatreonURL.txt create mode 100644 Assemblies/0Harmony.dll create mode 100644 Source/DiscordWebhookToken.txt diff --git a/About/DiscordURL.txt b/About/DiscordURL.txt new file mode 100644 index 0000000..7e2a087 --- /dev/null +++ b/About/DiscordURL.txt @@ -0,0 +1 @@ +https://discord.gg/AaVFA7V diff --git a/About/LudeonURL.txt b/About/LudeonURL.txt new file mode 100644 index 0000000..0f104b0 --- /dev/null +++ b/About/LudeonURL.txt @@ -0,0 +1 @@ +https://ludeon.com/forums/index.php?topic=39264.0 diff --git a/About/PatreonURL.txt b/About/PatreonURL.txt new file mode 100644 index 0000000..5325a38 --- /dev/null +++ b/About/PatreonURL.txt @@ -0,0 +1 @@ +https://www.patreon.com/posts/doors-expanded-0-21060058 diff --git a/Assemblies/0Harmony.dll b/Assemblies/0Harmony.dll new file mode 100644 index 0000000000000000000000000000000000000000..5078dadd9ec1cea4923b614429966ced605370f1 GIT binary patch literal 65536 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 Sf2E?s!*`lD|CO~?+WsG#O>@Zr diff --git a/Source/.idea/.idea.ProjectHeron/.idea/contentModel.xml b/Source/.idea/.idea.ProjectHeron/.idea/contentModel.xml index 91ce6f3..beaaa89 100644 --- a/Source/.idea/.idea.ProjectHeron/.idea/contentModel.xml +++ b/Source/.idea/.idea.ProjectHeron/.idea/contentModel.xml @@ -1,8 +1,8 @@ - - + + @@ -19,6 +19,7 @@ - + + \ No newline at end of file diff --git a/Source/.idea/.idea.ProjectHeron/.idea/indexLayout.xml b/Source/.idea/.idea.ProjectHeron/.idea/indexLayout.xml index f1feadf..27ba142 100644 --- a/Source/.idea/.idea.ProjectHeron/.idea/indexLayout.xml +++ b/Source/.idea/.idea.ProjectHeron/.idea/indexLayout.xml @@ -1,6 +1,7 @@ + diff --git a/Source/.idea/.idea.ProjectHeron/.idea/vcs.xml b/Source/.idea/.idea.ProjectHeron/.idea/vcs.xml index 21a4bc5..6c0b863 100644 --- a/Source/.idea/.idea.ProjectHeron/.idea/vcs.xml +++ b/Source/.idea/.idea.ProjectHeron/.idea/vcs.xml @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/Source/Building_DoorExpanded.cs b/Source/Building_DoorExpanded.cs index ffabe53..a966202 100644 --- a/Source/Building_DoorExpanded.cs +++ b/Source/Building_DoorExpanded.cs @@ -388,9 +388,11 @@ public bool SlowsPawns public virtual bool PawnCanOpen(Pawn p) { Lord lord = p.GetLord(); - return !forbiddenComp.Forbidden && Def.doorType == DoorType.FreePassage || (lord != null && lord.LordJob != null && lord.LordJob.CanOpenAnyDoor(p)) || + var result = !forbiddenComp.Forbidden || Def.doorType == DoorType.FreePassage || (lord != null && lord.LordJob != null && lord.LordJob.CanOpenAnyDoor(p)) || (p.IsWildMan() && !p.mindState.WildManEverReachedOutside) || base.Faction == null || (p.guest != null && p.guest.Released) || GenAI.MachinesLike(base.Faction, p); + if (!result && p.AnimalOrWildMan()) Console.WriteLine(p.def.ToString() + " cannot open " + this.def.ToString()); + return result; } diff --git a/Source/Building_DoorRegionHandler.cs b/Source/Building_DoorRegionHandler.cs index 57c59f1..cd69096 100644 --- a/Source/Building_DoorRegionHandler.cs +++ b/Source/Building_DoorRegionHandler.cs @@ -6,6 +6,7 @@ using RimWorld; using Verse; using Verse.AI; +using Verse.AI.Group; using Verse.Sound; namespace DoorsExpanded @@ -23,19 +24,12 @@ namespace DoorsExpanded /// public class Building_DoorRegionHandler : Building_Door { - - private Building_DoorExpanded parentDoor; + public Building_DoorExpanded ParentDoor { - get - { - return parentDoor; - } - set - { - parentDoor = value; - } + get { return parentDoor; } + set { parentDoor = value; } } public override string LabelMouseover => ""; @@ -53,7 +47,12 @@ public int TicksUntilClose public override bool PawnCanOpen(Pawn p) { - return base.PawnCanOpen(p) && ((p.Faction == this.Faction || !p.Faction.HostileTo(this.Faction)) && !this.IsForbidden(p)); + Lord lord = p.GetLord(); + if (lord != null && lord.LordJob != null && lord.LordJob.CanOpenAnyDoor(p) || + (WildManUtility.WildManShouldReachOutsideNow(p) || this.Faction == null || + p.guest != null && p.guest.Released) || p.AnimalOrWildMan() && p.playerSettings != null) + return true; + return GenAI.MachinesLike(this.Faction, p); } public override void Tick() @@ -102,7 +101,7 @@ public bool OpenValue get => Traverse.Create(this).Field("openInt").GetValue(); set => Traverse.Create(this).Field("openInt").SetValue(value); } - + public void OpenMe(int ticks) { this.ticksUntilClose = ticks; @@ -126,7 +125,7 @@ public void OpenMe(int ticks) } } } - + public override void ExposeData() { base.ExposeData(); @@ -137,4 +136,4 @@ public override void ExposeData() }*/ } } -} +} \ No newline at end of file diff --git a/Source/DiscordWebhookToken.txt b/Source/DiscordWebhookToken.txt new file mode 100644 index 0000000..9ea85d0 --- /dev/null +++ b/Source/DiscordWebhookToken.txt @@ -0,0 +1 @@ +https://discordapp.com/api/webhooks/487657430256451586/fQfntEHnahggdYmE4db0c0S_xc2MFgzHNyN7nUwIf91LSHqKPKhVi6ixUhkmL7oZf-BJ diff --git a/Source/HarmonyPatches.cs b/Source/HarmonyPatches.cs index 461e03b..6e6d946 100644 --- a/Source/HarmonyPatches.cs +++ b/Source/HarmonyPatches.cs @@ -14,57 +14,75 @@ namespace DoorsExpanded [StaticConstructorOnStartup] static class HarmonyPatches { - static HarmonyPatches() { //Log.Message("This is working!"); HarmonyInstance harmony = HarmonyInstance.Create(id: "rimworld.jecrell.doorsexpanded"); - - harmony.Patch(original: AccessTools.Method(type: typeof(EdificeGrid), name: "Register"), prefix: new HarmonyMethod( - type: typeof(HarmonyPatches), - name: nameof(RegisterDoorExpanded)), postfix: null); - harmony.Patch(original: AccessTools.Method(type: typeof(Building_Door), name: "DoorOpen"), prefix: new HarmonyMethod( - type: typeof(HarmonyPatches), - name: nameof(InvisDoorOpen)), postfix: null); - harmony.Patch(original: AccessTools.Method(type: typeof(Building_Door), name: "DoorTryClose"), prefix: new HarmonyMethod( - type: typeof(HarmonyPatches), - name: nameof(InvisDoorTryClose)), postfix: null); - harmony.Patch(original: AccessTools.Method(type: typeof(Building_Door), name: "Notify_PawnApproaching"), prefix: null, postfix: new HarmonyMethod( - type: typeof(HarmonyPatches), - name: nameof(InvisDoorNotifyApproaching)), transpiler: null); - harmony.Patch(original: AccessTools.Method(type: typeof(Building_Door), name: nameof(Building_Door.StartManualCloseBy)), + + harmony.Patch(original: AccessTools.Method(type: typeof(EdificeGrid), name: "Register"), + prefix: new HarmonyMethod( + type: typeof(HarmonyPatches), + name: nameof(RegisterDoorExpanded)), postfix: null); + harmony.Patch(original: AccessTools.Method(type: typeof(Building_Door), name: "DoorOpen"), + prefix: new HarmonyMethod( + type: typeof(HarmonyPatches), + name: nameof(InvisDoorOpen)), postfix: null); + harmony.Patch(original: AccessTools.Method(type: typeof(Building_Door), name: "DoorTryClose"), + prefix: new HarmonyMethod( + type: typeof(HarmonyPatches), + name: nameof(InvisDoorTryClose)), postfix: null); + harmony.Patch(original: AccessTools.Method(type: typeof(Building_Door), name: "Notify_PawnApproaching"), + prefix: null, postfix: new HarmonyMethod( + type: typeof(HarmonyPatches), + name: nameof(InvisDoorNotifyApproaching)), transpiler: null); + harmony.Patch( + original: AccessTools.Method(type: typeof(Building_Door), + name: nameof(Building_Door.StartManualCloseBy)), prefix: new HarmonyMethod(type: typeof(HarmonyPatches), name: nameof(InvisDoorManualClose)), postfix: null); - harmony.Patch(original: AccessTools.Method(type: typeof(Building_Door), name: nameof(Building_Door.StartManualOpenBy)), prefix: null, + harmony.Patch( + original: AccessTools.Method(type: typeof(Building_Door), + name: nameof(Building_Door.StartManualOpenBy)), prefix: null, postfix: new HarmonyMethod(type: typeof(HarmonyPatches), name: nameof(InvisDoorManualOpen)), transpiler: null); - harmony.Patch(original: AccessTools.Property(type: typeof(Building_Door), name: nameof(Building_Door.FreePassage)).GetGetMethod(), + harmony.Patch( + original: AccessTools.Property(type: typeof(Building_Door), name: nameof(Building_Door.FreePassage)) + .GetGetMethod(), prefix: new HarmonyMethod(type: typeof(HarmonyPatches), name: nameof(get_FreePassage)), postfix: null); - harmony.Patch(original: AccessTools.Method(type: typeof(GhostDrawer), name: nameof(GhostDrawer.DrawGhostThing)), + harmony.Patch( + original: AccessTools.Method(type: typeof(GhostDrawer), name: nameof(GhostDrawer.DrawGhostThing)), prefix: new HarmonyMethod(type: typeof(HarmonyPatches), name: nameof(HeronDoorGhostHandler)), postfix: null); - harmony.Patch(original: AccessTools.Method(type: typeof(GenSpawn), name: nameof(GenSpawn.SpawnBuildingAsPossible)), + harmony.Patch( + original: AccessTools.Method(type: typeof(GenSpawn), name: nameof(GenSpawn.SpawnBuildingAsPossible)), prefix: new HarmonyMethod(type: typeof(HarmonyPatches), name: nameof(HeronSpawnBuildingAsPossible)), postfix: null); - harmony.Patch(original: AccessTools.Method(type: typeof(GenSpawn), name: nameof(GenSpawn.WipeExistingThings)), prefix: new HarmonyMethod( - type: typeof(HarmonyPatches), - name: nameof(WipeExistingThings)), postfix: null); - harmony.Patch(original: AccessTools.Method(type: typeof(GenSpawn), name: nameof(GenSpawn.SpawningWipes)), prefix: null, postfix: new HarmonyMethod( - type: typeof(HarmonyPatches), - name: nameof(InvisDoorsDontWipe)), transpiler: null); - harmony.Patch(original: AccessTools.Method(type: typeof(GenPath), name: "ShouldNotEnterCell"), prefix: null, postfix: new HarmonyMethod( - type: typeof(HarmonyPatches), - name: nameof(ShouldNotEnterCellInvisDoors)), transpiler: null); - harmony.Patch(original: AccessTools.Method(type: typeof(CompForbiddable), name: nameof(CompForbiddable.PostDraw)), + harmony.Patch( + original: AccessTools.Method(type: typeof(GenSpawn), name: nameof(GenSpawn.WipeExistingThings)), + prefix: new HarmonyMethod( + type: typeof(HarmonyPatches), + name: nameof(WipeExistingThings)), postfix: null); + harmony.Patch(original: AccessTools.Method(type: typeof(GenSpawn), name: nameof(GenSpawn.SpawningWipes)), + prefix: null, postfix: new HarmonyMethod( + type: typeof(HarmonyPatches), + name: nameof(InvisDoorsDontWipe)), transpiler: null); + harmony.Patch(original: AccessTools.Method(type: typeof(GenPath), name: "ShouldNotEnterCell"), prefix: null, + postfix: new HarmonyMethod( + type: typeof(HarmonyPatches), + name: nameof(ShouldNotEnterCellInvisDoors)), transpiler: null); + harmony.Patch( + original: AccessTools.Method(type: typeof(CompForbiddable), name: nameof(CompForbiddable.PostDraw)), prefix: new HarmonyMethod(type: typeof(HarmonyPatches), name: nameof(DontDrawInvisDoorForbiddenIcons)), postfix: null); harmony.Patch( - original: AccessTools.Method(type: typeof(PawnPathUtility), name: nameof(PawnPathUtility.TryFindLastCellBeforeBlockingDoor)), + original: AccessTools.Method(type: typeof(PawnPathUtility), + name: nameof(PawnPathUtility.TryFindLastCellBeforeBlockingDoor)), prefix: new HarmonyMethod(type: typeof(HarmonyPatches), name: nameof(ManhunterJobGiverFix)), postfix: null); harmony.Patch( - original: AccessTools.Method(type: typeof(ForbidUtility), name: nameof(ForbidUtility.IsForbiddenToPass)), + original: AccessTools.Method(type: typeof(ForbidUtility), + name: nameof(ForbidUtility.IsForbiddenToPass)), prefix: null, postfix: new HarmonyMethod(type: typeof(HarmonyPatches), name: nameof(IsForbiddenToPass_PostFix))); harmony.Patch( @@ -72,16 +90,119 @@ static HarmonyPatches() prefix: null, postfix: new HarmonyMethod(type: typeof(HarmonyPatches), name: nameof(GetBuildingCost_PostFix))); harmony.Patch( - original: AccessTools.Method(type: typeof(PawnPathUtility), name: nameof(PawnPathUtility.FirstBlockingBuilding)), + original: AccessTools.Method(type: typeof(PawnPathUtility), + name: nameof(PawnPathUtility.FirstBlockingBuilding)), prefix: null, postfix: new HarmonyMethod(type: typeof(HarmonyPatches), name: nameof(FirstBlockingBuilding_PostFix))); harmony.Patch( - original: AccessTools.Method(typeof(GenGrid), "CanBeSeenOver", new []{typeof(Building)} ), + original: AccessTools.Method(typeof(GenGrid), "CanBeSeenOver", new[] {typeof(Building)}), prefix: null, postfix: new HarmonyMethod(type: typeof(HarmonyPatches), name: nameof(CanBeSeenOver))); - + harmony.Patch( + AccessTools.Method(typeof(JobGiver_SeekAllowedArea), "TryGiveJob"), + new HarmonyMethod(type: typeof(HarmonyPatches), + name: nameof(SeekAllowedArea_TryGiveJob)), null); + harmony.Patch( + AccessTools.Method(typeof(Building_Door), "CanPhysicallyPass"), + new HarmonyMethod(type: typeof(HarmonyPatches), + name: nameof(CanPhysicallyPass)), null); + //harmony.Patch( + // original: AccessTools.Method(typeof(Region), "Allows"), + // prefix: null, postfix: new HarmonyMethod(type: typeof(HarmonyPatches), + // name: nameof(RegionAllows))); + } + + public static bool CanPhysicallyPass(Building_Door __instance, Pawn p, ref bool __result) + { + if (!p.AnimalOrWildMan()) return true; + if (p.playerSettings == null) return true; + StringBuilder s = new StringBuilder(); + s.AppendLine(p.LabelShort + " - FreePassage: " + __instance.FreePassage); + var pawnCanOpen = (__instance is Building_DoorRegionHandler reg) ? reg.PawnCanOpen(p) : __instance.PawnCanOpen(p); + s.AppendLine(p.LabelShort + " - PawnCanOpen: " + pawnCanOpen); + s.AppendLine((p.LabelShort + " - Open: " + __instance.Open)); + s.AppendLine((p.LabelShort + " - Hostile: " + p.HostileTo(__instance))); + //Log.Message(s.ToString()); + __result = __instance.FreePassage || pawnCanOpen || (__instance.Open && p.HostileTo(__instance)); + return false; + } + + //public class JobGiver_SeekAllowedArea : ThinkNode_JobGiver + public static bool SeekAllowedArea_TryGiveJob(JobGiver_SeekAllowedArea __instance, Pawn pawn, ref Job __result) + { + if (!pawn.AnimalOrWildMan()) return true; + if (pawn.playerSettings == null) return true; + if (!pawn.Position.IsForbidden(pawn)) + { + __result = null; + return false; + } + + if (Traverse.Create(__instance).Method("HasJobWithSpawnedAllowedTarget", pawn).GetValue()) + { + __result = null; + return false; + } + + Region region = pawn.GetRegion(RegionType.Set_Passable); + if (region == null) + { + __result = null; + return false; + } + + var allows = false; + TraverseParms traverseParms = TraverseParms.For(pawn, Danger.Deadly, TraverseMode.ByPawn, false); + RegionEntryPredicate entryCondition = (Region from, Region r) => + { + allows = r.Allows(traverseParms, false); + if (allows) return true; + return false; + }; + Region reg = null; + RegionProcessor regionProcessor = delegate(Region r) + { + if (r.IsDoorway && r?.ListerThings?.AllThings?.Any(x => x is Building_DoorRegionHandler) == false) + { + //Log.Message("Doorway disallowed"); + return false; + } + + if (!r.IsForbiddenEntirely(pawn)) + { + reg = r; + return true; + } + + return false; + }; + RegionTraverser.BreadthFirstTraverse(region, entryCondition, regionProcessor, 9999, + RegionType.Set_Passable); + if (reg == null) + { + //Log.Message(pawn.LabelShort + " No region found"); + __result = null; + return false; + } + + IntVec3 c; + if (!reg.TryFindRandomCellInRegionUnforbidden(pawn, null, out c)) + { + //Log.Message(pawn.LabelShort + " Failed to find random cell in region unforbidden"); + __result = null; + return false; + } + + __result = new Job(JobDefOf.Goto, c); + return false; } + //Region + //public bool RegionAllows(TraverseParms tp, bool isDestination) + //{ + // + //} + //GenGrid public static void CanBeSeenOver(Building b, ref bool __result) { @@ -92,27 +213,31 @@ public static void CanBeSeenOver(Building b, ref bool __result) __result = building_DoorEx != null && building_DoorEx.Open; } } - + //public static class PawnPathUtility - public static void FirstBlockingBuilding_PostFix(this PawnPath path, ref IntVec3 cellBefore, Pawn pawn, ref Thing __result) + public static void FirstBlockingBuilding_PostFix(this PawnPath path, ref IntVec3 cellBefore, Pawn pawn, + ref Thing __result) { if (!path.Found) { cellBefore = IntVec3.Invalid; __result = null; } + List nodesReversed = path.NodesReversed; if (nodesReversed.NullOrEmpty() || nodesReversed.Count <= 1) { return; } + Building building = null; IntVec3 intVec = IntVec3.Invalid; for (int i = nodesReversed.Count - 2; i >= 0; i--) { //Building edifice = nodesReversed[i].GetEdifice(pawn.Map); - var edifice = nodesReversed[index: i].GetThingList(pawn.Map).FirstOrDefault(x => x.def.thingClass == typeof(Building_DoorExpanded) || - x.def.thingClass == typeof(Building_DoorRegionHandler)); + var edifice = nodesReversed[index: i].GetThingList(pawn.Map).FirstOrDefault(x => + x.def.thingClass == typeof(Building_DoorExpanded) || + x.def.thingClass == typeof(Building_DoorRegionHandler)); if (edifice != null) { if ((edifice is Building_DoorExpanded building_Door && !building_Door.FreePassage && @@ -122,6 +247,7 @@ public static void FirstBlockingBuilding_PostFix(this PawnPath path, ref IntVec3 cellBefore = nodesReversed[i + 1]; __result = edifice; } + var building_DoorReg = edifice as Building_DoorRegionHandler; if (building_DoorReg == null || building_DoorReg.ParentDoor == null) continue; if ((!building_DoorReg.FreePassage && @@ -138,14 +264,24 @@ public static void FirstBlockingBuilding_PostFix(this PawnPath path, ref IntVec3 //PathFinder public static void GetBuildingCost_PostFix(Building b, TraverseParms traverseParms, Pawn pawn, ref int __result) { - if (__result >= int.MaxValue) return; + // if (__result >= int.MaxValue) return; if (b is Building_DoorRegionHandler reg) { switch (traverseParms.mode) { case TraverseMode.ByPawn: { - if (!traverseParms.canBash && reg.IsForbiddenToPass(pawn)) + if (reg.PawnCanOpen(pawn) && !reg.FreePassage) + { + __result = reg.TicksToOpenNow; + return; + } + if (reg.CanPhysicallyPass(pawn)) + { + __result = 0; + return; + } + if (!traverseParms.canBash && reg.IsForbidden(pawn)) { if (DebugViewSettings.drawPaths) { @@ -153,8 +289,10 @@ public static void GetBuildingCost_PostFix(Building b, TraverseParms traversePar new object[] {b.Position, b.Map, 0.77f, "forbid"}); //PathFinder.DebugFlash(b.Position, b.Map, 0.77f, "forbid"); } + __result = int.MaxValue; } + break; } } @@ -165,6 +303,11 @@ public static void GetBuildingCost_PostFix(Building b, TraverseParms traversePar { case TraverseMode.ByPawn: { + if (ex.PawnCanOpen(pawn) && !ex.FreePassage) + { + __result = ex.TicksToOpenNow; + return; + } if (!traverseParms.canBash && ex.IsForbidden(pawn)) { if (DebugViewSettings.drawPaths) @@ -172,11 +315,13 @@ public static void GetBuildingCost_PostFix(Building b, TraverseParms traversePar Traverse.Create(typeof(PathFinder)).Method("DebugFlash", new object[] {b.Position, b.Map, 0.77f, "forbid"}); } + __result = int.MaxValue; } + break; } - } + } } } @@ -186,18 +331,22 @@ public static void IsForbiddenToPass_PostFix(this Thing t, Pawn pawn, ref bool _ if (t is Building_DoorRegionHandler reg) { //Log.Message("reg called"); - __result = __result && ((t.Spawned && t.Position.IsForbidden(pawn) && !(t is Building_DoorRegionHandler)) || t.IsForbidden(pawn.Faction)); + //__result = __result && ((t.Spawned && t.Position.IsForbidden(pawn) && !(t is Building_DoorRegionHandler)) || t.IsForbidden(pawn.Faction)); + //ForbidUtility.CaresAboutForbidden(pawn, false) && t.IsForbidden(pawn.Faction); + __result = __result && ((t.Spawned && t.Position.IsForbidden(pawn)) || t.IsForbidden(pawn.Faction)); + //if (__result == false && pawn.AnimalOrWildMan()) Log.Message(pawn.LabelShort + " rejected from expanded door"); //Log.Message("Result is " + __result.ToString()); } - if (t is Building_DoorExpanded ex) - { - //Log.Message("ex called"); - __result = __result && ((t.Spawned && t.Position.IsForbidden(pawn) && !(t is Building_DoorExpanded)) || t.IsForbidden(pawn.Faction)); - //Log.Message("Result is " + __result.ToString()); - } - + +// if (t is Building_DoorExpanded ex) +// { +// Log.Message("ex called"); +// //__result = __result && ((t.Spawned && t.Position.IsForbidden(pawn) && !(t is Building_DoorExpanded)) || t.IsForbidden(pawn.Faction)); +// __result = __result && ((t.Spawned && t.Position.IsForbidden(pawn) && !(t is Building_DoorExpanded)) || t.IsForbidden(pawn.Faction)); +// //Log.Message("Result is " + __result.ToString()); +// } } - + //PawnPathUtility //Adds an extra check. public static bool ManhunterJobGiverFix(PawnPath path, Pawn pawn, ref IntVec3 result, ref bool __result) @@ -206,9 +355,10 @@ public static bool ManhunterJobGiverFix(PawnPath path, Pawn pawn, ref IntVec3 re { result = path.NodesReversed[index: 0]; __result = false; - Log.Message("Nodes less or equal to 1"); + //Log.Message("Nodes less or equal to 1"); return false; } + List nodesReversed = path.NodesReversed; if (nodesReversed != null) { @@ -216,7 +366,9 @@ public static bool ManhunterJobGiverFix(PawnPath path, Pawn pawn, ref IntVec3 re { //pawn.Map.debugDrawer.FlashCell(nodesReversed[i]); var edifice = nodesReversed[index: i].GetThingList(pawn.Map) - .FirstOrDefault(x => x.def.thingClass == typeof(Building_DoorExpanded) || x.def.thingClass == typeof(Building_DoorRegionHandler)); //GetEdifice(map: pawn.Map); + .FirstOrDefault(x => + x.def.thingClass == typeof(Building_DoorExpanded) || + x.def.thingClass == typeof(Building_DoorRegionHandler)); //GetEdifice(map: pawn.Map); //var edifice = nodesReversed[i].GetEdifice(pawn.Map); if (edifice is Building_DoorExpanded building_DoorExpanded) { @@ -229,8 +381,9 @@ public static bool ManhunterJobGiverFix(PawnPath path, Pawn pawn, ref IntVec3 re return false; } } + if (edifice is Building_DoorRegionHandler building_DoorReg && - (!building_DoorReg.CanPhysicallyPass(pawn))) + (!building_DoorReg.CanPhysicallyPass(pawn))) { //Log.Message(text: "DoorsExpanded :: Manhunter Check Passed"); result = nodesReversed[index: i + 1]; @@ -238,13 +391,15 @@ public static bool ManhunterJobGiverFix(PawnPath path, Pawn pawn, ref IntVec3 re return false; } } + //Log.Message("No objects detected in path"); result = nodesReversed[index: 0]; } + __result = false; return true; } - + //Building_Door public static bool get_FreePassage(Building_Door __instance, ref bool __result) { @@ -253,6 +408,7 @@ public static bool get_FreePassage(Building_Door __instance, ref bool __result) __result = b.ParentDoor.FreePassage && !b.ParentDoor.Forbidden; return false; } + return true; } @@ -264,7 +420,7 @@ public static bool DontDrawInvisDoorForbiddenIcons(CompForbiddable __instance) return true; } - public static void ShouldNotEnterCellInvisDoors(Pawn pawn, Map map, IntVec3 dest, ref bool __result ) + public static void ShouldNotEnterCellInvisDoors(Pawn pawn, Map map, IntVec3 dest, ref bool __result) { if (__result || pawn == null) return; @@ -273,17 +429,20 @@ public static void ShouldNotEnterCellInvisDoors(Pawn pawn, Map map, IntVec3 dest __result = true; return; } + if (!dest.Walkable(map)) { __result = true; return; } + Building edifice = dest.GetEdifice(map: map); if (edifice == null) { //Log.Message("No edifice. So let's go!"); return; } + if (edifice is Building_DoorExpanded building_doorEx) { if (building_doorEx.IsForbidden(pawn)) @@ -291,12 +450,14 @@ public static void ShouldNotEnterCellInvisDoors(Pawn pawn, Map map, IntVec3 dest __result = true; return; } + if (!building_doorEx.PawnCanOpen(pawn)) { __result = true; return; } } + if (edifice is Building_DoorRegionHandler building_doorReg) { if (building_doorReg.IsForbidden(pawn)) @@ -304,14 +465,16 @@ public static void ShouldNotEnterCellInvisDoors(Pawn pawn, Map map, IntVec3 dest __result = true; return; } + if (!building_doorReg.PawnCanOpen(p: pawn)) { __result = true; } } } - - public static bool WipeExistingThings(IntVec3 thingPos, Rot4 thingRot, BuildableDef thingDef, Map map, DestroyMode mode) + + public static bool WipeExistingThings(IntVec3 thingPos, Rot4 thingRot, BuildableDef thingDef, Map map, + DestroyMode mode) { //Log.Message("1"); var trueDef = DefDatabase.AllDefs.FirstOrDefault(predicate: x => x.defName == thingDef.defName); @@ -322,38 +485,45 @@ public static bool WipeExistingThings(IntVec3 thingPos, Rot4 thingRot, Buildable { return false; } - return true; + + return true; } //GenSpawn public static void InvisDoorsDontWipe(BuildableDef newEntDef, BuildableDef oldEntDef, ref bool __result) { - var oldTrueDef = DefDatabase.AllDefs.FirstOrDefault(predicate: x => x.defName == oldEntDef.defName); - var newTrueDef = DefDatabase.AllDefs.FirstOrDefault(predicate: x => x.defName == newEntDef.defName); + var oldTrueDef = + DefDatabase.AllDefs.FirstOrDefault(predicate: x => x.defName == oldEntDef.defName); + var newTrueDef = + DefDatabase.AllDefs.FirstOrDefault(predicate: x => x.defName == newEntDef.defName); if (newEntDef.defName == HeronDefOf.HeronInvisibleDoor.defName && oldEntDef.defName == HeronDefOf.HeronInvisibleDoor.defName) { - __result = true; //false, meaning, don't wipe the old thing when you spawn + __result = true; //false, meaning, don't wipe the old thing when you spawn return; } - if (newEntDef.defName == HeronDefOf.HeronInvisibleDoor.defName || oldEntDef.defName == HeronDefOf.HeronInvisibleDoor.defName) + + if (newEntDef.defName == HeronDefOf.HeronInvisibleDoor.defName || + oldEntDef.defName == HeronDefOf.HeronInvisibleDoor.defName) { - __result = false; //false, meaning, don't wipe the old thing when you spawn + __result = false; //false, meaning, don't wipe the old thing when you spawn return; } - + if (newTrueDef != null && newTrueDef.thingClass == typeof(Building_DoorExpanded) && oldTrueDef != null && oldTrueDef.thingClass == typeof(Building_DoorExpanded)) { __result = true; return; } + if (oldTrueDef != null && oldTrueDef.thingClass == typeof(Building_DoorExpanded) && newEntDef.defName == HeronDefOf.HeronInvisibleDoor.defName) { __result = false; return; } + if (newTrueDef != null && newTrueDef.thingClass == typeof(Building_DoorExpanded) && oldEntDef.defName == HeronDefOf.HeronInvisibleDoor.defName) { @@ -369,11 +539,13 @@ public static bool HeronSpawnBuildingAsPossible(Building building, Map map, bool if (building is Building_DoorExpanded || building is Building_DoorRegionHandler || building.def == HeronDefOf.HeronInvisibleDoor || - building.def.thingClass == typeof(Building_DoorRegionHandler)) + building.def.thingClass == typeof(Building_DoorRegionHandler)) { - GenSpawn.Spawn(newThing: building, loc: building.Position, map: map, rot: building.Rotation, wipeMode: WipeMode.Vanish, respawningAfterLoad: respawningAfterLoad); + GenSpawn.Spawn(newThing: building, loc: building.Position, map: map, rot: building.Rotation, + wipeMode: WipeMode.Vanish, respawningAfterLoad: respawningAfterLoad); return false; } + return true; } @@ -384,10 +556,12 @@ public static Quaternion QuatFromRot(Graphic __instance, Rot4 rot) { return Quaternion.identity; } + if (__instance.ShouldDrawRotated) { return rot.AsQuat; } + return Quaternion.identity; } @@ -398,7 +572,7 @@ public static bool isExceptionForEdificeRegistration(Building ed) ed.def.thingClass == typeof(Building_DoorRegionHandler) || ed.def.thingClass == typeof(Building_DoorExpanded); } - + //EdificeGrid //TODO Make transpiler public static bool RegisterDoorExpanded(EdificeGrid __instance, Building ed) @@ -417,7 +591,8 @@ public static bool RegisterDoorExpanded(EdificeGrid __instance, Building ed) { IntVec3 intVec = new IntVec3(j, 0, i); var oldBuilding = __instance[intVec]; - if (UnityData.isDebugBuild && oldBuilding != null && !oldBuilding.Destroyed && !isExceptionForEdificeRegistration(oldBuilding)) + if (UnityData.isDebugBuild && oldBuilding != null && !oldBuilding.Destroyed && + !isExceptionForEdificeRegistration(oldBuilding)) { Log.Error(string.Concat(new object[] { @@ -432,45 +607,55 @@ public static bool RegisterDoorExpanded(EdificeGrid __instance, Building ed) oldBuilding.Destroy(DestroyMode.Vanish); return false; } - Traverse.Create(__instance).Field("innerArray").GetValue()[cellIndices.CellToIndex(intVec)] = ed; + + Traverse.Create(__instance).Field("innerArray").GetValue()[ + cellIndices.CellToIndex(intVec)] = ed; } } + // return false; } + return true; } // Verse.GhostDrawer - public static bool HeronDoorGhostHandler(IntVec3 center, Rot4 rot, ThingDef thingDef, Graphic baseGraphic, Color ghostCol, AltitudeLayer drawAltitude) + public static bool HeronDoorGhostHandler(IntVec3 center, Rot4 rot, ThingDef thingDef, Graphic baseGraphic, + Color ghostCol, AltitudeLayer drawAltitude) { if (thingDef is DoorExpandedDef def && def.fixedPerspective) { - Graphic graphic = GhostUtility.GhostGraphicFor(baseGraphic, thingDef, ghostCol); - //Graphic graphic = Traverse.Create(typeof(GhostDrawer)).Method("GhostGraphicFor", new object[] { thingDef.graphic, thingDef, ghostCol }).GetValue(); - Vector3 loc = GenThing.TrueCenter(center, rot, thingDef.Size, drawAltitude.AltitudeFor()); - - for (int i = 0; i < 2; i++) - { - bool flipped = (i != 0) ? true : false; - Building_DoorExpanded.DrawParams(def, loc, rot, out var mesh, out var matrix, mod: 0, flipped: flipped); - Graphics.DrawMesh(mesh: mesh, matrix: matrix, material: graphic.MatAt(rot: rot, thing: null), layer: 0); - } - if (thingDef?.PlaceWorkers?.Count > 0) + Graphic graphic = GhostUtility.GhostGraphicFor(baseGraphic, thingDef, ghostCol); + //Graphic graphic = Traverse.Create(typeof(GhostDrawer)).Method("GhostGraphicFor", new object[] { thingDef.graphic, thingDef, ghostCol }).GetValue(); + Vector3 loc = GenThing.TrueCenter(center, rot, thingDef.Size, drawAltitude.AltitudeFor()); + + for (int i = 0; i < 2; i++) + { + bool flipped = (i != 0) ? true : false; + Building_DoorExpanded.DrawParams(def, loc, rot, out var mesh, out var matrix, mod: 0, + flipped: flipped); + Graphics.DrawMesh(mesh: mesh, matrix: matrix, material: graphic.MatAt(rot: rot, thing: null), + layer: 0); + } + + if (thingDef?.PlaceWorkers?.Count > 0) + { + for (int i = 0; i < thingDef.PlaceWorkers.Count; i++) { - for (int i = 0; i < thingDef.PlaceWorkers.Count; i++) - { - thingDef.PlaceWorkers[index: i].DrawGhost(def: thingDef, center: center, rot: rot, ghostCol: ghostCol); - } + thingDef.PlaceWorkers[index: i] + .DrawGhost(def: thingDef, center: center, rot: rot, ghostCol: ghostCol); } + } + return false; } + return true; } - //// Verse.ThingDef //public static void HeronDoorIsDoor(ThingDef __instance, ref bool __result) //{ @@ -518,8 +703,8 @@ public static bool InvisDoorManualClose(Building_Door __instance, Pawn closer) //w.ParentDoor.StartManualCloseBy(closer); return false; } - return true; + return true; } // RimWorld.Building_Door @@ -530,20 +715,22 @@ public static void InvisDoorManualOpen(Building_Door __instance, Pawn opener) if (w.ParentDoor.PawnCanOpen(p: opener)) { w.ParentDoor.StartManualOpenBy(opener: opener); - if (w.ParentDoor.InvisDoors.ToList().FindAll(match: x => x != __instance) is List otherDoors && !otherDoors.NullOrEmpty()) + if (w.ParentDoor.InvisDoors.ToList().FindAll(match: x => x != __instance) is + List otherDoors && !otherDoors.NullOrEmpty()) { foreach (Building_DoorRegionHandler door in otherDoors) { if (!door.Open) { - int math = (int)(1200 * Math.Max(val1: w.ParentDoor.Graphic.drawSize.x, val2: w.ParentDoor.Graphic.drawSize.y)); + int math = (int) (1200 * Math.Max(val1: w.ParentDoor.Graphic.drawSize.x, + val2: w.ParentDoor.Graphic.drawSize.y)); //this.ticksUntilClose = ticksToClose; Traverse.Create(root: door).Field(name: "ticksUntilClose").SetValue(value: math); //this.openInt = true; Traverse.Create(root: door).Field(name: "openInt").SetValue(value: true); } } - } + } } } } @@ -567,22 +754,25 @@ public static bool InvisDoorOpen(Building_Door __instance, int ticksToClose = 60 Traverse.Create(root: __instance).Field(name: "ticksUntilClose").SetValue(value: ticksToClose); if (!Traverse.Create(root: __instance).Field(name: "openInt").GetValue()) { - AccessTools.Field(type: typeof(Building_Door), name: "openInt").SetValue(obj: __instance, value: true); + AccessTools.Field(type: typeof(Building_Door), name: "openInt") + .SetValue(obj: __instance, value: true); //Traverse.Create(__instance).Field("openInt"). SetValue(true); } + w.ParentDoor.DoorOpen(ticksToClose: ticksToClose); return false; } + return true; } public static bool InvisDoorTryClose(Building_Door __instance) { - if (__instance is Building_DoorRegionHandler w) { //w.ParentDoor.DoorTryClose(); - if (!Traverse.Create(root: __instance).Field(name: "holdOpenInt").GetValue() || __instance.BlockedOpenMomentary || w.ParentDoor.Open) + if (!Traverse.Create(root: __instance).Field(name: "holdOpenInt").GetValue() || + __instance.BlockedOpenMomentary || w.ParentDoor.Open) { return false; } @@ -591,11 +781,11 @@ public static bool InvisDoorTryClose(Building_Door __instance) //Traverse.Create(__instance).Field("openInt").SetValue(false); return false; } + return true; } - // Verse.RegionTypeUtility public static void GetHeronRegionType(ref RegionType __result, IntVec3 c, Map map) { @@ -616,5 +806,4 @@ public static void GetHeronRegionType(ref RegionType __result, IntVec3 c, Map ma } } } -} - +} \ No newline at end of file diff --git a/Source/ProjectHeron.csproj b/Source/ProjectHeron.csproj index f673d76..a552836 100644 --- a/Source/ProjectHeron.csproj +++ b/Source/ProjectHeron.csproj @@ -45,7 +45,7 @@ - .\Dependencies\UnityEngine.dll + ..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll False diff --git a/Source/obj/Debug/DoorsExpanded.dll b/Source/obj/Debug/DoorsExpanded.dll index 180833fc16c568437dddc5c98473b7ecf49d5870..7eeeec9c870c5273719c69cffa1510e261e60384 100644 GIT binary patch delta 16724 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 Sf2E?s!*`lD|CO~?+WsG#O>@Zr diff --git a/Source/obj/Debug/ProjectHeron.csproj.CoreCompileInputs.cache b/Source/obj/Debug/ProjectHeron.csproj.CoreCompileInputs.cache index d7ce60a..8fd2c15 100644 --- a/Source/obj/Debug/ProjectHeron.csproj.CoreCompileInputs.cache +++ b/Source/obj/Debug/ProjectHeron.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -9bcceca6af9907eb84f31f30e127157e25d77f28 +7643d5db6326961f2f7baa3252da99c66b5d6f3e diff --git a/Source/obj/Debug/ProjectHeron.csproj.FileListAbsolute.txt b/Source/obj/Debug/ProjectHeron.csproj.FileListAbsolute.txt index 0f876a4..e3f15d6 100644 --- a/Source/obj/Debug/ProjectHeron.csproj.FileListAbsolute.txt +++ b/Source/obj/Debug/ProjectHeron.csproj.FileListAbsolute.txt @@ -15,3 +15,8 @@ C:\Program Files (x86)\Steam\steamapps\common\RimWorld\ModsWorkspace\Doors-Expan C:\Program Files (x86)\Steam\steamapps\common\RimWorld\ModsWorkspace\Doors-Expanded\Source\obj\Debug\ProjectHeron.csprojAssemblyReference.cache C:\Program Files (x86)\Steam\steamapps\common\RimWorld\ModsWorkspace\Doors-Expanded\Source\obj\Debug\ProjectHeron.csproj.CoreCompileInputs.cache C:\Program Files (x86)\Steam\steamapps\common\RimWorld\ModsWorkspace\Doors-Expanded\Source\obj\Debug\ProjectHeron.csproj.CopyComplete +C:\Program Files (x86)\Steam\steamapps\common\RimWorld\ModsWorkspace\DoorsExpanded\Assemblies\DoorsExpanded.dll +C:\Program Files (x86)\Steam\steamapps\common\RimWorld\ModsWorkspace\DoorsExpanded\Source\obj\Debug\ProjectHeron.csprojAssemblyReference.cache +C:\Program Files (x86)\Steam\steamapps\common\RimWorld\ModsWorkspace\DoorsExpanded\Source\obj\Debug\ProjectHeron.csproj.CoreCompileInputs.cache +C:\Program Files (x86)\Steam\steamapps\common\RimWorld\ModsWorkspace\DoorsExpanded\Source\obj\Debug\ProjectHeron.csproj.CopyComplete +C:\Program Files (x86)\Steam\steamapps\common\RimWorld\ModsWorkspace\DoorsExpanded\Source\obj\Debug\DoorsExpanded.dll diff --git a/Source/obj/Debug/ProjectHeron.csprojAssemblyReference.cache b/Source/obj/Debug/ProjectHeron.csprojAssemblyReference.cache index 3546c7ee11efb111904a49c4638f19e15adb51e2..c893195d4a103469ccf4a99cf0649862ac0ee204 100644 GIT binary patch literal 57638 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 UuoEQI0Q)*50~#B%&V4!f-&b`qWdHyG literal 37480 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