internal void AddModdedModules(ModCraftTreeTab craftTreeTab) { if (!this.Properties.TryGetValue(craftTreeTab.Name, out EmProperty property)) { return; } var modulesList = (EmPropertyList <string>)property; if (modulesList == null || !modulesList.HasValue) { return; } foreach (string module in modulesList.Values) { craftTreeTab.AddModdedCraftingNode(module); } }
private void CreateCustomTree(out CraftTree.Type craftType) { if (!ModdedItems.IsInitialized) { ModdedItems.Initialize(); } ModCraftTreeRoot rootNode = CraftTreeHandler.CreateCustomCraftTreeAndType(NameID, out craftType); ModCraftTreeTab cyclopsTab = rootNode.AddTabNode("CyclopsModules", "Cyclops Modules", SpriteManager.Get(SpriteManager.Group.Category, "Workbench_CyclopsMenu")); ModCraftTreeTab cyclopsAbilityTab = cyclopsTab.AddTabNode("CyclopsAbilityModules", "Ability Modules", SpriteManager.Get(TechType.CyclopsShieldModule)); cyclopsAbilityTab.AddCraftingNode(TechType.CyclopsShieldModule, TechType.CyclopsSonarModule, TechType.CyclopsSeamothRepairModule, TechType.CyclopsFireSuppressionModule, TechType.CyclopsDecoyModule); ModdedItems.AddModdedModules(cyclopsAbilityTab); cyclopsAbilityTab.AddModdedCraftingNode("CyclopsSpeedModule"); ModCraftTreeTab cyclopsDepthTab = cyclopsTab.AddTabNode("CyclopsDepthModules", "Depth Modules", SpriteManager.Get(TechType.CyclopsHullModule1)); cyclopsDepthTab.AddCraftingNode(TechType.CyclopsHullModule1, TechType.CyclopsHullModule2, TechType.CyclopsHullModule3); ModCraftTreeTab cyclopsPowerTab = cyclopsTab.AddTabNode("CyclopsPowerModules", "Power Modules", SpriteManager.Get(TechType.PowerUpgradeModule)); cyclopsPowerTab.AddCraftingNode(TechType.PowerUpgradeModule); ModdedItems.AddModdedModules(cyclopsPowerTab); ModCraftTreeTab cyclopsRechargTab = cyclopsTab.AddTabNode("CyclopsRechargeTab", "Recharge Modules", SpriteManager.Get(TechType.SeamothSolarCharge)); cyclopsRechargTab.AddCraftingNode(TechType.CyclopsThermalReactorModule); ModdedItems.AddModdedModules(cyclopsRechargTab); ModCraftTreeTab exosuitTab = rootNode.AddTabNode("ExosuitModules", "Prawn Suit Modules", SpriteManager.Get(SpriteManager.Group.Category, "SeamothUpgrades_ExosuitModules")); ModCraftTreeTab exosuitDepthTab = exosuitTab.AddTabNode("ExosuitDepthModules", "Depth Modules", SpriteManager.Get(TechType.ExoHullModule1)); exosuitDepthTab.AddCraftingNode(TechType.ExoHullModule1, TechType.ExoHullModule2); exosuitTab.AddCraftingNode(TechType.ExosuitThermalReactorModule, TechType.ExosuitJetUpgradeModule, TechType.ExosuitPropulsionArmModule, TechType.ExosuitGrapplingArmModule, TechType.ExosuitDrillArmModule, TechType.ExosuitTorpedoArmModule); ModdedItems.AddModdedModules(exosuitTab); ModCraftTreeTab seamothTab = rootNode.AddTabNode("SeamothModules", "Seamoth Modules", SpriteManager.Get(SpriteManager.Group.Category, "SeamothUpgrades_SeamothModules")); ModCraftTreeTab seamothDepthTab = seamothTab.AddTabNode("SeamothDepthModules", "Depth Modules", SpriteManager.Get(TechType.VehicleHullModule1)); seamothDepthTab.AddCraftingNode(TechType.VehicleHullModule1, TechType.VehicleHullModule2, TechType.VehicleHullModule3); ModdedItems.AddModdedModules(seamothDepthTab); ModCraftTreeTab seamothAbilityTab = seamothTab.AddTabNode("SeamothAbilityModules", "Ability Modules", SpriteManager.Get(TechType.SeamothElectricalDefense)); seamothAbilityTab.AddCraftingNode(TechType.SeamothElectricalDefense, TechType.SeamothSonarModule, TechType.SeamothTorpedoModule); seamothTab.AddCraftingNode(TechType.SeamothSolarCharge); ModdedItems.AddModdedModules(seamothAbilityTab); ModdedItems.AddModdedModules(seamothTab); ModCraftTreeTab commonTab = rootNode.AddTabNode("CommonModules", "Common Modules", SpriteManager.Get(SpriteManager.Group.Category, "SeamothUpgrades_CommonModules")); commonTab.AddCraftingNode(TechType.VehicleArmorPlating, TechType.VehiclePowerUpgradeModule, TechType.VehicleStorageModule); ModdedItems.AddModdedModules(commonTab); ModCraftTreeTab torpedoesTab = rootNode.AddTabNode("TorpedoesModules", "Torpedoes", SpriteManager.Get(SpriteManager.Group.Category, "SeamothUpgrades_Torpedoes")); torpedoesTab.AddCraftingNode(TechType.WhirlpoolTorpedo, TechType.GasTorpedo); ModdedItems.AddModdedModules(torpedoesTab); }