边缘世界 RimWorld

边缘世界 RimWorld

Smarter Construction
 此主题已被置顶,因此可能具有重要性
Hultis  [开发者] 2020 年 8 月 22 日 上午 2:50
Bug Reports
Please include the following in your report:
  • Detailed description
  • Screenshot (if relevant)
  • HugsLib log (press Ctrl+F12)

Think it was caused by a recent change in this mod?
You can run older versions by downloading them from github[github.com]. Install the old version of this mod by downloading and extracting the release to (assuming Windows and Steam) C:\Program Files (x86)\Steam\SteamApps\common\RimWorld\Mods and choosing to run the local version instead of the workshop one. If it works after that it's this mods fault.

Currently known issues

    Previous issues
    • Linux: Running this mod together with certain other mods (specific list unknown) throws lots of errors and stops most work. You will notice if you're running one of them :) Probably tied to a current issue in Harmony which should be fixed in the next release.
    • Pawns will sometimes get stuck indefinitely. The reported job is building <building> but they haven't walked to it yet.
    • Linux version crashes on startup.
    最后由 Hultis 编辑于; 2020 年 10 月 4 日 上午 1:20
    < >
    正在显示第 1 - 15 条,共 81 条留言
    ben 2020 年 8 月 22 日 上午 7:39 
    Something I noticed once installing the mod: Builders will get locked up on floor tiles for (seemingly) no reason. I did not see anything in the log about it but I will double check.
    Hultis  [开发者] 2020 年 8 月 22 日 上午 8:49 
    I assume this means that they will stand on the floor somewhere and it says they are constructing something? That one I have managed to reproduce, but nothing related to constructing floors. If nothing else, HugsLib log shows mod list and order so I can reproduce in case of mod interaction.
    GAWS 2020 年 8 月 22 日 上午 9:08 
    reporting same here
    最后由 GAWS 编辑于; 2020 年 8 月 22 日 上午 9:09
    Hultis  [开发者] 2020 年 8 月 24 日 上午 8:02 
    I think this one should work now. Can you test?
    Lemons O'Toole 2020 年 8 月 24 日 下午 7:56 
    I had a problem late yesterday evening (8/23/2020) when playing. When I would start up the game, my pawns would do absolutely no constructing. When I would right-click and send them to do it, they would just stand. Their "active" job was "Standing" and their "queued" order was to construct the object. I do use Achtung! but I never forced them to work on it. (I did it once before and the game froze but that is a known issue that I wasn't aware of because I didn't do my compatibility homework :steamfacepalm: .) REGARDLESS, I turned this mod off and my pawns went back to normal.

    Note: I did not have any issues like that yesterday (8/23) when I was playing in the morning EST. After you updated the mod was when I started having issues so I'm not entirely too sure what happened. No other construction or pawn specific mods that I use were updated either so I'm really not too sure, at least not that I'm aware of. If need be I can add the mod back into my stack and try and get a log file if needed.
    Bronsk 2020 年 8 月 24 日 下午 11:53 
    @Lemons O'Toole I have the same problem you do. I turned this mod off and they are still broken. Very strange.
    最后由 Bronsk 编辑于; 2020 年 8 月 24 日 下午 11:54
    Hultis  [开发者] 2020 年 8 月 25 日 上午 2:16 
    I can't seem to reproduce this, can you get me a log? You could also try running the previous version and see if the problem persists: https://github.com/dhultgren/rimworld-smarter-construction/releases/tag/1.1
    Lemons O'Toole 2020 年 8 月 26 日 上午 5:20 
    TL;DR it's not your mods fault

    @Hultis so it turns out that it may have been a multitude of other mods conflicting. I had Z-levels and DeepRim (continued) in my save. Well when I loaded back in to my game, my mine from DeepRim was now the main level of the map according to Z-levels. So instead of seeing the main map when I was one floor up with Z-levels, I would see the mine as the first layer. Whenever I would use a ladder to go down a level, it would immediately put me into the mine. It was using the mine as the base map layer which wasn't mined out so whenever I would place a blueprint over the unmined sections my characters would move there and wouldn't build it as it technically couldn't be built. idk but that's what I discovered when I went back to the original modlist for my playthrough. Again, why it's happening with your mod included I'm really not too sure. I'm not a modder but I love QA testing the crap out of things.
    WJSabey 2020 年 8 月 26 日 上午 7:28 
    A report from a Linux user; I tried putting it at the top of the load order like I saw suggested, and it loaded without crashing, but workers were not taking construction jobs automatically. I could make them do so by right clicking on the job, but left to their own devices they were just idling. Strangely I can't reproduce this, now trying to load the game it crashes on load again even with the mod at the top of the load order. I hope someone figures out what the issue is here because this would be a really useful mod to have.
    Diego 2020 年 8 月 27 日 上午 10:41 
    Heyho, im not sure if this is relatet to here but im guessing that this mod and the mod "Change Map Edges" are incompatable when buidling at the edge of map

    Ray threw exception in WorkGiver ConstructUniversal: System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Verse.AI.PathGrid.WalkableFast (Verse.IntVec3 loc) [0x00017] in <7b345446a85d4ed599f9c604ae61854b>:0
    at SmarterConstruction.Core.PathGridWrapper.WalkableFast (Verse.IntVec3 loc) [0x00001] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.FloodFill (SmarterConstruction.Core.IPathGrid pathGrid, Verse.IntVec3 start, System.Collections.Generic.HashSet`1[T] addedBlockers) [0x0005d] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.ClosedRegionCreatedByAddingImpassable (SmarterConstruction.Core.IPathGrid pathGrid, System.Collections.Generic.HashSet`1[T] addedBlockers) [0x00038] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.WouldEncloseThings (Verse.Thing target, Verse.Pawn ___pawn) [0x00124] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Patches.WorkGiver_ConstructFinishFrames_JobOnThing.Postfix (Verse.Pawn pawn, Verse.Thing t, Verse.AI.Job& __result, System.Boolean forced, RimWorld.WorkGiver_ConstructFinishFrames __instance) [0x0005a] in <56f1301756594b0ea228046b4153d1da>:0
    at (wrapper dynamic-method) RimWorld.WorkGiver_ConstructFinishFrames.RimWorld.WorkGiver_ConstructFinishFrames.JobOnThing_Patch2(RimWorld.WorkGiver_ConstructFinishFrames,Verse.Pawn,Verse.Thing,bool)
    at Prioritize.Workgiver_UniversalConstruct.JobOnThing (Verse.Pawn pawn, Verse.Thing t, System.Boolean forced) [0x00014] in <b0b4b7de82a94d9c8374e70fc33318b6>:0
    at RimWorld.WorkGiver_Scanner.HasJobOnThing (Verse.Pawn pawn, Verse.Thing t, System.Boolean forced) [0x00000] in <7b345446a85d4ed599f9c604ae61854b>:0
    at RimWorld.JobGiver_Work+<>c__DisplayClass3_1.<TryIssueJobPackage>b__0 (Verse.Thing t) [0x00013] in <7b345446a85d4ed599f9c604ae61854b>:0
    at Verse.GenClosest.<ClosestThing_Global_Reachable>g__Process|6_0 (Verse.Thing t, Verse.GenClosest+<>c__DisplayClass6_0& ) [0x00085] in <7b345446a85d4ed599f9c604ae61854b>:0
    at (wrapper dynamic-method) Verse.GenClosest.Verse.GenClosest.ClosestThing_Global_Reachable_Patch1(Verse.IntVec3,Verse.Map,System.Collections.Generic.IEnumerable`1<Verse.Thing>,Verse.AI.PathEndMode,Verse.TraverseParms,single,System.Predicate`1<Verse.Thing>,System.Func`2<Verse.Thing, single>)
    at (wrapper dynamic-method) RimWorld.JobGiver_Work.RimWorld.JobGiver_Work.TryIssueJobPackage_Patch1(RimWorld.JobGiver_Work,Verse.Pawn,Verse.AI.JobIssueParams)

    (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)

    Ray threw exception in WorkGiver ConstructFinishFrames: System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Verse.AI.PathGrid.WalkableFast (Verse.IntVec3 loc) [0x00017] in <7b345446a85d4ed599f9c604ae61854b>:0
    at SmarterConstruction.Core.PathGridWrapper.WalkableFast (Verse.IntVec3 loc) [0x00001] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.FloodFill (SmarterConstruction.Core.IPathGrid pathGrid, Verse.IntVec3 start, System.Collections.Generic.HashSet`1[T] addedBlockers) [0x0005d] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.ClosedRegionCreatedByAddingImpassable (SmarterConstruction.Core.IPathGrid pathGrid, System.Collections.Generic.HashSet`1[T] addedBlockers) [0x00038] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.WouldEncloseThings (Verse.Thing target, Verse.Pawn ___pawn) [0x00124] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Patches.WorkGiver_ConstructFinishFrames_JobOnThing.Postfix (Verse.Pawn pawn, Verse.Thing t, Verse.AI.Job& __result, System.Boolean forced, RimWorld.WorkGiver_ConstructFinishFrames __instance) [0x0005a] in <56f1301756594b0ea228046b4153d1da>:0
    at (wrapper dynamic-method) RimWorld.WorkGiver_ConstructFinishFrames.RimWorld.WorkGiver_ConstructFinishFrames.JobOnThing_Patch2(RimWorld.WorkGiver_ConstructFinishFrames,Verse.Pawn,Verse.Thing,bool)
    at RimWorld.WorkGiver_Scanner.HasJobOnThing (Verse.Pawn pawn, Verse.Thing t, System.Boolean forced) [0x00000] in <7b345446a85d4ed599f9c604ae61854b>:0
    at RimWorld.JobGiver_Work+<>c__DisplayClass3_1.<TryIssueJobPackage>b__0 (Verse.Thing t) [0x00013] in <7b345446a85d4ed599f9c604ae61854b>:0
    at Verse.GenClosest.<ClosestThing_Global_Reachable>g__Process|6_0 (Verse.Thing t, Verse.GenClosest+<>c__DisplayClass6_0& ) [0x00085] in <7b345446a85d4ed599f9c604ae61854b>:0
    at (wrapper dynamic-method) Verse.GenClosest.Verse.GenClosest.ClosestThing_Global_Reachable_Patch1(Verse.IntVec3,Verse.Map,System.Collections.Generic.IEnumerable`1<Verse.Thing>,Verse.AI.PathEndMode,Verse.TraverseParms,single,System.Predicate`1<Verse.Thing>,System.Func`2<Verse.Thing, single>)
    at (wrapper dynamic-method) RimWorld.JobGiver_Work.RimWorld.JobGiver_Work.TryIssueJobPackage_Patch1(RimWorld.JobGiver_Work,Verse.Pawn,Verse.AI.JobIssueParams)

    (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)

    Ray threw exception in WorkGiver ConstructUniversal: System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Verse.AI.PathGrid.WalkableFast (Verse.IntVec3 loc) [0x00017] in <7b345446a85d4ed599f9c604ae61854b>:0
    at SmarterConstruction.Core.PathGridWrapper.WalkableFast (Verse.IntVec3 loc) [0x00001] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.FloodFill (SmarterConstruction.Core.IPathGrid pathGrid, Verse.IntVec3 start, System.Collections.Generic.HashSet`1[T] addedBlockers) [0x0005d] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.ClosedRegionCreatedByAddingImpassable (SmarterConstruction.Core.IPathGrid pathGrid, System.Collections.Generic.HashSet`1[T] addedBlockers) [0x00038] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.WouldEncloseThings (Verse.Thing target, Verse.Pawn ___pawn) [0x00124] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Patches.WorkGiver_ConstructFinishFrames_JobOnThing.Postfix (Verse.Pawn pawn, Verse.Thing t, Verse.AI.Job& __result, System.Boolean forced, RimWorld.WorkGiver_ConstructFinishFrames __instance) [0x0005a] in <56f1301756594b0ea228046b4153d1da>:0
    at (wrapper dynamic-method) RimWorld.WorkGiver_ConstructFinishFrames.RimWorld.WorkGiver_ConstructFinishFrames.JobOnThing_Patch2(RimWorld.WorkGiver_ConstructFinishFrames,Verse.Pawn,Verse.Thing,bool)
    at Prioritize.Workgiver_UniversalConstruct.JobOnThing (Verse.Pawn pawn, Verse.Thing t, System.Boolean forced) [0x00014] in <b0b4b7de82a94d9c8374e70fc33318b6>:0
    at RimWorld.WorkGiver_Scanner.HasJobOnThing (Verse.Pawn pawn, Verse.Thing t, System.Boolean forced) [0x00000] in <7b345446a85d4ed599f9c604ae61854b>:0
    at RimWorld.JobGiver_Work+<>c__DisplayClass3_1.<TryIssueJobPackage>b__0 (Verse.Thing t) [0x00013] in <7b345446a85d4ed599f9c604ae61854b>:0
    at Verse.GenClosest.<ClosestThing_Global_Reachable>g__Process|6_0 (Verse.Thing t, Verse.GenClosest+<>c__DisplayClass6_0& ) [0x00085] in <7b345446a85d4ed599f9c604ae61854b>:0
    at (wrapper dynamic-method) Verse.GenClosest.Verse.GenClosest.ClosestThing_Global_Reachable_Patch1(Verse.IntVec3,Verse.Map,System.Collections.Generic.IEnumerable`1<Verse.Thing>,Verse.AI.PathEndMode,Verse.TraverseParms,single,System.Predicate`1<Verse.Thing>,System.Func`2<Verse.Thing, single>)
    at (wrapper dynamic-method) RimWorld.JobGiver_Work.RimWorld.JobGiver_Work.TryIssueJobPackage_Patch1(RimWorld.JobGiver_Work,Verse.Pawn,Verse.AI.JobIssueParams)

    (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)

    Ray threw exception in WorkGiver ConstructFinishFrames: System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Verse.AI.PathGrid.WalkableFast (Verse.IntVec3 loc) [0x00017] in <7b345446a85d4ed599f9c604ae61854b>:0
    at SmarterConstruction.Core.PathGridWrapper.WalkableFast (Verse.IntVec3 loc) [0x00001] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.FloodFill (SmarterConstruction.Core.IPathGrid pathGrid, Verse.IntVec3 start, System.Collections.Generic.HashSet`1[T] addedBlockers) [0x0005d] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.ClosedRegionCreatedByAddingImpassable (SmarterConstruction.Core.IPathGrid pathGrid, System.Collections.Generic.HashSet`1[T] addedBlockers) [0x00038] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Core.ClosedRegionDetector.WouldEncloseThings (Verse.Thing target, Verse.Pawn ___pawn) [0x00124] in <56f1301756594b0ea228046b4153d1da>:0
    at SmarterConstruction.Patches.WorkGiver_ConstructFinishFrames_JobOnThing.Postfix (Verse.Pawn pawn, Verse.Thing t, Verse.AI.Job& __result, System.Boolean forced, RimWorld.WorkGiver_ConstructFinishFrames __instance) [0x0005a] in <56f1301756594b0ea228046b4153d1da>:0
    at (wrapper dynamic-method) RimWorld.WorkGiver_ConstructFinishFrames.RimWorld.WorkGiver_ConstructFinishFrames.JobOnThing_Patch2(RimWorld.WorkGiver_ConstructFinishFrames,Verse.Pawn,Verse.Thing,bool)
    at RimWorld.WorkGiver_Scanner.HasJobOnThing (Verse.Pawn pawn, Verse.Thing t, System.Boolean forced) [0x00000] in <7b345446a85d4ed599f9c604ae61854b>:0
    at RimWorld.JobGiver_Work+<>c__DisplayClass3_1.<TryIssueJobPackage>b__0 (Verse.Thing t) [0x00013] in <7b345446a85d4ed599f9c604ae61854b>:0
    at Verse.GenClosest.<ClosestThing_Global_Reachable>g__Process|6_0 (Verse.Thing t, Verse.GenClosest+<>c__DisplayClass6_0& ) [0x00085] in <7b345446a85d4ed599f9c604ae61854b>:0
    at (wrapper dynamic-method) Verse.GenClosest.Verse.GenClosest.ClosestThing_Global_Reachable_Patch1(Verse.IntVec3,Verse.Map,System.Collections.Generic.IEnumerable`1<Verse.Thing>,Verse.AI.PathEndMode,Verse.TraverseParms,single,System.Predicate`1<Verse.Thing>,System.Func`2<Verse.Thing, single>)
    at (wrapper dynamic-method) RimWorld.JobGiver_Work.RimWorld.JobGiver_Work.TryIssueJobPackage_Patch1(RimWorld.JobGiver_Work,Verse.Pawn,Verse.AI.JobIssueParams)

    (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)


    please tell me if i can provide you more informations
    Hultis  [开发者] 2020 年 8 月 28 日 上午 2:29 
    @Lemons And we modders love people who QA the crap out of our mods. Well, at least I do; it can be really hard to test your own things.

    @WJSabey That's really weird, but interesting. Forcing them to do the job will pretty much deactivate the entire mod for that job so it makes sense that it would work, but them not taking a job implies that the code did run but found an enclosed pawn/blueprint. Unless things completely broke. Do you recall them taking non-blocking construction jobs such as floors? Of course, the weirdest thing is that it somehow didn't break on startup, and just once. I'll probably have to setup a Linux virtual machine and test there.

    @Ragnarr No, that was exactly what I needed. I've patched it now, thanks!
    Copper Boltwire 2020 年 8 月 29 日 上午 2:41 
    Omnibot is from the mod "Misc. Robots ++"

    Smarter Construction: Failing goto toil because it has taken too long, pawn OmniBot 12. If this was wrong, please report it!
    Verse.Log:Message(String, Boolean)
    SmarterConstruction.DebugUtils:DebugLog(String)
    SmarterConstruction.Patches.<>c__DisplayClass1_1:<Postfix>b__0()
    Verse.AI.<>c__DisplayClass15_0:<AddFailCondition>b__0()
    Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
    Verse.AI.JobDriver:Verse.AI.JobDriver.DriverTick_Patch1(JobDriver)
    Verse.AI.Pawn_JobTracker:JobTrackerTick()
    Verse.Pawn:Tick()
    AIRobot.X2_AIRobot:Tick()
    Verse.TickList:Tick()
    Verse.TickManager:Verse.TickManager.DoSingleTick_Patch1(TickManager)
    Verse.TickManager:TickManagerUpdate()
    Verse.Game:Verse.Game.UpdatePlay_Patch2(Game)
    Verse.Root_Play:Update()

    I'm just doing what the error message said ;)
    Hope it somehow can fix anything...

    Did not have a problem for 2 days until now.
    Not sure what omnibot was doing the moment i got the error tho...
    Diego 2020 年 8 月 29 日 上午 3:16 
    @Hultis thank you ill test it later :)
    Diego 2020 年 8 月 29 日 上午 4:49 
    @Hultis works like a charm thank you :)
    Hultis  [开发者] 2020 年 8 月 29 日 上午 9:03 
    @Copper Boltwire Well, if it didn't cause a problem it's by design. I added that check since pawns sometimes got stuck in code that wasn't mine, and that log in case the fix would break for someone. Rest assured that it's working as normal though!

    @Ragnarr Perfect!
    < >
    正在显示第 1 - 15 条,共 81 条留言
    每页显示数: 1530 50