cseelhoff / RimThreaded

RimThreaded is a RimWorld mod designed to enable RimWorld to utilize multiple threads.
MIT License
119 stars 21 forks source link

[Save Our Ship 2] ShipHeatNet various errors when destroyed `Exception ticking Ship_Reactor184671 (at (74, 0, 150)): System.NullReferenceException:` #716

Open sealvessel opened 2 years ago

sealvessel commented 2 years ago

Describe the bug

Enemy ship heat nets errors on every destroyed ship heat net related object when destroyed in battle.

Steps to reproduce the behavior (VERY IMPORTANT)

  1. Load this save with modlist

Error Logs

image

Exception ticking Ship_Reactor184671 (at (74, 0, 150)): System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.ShipHeatNet.AddHeat (System.Single amount, System.Boolean remove) [0x0001b] in <7bb567b828194433af6c68631a34e56d>:0 
  at RimWorld.CompShipHeatSource.AddHeatToNetwork (System.Single amount, System.Boolean remove) [0x00012] in <7bb567b828194433af6c68631a34e56d>:0 
  at RimWorld.CompShipHeatSource.CompTick () [0x00085] in <7bb567b828194433af6c68631a34e56d>:0 
  at Verse.ThingWithComps.Tick () [0x00024] in <7e901abeac4244b484a99b66989d226f>:0 
  at RimThreaded.TickList_Patch.NormalThingTick () [0x00025] in <86be62ec05034ba58645d699f2fc63ae>:0 
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string)
RimThreaded.TickList_Patch:NormalThingTick ()
RimThreaded.RimThreaded:ExecuteTicks ()
RimThreaded.RimThreaded:ProcessTicks (RimThreaded.RimThreaded/ThreadInfo)
RimThreaded.RimThreaded:InitializeThread (object)
System.Threading.ThreadHelper:ThreadStart_Context (object)
System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object)
System.Threading.ThreadHelper:ThreadStart (object)
image
System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.ShipHeatNet.Tick () [0x0002f] in <7bb567b828194433af6c68631a34e56d>:0 
  at RimWorld.ShipHeatMapComp.MapComponentTick () [0x00027] in <7bb567b828194433af6c68631a34e56d>:0 
  at Verse.MapComponentUtility.MapComponentTick (Verse.Map map) [0x00013] in <7e901abeac4244b484a99b66989d226f>:0 
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string)
Verse.MapComponentUtility:MapComponentTick (Verse.Map)
Verse.Map:MapPostTick ()
RimThreaded.Map_Patch:MapsPostTickPrepare ()
RimThreaded.RimThreaded:PrepareWorkLists ()
RimThreaded.RimThreaded:ProcessTicks (RimThreaded.RimThreaded/ThreadInfo)
RimThreaded.RimThreaded:InitializeThread (object)
System.Threading.ThreadHelper:ThreadStart_Context (object)
System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object)
System.Threading.ThreadHelper:ThreadStart (object)

Player.log

Player.log.zip

HugsLib log

https://gist.github.com/512969f838caf0acdabfab32872b6267

Save file

I saved it when an explosion is about to happen, so you can see the errors unfold. Keep reloading the save to replicate the errors.

Quicksave.rws.zip

Screenshots

Mod list (Preferably a RimPy compatible list.)

sealvessel commented 2 years ago

The problem is that reloading the save completely fixes the errors.

sealvessel commented 2 years ago

A null reference check may fix this.