public void OnLevelLoaded(LoadMode mode) { this._loadMode = mode; if (mode != LoadMode.LoadGame && mode != LoadMode.NewGame) { return; } try { Utils.Log((object)"Begin init version: 3.8.10"); ImprovedPublicTransportMod.Settings.LogSettings(); this.ReleaseUnusedCitizenUnits(); UIView objectOfType = UnityEngine.Object.FindObjectOfType <UIView>(); if ((UnityEngine.Object)objectOfType != (UnityEngine.Object)null) { this._iptGameObject = new GameObject("IptGameObject"); this._iptGameObject.transform.parent = objectOfType.transform; this._iptGameObject.AddComponent <VehicleEditor>(); this._iptGameObject.AddComponent <PanelExtenderLine>(); this._iptGameObject.AddComponent <PanelExtenderVehicle>(); this._iptGameObject.AddComponent <PanelExtenderCityService>(); this._iptGameObject.AddComponent <SimHelper>(); this._iptGameObject.AddComponent <LineWatcher>(); this._worldInfoPanel = new GameObject("PublicTransportStopWorldInfoPanel"); this._worldInfoPanel.transform.parent = objectOfType.transform; this._worldInfoPanel.AddComponent <PublicTransportStopWorldInfoPanel>().Show(); NetManagerMod.Init(); VehicleManagerMod.Init(); BusAIMod.Init(); PassengerTrainAIMod.Init(); PassengerShipAIMod.Init(); PassengerPlaneAIMod.Init(); TramAIMod.Init(); BuildingWatcher.instance.Init(); LineWatcher.instance.Init(); TransportLineMod.Init(); VehiclePrefabs.Init(); SerializableDataExtension.instance.Loaded = true; LocaleModifier.Init(); Utils.Log((object)"Loading done!"); } else { Utils.LogError((object)"UIView not found, aborting!"); } } catch (Exception ex) { Utils.LogError((object)("Error during initialization, IPT disables itself." + System.Environment.NewLine + "Please try again without any other mod." + System.Environment.NewLine + "Please upload your log file and post the link here if that didn't help:" + System.Environment.NewLine + "http://steamcommunity.com/workshop/filedetails/discussion/424106600/615086038663282271/" + System.Environment.NewLine + ex.Message + System.Environment.NewLine + (object)ex.InnerException + System.Environment.NewLine + ex.StackTrace)); this.Deinit(); } }
public static void Init() { if (NetManagerMod._isDeployed) { return; } if (!NetManagerMod.TryLoadData(out NetManagerMod.m_cachedNodeData)) { Utils.Log((object)"Loading default net node data."); } NetManagerMod.PreReleaseNodeImplementation = (NetManagerMod.PreReleaseNodeImplementationCallback)Utils.CreateDelegate <NetManager, NetManagerMod.PreReleaseNodeImplementationCallback>("PreReleaseNodeImplementation", (object)Singleton <NetManager> .instance); NetManagerMod.ReleaseNodeImplementation = (NetManagerMod.ReleaseNodeImplementationCallback)Utils.CreateDelegate <NetManager, NetManagerMod.ReleaseNodeImplementationCallback>("ReleaseNodeImplementation", (object)Singleton <NetManager> .instance); NetManagerMod._redirection = new Redirection <NetManager, NetManagerMod>("ReleaseNode"); SerializableDataExtension.instance.EventSaveData += new SerializableDataExtension.SaveDataEventHandler(NetManagerMod.OnSaveData); NetManagerMod._isDeployed = true; }
public void ReleaseNode(ushort nodeID) { Singleton <InstanceManager> .instance.SetName(new InstanceID() { NetNode = nodeID }, (string)null); if (!NetManagerMod.m_cachedNodeData[(int)nodeID].IsEmpty) { NetManagerMod.m_cachedNodeData[(int)nodeID] = new NodeData(); } NetManager instance = Singleton <NetManager> .instance; NetManagerMod.PreReleaseNodeImplementation(nodeID, ref instance.m_nodes.m_buffer[(int)nodeID], false, false); NetManagerMod.ReleaseNodeImplementation(nodeID, ref instance.m_nodes.m_buffer[(int)nodeID]); }
private void Deinit() { TramAIMod.Deinit(); PassengerTrainAIMod.Deinit(); PassengerShipAIMod.Deinit(); PassengerPlaneAIMod.Deinit(); BusAIMod.Deinit(); TransportLineMod.Deinit(); BuildingWatcher.instance.Deinit(); NetManagerMod.Deinit(); VehicleManagerMod.Deinit(); VehiclePrefabs.Deinit(); SerializableDataExtension.instance.Loaded = false; LocaleModifier.Deinit(); if ((UnityEngine.Object) this._iptGameObject != (UnityEngine.Object)null) { UnityEngine.Object.Destroy((UnityEngine.Object) this._iptGameObject); } if (!((UnityEngine.Object) this._worldInfoPanel != (UnityEngine.Object)null)) { return; } UnityEngine.Object.Destroy((UnityEngine.Object) this._worldInfoPanel); }