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 { returnval = false; } return(returnval); }
public static CargoTransfer GetInstance(StaticDataStore staticData, EntityState selectedEntity1) { CargoTransfer instance; if (!_state.LoadedWindows.ContainsKey(typeof(CargoTransfer))) { instance = new CargoTransfer { _staticData = staticData, _selectedEntityLeft = selectedEntity1 }; } else { instance = (CargoTransfer)_state.LoadedWindows[typeof(CargoTransfer)]; if (instance._selectedEntityLeft != selectedEntity1) { instance._selectedEntityLeft = selectedEntity1; instance.headersOpenDict = new Dictionary <Guid, bool>(); instance.SelectedCargoPannel = null; instance.UnselectedCargoPannel = null; } } if (instance._selectedEntityLeft.Entity.HasDataBlob <CargoStorageDB>()) { instance.CargoListLeft = new CargoListPannelComplex(staticData, selectedEntity1, instance.headersOpenDict); instance._hasCargoAbilityLeft = true; } else { instance._hasCargoAbilityLeft = false; } if (instance._selectedEntityRight != null && instance._selectedEntityLeft.Entity.HasDataBlob <CargoStorageDB>()) { if (!instance._hasCargoAbilityRight) { instance.CargoListRight = new CargoListPannelComplex(staticData, instance._selectedEntityRight, instance.headersOpenDict); } instance._hasCargoAbilityRight = true; } else { instance._hasCargoAbilityRight = false; } return(instance); }
public static CargoTransfer GetInstance(StaticDataStore staticData, EntityState selectedEntity1) { CargoTransfer instance; if (!_uiState.LoadedWindows.ContainsKey(typeof(CargoTransfer))) { instance = new CargoTransfer { _staticData = staticData, _selectedEntityLeft = _uiState.PrimaryEntity }; instance.HardRefresh(); } else { instance = (CargoTransfer)_uiState.LoadedWindows[typeof(CargoTransfer)]; if (instance._selectedEntityLeft != _uiState.PrimaryEntity) { instance.HardRefresh(); } } return(instance); }
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).IsActive = true; _state.ActiveWindow = WarpOrderWindow.GetInstance(_entityState); } //Menu is change orbit menu else if (T == typeof(ChangeCurrentOrbitWindow)) { ChangeCurrentOrbitWindow.GetInstance(_entityState).IsActive = true; _state.ActiveWindow = ChangeCurrentOrbitWindow.GetInstance(_entityState); } //Menu is ficrecontrol menu else if (T == typeof(WeaponTargetingControl)) { var instance = WeaponTargetingControl.GetInstance(_entityState); instance.SetOrderEntity(_entityState); instance.IsActive = true; _state.ActiveWindow = instance; } //Menu is rename menu else if (T == typeof(RenameWindow)) { RenameWindow.GetInstance(_entityState).IsActive = true; _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.IsActive = true; _state.ActiveWindow = instance; } //Menu is econ menu else if (T == typeof(ColonyPanel)) { var instance = ColonyPanel.GetInstance(_state.Game.StaticData, _entityState); instance.IsActive = true; _state.ActiveWindow = instance; } // if (T == typeof(PlanetaryWindow)) { var instance = PlanetaryWindow.GetInstance(_entityState); instance.IsActive = true; _state.ActiveWindow = instance; //TODO: implement this(moving a ship entity[_state.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)) { } } } }
internal void Display() { ActiveEntity = _entityState.Entity; ImGui.BeginGroup(); if (ImGui.SmallButton("Pin Camera")) { _state.Camera.PinToEntity(_entityState.Entity); ImGui.CloseCurrentPopup(); } //if entity can move if (_entityState.Entity.HasDataBlob <PropulsionAbilityDB>()) { if (ImGui.SmallButton("Translate to a new orbit")) { OrbitOrderWindow.GetInstance(_entityState).IsActive = true; _state.ActiveWindow = OrbitOrderWindow.GetInstance(_entityState); } if (ImGui.SmallButton("Change current orbit")) { ChangeCurrentOrbitWindow.GetInstance(_entityState).IsActive = true; _state.ActiveWindow = ChangeCurrentOrbitWindow.GetInstance(_entityState); } } if (_entityState.Entity.HasDataBlob <FireControlAbilityDB>()) { if (ImGui.SmallButton("Fire Control")) { var instance = WeaponTargetingControl.GetInstance(_entityState); instance.SetOrderEntity(_entityState); instance.IsActive = true; _state.ActiveWindow = instance; } } if (ImGui.SmallButton("Rename")) { RenameWindow.GetInstance(_entityState).IsActive = true; _state.ActiveWindow = RenameWindow.GetInstance(_entityState); ImGui.CloseCurrentPopup(); } //if entity can target if (_entityState.Entity.HasDataBlob <CargoStorageDB>()) { if (ImGui.SmallButton("Cargo")) { var instance = CargoTransfer.GetInstance(_state.Game.StaticData, _entityState); instance.IsActive = true; _state.ActiveWindow = instance; } } //if entity can mine || refine || build //econOrderwindow if (_entityState.Entity.HasDataBlob <ColonyInfoDB>()) { if (ImGui.SmallButton("Econ")) { var instance = ColonyPanel.GetInstance(_state.Game.StaticData, _entityState); instance.IsActive = true; _state.ActiveWindow = instance; } } ImGui.EndGroup(); }