Exemplo n.º 1
0
        public static void PostPatch()
        {
            FishPatcher.Patch(harmony);

            TechTypePatcher.Patch();
            CraftTreeTypePatcher.Patch();
            PingTypePatcher.Patch();
            EnumPatcher.Patch(harmony);

            CraftDataPatcher.Patch(harmony);
            CraftTreePatcher.Patch(harmony);
            ConsoleCommandsPatcher.Patch(harmony);
            LanguagePatcher.Patch(harmony);
            PrefabDatabasePatcher.PostPatch(harmony);
            SpritePatcher.Patch();
            KnownTechPatcher.Patch(harmony);
            BioReactorPatcher.Patch();
            OptionsPanelPatcher.Patch(harmony);
            ItemsContainerPatcher.Patch(harmony);
            PDAPatcher.Patch(harmony);
            PDAEncyclopediaPatcher.Patch(harmony);
            ItemActionPatcher.Patch(harmony);
            LootDistributionPatcher.Patch(harmony);
            WorldEntityDatabasePatcher.Patch(harmony);
            IngameMenuPatcher.Patch(harmony);
            TooltipPatcher.Patch(harmony);



            Logger.Debug("Saving TechType Cache");
            TechTypePatcher.cacheManager.SaveCache();
            Logger.Debug("Saving CraftTreeType Cache");
            CraftTreeTypePatcher.cacheManager.SaveCache();
        }
Exemplo n.º 2
0
        public static void PostPatch()
        {
            FishPatcher.Patch(harmony);

            TechTypePatcher.Patch();
            CraftTreeTypePatcher.Patch();
            PingTypePatcher.Patch();
            TechCategoryPatcher.Patch();
            TechGroupPatcher.Patch();
            BackgroundTypePatcher.Patch();
            EquipmentTypePatcher.Patch();
            EnumPatcher.Patch(harmony);

            CraftDataPatcher.Patch(harmony);
            CraftTreePatcher.Patch(harmony);
            ConsoleCommandsPatcher.Patch(harmony);
            LanguagePatcher.Patch(harmony);
            PrefabDatabasePatcher.PostPatch(harmony);
            SpritePatcher.Patch(harmony);
            KnownTechPatcher.Patch(harmony);
            BioReactorPatcher.Patch();
            OptionsPanelPatcher.Patch(harmony);
            ItemsContainerPatcher.Patch(harmony);
            PDALogPatcher.Patch(harmony);
            PDAPatcher.Patch(harmony);
            PDAEncyclopediaPatcher.Patch(harmony);
            ItemActionPatcher.Patch(harmony);
            LootDistributionPatcher.Patch(harmony);
            WorldEntityDatabasePatcher.Patch(harmony);
            LargeWorldStreamerPatcher.Patch(harmony);
            IngameMenuPatcher.Patch(harmony);
            TooltipPatcher.Patch(harmony);
            SurvivalPatcher.Patch(harmony);
            CustomSoundPatcher.Patch(harmony);



            Logger.Debug("Saving TechType Cache");
            TechTypePatcher.cacheManager.SaveCache();
            Logger.Debug("Saving CraftTreeType Cache");
            CraftTreeTypePatcher.cacheManager.SaveCache();
            Logger.Debug("Saving PingType Cache");
            PingTypePatcher.cacheManager.SaveCache();
        }
Exemplo n.º 3
0
 internal static void Initialize()
 {
     CustomFishPatcher.Patch(harmony);
     TechTypePatcher.Patch(harmony);
     CraftTreeTypePatcher.Patch(harmony);
     CraftDataPatcher.Patch(harmony);
     CraftTreePatcher.Patch(harmony);
     DevConsolePatcher.Patch(harmony);
     LanguagePatcher.Patch(harmony);
     ResourcesPatcher.Patch(harmony);
     PrefabDatabasePatcher.Patch(harmony);
     SpritePatcher.Patch();
     KnownTechPatcher.Patch(harmony);
     BioReactorPatcher.Patch(harmony);
     OptionsPanelPatcher.Patch(harmony);
     ItemsContainerPatcher.Patch(harmony);
     PDAPatcher.Patch(harmony);
     ItemActionPatcher.Patch(harmony);
 }
Exemplo n.º 4
0
        private static void Initialize()
        {
            var harmony = HarmonyInstance.Create("com.ahk1221.smlhelper");

            FishPatcher.Patch(harmony);

            TechTypePatcher.Patch();
            CraftTreeTypePatcher.Patch();
            PingTypePatcher.Patch();
            EnumPatcher.Patch(harmony);

            CraftDataPatcher.Patch(harmony);
            CraftTreePatcher.Patch(harmony);
            DevConsolePatcher.Patch(harmony);
            LanguagePatcher.Patch(harmony);
            PrefabDatabasePatcher.Patch(harmony);
            SpritePatcher.Patch();
            KnownTechPatcher.Patch(harmony);
            BioReactorPatcher.Patch(harmony);
            OptionsPanelPatcher.Patch(harmony);
            ItemsContainerPatcher.Patch(harmony);
            PDAPatcher.Patch(harmony);
            PDAEncyclopediaPatcher.Patch(harmony);
            ItemActionPatcher.Patch(harmony);
            LootDistributionPatcher.Patch(harmony);
            WorldEntityDatabasePatcher.Patch(harmony);
            IngameMenuPatcher.Patch(harmony);
            TooltipPatcher.Patch(harmony);



            Logger.Debug("Saving TechType Cache");
            TechTypePatcher.cacheManager.SaveCache();
            Logger.Debug("Saving CraftTreeType Cache");
            CraftTreeTypePatcher.cacheManager.SaveCache();
        }
Exemplo n.º 5
0
        private static CustomCraftTreeRoot CreateCustomTree(out CraftTree.Type craftType, List <IDecorationItem> decorationItems)
        {
            var rootNode = CraftTreeTypePatcher.CreateCustomCraftTreeAndType(DecorationsFabID, out craftType);

            // POSTERS
            var postersTab = rootNode.AddTabNode("Posters", LanguageHelper.GetFriendlyWord("Posters"), SpriteManager.Get(TechType.PosterKitty));

            postersTab.AddCraftingNode(TechType.PosterAurora,
                                       TechType.PosterExoSuit1,
                                       TechType.PosterExoSuit2,
                                       TechType.PosterKitty,
                                       TechType.Poster);

            // LAB ELEMENTS
            var labEquipmentTab = rootNode.AddTabNode("LabElements", LanguageHelper.GetFriendlyWord("LabElements"), SpriteManager.Get(TechType.LabEquipment1));

            // Lab elements -> Equipments Tab
            var analyzersTab = labEquipmentTab.AddTabNode("NonFunctionalAnalyzers", LanguageHelper.GetFriendlyWord("NonFunctionalAnalyzers"), SpriteManager.Get(TechType.LabEquipment3));

            analyzersTab.AddCraftingNode(TechType.LabEquipment1,
                                         TechType.LabEquipment2,
                                         TechType.LabEquipment3);

            // Lab elements -> Open glass containers Tab
            var openedGlassConteinersTab = labEquipmentTab.AddTabNode("OpenedGlassContainers", LanguageHelper.GetFriendlyWord("OpenedGlassContainers"), new Atlas.Sprite(ImageUtils.LoadTextureFromFile("./QMods/DecorationsMod/Assets/labcontaineropen2.png")));

            openedGlassConteinersTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "LabContainerOpen3"),
                                                     DecorationItemsHelper.getTechType(decorationItems, "LabContainerOpen2"),
                                                     DecorationItemsHelper.getTechType(decorationItems, "LabContainerOpen1"));

            // Lab elements -> Glass containers Tab
            var glassContainersTab = labEquipmentTab.AddTabNode("GlassContainers", LanguageHelper.GetFriendlyWord("GlassContainers"), SpriteManager.Get(TechType.LabContainer2));

            glassContainersTab.AddCraftingNode(TechType.LabContainer,
                                               TechType.LabContainer2,
                                               TechType.LabContainer3,
                                               DecorationItemsHelper.getTechType(decorationItems, "LabContainer4"));

            // Lab elements -> Furnitures Tab
            //var labFurnituresTab = labEquipmentTab.AddTabNode("LabFurnitures", LanguageHelper.GetFriendlyWord("LabFurnitures"), AssetsHelper.Assets.LoadAsset<Sprite>("labshelves"));

            // Lab elements items
            if (!ConfigSwitcher.SpecimenAnalyzer_asBuildable)
            {
                labEquipmentTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "DecorationsSpecimenAnalyzer"));
            }
            if (!ConfigSwitcher.LabCart_asBuildable)
            {
                labEquipmentTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "LabCart"));
            }
            labEquipmentTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "LabShelf"),
                                            DecorationItemsHelper.getTechType(decorationItems, "DecorationLabTube"),
                                            DecorationItemsHelper.getTechType(decorationItems, "LabRobotArm"));

            // ELECTRONICS
            //var electronicsTab = rootNode.AddTabNode("Electronics", LanguageHelper.GetFriendlyWord("Electronics"), AssetsHelper.Assets.LoadAsset<Sprite>("computer3"));
            // Wall monitors
            var wallMonitorsTab = rootNode.AddTabNode("WallMonitors", LanguageHelper.GetFriendlyWord("WallMonitors"), AssetsHelper.Assets.LoadAsset <Sprite>("computer3"));

            wallMonitorsTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "WallMonitor1"),
                                            DecorationItemsHelper.getTechType(decorationItems, "WallMonitor2"),
                                            DecorationItemsHelper.getTechType(decorationItems, "WallMonitor3"));
            // Circuit boxes
            var circuitBoxesTab = rootNode.AddTabNode("CircuitBoxes", LanguageHelper.GetFriendlyWord("CircuitBoxes"), AssetsHelper.Assets.LoadAsset <Sprite>("circuitbox3"));

            circuitBoxesTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "CircuitBox1"),
                                            DecorationItemsHelper.getTechType(decorationItems, "CircuitBox1b"),
                                            DecorationItemsHelper.getTechType(decorationItems, "CircuitBox2"),
                                            DecorationItemsHelper.getTechType(decorationItems, "CircuitBox2b"),
                                            DecorationItemsHelper.getTechType(decorationItems, "CircuitBox2c"),
                                            DecorationItemsHelper.getTechType(decorationItems, "CircuitBox2d"),
                                            DecorationItemsHelper.getTechType(decorationItems, "CircuitBox3"),
                                            DecorationItemsHelper.getTechType(decorationItems, "CircuitBox3b"),
                                            DecorationItemsHelper.getTechType(decorationItems, "CircuitBox3c"),
                                            DecorationItemsHelper.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"));

            // DRINKS & FOOD
            var barKitchenTab = rootNode.AddTabNode("DrinksAndFood", LanguageHelper.GetFriendlyWord("DrinksAndFood"), AssetsHelper.Assets.LoadAsset <Sprite>("barbottle05icon"));

            barKitchenTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "BarCup1"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BarCup2"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BarNapkins"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BarBottle1"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BarBottle2"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BarBottle3"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BarBottle4"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BarBottle5"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BarFood1"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BarFood2"));
            if (ConfigSwitcher.EnableNutrientBlock)
            {
                barKitchenTab.AddCraftingNode(TechType.NutrientBlock);
            }

            // OFFICE SUPPLIES
            var officeSuppliesTab = rootNode.AddTabNode("OfficeSupplies", LanguageHelper.GetFriendlyWord("OfficeSupplies"), AssetsHelper.Assets.LoadAsset <Sprite>("clipboardicon"));

            if (!ConfigSwitcher.EmptyDesk_asBuildable)
            {
                officeSuppliesTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "DecorationsEmptyDesk"));
            }
            officeSuppliesTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "Folder1"),
                                              DecorationItemsHelper.getTechType(decorationItems, "Folder3"),
                                              DecorationItemsHelper.getTechType(decorationItems, "Clipboard"),
                                              DecorationItemsHelper.getTechType(decorationItems, "PaperTrash"),
                                              DecorationItemsHelper.getTechType(decorationItems, "Pen"),
                                              DecorationItemsHelper.getTechType(decorationItems, "PenHolder"),
                                              DecorationItemsHelper.getTechType(decorationItems, "DecorativePDA"));

            // LEVIATHAN DOLLS
            var faunaTab = rootNode.AddTabNode("LeviathanDolls", LanguageHelper.GetFriendlyWord("LeviathanDolls"), AssetsHelper.Assets.LoadAsset <Sprite>("reaperleviathanicon"));

            faunaTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "ReefBackDoll"),
                                     DecorationItemsHelper.getTechType(decorationItems, "SeaTreaderDoll"),
                                     DecorationItemsHelper.getTechType(decorationItems, "ReaperLeviathanDoll"),
                                     DecorationItemsHelper.getTechType(decorationItems, "GhostLeviathanDoll"),
                                     DecorationItemsHelper.getTechType(decorationItems, "SeaDragonDoll"),
                                     DecorationItemsHelper.getTechType(decorationItems, "SeaEmperorDoll"));

            // SKELETONS
            var skeletonsTab = rootNode.AddTabNode("SkeletonsParts", LanguageHelper.GetFriendlyWord("GenericSkeletonName"), AssetsHelper.Assets.LoadAsset <Sprite>("reaperskullicon"));

            skeletonsTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "GenericSkeleton1"),
                                         DecorationItemsHelper.getTechType(decorationItems, "GenericSkeleton2"),
                                         DecorationItemsHelper.getTechType(decorationItems, "GenericSkeleton3"),
                                         DecorationItemsHelper.getTechType(decorationItems, "ReaperSkullDoll"),
                                         DecorationItemsHelper.getTechType(decorationItems, "ReaperSkeletonDoll"),
                                         DecorationItemsHelper.getTechType(decorationItems, "SeaDragonSkeleton"));

            // ACCESSORIES
            var accessoriesTab = rootNode.AddTabNode("Accessories", LanguageHelper.GetFriendlyWord("Accessories"), SpriteManager.Get(TechType.LuggageBag));

            accessoriesTab.AddCraftingNode(TechType.LuggageBag);
            if (!ConfigSwitcher.SofaStr1_asBuidable)
            {
                accessoriesTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "SofaStr1"));
            }
            if (!ConfigSwitcher.SofaStr2_asBuidable)
            {
                accessoriesTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "SofaStr2"));
            }
            if (!ConfigSwitcher.SofaStr3_asBuidable)
            {
                accessoriesTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "SofaStr3"));
            }
            if (!ConfigSwitcher.SofaCorner2_asBuidable)
            {
                accessoriesTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "SofaCorner2"));
            }
            accessoriesTab.AddCraftingNode(TechType.Cap1,
                                           TechType.Cap2);

            // TOYS
            var toysTab = rootNode.AddTabNode("Toys", LanguageHelper.GetFriendlyWord("Toys"), SpriteManager.Get(TechType.ArcadeGorgetoy));

            toysTab.AddCraftingNode(TechType.StarshipSouvenir,
                                    TechType.ArcadeGorgetoy,
                                    TechType.ToyCar);
            if (!ConfigSwitcher.Forklift_asBuidable)
            {
                toysTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "ForkLiftDoll"));
            }
            toysTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "CuddleFishDoll"));
            if (!ConfigSwitcher.MarkiDoll1_asBuildable)
            {
                toysTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "MarkiDoll1"));
            }
            if (!ConfigSwitcher.MarkiDoll2_asBuildable)
            {
                toysTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "MarkiDoll2"));
            }
            if (!ConfigSwitcher.JackSepticEye_asBuildable)
            {
                toysTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "JackSepticEyeDoll"));
            }
            if (!ConfigSwitcher.EatMyDiction_asBuidable)
            {
                toysTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "MarlaCat"));
            }

            return(rootNode);
        }
Exemplo n.º 6
0
        private static CustomCraftTreeRoot CreateFloraTree(out CraftTree.Type craftType, List <IDecorationItem> decorationItems)
        {
            var rootNode = CraftTreeTypePatcher.CreateCustomCraftTreeAndType(FloraFabID, out craftType);

            // Plant Air
            var plantAirTab = rootNode.AddTabNode("PlantAirTab", LanguageHelper.GetFriendlyWord("PlantAirTab"), AssetsHelper.Assets.LoadAsset <Sprite>("landplant1icon"));

            plantAirTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "LandPlant1"),
                                        DecorationItemsHelper.getTechType(decorationItems, "LandPlant2"),
                                        DecorationItemsHelper.getTechType(decorationItems, "LandPlant3"),
                                        DecorationItemsHelper.getTechType(decorationItems, "LandPlant4"),
                                        DecorationItemsHelper.getTechType(decorationItems, "LandPlant5"),
                                        DecorationItemsHelper.getTechType(decorationItems, "Fern2"),
                                        DecorationItemsHelper.getTechType(decorationItems, "Fern4"));

            // Tree Air
            var treeAirTab = rootNode.AddTabNode("TreeAirTab", LanguageHelper.GetFriendlyWord("TreeAirTab"), AssetsHelper.Assets.LoadAsset <Sprite>("landtree1seedicon"));

            treeAirTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "LandTree1"),
                                       DecorationItemsHelper.getTechType(decorationItems, "JungleTree1"),
                                       DecorationItemsHelper.getTechType(decorationItems, "JungleTree2"),
                                       DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant3a"),
                                       DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant3b"),
                                       DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant6a"),
                                       DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant6b"));

            // Tropical
            var tropicalPlantTab = rootNode.AddTabNode("TropicalPlantTab", LanguageHelper.GetFriendlyWord("TropicalPlantTab"), AssetsHelper.Assets.LoadAsset <Sprite>("tropicalplant1bicon"));

            tropicalPlantTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant1a"),
                                             DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant1b"),
                                             DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant2a"),
                                             DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant2b"),
                                             DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant7a"),
                                             DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant7b"),
                                             DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant10a"),
                                             DecorationItemsHelper.getTechType(decorationItems, "TropicalPlant10b"));

            // Existing air seeds from the game
            if (ConfigSwitcher.EnableRegularAirSeeds)
            {
                var regularAirSeedsTab = rootNode.AddTabNode("RegularAirSeedsTab", LanguageHelper.GetFriendlyWord("RegularAirSeedsTab"), SpriteManager.Get(TechType.BulboTreePiece));

                var edibleRegularAirTab = regularAirSeedsTab.AddTabNode("EdibleRegularAirTab", LanguageHelper.GetFriendlyWord("EdibleRegularAirTab"), SpriteManager.Get(TechType.MelonSeed));
                edibleRegularAirTab.AddCraftingNode(TechType.BulboTreePiece,
                                                    TechType.PurpleVegetable,
                                                    TechType.HangingFruit,
                                                    TechType.MelonSeed);

                var decorativeBigAirTab = regularAirSeedsTab.AddTabNode("DecorativeBigAirTab", LanguageHelper.GetFriendlyWord("DecorativeBigAirTab"), SpriteManager.Get(TechType.OrangePetalsPlantSeed));
                decorativeBigAirTab.AddCraftingNode(TechType.FernPalmSeed,
                                                    TechType.OrangePetalsPlantSeed,
                                                    TechType.PurpleVasePlantSeed,
                                                    TechType.OrangeMushroomSpore);

                var decorativeSmallAirTab = regularAirSeedsTab.AddTabNode("DecorativeSmallAirTab", LanguageHelper.GetFriendlyWord("DecorativeSmallAirTab"), SpriteManager.Get(TechType.PinkFlowerSeed));
                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"), SpriteManager.Get(TechType.CreepvineSeedCluster));

                var decorativeMediumWaterTab = regularWaterSeedsTab.AddTabNode("DecorativeMediumWaterTab", LanguageHelper.GetFriendlyWord("DecorativeMediumWaterTab"), SpriteManager.Get(TechType.SeaCrownSeed));
                decorativeMediumWaterTab.AddCraftingNode(TechType.GabeSFeatherSeed,
                                                         TechType.RedGreenTentacleSeed,
                                                         TechType.SeaCrownSeed,
                                                         TechType.ShellGrassSeed);

                var decorativeBushesWaterTab = regularWaterSeedsTab.AddTabNode("DecorativeBushesWaterTab", LanguageHelper.GetFriendlyWord("DecorativeBushesWaterTab"), SpriteManager.Get(TechType.PurpleStalkSeed));
                decorativeBushesWaterTab.AddCraftingNode(TechType.PurpleBranchesSeed,
                                                         TechType.RedRollPlantSeed,
                                                         TechType.RedBushSeed,
                                                         TechType.PurpleStalkSeed,
                                                         TechType.SpottedLeavesPlantSeed);

                var regularSmallWaterTab = regularWaterSeedsTab.AddTabNode("RegularSmallWaterTab", LanguageHelper.GetFriendlyWord("RegularSmallWaterTab"), SpriteManager.Get(TechType.AcidMushroomSpore));
                regularSmallWaterTab.AddCraftingNode(TechType.AcidMushroomSpore,
                                                     TechType.WhiteMushroomSpore,
                                                     TechType.JellyPlantSeed,
                                                     TechType.SmallFanSeed,
                                                     TechType.PurpleFanSeed,
                                                     TechType.PurpleTentacleSeed);

                var decorativeBigWaterTab = regularWaterSeedsTab.AddTabNode("DecorativeBigWaterTab", LanguageHelper.GetFriendlyWord("DecorativeBigWaterTab"), SpriteManager.Get(TechType.MembrainTreeSeed));
                decorativeBigWaterTab.AddCraftingNode(TechType.BluePalmSeed,
                                                      TechType.EyesPlantSeed,
                                                      TechType.MembrainTreeSeed,
                                                      TechType.RedConePlantSeed,
                                                      TechType.RedBasketPlantSeed,
                                                      TechType.SnakeMushroomSpore,
                                                      TechType.SpikePlantSeed);

                var functionalBigWaterTab = regularWaterSeedsTab.AddTabNode("FunctionalBigWaterTab", LanguageHelper.GetFriendlyWord("FunctionalBigWaterTab"), SpriteManager.Get(TechType.CreepvineSeedCluster));
                functionalBigWaterTab.AddCraftingNode(TechType.CreepvinePiece,
                                                      TechType.CreepvineSeedCluster,
                                                      TechType.BloodOil,
                                                      TechType.PurpleBrainCoralPiece,
                                                      TechType.KooshChunk);
            }

            // Plant Water
            var plantWaterTab = rootNode.AddTabNode("PlantWaterTab", LanguageHelper.GetFriendlyWord("PlantWaterTab"), AssetsHelper.Assets.LoadAsset <Sprite>("spottedreedsicon"));

            plantWaterTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "GreenReeds1"),
                                          DecorationItemsHelper.getTechType(decorationItems, "GreenReeds6"),
                                          DecorationItemsHelper.getTechType(decorationItems, "LostRiverPlant2"),
                                          DecorationItemsHelper.getTechType(decorationItems, "LostRiverPlant4"),
                                          DecorationItemsHelper.getTechType(decorationItems, "PlantMiddle11"));

            // Tree Water
            var treeWaterTab = rootNode.AddTabNode("TreeWaterTab", LanguageHelper.GetFriendlyWord("TreeWaterTab"), AssetsHelper.Assets.LoadAsset <Sprite>("floatingstone1icon"));

            treeWaterTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "CrabClawKelp2"),
                                         DecorationItemsHelper.getTechType(decorationItems, "CrabClawKelp1"),
                                         DecorationItemsHelper.getTechType(decorationItems, "CrabClawKelp3"),
                                         DecorationItemsHelper.getTechType(decorationItems, "PyroCoral1"),
                                         DecorationItemsHelper.getTechType(decorationItems, "PyroCoral2"),
                                         DecorationItemsHelper.getTechType(decorationItems, "PyroCoral3"),
                                         DecorationItemsHelper.getTechType(decorationItems, "FloatingStone1"));

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

            coralWaterTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "BrownCoralTubes1"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BrownCoralTubes2"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BrownCoralTubes3"),
                                          DecorationItemsHelper.getTechType(decorationItems, "BlueCoralTubes1"),
                                          DecorationItemsHelper.getTechType(decorationItems, "SmallDeco10"));

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

            amphibiousPlantsTab.AddCraftingNode(DecorationItemsHelper.getTechType(decorationItems, "SmallDeco3"),
                                                DecorationItemsHelper.getTechType(decorationItems, "CoveTree1"),
                                                DecorationItemsHelper.getTechType(decorationItems, "SmallDeco11"),
                                                DecorationItemsHelper.getTechType(decorationItems, "SmallDeco13"),
                                                DecorationItemsHelper.getTechType(decorationItems, "SmallDeco14"),
                                                DecorationItemsHelper.getTechType(decorationItems, "SmallDeco15Red"),
                                                DecorationItemsHelper.getTechType(decorationItems, "SmallDeco17Purple"));

            return(rootNode);
        }
Exemplo n.º 7
0
 /// <summary>
 /// Your first method call to start a new custom crafting tree.<br/>
 /// Creating a new CraftTree only makes sense if you're going to use it in a new type of <see cref="GhostCrafter"/>.
 /// </summary>
 /// <param name="name">The name for the new <see cref="CraftTree.Type" /> enum.</param>
 /// <param name="craftTreeType">The new enum instance for your custom craft tree type.</param>
 /// <returns>
 /// Returns the root node for your custom craft tree, as a new <see cref="ModCraftTreeRoot"/> instance.<br/>
 /// Build up your custom crafting tree from this root node.<br/>
 /// This tree will be automatically patched into the game. No further calls into <see cref="CraftTreeHandler"/> required.<para/>
 /// For more advanced usage, you can replace the default value of <see cref="ModCraftTreeRoot.CraftTreeCreation"/> with your own custom function.
 /// </returns>
 /// <seealso cref="ModCraftTreeNode"/>
 /// <seealso cref="ModCraftTreeLinkingNode"/>
 /// <seealso cref="ModCraftTreeTab"/>
 /// <seealso cref="ModCraftTreeCraft"/>
 ModCraftTreeRoot ICraftTreeHandler.CreateCustomCraftTreeAndType(string name, out CraftTree.Type craftTreeType)
 {
     return(CraftTreeTypePatcher.CreateCustomCraftTreeAndType(name, out craftTreeType));
 }