public static bool CheckOpenUIWindow(Type T, EntityState _entityState, GlobalUIState _state) { //If the user has requested a menu be opened and if bool returnval; if (T == typeof(WarpOrderWindow)) returnval = WarpOrderWindow.GetInstance(_entityState).GetActive(); else if (T == typeof(ChangeCurrentOrbitWindow)) returnval = ChangeCurrentOrbitWindow.GetInstance(_entityState).GetActive(); else if (T == typeof(FireControl)) returnval = FireControl.GetInstance(_entityState).GetActive(); else if (T == typeof(RenameWindow)) returnval = RenameWindow.GetInstance(_entityState).GetActive(); else if (T == typeof(CargoTransfer)) returnval = CargoTransfer.GetInstance(_state.Game.StaticData, _entityState).GetActive(); else if (T == typeof(ColonyPanel)) returnval = ColonyPanel.GetInstance(_state.Game.StaticData, _entityState).GetActive(); else if (T == typeof(NavWindow)) returnval = NavWindow.GetInstance(_entityState).GetActive(); else returnval = false; return returnval; }
internal static void OpenUIWindow(Type T, EntityState _entityState , GlobalUIState _state , bool open = true, bool managesUIPopUps = false) { if (open) { //If the user has requested a menu be opened and if //Menu is pin menu if (T == typeof(PinCameraBlankMenuHelper)) { _state.Camera.PinToEntity(_entityState.Entity); if (managesUIPopUps) { ImGui.CloseCurrentPopup(); } } //Menu is goto system menu else if (T == typeof(GotoSystemBlankMenuHelper)) { _state.SetActiveSystem(_entityState.Entity.GetDataBlob<JPSurveyableDB>().JumpPointTo.GetDataBlob<PositionDB>().SystemGuid); }else if(T==typeof(SelectPrimaryBlankMenuHelper)){ _state.EntitySelectedAsPrimary(_entityState.Entity.Guid, _entityState.StarSysGuid); } //if entity can warp else if (T == typeof(WarpOrderWindow)) { WarpOrderWindow.GetInstance(_entityState).ToggleActive(); _state.ActiveWindow = WarpOrderWindow.GetInstance(_entityState); } //Menu is change orbit menu else if (T == typeof(ChangeCurrentOrbitWindow)) { ChangeCurrentOrbitWindow.GetInstance(_entityState).ToggleActive(); _state.ActiveWindow = ChangeCurrentOrbitWindow.GetInstance(_entityState); } //Menu is ficrecontrol menu else if (T == typeof(FireControl)) { var instance = FireControl.GetInstance(_entityState); //instance.SetOrderEntity(_entityState); instance.ToggleActive(); _state.ActiveWindow = instance; } //Menu is rename menu else if (T == typeof(RenameWindow)) { RenameWindow.GetInstance(_entityState).ToggleActive(); _state.ActiveWindow = RenameWindow.GetInstance(_entityState); if(managesUIPopUps){ ImGui.CloseCurrentPopup(); } } //Menu is cargo menu else if (T == typeof(CargoTransfer)) { var instance = CargoTransfer.GetInstance(_state.Game.StaticData, _entityState); instance.ToggleActive(); _state.ActiveWindow = instance; } //Menu is econ menu else if (T == typeof(ColonyPanel)) { var instance = ColonyPanel.GetInstance(_state.Game.StaticData, _entityState); instance.ToggleActive(); _state.ActiveWindow = instance; } else if (T == typeof(NavWindow)) { var instance = NavWindow.GetInstance(_entityState); instance.ToggleActive(); _state.ActiveWindow = instance; } // if (T == typeof(PlanetaryWindow)) { var instance = PlanetaryWindow.GetInstance(_entityState); instance.ToggleActive(); _state.ActiveWindow = instance; //TODO: implement this(moving a ship entity[_uiState.PrimaryEntity] from one system to another one and placing it at a given location[_entityState.Entity.GetDataBlob<JPSurveyableDB>().JumpPointTo.GetDataBlob<PositionDB>(). etc...]) if (T == typeof(JumpThroughJumpPointBlankMenuHelper)) { } } } }