Ejemplo n.º 1
0
 public static void _OnStorageWindowClose(UIStorageWindow __instance)
 {
     if (__instance != null &&
         __instance.storageId == Instance._lastStorageId &&
         __instance.factory != null &&
         __instance.factory.index == Instance._lastFactoryIndex)
     {
         Instance._inspectingStorage = false;
     }
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
        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());
            }
        }