Example #1
0
        //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.");
        }
    }
Example #3
0
        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;
        }