public static void _OnStorageWindowClose(UIStorageWindow __instance) { if (__instance != null && __instance.storageId == Instance._lastStorageId && __instance.factory != null && __instance.factory.index == Instance._lastFactoryIndex) { Instance._inspectingStorage = false; } }
public static bool OnStorageIdChange_Prefix(UIStorageWindow __instance) { if (Multiplayer.IsActive && !Multiplayer.Session.LocalPlayer.IsHost && Multiplayer.Session.Storage.WindowOpened) { UIStorageGrid storageUI = __instance.storageUI; Multiplayer.Session.Storage.ActiveUIStorageGrid = storageUI; Text titleText = __instance.titleText; Multiplayer.Session.Storage.ActiveStorageComponent = __instance.factoryStorage.storagePool[__instance.storageId]; Multiplayer.Session.Storage.ActiveWindowTitle = titleText; Multiplayer.Session.Storage.ActiveBansSlider = __instance.bansSlider; Multiplayer.Session.Storage.ActiveBansValueText = __instance.bansValueText; titleText.text = "Loading..."; storageUI._Free(); storageUI._Open(); storageUI.OnStorageDataChanged(); Multiplayer.Session.Network.SendPacket(new StorageSyncRequestPacket(GameMain.data.localPlanet.id, __instance.storageId)); return(false); } return(true); }
public static bool OnStorageIdChange_Prefix(UIStorageWindow __instance) { if (SimulatedWorld.Initialized && !LocalPlayer.IsMasterClient && StorageManager.WindowOpened) { UIStorageGrid storageUI = (UIStorageGrid)AccessTools.Field(typeof(UIStorageWindow), "storageUI").GetValue(__instance); StorageManager.ActiveUIStorageGrid = storageUI; Text titleText = (Text)AccessTools.Field(typeof(UIStorageWindow), "titleText").GetValue(__instance); StorageManager.ActiveStorageComponent = __instance.factoryStorage.storagePool[__instance.storageId]; StorageManager.ActiveWindowTitle = titleText; StorageManager.ActiveBansSlider = (Slider)AccessTools.Field(typeof(UIStorageWindow), "bansSlider").GetValue(__instance); StorageManager.ActiveBansValueText = (Text)AccessTools.Field(typeof(UIStorageWindow), "bansValueText").GetValue(__instance); titleText.text = "Loading..."; storageUI._Free(); storageUI._Open(); storageUI.OnStorageDataChanged(); LocalPlayer.SendPacket(new StorageSyncRequestPacket(GameMain.data.localPlanet.id, __instance.storageId)); return(false); } return(true); }
private void OpenStorage(int factoryIndex, int storageId) { if (factoryIndex < 0 || storageId < 0) { return; } if (!GameMain.isRunning || GameMain.instance.isMenuDemo) { return; } _lastFactoryIndex = factoryIndex; _lastStorageId = storageId; if (_uiGame == null || _uiStorage == null) { _uiGame = UIRoot.instance.uiGame; _uiStorage = _uiGame.storageWindow; } if (!_uiStorage.inited) { return; } // Not replacing current opened storage window to avoid potential problems if (_uiStorage.active) { UIRealtimeTip.Popup("请先关闭目前存储箱".Translate()); return; } if (GameMain.data.factories != null && GameMain.data.factories.Length > factoryIndex && GameMain.data.factories[factoryIndex] != null) { try { var factory = GameMain.data.factories[factoryIndex]; var factoryStorage = factory.factoryStorage; if (factoryStorage.storagePool != null && factoryStorage.storagePool.Length > storageId && factoryStorage.storagePool[storageId] != null ) { _uiStorage.storageId = storageId; _uiStorage.active = true; if (!_uiStorage.gameObject.activeSelf) { _uiStorage.gameObject.SetActive(true); } _uiStorage.factory = factory; _uiStorage.factoryStorage = factoryStorage; _uiStorage.player = GameMain.mainPlayer; _uiStorage.OnStorageIdChange(); _uiStorage.eventLock = true; _uiStorage.transform.SetAsLastSibling(); _uiGame.OpenPlayerInventory(); _inspectingStorage = true; } else { UIRealtimeTip.Popup("存储箱ID不存在".Translate()); } } catch (Exception message) { _inspectingStorage = false; Debug.Log(message.StackTrace); } } else { UIRealtimeTip.Popup("工厂不存在".Translate()); } }