// 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")); }
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); }
// 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; } }
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); }
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; } } }