//Library Desc private void showLibDesc() { index = 0; List <UI.MenuItem> menuItems = new List <UI.MenuItem>(); UI.MenuItem backButton = new MenuSeparator() { Y = ItemPosition.Y += 3, Text = "Back", Width = 10, Action = () => back() }; menuItems.Add(backButton); var library = data.GetLibrary(); UI.Menu desc = new DescriptionMenu { Library = library, Title = "Описание", MenuItems = menuItems }; history.Push(activeMenu); activeMenu = desc; }
public void EditSelectedModComponent() { if (currentlySelected.TryGetComponent(out SpawnGroupRef spawnGroupRef)) { Logging.Log($"Loading Spawngroup {spawnGroupRef.GetMySpawnGroup().SubtypeId} to edit."); EditingFlag = true; UIManager.me.NewShipMenu(); SpawnGroupMenu spMenu = UIManager.me.spawnGroupMenu; DescriptionMenu menu = UIManager.me.descriptionMenu; SpawnGroup spawnGroup = spawnGroupRef.GetMySpawnGroup(); MyDescription desc; if (!MyDescription.ParseFromString(spawnGroup.Description, out desc)) { Logging.LogErr($"Failed to load description from spawngroup {spawnGroup.SubtypeId} to edit."); } spMenu.Name.text = spawnGroup.SubtypeId; spMenu.Frequency.text = spawnGroup.Frequency.ToString(); menu.UseAutopilotInSpace.isOn = desc.useAutoPilotInSpace; menu.PlanetaryInstallationType.text = desc.planetaryInstallationType; menu.CutVoxelsAtAirtightCels.isOn = desc.cutVoxelsAtAirtightCells; menu.ForceStaticGrid.isOn = desc.forceStaticGrid; menu.RemoveVoxelsIfGridRemoved.isOn = desc.removeVoxelsIfGridRemoved; menu.UniqueEncounter.isOn = desc.uniqueEncounter; menu.FactionOwner.text = desc.factionOwner; menu.PlanetRequiresAtmo.isOn = desc.planetRequiresAtmo; menu.PlanetRequiresOxygen.isOn = desc.planetRequiresOxygen; menu.PlanetRequiresVacuum.isOn = desc.planetRequiresVacuum; menu.PlanetMinimumSize.text = desc.planetMinimumSize.ToString(); menu.PlanetMaximumSize.text = desc.planetMinimumSize.ToString(); menu.UseThreatLevelCheck.isOn = desc.useThreatLevelCheck; menu.ThreatLevelCheckRange.text = desc.threatLevelCheckRange.ToString(); menu.ThreatScoreMinimum.text = desc.threatScoreMinimum.ToString(); menu.ThreatScoreMaximum.text = desc.threatScoreMaximum.ToString(); menu.ThreatLevelCheckOtherNPCOwners.isOn = desc.threatLevelCheckOtherNPCOwners; menu.UsePCUCheck.isOn = desc.usePCUCheck; menu.PCUCheckRadius.text = desc.PCUCheckRadius.ToString(); menu.PCUMaximum.text = desc.PCUMaximum.ToString(); menu.PCUMinimum.text = desc.PCUMinimum.ToString(); menu.UsePlayerCountCheck.isOn = desc.usePlayerCountCheck; menu.PlayerCountCheckRadius.text = desc.usePlayerCountCheck.ToString(); menu.MinimumPlayers.text = desc.minimumPlayers.ToString(); menu.MaximumPlayers.text = desc.maximumPlayers.ToString(); menu.UsePlayerCredits.isOn = desc.usePlayerCredits; menu.IncludeAllPlayersInRadius.isOn = desc.includeAllPlayersInRadius; menu.IncludeFactionBalance.isOn = desc.includeFactionBalance; menu.PlayerCreditCheckRadius.text = desc.playerCreditCheckRadius.ToString(); menu.MinimumPlayerCredits.text = desc.minimumPlayerCredits.ToString(); menu.MaximumPlayerCredits.text = desc.maximumPlayerCredits.ToString(); menu.UsePlayerFactionReputation.isOn = desc.usePlayerFactionReputation; menu.CheckReputationAgainstOtherNPCFaction.text = desc.checkReputationAgainstOtherNPCFaction; menu.PlayerReputationCheckRadius.text = desc.playerReputationCheckRadius.ToString(); menu.MinimumReputation.text = desc.minimumReputation.ToString(); menu.MaximumReputation.text = desc.maximumReputation.ToString(); menu.AttachModComponentToGrid.isOn = desc.attachModStorageComponentToGrid; menu.StorageKey.text = desc.storageKey; menu.StorageValue.text = desc.storageValue; menu.UseKnownPlayerLocation.isOn = desc.useKnowPlayerLocations; menu.KnownPlayerLocationMustMatchFaction.isOn = desc.knownPlayerLocationMustMatchFaction; menu.KnownPlayerLocationMinSpawnedEncounters.text = desc.knownPlayerLocationMinSpawnedEncounters.ToString(); menu.KnownPlayerLocationMaxSpawnedEncounters.text = desc.knownPlayerLocationMaxSpawnedEncounters.ToString(); menu.TerritoryName.text = desc.territory; menu.MinDistanceFromTerritoryCenter.text = desc.minDistanceFromTerritoryCenter.ToString(); menu.MaxDistanceFromTerritoryCenter.text = desc.maxDistanceFromTerritoryCenter.ToString(); menu.ReplenishSystems.isOn = desc.replenishSystems; menu.IgnoreCleanupRules.isOn = desc.ignoreCleanupRules; menu.InitializeStoreBlocks.isOn = desc.initializeStoreBlocks; menu.AdminSpawnOnly.isOn = desc.adminSpawnOnly; menu.RotateFirstCockpitToForward.isOn = desc.rotateFirstCockpitToForward; menu.SpawnRandomCargo.isOn = desc.spawnRandomCargo; menu.DisableDampners.isOn = desc.disableDampeners; menu.ReactorsOn.isOn = desc.reactorsOn; menu.PauseAutopilotAtDistance.text = desc.pauseAutopilotAtPlayerDistance.ToString(); menu.MinSpawnFromWorldCenter.text = desc.minSpawnFromWorldCenter.ToString(); menu.MaxSpawnFromWorldCenter.text = desc.maxSpawnFromWorldCenter.ToString(); } else if (currentlySelected.TryGetComponent(out PrefabRef prefabRef)) { Logging.Log($"Loading Prefab {prefabRef.GetMyPrefab().SubtypeId} to edit."); EditingFlag = true; UIManager.me.NewPrefabMenu(); PrefabMenu menu = UIManager.me.prefabMenu; Prefab prefab = prefabRef.GetMyPrefab(); menu.FileName.text = prefab.SubtypeId; menu.BeaconText.text = prefab.BeaconText; menu.Speed.text = prefab.Speed.ToString(); } else if (currentlySelected.TryGetComponent(out TerritoryRef territoryRef)) { Logging.Log($"Loading Territory {territoryRef.GetMyTerritory().SubtypeId} to edit."); EditingFlag = true; UIManager.me.NewTerritoryMenu(); TerritoryMenu menu = UIManager.me.territoryMenu; SpawnGroup territory = territoryRef.GetMyTerritory(); MyDescription desc; if (!MyDescription.ParseFromString(territory.Description, out desc)) { Logging.LogErr("Error loading description for edit."); return; } menu.Name.text = territory.SubtypeId; if (desc.type.Contains("tatic")) { menu.Type.value = 0; } else { menu.Type.value = 1; } menu.Active.isOn = desc.active; menu.Radius.text = desc.radius.ToString(); menu.CoordsX.text = desc.coordsX.ToString(); menu.CoordsY.text = desc.coordsY.ToString(); menu.CoordsZ.text = desc.coordsZ.ToString(); menu.ScaleWithPlanetSize.isOn = desc.scaleRadiusWithPlanetSize; menu.PlanetGeneratorName.text = desc.planetGeneratorName; menu.AnnounceArriveDepart.isOn = desc.announceArriveDepart; menu.CustomArriveMessage.text = desc.customArriveMessage; menu.CustomDepartMessage.text = desc.customDepartMessage; } else { Logging.LogErr($"Failed to load mod element from selected Gameobject to be edited."); } }
public Manager(IDataBase data) { this.data = data; history = new Stack <UI.Menu>(); indexHistory = new Stack <int>(); index = 0; //Книги List <UI.MenuItem> booksMenuItems = new List <UI.MenuItem>() { new MenuSeparator() { Text = "Назад", Width = 10, Action = () => back() }, new MenuSeparator() { Text = "Показать все книги", Action = () => showAllBooks() }, new MenuSeparator() { Text = "Добавить книгу", Action = () => addBook() } }; var booksMenu = new UI.Menu() { Title = "Меню книг", MenuItems = booksMenuItems }; //Описание List <UI.MenuItem> descMenuitems = new List <UI.MenuItem>() { new MenuSeparator() { Text = "Назад", Width = 10, Action = () => back() } }; var descMenu = new DescriptionMenu() { Title = "Описание: ", MenuItems = descMenuitems }; //Main List <UI.MenuItem> mainMenuItems = new List <UI.MenuItem>() { new MenuSeparator() { Text = "Книги", LinkMenu = booksMenu }, new MenuSeparator() { Text = "Информация о библиотеке", Action = () => showLibDesc() }, new MenuSeparator() { Text = "Выход", Width = 10, Action = () => close() } }; var mainMenu = new UI.Menu() { Title = "Главное меню", MenuItems = mainMenuItems }; activeMenu = mainMenu; }