示例#1
0
            static void Postfix(RockCrusherConfig __instance, ref GameObject go)
            {
                bool     RockDupeWork = DynamicBuildingsState.StateManager.State.RockDupe;
                Refinery refinery     = go.AddOrGet <Refinery>();

                refinery.duplicantOperated = RockDupeWork;
            }
示例#2
0
        private static void Postfix(RockCrusherConfig __instance)
        {
            Debug.Log("RockCrusherConfig.ConfigureBuildingTemplate postfix loaded");
            ComplexRecipe complexRecipe;

            Tag regolith_tag = SimHashes.Regolith.CreateTag();
            Tag sand_tag     = SimHashes.Sand.CreateTag();

            List <Element> list = new List <Element>()
            {
                ElementLoader.GetElement(SimHashes.Cuprite.CreateTag()),
                ElementLoader.GetElement(SimHashes.AluminumOre.CreateTag()),
                ElementLoader.GetElement(SimHashes.GoldAmalgam.CreateTag()),
                ElementLoader.GetElement(SimHashes.IronOre.CreateTag()),
                ElementLoader.GetElement(SimHashes.Wolframite.CreateTag()),
            };

            foreach (Element element in list)
            {
                Element highTempTransition = element.highTempTransition;
                Element lowTempTransition  = highTempTransition.lowTempTransition;
                if (lowTempTransition != element)
                {
                    ComplexRecipe.RecipeElement[] inputs = new ComplexRecipe.RecipeElement[]
                    {
                        new ComplexRecipe.RecipeElement(lowTempTransition.tag, 100f),
                        new ComplexRecipe.RecipeElement(regolith_tag, 50f),
                    };
                    ComplexRecipe.RecipeElement[] outputs = new ComplexRecipe.RecipeElement[]
                    {
                        new ComplexRecipe.RecipeElement(element.tag, 100f),
                        new ComplexRecipe.RecipeElement(sand_tag, 50f),
                    };
                    string obsolete_id = ComplexRecipeManager.MakeObsoleteRecipeID("RockCrusher", element.tag);
                    string text        = ComplexRecipeManager.MakeRecipeID("RockCrusher", inputs, outputs);
                    complexRecipe             = new ComplexRecipe(text, inputs, outputs);
                    complexRecipe.time        = 40f;
                    complexRecipe.description = string.Format("Grind up {0} to create {1}.", lowTempTransition.name, element.name);
                    complexRecipe.nameDisplay = ComplexRecipe.RecipeNameDisplay.IngredientToResult;
                    complexRecipe.fabricators = new List <Tag>
                    {
                        TagManager.Create("RockCrusher")
                    };
                    ComplexRecipeManager.Get().AddObsoleteIDMapping(obsolete_id, text);
                }
            }
        }
示例#3
0
        private static bool Prefix(RockCrusherConfig __instance, ref GameObject go)
        {
            Debug.Log("Refinement Plus - RockCrusherConfig Postfix: ");
            Prioritizable.AddRef(go);
            go.AddOrGet <DropAllWorkable>();
            go.AddOrGet <BuildingComplete>().isManuallyOperated = true;
            var fabricator = go.AddOrGet <ComplexFabricator>();

            fabricator.sideScreenStyle   = ComplexFabricatorSideScreen.StyleSetting.ListQueueHybrid;
            fabricator.duplicantOperated = true;
            go.AddOrGet <FabricatorIngredientStatusManager>();
            go.AddOrGet <CopyBuildingSettings>();
            var fabricatorWorkable = go.AddOrGet <ComplexFabricatorWorkable>();

            BuildingTemplates.CreateComplexFabricatorStorage(go, fabricator);
            fabricatorWorkable.overrideAnims = new[]
            {
                Assets.GetAnim((HashedString)"anim_interacts_rockrefinery_kanim")
            };
            fabricatorWorkable.workingPstComplete = new[]
            {
                (HashedString)"working_pst_complete"
            };
            var methods = new Methods();

            methods.clayToSlime();
            methods.limeCrushing();
            methods.fossilCrushing();
            methods.maficToRegolith();
            methods.mineralsCrushing();
            methods.oresToRefined();
            methods.organicToFert();
            methods.refinedToOres();
            methods.saltCrushing();
            methods.snowCone();
            return(false);
        }
示例#4
0
        private static bool Prefix(RockCrusherConfig __instance, ref GameObject go)
        {
            Debug.Log("Refinement Plus - RockCrusherConfig Postfix: ");

            Prioritizable.AddRef(go);
            go.AddOrGet <DropAllWorkable>();
            go.AddOrGet <BuildingComplete>().isManuallyOperated = true;
            ComplexFabricator complexFabricator = go.AddOrGet <ComplexFabricator>();

            complexFabricator.sideScreenStyle   = ComplexFabricatorSideScreen.StyleSetting.ListQueueHybrid;
            complexFabricator.duplicantOperated = true;
            go.AddOrGet <FabricatorIngredientStatusManager>();
            go.AddOrGet <CopyBuildingSettings>();
            ComplexFabricatorWorkable complexFabricatorWorkable = go.AddOrGet <ComplexFabricatorWorkable>();

            BuildingTemplates.CreateComplexFabricatorStorage(go, complexFabricator);
            complexFabricatorWorkable.overrideAnims = new KAnimFile[]
            { Assets.GetAnim("anim_interacts_rockrefinery_kanim") };
            complexFabricatorWorkable.workingPstComplete = "working_pst_complete";

            Methods mtd = new Methods();

            /* Clay To Slime */ mtd.clayToSlime();
            //* Corpses To Meal And Lime */		mtd.corpseToMeal();
            /* Eggs To Lime */ mtd.limeCrushing();
            /* Fossils To Lime And Sand */ mtd.fossilCrushing();
            /* Mafic Rock To Regolith */ mtd.maficToRegolith();
            /* Minerals To Sand Overhaul */ mtd.mineralsCrushing();
            /* Ores To Refined */ mtd.oresToRefined();
            /* Organic To Fert */ mtd.organicToFert();
            /* Refined To Ores */ mtd.refinedToOres();
            /* Salt To Table Salt */ mtd.saltCrushing();
            /* Crush Ice */ mtd.snowCone();

            return(false);
        }