private void OpenStation(int factoryIndex, int stationId) { if (factoryIndex < 0 || stationId < 0) { return; } if (!GameMain.isRunning || GameMain.instance.isMenuDemo) { return; } _lastFactoryIndex = factoryIndex; _lastStationFactoryIndex = stationId; if (_uiGame == null || (_uiStation) == null) { _uiGame = UIRoot.instance.uiGame; _uiStation = _uiGame.stationWindow; } if (!_uiStation.inited) { return; } if (_uiStation.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 transport = factory.transport; if (transport.stationPool != null && transport.stationPool.Length >= stationId && transport.stationPool[stationId] != null ) { _uiStation.stationId = stationId; Traverse.Create(_uiStation).Property("active").SetValue(true); if (!_uiStation.gameObject.activeSelf) { _uiStation.gameObject.SetActive(true); } _uiStation.factory = factory; _uiStation.transport = factory.transport; _uiStation.powerSystem = factory.powerSystem; _uiStation.player = GameMain.mainPlayer; Traverse.Create(_uiStation).Method("OnStationIdChange").GetValue(); Traverse.Create(_uiStation).Field("eventLock").SetValue(true); var eventInfo = _uiStation.player.GetType().GetEvent("onIntendToTransferItems"); var methodInfo = _uiStation.GetType() .GetMethod("OnPlayerIntendToTransferItems", BindingFlags.NonPublic | BindingFlags.Instance); if (eventInfo != null && methodInfo != null) { eventInfo.AddEventHandler(_uiStation.player, Delegate.CreateDelegate(eventInfo.EventHandlerType, _uiStation, methodInfo)); } _uiStation.transform.SetAsLastSibling(); _uiGame.OpenPlayerInventory(); _inspectingStation = true; } else { UIRealtimeTip.Popup("物流站ID不存在".Translate()); } } catch (Exception message) { _inspectingStation = false; Debug.Log(message.StackTrace); } } else { UIRealtimeTip.Popup("工厂不存在".Translate()); } }