Exemple #1
0
        // Decorations mod entry point
        public static void Patch()
        {
            // 1) INITIALIZE HARMONY
            if (!MyHarmony.Initialize())
            {
                return;
            }

            // 2) LOAD CONFIGURATION
            ConfigSwitcher.LoadConfiguration();

            // 3) REGISTER NEW ITEMS
            DecorationsMod.DecorationItems = RegisterNewItems();

            // 4) REGISTER LANGUAGE STRINGS
            RegisterLanguageStrings();

            // 5) MAKE SOME EXISTING ITEMS PICKUPABLE & PLACEABLE
            if (ConfigSwitcher.EnablePlaceItems)
            {
                PlaceToolItems.MakeItemsPlaceable();
            }

            // 6) REGISTER DECORATIONS FABRICATOR
            Logger.Log("INFO: Registering decorations fabricator...");
            Fabricator_Decorations decorationsFabricator = new Fabricator_Decorations();

            decorationsFabricator.RegisterDecorationsFabricator(DecorationsMod.DecorationItems);

            // 7) REGISTER FLORA FABRICATOR
            if (ConfigSwitcher.EnableNewFlora)
            {
                Logger.Log("INFO: Registering seeds fabricator...");
                Fabricator_Flora floraFabricator = new Fabricator_Flora();
                floraFabricator.RegisterFloraFabricator(DecorationsMod.DecorationItems);
            }

            // 8) HARMONY PATCHING
            MyHarmony.PatchAll();
            // Various enhancements.
            if (ConfigSwitcher.FixAquariumLighting)
            {
                PrefabsHelper.FixAquariumSkyApplier();
            }
            MyHarmony.FixSignInput();
            // Mods compatibility.
            MyHarmony.FixAutoLoadMod();

            // 9) SETUP IN GAME OPTIONS MENU
            Logger.Log("INFO: Setting up in-game options menu...");
            SMLHelper.V2.Handlers.OptionsPanelHandler.RegisterModOptions(new ConfigOptions("Decorations mod"));
        }
Exemple #2
0
        public override void OnPlace()
        {
            var cpt = this.gameObject.GetComponent <CustomPlaceToolController>();

            if (cpt != null)
            {
                cpt.Hide();
            }
            base.OnPlace();
            if (this.gameObject.name != null)
            {
                PrefabsHelper.FixPlaceToolSkyAppliers(this.gameObject);
            }
        }
        private static void MakeItemPlaceable(TechType techType, GameObject item, Collider collider = null)
        {
            // We can pick this item
            PrefabsHelper.SetDefaultPickupable(item);

            // We can place this item
            PrefabsHelper.SetDefaultPlaceTool(item, collider);

            // Add TechType to the hand-equipments
            SMLHelper.V2.Handlers.CraftDataHandler.SetEquipmentType(techType, EquipmentType.Hand);

            // Set as selectable item.
            SMLHelper.V2.Handlers.CraftDataHandler.SetQuickSlotType(techType, QuickSlotType.Selectable);
        }
Exemple #4
0
        // Decorations mod entry point
        public static void Patch()
        {
            // 1) INITIALIZE HARMONY
            if ((HarmonyInstance = HarmonyInstance.Create("com.osubmarin.decorationsmod")) == null)
            {
                Logger.Log("ERROR: Unable to initialize Harmony!");
                return;
            }

            // 2) LOAD CONFIGURATION
            ConfigSwitcher.LoadConfiguration();

            // 3) REGISTER NEW ITEMS
            DecorationsMod.DecorationItems = RegisterNewItems();

            // 4) REGISTER LANGUAGE STRINGS
            RegisterLanguageStrings();

            // 5) MAKE SOME EXISTING ITEMS PICKUPABLE & PLACEABLE
            if (ConfigSwitcher.EnablePlaceItems)
            {
                PlaceToolItems.MakeItemsPlaceable();
            }

            // 6) REGISTER DECORATIONS FABRICATOR
            Fabricator_Decorations decorationsFabricator = new Fabricator_Decorations();

            decorationsFabricator.RegisterDecorationsFabricator(DecorationsMod.DecorationItems);

            // 7) REGISTER FLORA FABRICATOR
            if (ConfigSwitcher.EnableNewFlora)
            {
                Fabricator_Flora floraFabricator = new Fabricator_Flora();
                floraFabricator.RegisterFloraFabricator(DecorationsMod.DecorationItems);
            }

            // 8) HARMONY PATCHING
            HarmonyPatchAll();

            // 9) ENHANCEMENTS
            if (ConfigSwitcher.FixAquariumLighting)
            {
                PrefabsHelper.FixAquariumSkyApplier();
            }

            // 10) SETUP IN GAME OPTIONS MENU
            Logger.Log("Setting up in-game options menu...");
            SMLHelper.V2.Handlers.OptionsPanelHandler.RegisterModOptions(new ConfigOptions("Decorations mod"));
        }
        //public abstract GameObject GetGameObject();

        public virtual void RegisterItem()
        {
            if (this.IsRegistered == false && this.GameObject != null)
            {
                // Associate new recipe
                if (this.Recipe != null)
                {
                    SMLHelper.V2.Handlers.CraftDataHandler.SetTechData(this.TechType, this.Recipe);
                }

                // Update PlaceTool parameters
                PrefabsHelper.SetDefaultPlaceTool(this.GameObject, null, null, false, false, true);
                PlaceTool placeTool = this.GameObject.GetComponent <GenericPlaceTool>();
                if (placeTool == null)
                {
                    placeTool = this.GameObject.GetComponent <PlaceTool>();
                }
                if (placeTool != null)
                {
                    if (this.TechType == TechType.Poster ||
                        this.TechType == TechType.PosterAurora ||
                        this.TechType == TechType.PosterExoSuit1 ||
                        this.TechType == TechType.PosterExoSuit2 ||
                        this.TechType == TechType.PosterKitty
#if BELOWZERO
                        || this.TechType == TechType.PosterSpyPenguin
#endif
                        )
                    {
                        placeTool.allowedOnGround      = false;
                        placeTool.allowedOnWalls       = true;
                        placeTool.hasAnimations        = false;
                        placeTool.hasBashAnimation     = false;
                        placeTool.hasFirstUseAnimation = false;
                    }
                    else
                    {
                        placeTool.allowedOnGround = true;
                        placeTool.allowedOnWalls  = false;
                    }
                }

                // Set the buildable prefab
                SMLHelper.V2.Handlers.PrefabHandler.RegisterPrefab(this);

                this.IsRegistered = true;
            }
        }
Exemple #6
0
        public override void OnPlace()
        {
            this.gameObject.GetComponent <CustomPlaceToolController>().Hide();
            base.OnPlace();

            if (!HasBeenPlaced)
            {
                if (this.BrighterIllum > 0.0f || this.BrighterColor > 0.0f)
                {
                    SetBrighter();
                }
                RotateScaleTranslate();
                HasBeenPlaced = true;
            }
            if (this.gameObject.name != null)
            {
                PrefabsHelper.FixPlaceToolSkyAppliers(this.gameObject);
            }
        }
        /// <summary>This method gets called when a toggle value changes.</summary>
        /// <param name="sender">The object that raised the event.</param>
        /// <param name="e">The toggle change event properties (contains ID and value of the toggle).</param>
        private void ConfigOptions_ToggleChanged(object sender, ToggleChangedEventArgs e)
        {
            if (!string.IsNullOrEmpty(e?.Id))
            {
                switch (e.Id)
                {
                case "OpenDecorationsModConfigurator":
                    break;

                case "UseCompactTooltips":
                    if (e.Value != ConfigSwitcher.UseCompactTooltips)
                    {
                        ConfigSwitcher.UseCompactTooltips = e.Value;
                        ConfigSwitcher.UpdateConfigFile(Environment.NewLine + "useCompactTooltips=" + (e.Value ? "false" : "true") + Environment.NewLine, Environment.NewLine + "useCompactTooltips=" + (e.Value ? "true" : "false") + Environment.NewLine);
                        MenuMessageHelper.AddMessage("Compact tooltips " + (e.Value ? "enabled" : "disabled") + ".", e.Value ? "green" : "orange");
                    }
                    break;

                case "LockQuickslotsWhenPlacingItem":
                    if (e.Value != ConfigSwitcher.LockQuickslotsWhenPlacingItem)
                    {
                        ConfigSwitcher.LockQuickslotsWhenPlacingItem = e.Value;
                        ConfigSwitcher.UpdateConfigFile(Environment.NewLine + "lockQuickslotsWhenPlacingItem=" + (e.Value ? "false" : "true") + Environment.NewLine, Environment.NewLine + "lockQuickslotsWhenPlacingItem=" + (e.Value ? "true" : "false") + Environment.NewLine);
                        MenuMessageHelper.AddMessage("Lock quickslots when placing item " + (e.Value ? "enabled" : "disabled") + ".", e.Value ? "green" : "orange");
                    }
                    break;

                case "HideDeepGrandReefDegasiBase":
                    if (e.Value != ConfigSwitcher.HideDeepGrandReefDegasiBase)
                    {
                        ConfigSwitcher.HideDeepGrandReefDegasiBase = e.Value;
                        ConfigSwitcher.UpdateConfigFile(Environment.NewLine + "hideDeepGrandReefDegasiBase=" + (e.Value ? "false" : "true") + Environment.NewLine, Environment.NewLine + "hideDeepGrandReefDegasiBase=" + (e.Value ? "true" : "false") + Environment.NewLine);
                        PrefabsHelper.HideDegasiBase();
                        MenuMessageHelper.AddMessage("Hide Degasi base (500m) structure " + (e.Value ? "enabled" : "disabled") + ".", e.Value ? "green" : "orange");
                    }
                    break;

                default:
                    break;
                }
            }
        }
        private ModCraftTreeRoot CreateCustomTree(out CraftTree.Type craftType, List <IDecorationItem> decorationItems) //, ModCraftTreeRoot rootNode)
        {
            ModCraftTreeRoot rootNode = CraftTreeHandler.CreateCustomCraftTreeAndType(DecorationsFabID, out craftType);

            #region LAB ELEMENTS

            var labEquipmentTab = rootNode.AddTabNode("LabElements", LanguageHelper.GetFriendlyWord("LabElements"), AssetsHelper.Assets.LoadAsset <Sprite>("D_LabEquipment2"));

            // Lab equipments
            var analyzersTab = labEquipmentTab.AddTabNode("NonFunctionalAnalyzers", LanguageHelper.GetFriendlyWord("NonFunctionalAnalyzers"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Analyzers"));
            analyzersTab.AddCraftingNode(TechType.LabEquipment1,
                                         TechType.LabEquipment2,
                                         TechType.LabEquipment3);

            // Open glass containers
            var openedGlassConteinersTab = labEquipmentTab.AddTabNode("OpenedGlassContainers", LanguageHelper.GetFriendlyWord("OpenedGlassContainers"), AssetsHelper.Assets.LoadAsset <Sprite>("D_OpenGlass"));
            if (PrefabsHelper.GetTechType(decorationItems, "LabContainerOpen3") != TechType.None)
            {
                openedGlassConteinersTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "LabContainerOpen3"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "LabContainerOpen2") != TechType.None)
            {
                openedGlassConteinersTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "LabContainerOpen2"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "LabContainerOpen1") != TechType.None)
            {
                openedGlassConteinersTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "LabContainerOpen1"));
            }

            // Glass containers
            var glassContainersTab = labEquipmentTab.AddTabNode("GlassContainers", LanguageHelper.GetFriendlyWord("GlassContainers"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Glass"));
            glassContainersTab.AddCraftingNode(TechType.LabContainer,
                                               TechType.LabContainer2,
                                               TechType.LabContainer3);
            if (PrefabsHelper.GetTechType(decorationItems, "LabContainer4") != TechType.None)
            {
                glassContainersTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "LabContainer4"));
            }

            // Furnitures
            var labFurnituresTab = labEquipmentTab.AddTabNode("LabFurnitures", LanguageHelper.GetFriendlyWord("LabFurnitures"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Furnitures"));
            if (!ConfigSwitcher.SpecimenAnalyzer_asBuildable && PrefabsHelper.GetTechType(decorationItems, "DecorationsSpecimenAnalyzer") != TechType.None)
            {
                labFurnituresTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "DecorationsSpecimenAnalyzer"));
            }
            if (!ConfigSwitcher.LabCart_asBuildable && PrefabsHelper.GetTechType(decorationItems, "LabCart") != TechType.None)
            {
                labFurnituresTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "LabCart"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "LabShelf") != TechType.None)
            {
                labFurnituresTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "LabShelf"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "DecorationLabTube") != TechType.None)
            {
                labFurnituresTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "DecorationLabTube"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "LabRobotArm") != TechType.None)
            {
                labFurnituresTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "LabRobotArm"));
            }

            #endregion

            #region ELECTRONICS

            var electronicsTab = rootNode.AddTabNode("Electronics", LanguageHelper.GetFriendlyWord("Electronics"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Electronics"));

            // Wall monitors
            var wallMonitorsTab = electronicsTab.AddTabNode("WallMonitors", LanguageHelper.GetFriendlyWord("WallMonitors"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Monitor"));
            if (PrefabsHelper.GetTechType(decorationItems, "WallMonitor1") != TechType.None)
            {
                wallMonitorsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WallMonitor1"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "WallMonitor2") != TechType.None)
            {
                wallMonitorsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WallMonitor2"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "WallMonitor3") != TechType.None)
            {
                wallMonitorsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WallMonitor3"));
            }

            // Circuit boxes
            var circuitBoxesTab = electronicsTab.AddTabNode("CircuitBoxes", LanguageHelper.GetFriendlyWord("CircuitBoxes"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Box"));
            if (PrefabsHelper.GetTechType(decorationItems, "CircuitBox1") != TechType.None)
            {
                circuitBoxesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "CircuitBox1"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "CircuitBox1b") != TechType.None)
            {
                circuitBoxesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "CircuitBox1b"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "CircuitBox2") != TechType.None)
            {
                circuitBoxesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "CircuitBox2"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "CircuitBox2b") != TechType.None)
            {
                circuitBoxesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "CircuitBox2b"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "CircuitBox2c") != TechType.None)
            {
                circuitBoxesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "CircuitBox2c"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "CircuitBox2d") != TechType.None)
            {
                circuitBoxesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "CircuitBox2d"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "CircuitBox3") != TechType.None)
            {
                circuitBoxesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "CircuitBox3"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "CircuitBox3b") != TechType.None)
            {
                circuitBoxesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "CircuitBox3b"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "CircuitBox3c") != TechType.None)
            {
                circuitBoxesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "CircuitBox3c"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "CircuitBox3d") != TechType.None)
            {
                circuitBoxesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "CircuitBox3d"));
            }

            //var circuitBoxTab1 = electronicsTab.AddTabNode("CircuitBoxTab1", LanguageHelper.GetFriendlyWord("CircuitBoxTab1"), AssetsHelper.Assets.LoadAsset<Sprite>("circuitbox2"));
            //var circuitBoxTab2 = electronicsTab.AddTabNode("CircuitBoxTab2", LanguageHelper.GetFriendlyWord("CircuitBoxTab2"), AssetsHelper.Assets.LoadAsset<Sprite>("circuitbox3"));

            // Seamoth fragments
            var seamothFragmentsTab = electronicsTab.AddTabNode("SeamothFragments", LanguageHelper.GetFriendlyWord("SeamothFragments"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Seamoth"));
            if (PrefabsHelper.GetTechType(decorationItems, "SeamothFragment1") != TechType.None)
            {
                seamothFragmentsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SeamothFragment1"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "SeamothFragment2") != TechType.None)
            {
                seamothFragmentsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SeamothFragment2"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "SeamothFragment3") != TechType.None)
            {
                seamothFragmentsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SeamothFragment3"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "SeamothFragment4") != TechType.None)
            {
                seamothFragmentsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SeamothFragment4"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "SeamothFragment5") != TechType.None)
            {
                seamothFragmentsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SeamothFragment5"));
            }

            #endregion

            #region DRINKS & FOOD

            var barKitchenTab = rootNode.AddTabNode("DrinksAndFood", LanguageHelper.GetFriendlyWord("DrinksAndFood"), AssetsHelper.Assets.LoadAsset <Sprite>("D_FoodandDrink"));
            if (PrefabsHelper.GetTechType(decorationItems, "BarCup1") != TechType.None)
            {
                barKitchenTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BarCup1"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "BarCup2") != TechType.None)
            {
                barKitchenTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BarCup2"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "BarNapkins") != TechType.None)
            {
                barKitchenTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BarNapkins"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "BarBottle1") != TechType.None)
            {
                barKitchenTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BarBottle1"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "BarBottle2") != TechType.None)
            {
                barKitchenTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BarBottle2"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "BarBottle3") != TechType.None)
            {
                barKitchenTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BarBottle3"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "BarBottle4") != TechType.None)
            {
                barKitchenTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BarBottle4"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "BarBottle5") != TechType.None)
            {
                barKitchenTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BarBottle5"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "BarFood1") != TechType.None)
            {
                barKitchenTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BarFood1"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "BarFood2") != TechType.None)
            {
                barKitchenTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BarFood2"));
            }
            if (ConfigSwitcher.EnableNutrientBlock)
            {
                barKitchenTab.AddCraftingNode(TechType.NutrientBlock);
            }

            #endregion

            #region PRECURSOR

            var precursorTab = rootNode.AddTabNode("Precursor", LanguageHelper.GetFriendlyWord("Precursor"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Precursors"));
            if (ConfigSwitcher.EnablePrecursorTab)
            {
                // Warpers
                var warperTab = precursorTab.AddTabNode("PrecursorWarperParts", LanguageHelper.GetFriendlyWord("PrecursorWarperParts"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Warper"));
                if (PrefabsHelper.GetTechType(decorationItems, "WarperPart2") != TechType.None)
                {
                    warperTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WarperPart2"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "WarperPart3") != TechType.None)
                {
                    warperTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WarperPart3"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "WarperPart4") != TechType.None)
                {
                    warperTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WarperPart4"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "WarperPart12") != TechType.None)
                {
                    warperTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WarperPart12"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "WarperPart5") != TechType.None)
                {
                    warperTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WarperPart5"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "WarperPart6") != TechType.None)
                {
                    warperTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WarperPart6"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "WarperPart7") != TechType.None)
                {
                    warperTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WarperPart7"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "WarperPart8") != TechType.None)
                {
                    warperTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WarperPart8"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "WarperPart9") != TechType.None)
                {
                    warperTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WarperPart9"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "WarperPart10") != TechType.None)
                {
                    warperTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WarperPart10"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "WarperPart11") != TechType.None)
                {
                    warperTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "WarperPart11"));
                }

                // Weapons
                var weaponsTab = precursorTab.AddTabNode("PrecursorWeapons", LanguageHelper.GetFriendlyWord("Weapons"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Weapons"));
                if (PrefabsHelper.GetTechType(decorationItems, "AlienArtefact6") != TechType.None)
                {
                    weaponsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "AlienArtefact6"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "AlienArtefact7") != TechType.None)
                {
                    weaponsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "AlienArtefact7"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "AlienArtefact8") != TechType.None)
                {
                    weaponsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "AlienArtefact8"));
                }

                // Artefacts
                var artefactsTab = precursorTab.AddTabNode("PrecursorRelics", LanguageHelper.GetFriendlyWord("Relics"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Relics"));
                if (PrefabsHelper.GetTechType(decorationItems, "AlienArtefact1") != TechType.None)
                {
                    artefactsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "AlienArtefact1"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "AlienArtefact2") != TechType.None)
                {
                    artefactsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "AlienArtefact2"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "AlienArtefact3") != TechType.None)
                {
                    artefactsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "AlienArtefact3"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "AlienArtefact4") != TechType.None)
                {
                    artefactsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "AlienArtefact4"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "AlienArtefact5") != TechType.None)
                {
                    artefactsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "AlienArtefact5"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "AlienArtefact9") != TechType.None)
                {
                    artefactsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "AlienArtefact9"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "AlienArtefact10") != TechType.None)
                {
                    artefactsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "AlienArtefact10"));
                }
                if (PrefabsHelper.GetTechType(decorationItems, "AlienArtefact11") != TechType.None)
                {
                    artefactsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "AlienArtefact11"));
                }

                // Keys
                var keysTab = precursorTab.AddTabNode("PrecursorKeys", LanguageHelper.GetFriendlyWord("PrecursorKeys"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Tablets"));
                if (ConfigSwitcher.PrecursorKeysAll)
                {
                    keysTab.AddCraftingNode(new TechType[] { TechType.PrecursorKey_Purple, TechType.PrecursorKey_Orange, TechType.PrecursorKey_Blue });
                }
                keysTab.AddCraftingNode(new TechType[] { TechType.PrecursorKey_White, TechType.PrecursorKey_Red });
            }

            #endregion

            #region CREATURE EGGS

            ModCraftTreeTab eggsTab = rootNode.AddTabNode("EggsTab", LanguageHelper.GetFriendlyWord("EggsTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_CreatureEggs"));

            // Damaging creatures
            var dmgCreatureEggsTab = eggsTab.AddTabNode("DmgCreatureEggsTab", LanguageHelper.GetFriendlyWord("DmgCreatureEggsTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Aggressive"));
            if (PrefabsHelper.GetTechType(decorationItems, "EggSeaDragon") != TechType.None)
            {
                dmgCreatureEggsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "EggSeaDragon"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "EggsGhostLeviathan") != TechType.None)
            {
                dmgCreatureEggsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "EggsGhostLeviathan"));
            }
            if (ConfigSwitcher.EnableRegularEggs)
            {
                dmgCreatureEggsTab.AddCraftingNode(TechType.BonesharkEgg,
                                                   TechType.CrabsnakeEgg,
                                                   TechType.CrabsquidEgg,
                                                   TechType.CrashEgg,
                                                   TechType.GasopodEgg,
                                                   TechType.LavaLizardEgg,
                                                   TechType.SandsharkEgg,
                                                   TechType.ShockerEgg,
                                                   TechType.StalkerEgg,
                                                   TechType.MesmerEgg
                                                   );
            }

            // Non-damaging creatures
            var nonDmgCreatureEggsTab = eggsTab.AddTabNode("NonDmgCreatureEggsTab", LanguageHelper.GetFriendlyWord("NonDmgCreatureEggsTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Peacefull"));
            if (PrefabsHelper.GetTechType(decorationItems, "EggSeaEmperor") != TechType.None)
            {
                nonDmgCreatureEggsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "EggSeaEmperor"));
            }
            if (ConfigSwitcher.EnableRegularEggs)
            {
                nonDmgCreatureEggsTab.AddCraftingNode(TechType.JellyrayEgg,
                                                      TechType.RabbitrayEgg,
                                                      TechType.CutefishEgg,
                                                      TechType.SpadefishEgg,
                                                      TechType.JumperEgg,
                                                      TechType.ReefbackEgg
                                                      );
            }

            #endregion

            #region LEVIATHAN DOLLS & SKELETONS

            ModCraftTreeTab leviathansTab = rootNode.AddTabNode("LeviathansTab", LanguageHelper.GetFriendlyWord("LeviathansTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Leviathans"));

            // Leviathan dolls
            ModCraftTreeTab faunaTab = leviathansTab.AddTabNode("LeviathanDolls", LanguageHelper.GetFriendlyWord("LeviathanDolls"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Dolls"));
            if (PrefabsHelper.GetTechType(decorationItems, "ReefBackDoll") != TechType.None)
            {
                faunaTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "ReefBackDoll"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "SeaTreaderDoll") != TechType.None)
            {
                faunaTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SeaTreaderDoll"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "ReaperLeviathanDoll") != TechType.None)
            {
                faunaTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "ReaperLeviathanDoll"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "GhostLeviathanDoll") != TechType.None)
            {
                faunaTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "GhostLeviathanDoll"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "SeaDragonDoll") != TechType.None)
            {
                faunaTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SeaDragonDoll"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "SeaEmperorDoll") != TechType.None)
            {
                faunaTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SeaEmperorDoll"));
            }

            // Leviathan skeletons
            ModCraftTreeTab skeletonsTab = leviathansTab.AddTabNode("SkeletonsParts", LanguageHelper.GetFriendlyWord("GenericSkeletonName"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Skeleton"));
            if (PrefabsHelper.GetTechType(decorationItems, "GenericSkeleton1") != TechType.None)
            {
                skeletonsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "GenericSkeleton1"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "GenericSkeleton2") != TechType.None)
            {
                skeletonsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "GenericSkeleton2"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "GenericSkeleton3") != TechType.None)
            {
                skeletonsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "GenericSkeleton3"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "ReaperSkullDoll") != TechType.None)
            {
                skeletonsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "ReaperSkullDoll"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "ReaperSkeletonDoll") != TechType.None)
            {
                skeletonsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "ReaperSkeletonDoll"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "SeaDragonSkeleton") != TechType.None)
            {
                skeletonsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SeaDragonSkeleton"));
            }

            #endregion

            #region OFFICE SUPPLIES

            var officeSuppliesTab = rootNode.AddTabNode("OfficeSupplies", LanguageHelper.GetFriendlyWord("OfficeSupplies"), AssetsHelper.Assets.LoadAsset <Sprite>("D_OfficeMaterials"));
            if (!ConfigSwitcher.EmptyDesk_asBuildable && PrefabsHelper.GetTechType(decorationItems, "DecorationsEmptyDesk") != TechType.None)
            {
                officeSuppliesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "DecorationsEmptyDesk"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "Folder1") != TechType.None)
            {
                officeSuppliesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "Folder1"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "Folder3") != TechType.None)
            {
                officeSuppliesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "Folder3"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "Clipboard") != TechType.None)
            {
                officeSuppliesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "Clipboard"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "PaperTrash") != TechType.None)
            {
                officeSuppliesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "PaperTrash"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "Pen") != TechType.None)
            {
                officeSuppliesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "Pen"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "PenHolder") != TechType.None)
            {
                officeSuppliesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "PenHolder"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "DecorativePDA") != TechType.None)
            {
                officeSuppliesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "DecorativePDA"));
            }

            #endregion

            #region POSTERS / ACCESSORIES / TOYS

            var patTab = rootNode.AddTabNode("ToysAndAccessories", LanguageHelper.GetFriendlyWord("ToysAndAccessories"), AssetsHelper.Assets.LoadAsset <Sprite>("D_ToysAccessories"));

            // Toys
            var toysTab = patTab.AddTabNode("Toys", LanguageHelper.GetFriendlyWord("Toys"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Toys"));
            toysTab.AddCraftingNode(TechType.StarshipSouvenir,
                                    TechType.ArcadeGorgetoy,
                                    TechType.ToyCar);
            if (!ConfigSwitcher.Forklift_asBuidable && PrefabsHelper.GetTechType(decorationItems, "ForkLiftDoll") != TechType.None)
            {
                toysTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "ForkLiftDoll"));
            }
            if (PrefabsHelper.GetTechType(decorationItems, "CuddleFishDoll") != TechType.None)
            {
                toysTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "CuddleFishDoll"));
            }
            if (!ConfigSwitcher.MarkiDoll1_asBuildable && PrefabsHelper.GetTechType(decorationItems, "MarkiDoll1") != TechType.None)
            {
                toysTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "MarkiDoll1"));
            }
            if (!ConfigSwitcher.MarkiDoll2_asBuildable && PrefabsHelper.GetTechType(decorationItems, "MarkiDoll2") != TechType.None)
            {
                toysTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "MarkiDoll2"));
            }
            if (!ConfigSwitcher.JackSepticEye_asBuildable && PrefabsHelper.GetTechType(decorationItems, "JackSepticEyeDoll") != TechType.None)
            {
                toysTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "JackSepticEyeDoll"));
            }
            if (!ConfigSwitcher.EatMyDiction_asBuidable && PrefabsHelper.GetTechType(decorationItems, "MarlaCat") != TechType.None)
            {
                toysTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "MarlaCat"));
            }

            // Posters
            var postersTab = patTab.AddTabNode("Posters", LanguageHelper.GetFriendlyWord("Posters"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Posters"));
            postersTab.AddCraftingNode(TechType.PosterAurora,
                                       TechType.PosterExoSuit1,
                                       TechType.PosterExoSuit2,
                                       TechType.PosterKitty,
                                       TechType.Poster);
#if BELOWZERO
            postersTab.AddCraftingNode(TechType.PosterSpyPenguin);
#endif

            // Accessories
            var accessoriesTab = patTab.AddTabNode("Accessories", LanguageHelper.GetFriendlyWord("Accessories"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Accessories"));
            accessoriesTab.AddCraftingNode(TechType.LuggageBag);
            if (ConfigSwitcher.EnableSofas)
            {
                if (!ConfigSwitcher.SofaStr1_asBuidable && PrefabsHelper.GetTechType(decorationItems, "SofaStr1") != TechType.None)
                {
                    accessoriesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SofaStr1"));
                }
                if (!ConfigSwitcher.SofaStr2_asBuidable && PrefabsHelper.GetTechType(decorationItems, "SofaStr2") != TechType.None)
                {
                    accessoriesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SofaStr2"));
                }
                if (!ConfigSwitcher.SofaStr3_asBuidable && PrefabsHelper.GetTechType(decorationItems, "SofaStr3") != TechType.None)
                {
                    accessoriesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SofaStr3"));
                }
                if (!ConfigSwitcher.SofaCorner2_asBuidable && PrefabsHelper.GetTechType(decorationItems, "SofaCorner2") != TechType.None)
                {
                    accessoriesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SofaCorner2"));
                }
            }
            accessoriesTab.AddCraftingNode(TechType.Cap1,
                                           TechType.Cap2);

            #endregion

            return(rootNode);
        }
Exemple #9
0
        private ModCraftTreeRoot CreateCustomTree(out CraftTree.Type craftType, List <IDecorationItem> decorationItems)
        {
            ModCraftTreeRoot rootNode = CraftTreeHandler.CreateCustomCraftTreeAndType(FloraFabID, out craftType);

            ModCraftTreeTab plantAirTab;
            ModCraftTreeTab treeAirTab;
            ModCraftTreeTab tropicalPlantTab;

            if (ConfigSwitcher.UseFlatScreenResolution)
            {
                // Additional tab
                ModCraftTreeTab airSeedsTab = rootNode.AddTabNode("AirSeedsTab", LanguageHelper.GetFriendlyWord("AirSeedsTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_NonHarvastableAir"));

                // Plant Air
                plantAirTab = airSeedsTab.AddTabNode("PlantAirTab", LanguageHelper.GetFriendlyWord("PlantAirTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Plants"));
                // Tree Air
                treeAirTab = airSeedsTab.AddTabNode("TreeAirTab", LanguageHelper.GetFriendlyWord("TreeAirTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Trees"));
                // Tropical
                tropicalPlantTab = airSeedsTab.AddTabNode("TropicalPlantTab", LanguageHelper.GetFriendlyWord("TropicalPlantTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_TropicalPlants"));
            }
            else
            {
                // Plant Air
                plantAirTab = rootNode.AddTabNode("PlantAirTab", LanguageHelper.GetFriendlyWord("PlantAirTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Plants"));
                // Tree Air
                treeAirTab = rootNode.AddTabNode("TreeAirTab", LanguageHelper.GetFriendlyWord("TreeAirTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Trees"));
                // Tropical
                tropicalPlantTab = rootNode.AddTabNode("TropicalPlantTab", LanguageHelper.GetFriendlyWord("TropicalPlantTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_TropicalPlants"));
            }
            // Plant Air
            plantAirTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "LandPlant1"),
                                        PrefabsHelper.GetTechType(decorationItems, "LandPlant2"),
                                        PrefabsHelper.GetTechType(decorationItems, "LandPlant3"),
                                        PrefabsHelper.GetTechType(decorationItems, "LandPlant4"),
                                        PrefabsHelper.GetTechType(decorationItems, "LandPlant5"));
            // Tree Air
            treeAirTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "LandTree1"),
                                       PrefabsHelper.GetTechType(decorationItems, "JungleTree1"),
                                       PrefabsHelper.GetTechType(decorationItems, "JungleTree2"),
                                       PrefabsHelper.GetTechType(decorationItems, "TropicalPlant3a"),
                                       PrefabsHelper.GetTechType(decorationItems, "TropicalPlant3b"),
                                       PrefabsHelper.GetTechType(decorationItems, "TropicalPlant6a"),
                                       PrefabsHelper.GetTechType(decorationItems, "TropicalPlant6b"));
            // Tropical
            tropicalPlantTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "TropicalPlant1a"),
                                             PrefabsHelper.GetTechType(decorationItems, "TropicalPlant1b"),
                                             PrefabsHelper.GetTechType(decorationItems, "TropicalPlant2a"),
                                             PrefabsHelper.GetTechType(decorationItems, "TropicalPlant2b"),
                                             PrefabsHelper.GetTechType(decorationItems, "TropicalPlant7a"),
                                             PrefabsHelper.GetTechType(decorationItems, "TropicalPlant7b"),
                                             PrefabsHelper.GetTechType(decorationItems, "TropicalPlant10a"),
                                             PrefabsHelper.GetTechType(decorationItems, "TropicalPlant10b"),
                                             PrefabsHelper.GetTechType(decorationItems, "Fern2"),
                                             PrefabsHelper.GetTechType(decorationItems, "Fern4"));

            // Existing air seeds from the game
            if (ConfigSwitcher.EnableRegularAirSeeds)
            {
                var regularAirSeedsTab = rootNode.AddTabNode("RegularAirSeedsTab", LanguageHelper.GetFriendlyWord("RegularAirSeedsTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_HarvastableAir"));

                var edibleRegularAirTab = regularAirSeedsTab.AddTabNode("EdibleRegularAirTab", LanguageHelper.GetFriendlyWord("EdibleRegularAirTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Edibles"));
                edibleRegularAirTab.AddCraftingNode(TechType.BulboTreePiece,
                                                    TechType.PurpleVegetable,
                                                    TechType.HangingFruit,
                                                    TechType.MelonSeed,
                                                    PrefabsHelper.GetTechType(decorationItems, "MarbleMelonTiny"));

                var decorativeBigAirTab = regularAirSeedsTab.AddTabNode("DecorativeBigAirTab", LanguageHelper.GetFriendlyWord("DecorativeBigAirTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_BigDeco"));
                decorativeBigAirTab.AddCraftingNode(TechType.FernPalmSeed,
                                                    TechType.OrangePetalsPlantSeed,
                                                    TechType.PurpleVasePlantSeed,
                                                    TechType.OrangeMushroomSpore);

                var decorativeSmallAirTab = regularAirSeedsTab.AddTabNode("DecorativeSmallAirTab", LanguageHelper.GetFriendlyWord("DecorativeSmallAirTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_SmallDeco"));
                decorativeSmallAirTab.AddCraftingNode(TechType.PinkMushroomSpore,
                                                      TechType.PurpleRattleSpore,
                                                      TechType.PinkFlowerSeed);
            }

            // Existing water seeds from the game
            if (ConfigSwitcher.EnableRegularWaterSeeds)
            {
                var regularWaterSeedsTab = rootNode.AddTabNode("RegularWaterSeedsTab", LanguageHelper.GetFriendlyWord("RegularWaterSeedsTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_HarvastableAqua"));

                var decorativeBushesWaterTab = regularWaterSeedsTab.AddTabNode("DecorativeBushesWaterTab", LanguageHelper.GetFriendlyWord("DecorativeBushesWaterTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Bush"));
                decorativeBushesWaterTab.AddCraftingNode(TechType.PurpleBranchesSeed,
                                                         TechType.RedRollPlantSeed,
                                                         TechType.RedBushSeed,
                                                         TechType.PurpleStalkSeed,
                                                         TechType.SpottedLeavesPlantSeed);

                var regularSmallWaterTab = regularWaterSeedsTab.AddTabNode("RegularSmallWaterTab", LanguageHelper.GetFriendlyWord("RegularSmallWaterTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_AquaSmall"));
                regularSmallWaterTab.AddCraftingNode(TechType.SmallFanSeed,
                                                     TechType.PurpleFanSeed,
                                                     TechType.PurpleTentacleSeed);

                var decorativeBigWaterTab = regularWaterSeedsTab.AddTabNode("DecorativeBigWaterTab", LanguageHelper.GetFriendlyWord("DecorativeBigWaterTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Big"));
                decorativeBigWaterTab.AddCraftingNode(TechType.SeaCrownSeed,
                                                      TechType.GabeSFeatherSeed,
                                                      TechType.RedGreenTentacleSeed,
                                                      TechType.ShellGrassSeed,
                                                      TechType.BluePalmSeed,
                                                      TechType.EyesPlantSeed,
                                                      TechType.MembrainTreeSeed,
                                                      TechType.RedConePlantSeed,
                                                      TechType.RedBasketPlantSeed,
                                                      TechType.SnakeMushroomSpore,
                                                      TechType.SpikePlantSeed);

                var functionalBigWaterTab = regularWaterSeedsTab.AddTabNode("FunctionalBigWaterTab", LanguageHelper.GetFriendlyWord("FunctionalBigWaterTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Functional"));
                functionalBigWaterTab.AddCraftingNode(TechType.AcidMushroomSpore,
                                                      TechType.WhiteMushroomSpore,
                                                      TechType.JellyPlantSeed,
                                                      TechType.CreepvinePiece,
                                                      TechType.CreepvineSeedCluster,
                                                      TechType.BloodOil,
                                                      TechType.PurpleBrainCoralPiece,
                                                      TechType.KooshChunk);
            }

            ModCraftTreeTab plantWaterTab;
            ModCraftTreeTab treeWaterTab;

            if (ConfigSwitcher.UseFlatScreenResolution)
            {
                // Additional tab
                ModCraftTreeTab waterSeedsTab = rootNode.AddTabNode("WaterSeedsTab", LanguageHelper.GetFriendlyWord("WaterSeedsTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_NonHarvastableAqua"));

                // Plant Water
                plantWaterTab = waterSeedsTab.AddTabNode("PlantWaterTab", LanguageHelper.GetFriendlyWord("PlantWaterTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_AquaticPlants"));
                // Tree Water
                treeWaterTab = waterSeedsTab.AddTabNode("TreeWaterTab", LanguageHelper.GetFriendlyWord("TreeWaterTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_AquaticTrees"));
            }
            else
            {
                // Plant Water
                plantWaterTab = rootNode.AddTabNode("PlantWaterTab", LanguageHelper.GetFriendlyWord("PlantWaterTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_AquaticPlants"));
                // Tree Water
                treeWaterTab = rootNode.AddTabNode("TreeWaterTab", LanguageHelper.GetFriendlyWord("TreeWaterTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_AquaticTrees"));
            }
            // Plant Water
            plantWaterTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "GreenReeds1"),
                                          PrefabsHelper.GetTechType(decorationItems, "GreenReeds6"),
                                          PrefabsHelper.GetTechType(decorationItems, "LostRiverPlant2"),
                                          PrefabsHelper.GetTechType(decorationItems, "LostRiverPlant4"),
                                          PrefabsHelper.GetTechType(decorationItems, "PlantMiddle11"));
            var redGrassesTab = plantWaterTab.AddTabNode("RedGrassesTab", LanguageHelper.GetFriendlyWord("RedGrassesTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Grass"));

            redGrassesTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BloodGrassRed"),
                                          PrefabsHelper.GetTechType(decorationItems, "BloodGrassDense"),
                                          PrefabsHelper.GetTechType(decorationItems, "RedGrass1"),
                                          PrefabsHelper.GetTechType(decorationItems, "RedGrass2"),
                                          PrefabsHelper.GetTechType(decorationItems, "RedGrass2Tall"),
                                          PrefabsHelper.GetTechType(decorationItems, "RedGrass3"),
                                          PrefabsHelper.GetTechType(decorationItems, "RedGrass3Tall"));

            // Tree Water
            treeWaterTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "MushroomTree2"),
                                         PrefabsHelper.GetTechType(decorationItems, "MushroomTree1"),
                                         PrefabsHelper.GetTechType(decorationItems, "CrabClawKelp2"),
                                         PrefabsHelper.GetTechType(decorationItems, "CrabClawKelp1"),
                                         PrefabsHelper.GetTechType(decorationItems, "CrabClawKelp3"),
                                         PrefabsHelper.GetTechType(decorationItems, "PyroCoral1"),
                                         PrefabsHelper.GetTechType(decorationItems, "PyroCoral2"),
                                         PrefabsHelper.GetTechType(decorationItems, "PyroCoral3"),
                                         PrefabsHelper.GetTechType(decorationItems, "FloatingStone1"));

            // Amphibious plants
            var amphibiousPlantsTab = rootNode.AddTabNode("AmphibiousPlantsTab", LanguageHelper.GetFriendlyWord("AmphibiousPlantsTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_AmphibiousPlants"));

            amphibiousPlantsTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "SmallDeco3"),
                                                PrefabsHelper.GetTechType(decorationItems, "CoveTree1"),
                                                PrefabsHelper.GetTechType(decorationItems, "CoveTree2"),
                                                PrefabsHelper.GetTechType(decorationItems, "SmallDeco11"),
                                                PrefabsHelper.GetTechType(decorationItems, "SmallDeco13"),
                                                PrefabsHelper.GetTechType(decorationItems, "SmallDeco14"),
                                                PrefabsHelper.GetTechType(decorationItems, "SmallDeco15Red"),
                                                PrefabsHelper.GetTechType(decorationItems, "SmallDeco17Purple"));

            // Coral Water
            var coralWaterTab = rootNode.AddTabNode("CoralWaterTab", LanguageHelper.GetFriendlyWord("CoralWaterTab"), AssetsHelper.Assets.LoadAsset <Sprite>("D_Corals"));

            coralWaterTab.AddCraftingNode(PrefabsHelper.GetTechType(decorationItems, "BrownCoralTubes1"),
                                          PrefabsHelper.GetTechType(decorationItems, "BrownCoralTubes2"),
                                          PrefabsHelper.GetTechType(decorationItems, "BrownCoralTubes3"),
                                          PrefabsHelper.GetTechType(decorationItems, "BlueCoralTubes1"),
                                          PrefabsHelper.GetTechType(decorationItems, "SmallDeco10"));

            return(rootNode);
        }
        private void ConfigOptions_ToggleChanged(object sender, SMLHelper.V2.Options.ToggleChangedEventArgs e)
        {
            if (!string.IsNullOrEmpty(e?.Id))
            {
                switch (e.Id)
                {
                case "OpenDecorationsModConfigurator":
                    break;

                case "UseFlatScreenResolution":
                    ConfigSwitcher.UseFlatScreenResolution = e.Value;
                    UpdateConfigFile("\r\nuseAlternativeScreenResolution=" + (e.Value ? "false" : "true") + "\r\n", "\r\nuseAlternativeScreenResolution=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " alternate screen resolution.");
                    break;

                case "UseCompactTooltips":
                    ConfigSwitcher.UseCompactTooltips = e.Value;
                    UpdateConfigFile("\r\nuseCompactTooltips=" + (e.Value ? "false" : "true") + "\r\n", "\r\nuseCompactTooltips=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Compact tooltips " + (e.Value ? "enabled" : "disabled") + ".");
                    break;

                case "LockQuickslotsWhenPlacingItem":
                    ConfigSwitcher.LockQuickslotsWhenPlacingItem = e.Value;
                    UpdateConfigFile("\r\nlockQuickslotsWhenPlacingItem=" + (e.Value ? "false" : "true") + "\r\n", "\r\nlockQuickslotsWhenPlacingItem=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Lock quickslots when placing item " + (e.Value ? "enabled" : "disabled") + ".");
                    break;

                case "AllowBuildOutside":
                    ConfigSwitcher.AllowBuildOutside = e.Value;
                    UpdateConfigFile("\r\nallowBuildOutside=" + (e.Value ? "false" : "true") + "\r\n", "\r\nallowBuildOutside=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Allow build outside " + (e.Value ? "enabled" : "disabled") + ".");
                    break;

                case "AllowPlaceOutside":
                    ConfigSwitcher.AllowPlaceOutside = e.Value;
                    UpdateConfigFile("\r\nallowPlaceOutside=" + (e.Value ? "false" : "true") + "\r\n", "\r\nallowPlaceOutside=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Allow place outside " + (e.Value ? "enabled" : "disabled") + ".");
                    break;

                case "EnableDiscoveryMode":
                    ConfigSwitcher.AddItemsWhenDiscovered = e.Value;
                    UpdateConfigFile("\r\naddItemsWhenDiscovered=" + (e.Value ? "false" : "true") + "\r\n", "\r\naddItemsWhenDiscovered=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " adding items when discovered.");
                    break;

                case "EnableSofas":
                    ConfigSwitcher.EnableSofas = e.Value;
                    UpdateConfigFile("\r\nenableSofas=" + (e.Value ? "false" : "true") + "\r\n", "\r\nenableSofas=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " sofas.");
                    break;

                case "EnablePlaceItems":
                    ConfigSwitcher.EnablePlaceItems = e.Value;
                    if (e.Value)
                    {
                        PlaceToolItems.MakeItemsPlaceable();
                    }
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " placeable items.");
                    UpdateConfigFile("\r\nenablePlaceItems=" + (e.Value ? "false" : "true") + "\r\n", "\r\nenablePlaceItems=" + (e.Value ? "true" : "false") + "\r\n");
                    break;

                case "EnablePlaceBatteries":
                    ConfigSwitcher.EnablePlaceBatteries = e.Value;
                    if (e.Value)
                    {
                        PlaceToolItems.MakeBatteriesPlaceable();
                        DecorationsMod.PatchBatteries();
                    }
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " placeable batteries.");
                    UpdateConfigFile("\r\nenablePlaceBatteries=" + (e.Value ? "false" : "true") + "\r\n", "\r\nenablePlaceBatteries=" + (e.Value ? "true" : "false") + "\r\n");
                    break;

                case "EnableNewItems":
                    ConfigSwitcher.EnableNewItems = e.Value;
                    UpdateConfigFile("\r\nenableNewBuilderItems=" + (e.Value ? "false" : "true") + "\r\n", "\r\nenableNewBuilderItems=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " new builder items.");
                    break;

                case "EnableNewFlora":
                    ConfigSwitcher.EnableNewFlora = e.Value;
                    UpdateConfigFile("\r\nenableNewFlora=" + (e.Value ? "false" : "true") + "\r\n", "\r\nenableNewFlora=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " new flora.");
                    break;

                case "EnablePrecursorTab":
                    ConfigSwitcher.EnablePrecursorTab = e.Value;
                    UpdateConfigFile("\r\nenablePrecursorTab=" + (e.Value ? "false" : "true") + "\r\n", "\r\nenablePrecursorTab=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " precursor tab.");
                    break;

                case "EnableNutrientBlock":
                    ConfigSwitcher.EnableNutrientBlock = e.Value;
                    UpdateConfigFile("\r\nenableNutrientBlock=" + (e.Value ? "false" : "true") + "\r\n", "\r\nenableNutrientBlock=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " nutrient block.");
                    break;

                case "EnableRegularEggs":
                    ConfigSwitcher.EnableRegularEggs = e.Value;
                    UpdateConfigFile("\r\nenableAllEggs=" + (e.Value ? "false" : "true") + "\r\n", "\r\nenableAllEggs=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " regular eggs.");
                    break;

                case "EnableEggsWhenCreatureScanned":
                    ConfigSwitcher.EnableEggsWhenCreatureScanned = e.Value;
                    UpdateConfigFile("\r\naddEggsWhenCreatureScanned=" + (e.Value ? "false" : "true") + "\r\n", "\r\naddEggsWhenCreatureScanned=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " eggs unlocking when discovered.");
                    break;

                case "EnableEggsAtStart":
                    ConfigSwitcher.EnableEggsAtStart = e.Value;
                    UpdateConfigFile("\r\naddEggsAtStart=" + (e.Value ? "false" : "true") + "\r\n", "\r\naddEggsAtStart=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " eggs unlocking at start.");
                    break;

                case "PrecursorKeysAll":
                    ConfigSwitcher.PrecursorKeysAll = e.Value;
                    UpdateConfigFile("\r\nprecursorKeysAll=" + (e.Value ? "false" : "true") + "\r\n", "\r\nprecursorKeysAll=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " regular alien tablets.");
                    break;

                case "EnableRegularAirSeeds":
                    ConfigSwitcher.EnableRegularAirSeeds = e.Value;
                    UpdateConfigFile("\r\naddRegularAirSeeds=" + (e.Value ? "false" : "true") + "\r\n", "\r\naddRegularAirSeeds=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " regular air seeds.");
                    break;

                case "AddRegularAirSeedsWhenDiscovered":
                    ConfigSwitcher.AddAirSeedsWhenDiscovered = e.Value;
                    UpdateConfigFile("\r\naddAirSeedsWhenDiscovered=" + (e.Value ? "false" : "true") + "\r\n", "\r\naddAirSeedsWhenDiscovered=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " unlocking air seeds when discovered.");
                    break;

                case "EnableRegularWaterSeeds":
                    ConfigSwitcher.EnableRegularWaterSeeds = e.Value;
                    UpdateConfigFile("\r\naddRegularWaterSeeds=" + (e.Value ? "false" : "true") + "\r\n", "\r\naddRegularWaterSeeds=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " regular water seeds.");
                    break;

                case "AddRegularWaterSeedsWhenDiscovered":
                    ConfigSwitcher.AddWaterSeedsWhenDiscovered = e.Value;
                    UpdateConfigFile("\r\naddWaterSeedsWhenDiscovered=" + (e.Value ? "false" : "true") + "\r\n", "\r\naddWaterSeedsWhenDiscovered=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " unlocking water seeds when discovered.");
                    break;

                case "AllowIndoorLongPlanterOutside":
                    ConfigSwitcher.AllowIndoorLongPlanterOutside = e.Value;
                    UpdateConfigFile("\r\nallowIndoorLongPlanterOutside=" + (e.Value ? "false" : "true") + "\r\n", "\r\nallowIndoorLongPlanterOutside=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Indoor long planter outside " + (e.Value ? "enabled" : "disabled") + ".");
                    break;

                case "AllowOutdoorLongPlanterInside":
                    ConfigSwitcher.AllowOutdoorLongPlanterInside = e.Value;
                    UpdateConfigFile("\r\nallowOutdoorLongPlanterInside=" + (e.Value ? "false" : "true") + "\r\n", "\r\nallowOutdoorLongPlanterInside=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Outdoor long planter inside " + (e.Value ? "enabled" : "disabled") + ".");
                    break;

                case "FixAquariumLighting":
                    ConfigSwitcher.FixAquariumLighting = e.Value;
                    if (e.Value)
                    {
                        PrefabsHelper.FixAquariumSkyApplier();
                        ErrorMessage.AddMessage("Aquarium lighting fix enabled.");
                    }
                    else
                    {
                        ErrorMessage.AddMessage("Restart game completely to disable aquarium lighting fix.");
                    }
                    UpdateConfigFile("\r\nfixAquariumLighting=" + (e.Value ? "false" : "true") + "\r\n", "\r\nfixAquariumLighting=" + (e.Value ? "true" : "false") + "\r\n");
                    break;

                case "GlowingAquariumGlass":
                    ConfigSwitcher.GlowingAquariumGlass = e.Value;
                    UpdateConfigFile("\r\nenableAquariumGlassGlowing=" + (e.Value ? "false" : "true") + "\r\n", "\r\nenableAquariumGlassGlowing=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Restart game completely to " + (e.Value ? "enable" : "disable") + " glowing effect.");
                    break;

                case "GhostLeviatan_enable":
                    ConfigSwitcher.GhostLeviatan_enable = e.Value;
                    UpdateConfigFile("\r\nGhostLeviatan_enable=" + (e.Value ? "false" : "true") + "\r\n", "\r\nGhostLeviatan_enable=" + (e.Value ? "true" : "false") + "\r\n");
                    ErrorMessage.AddMessage("Ghost Leviatan spawning " + (e.Value ? "enabled" : "disabled") + ".");
                    break;

                /*
                 * case "AlienRelic1Animation":
                 *  ConfigSwitcher.AlienRelic1Animation = e.Value;
                 *  UpdateConfigFile("\r\nalienRelic1Animation=" + (e.Value ? "false" : "true") + "\r\n", "\r\nalienRelic1Animation=" + (e.Value ? "true" : "false") + "\r\n");
                 *  ErrorMessage.AddMessage("Alien relic 1 animation " + (e.Value ? "enabled" : "disabled") + ".");
                 *  break;
                 * case "AlienRelic2Animation":
                 *  ConfigSwitcher.AlienRelic2Animation = e.Value;
                 *  UpdateConfigFile("\r\nalienRelic2Animation=" + (e.Value ? "false" : "true") + "\r\n", "\r\nalienRelic2Animation=" + (e.Value ? "true" : "false") + "\r\n");
                 *  ErrorMessage.AddMessage("Alien relic 2 animation " + (e.Value ? "enabled" : "disabled") + ".");
                 *  break;
                 * case "AlienRelic3Animation":
                 *  ConfigSwitcher.AlienRelic3Animation = e.Value;
                 *  UpdateConfigFile("\r\nalienRelic3Animation=" + (e.Value ? "false" : "true") + "\r\n", "\r\nalienRelic3Animation=" + (e.Value ? "true" : "false") + "\r\n");
                 *  ErrorMessage.AddMessage("Alien relic 3 animation " + (e.Value ? "enabled" : "disabled") + ".");
                 *  break;
                 * case "AlienRelic4Animation":
                 *  ConfigSwitcher.AlienRelic4Animation = e.Value;
                 *  UpdateConfigFile("\r\nalienRelic4Animation=" + (e.Value ? "false" : "true") + "\r\n", "\r\nalienRelic4Animation=" + (e.Value ? "true" : "false") + "\r\n");
                 *  ErrorMessage.AddMessage("Alien relic 4 animation " + (e.Value ? "enabled" : "disabled") + ".");
                 *  break;
                 * case "AlienRelic5Animation":
                 *  ConfigSwitcher.AlienRelic5Animation = e.Value;
                 *  UpdateConfigFile("\r\nalienRelic5Animation=" + (e.Value ? "false" : "true") + "\r\n", "\r\nalienRelic5Animation=" + (e.Value ? "true" : "false") + "\r\n");
                 *  ErrorMessage.AddMessage("Alien relic 5 animation " + (e.Value ? "enabled" : "disabled") + ".");
                 *  break;
                 * case "AlienRelic6Animation":
                 *  ConfigSwitcher.AlienRelic6Animation = e.Value;
                 *  UpdateConfigFile("\r\nalienRelic6Animation=" + (e.Value ? "false" : "true") + "\r\n", "\r\nalienRelic6Animation=" + (e.Value ? "true" : "false") + "\r\n");
                 *  ErrorMessage.AddMessage("Alien relic 6 animation " + (e.Value ? "enabled" : "disabled") + ".");
                 *  break;
                 * case "AlienRelic7Animation":
                 *  ConfigSwitcher.AlienRelic7Animation = e.Value;
                 *  UpdateConfigFile("\r\nalienRelic7Animation=" + (e.Value ? "false" : "true") + "\r\n", "\r\nalienRelic7Animation=" + (e.Value ? "true" : "false") + "\r\n");
                 *  ErrorMessage.AddMessage("Alien relic 7 animation " + (e.Value ? "enabled" : "disabled") + ".");
                 *  break;
                 * case "AlienRelic8Animation":
                 *  ConfigSwitcher.AlienRelic8Animation = e.Value;
                 *  UpdateConfigFile("\r\nalienRelic8Animation=" + (e.Value ? "false" : "true") + "\r\n", "\r\nalienRelic8Animation=" + (e.Value ? "true" : "false") + "\r\n");
                 *  ErrorMessage.AddMessage("Alien relic 8 animation " + (e.Value ? "enabled" : "disabled") + ".");
                 *  break;
                 * case "AlienRelic9Animation":
                 *  ConfigSwitcher.AlienRelic9Animation = e.Value;
                 *  UpdateConfigFile("\r\nalienRelic9Animation=" + (e.Value ? "false" : "true") + "\r\n", "\r\nalienRelic9Animation=" + (e.Value ? "true" : "false") + "\r\n");
                 *  ErrorMessage.AddMessage("Alien relic 9 animation " + (e.Value ? "enabled" : "disabled") + ".");
                 *  break;
                 * case "AlienRelic10Animation":
                 *  ConfigSwitcher.AlienRelic10Animation = e.Value;
                 *  UpdateConfigFile("\r\nalienRelic10Animation=" + (e.Value ? "false" : "true") + "\r\n", "\r\nalienRelic10Animation=" + (e.Value ? "true" : "false") + "\r\n");
                 *  ErrorMessage.AddMessage("Alien relic 10 animation " + (e.Value ? "enabled" : "disabled") + ".");
                 *  break;
                 * case "AlienRelic11Animation":
                 *  ConfigSwitcher.AlienRelic11Animation = e.Value;
                 *  UpdateConfigFile("\r\nalienRelic11Animation=" + (e.Value ? "false" : "true") + "\r\n", "\r\nalienRelic11Animation=" + (e.Value ? "true" : "false") + "\r\n");
                 *  ErrorMessage.AddMessage("Alien relic 11 animation " + (e.Value ? "enabled" : "disabled") + ".");
                 *  break;
                 */
                default:
                    break;
                }
            }
        }