示例#1
0
 private unsafe void OnSimRegistered(int handle)
 {
     if ((UnityEngine.Object) this != (UnityEngine.Object)null && simHandle == -2)
     {
         simHandle = handle;
         int   handleIndex = Sim.GetHandleIndex(handle);
         float temperature = Game.Instance.simData.elementChunks[handleIndex].temperature;
         if (temperature <= 0f)
         {
             KCrashReporter.Assert(false, "Bad temperature");
         }
         handleInstanceMap[simHandle] = this;
         if (pendingEnergyModifications > 0f)
         {
             ModifyEnergy(pendingEnergyModifications);
             pendingEnergyModifications = 0f;
         }
         if (onSimRegistered != null)
         {
             onSimRegistered(this);
         }
     }
     else
     {
         SimMessages.RemoveElementChunk(handle, -1);
     }
 }
示例#2
0
 protected unsafe void SimUnregister()
 {
     if (simHandle != -1 && !KMonoBehaviour.isLoadingScene)
     {
         PrimaryElement component = GetComponent <PrimaryElement>();
         if (Sim.IsValidHandle(simHandle))
         {
             int handleIndex = Sim.GetHandleIndex(simHandle);
             component.InternalTemperature = Game.Instance.simData.elementChunks[handleIndex].temperature;
             SimMessages.RemoveElementChunk(simHandle, -1);
             handleInstanceMap.Remove(simHandle);
         }
         simHandle = -1;
     }
 }