コード例 #1
0
ファイル: SuperSukiStaff.cs プロジェクト: jramosss/Smod
        public override void AddRecipes()
        {
            AdvancedRecipe recipe = new AdvancedRecipe(mod, ModContent.NPCType <Npcs.Town.Git>());

            recipe.AddIngredient(ModContent.ItemType <Items.Weapons.MuySukii>());
            recipe.AddIngredient(ItemID.LunarBar, 15);
            recipe.AddTile(TileID.LunarCraftingStation); //wouldn´t it be cool if i make my own tile?
            recipe.SetResult(this);
            recipe.AddRecipe();
        }
コード例 #2
0
ファイル: AdvancedRecipe.cs プロジェクト: Hengle/VoxelGame
    static AdvancedRecipe()
    {
        NoRecipe = new AdvancedRecipe(ResourceType.Nothing, ResourceType.Nothing, ResourceType.Nothing, 0, 0f, 0f, 0f, 0f);
        Food_and_MetalP_to_Supplies = new AdvancedRecipe(
            ResourceType.Food, ResourceType.metal_P, ResourceType.Supplies,
            FOOD_AND_METALP_TO_SUPPLIES_ID,
            10f, 1f, 5f,
            RECIPE_LVL2_WORKLOAD
            );

        supplyFactoryRecipes = new Recipe[2] {
            NoRecipe, Food_and_MetalP_to_Supplies
        };
    }
コード例 #3
0
    override public void Prepare()
    {
        PrepareWorkbuilding();
        recipe = AdvancedRecipe.NoRecipe;
        switch (ID)
        {
        case SUPPLIES_FACTORY_4_ID:
        case SUPPLIES_FACTORY_5_ID:
            specialization = FactorySpecialization.SuppliesFactory;
            break;

        default:
            specialization = FactorySpecialization.Unspecialized;
            break;
        }
        inputResourcesBuffer = 0;
    }
コード例 #4
0
    override protected void SetRecipe(Recipe br)
    {
        AdvancedRecipe ar = br as AdvancedRecipe;

        if (ar == null)
        {
            recipe = AdvancedRecipe.NoRecipe;
            ar     = AdvancedRecipe.NoRecipe;
        }
        else
        {
            recipe = ar;
        }
        if (recipe != AdvancedRecipe.NoRecipe)
        {
            if (inputResourcesBuffer > 0f)
            {
                colony.storage.AddResource(recipe.input, recipe.inputValue);
                inputResourcesBuffer = 0f;
            }
            if (inputResourcesBuffer2 > 0f)
            {
                colony.storage.AddResource(recipe.input2, recipe.inputValue2);
                inputResourcesBuffer2 = 0f;
            }
            if (outputResourcesBuffer > 0f)
            {
                colony.storage.AddResource(recipe.output, recipe.outputValue);
                outputResourcesBuffer = 0f;
            }
        }
        workflow                  = 0;
        recipe                    = ar;
        productionModeValue       = 0;
        workComplexityCoefficient = ar.workComplexity;
        CheckProductionModeConditions();
    }
コード例 #5
0
    override protected void SetRecipe(Recipe br)
    {
        AdvancedRecipe ar = br as AdvancedRecipe;

        if (ar == null)
        {
            recipe = AdvancedRecipe.NoRecipe;
            ar     = AdvancedRecipe.NoRecipe;
        }
        else
        {
            recipe = ar;
        }
        if (recipe != AdvancedRecipe.NoRecipe)
        {
            if (inputResourcesBuffer > 0f)
            {
                colony.storage.AddResource(recipe.input, recipe.inputValue);
                inputResourcesBuffer = 0f;
            }
            if (inputResourcesBuffer2 > 0f)
            {
                colony.storage.AddResource(recipe.input2, recipe.inputValue2);
                inputResourcesBuffer2 = 0f;
            }
            if (outputResourcesBuffer > 0f)
            {
                colony.storage.AddResource(recipe.output, recipe.outputValue);
                outputResourcesBuffer = 0f;
            }
        }
        workflow            = 0;
        recipe              = ar;
        productionModeValue = 0;
        workflowToProcess   = ar.workflowToResult;
        workPaused          = (productionMode == FactoryProductionMode.Limit) & colony.storage.standartResources[ar.output.ID] >= productionModeValue;
    }
コード例 #6
0
    public void SetObservingFactory(Factory f)
    {
        if (f == null)
        {
            SelfShutOff();
            return;
        }
        UIWorkbuildingObserver uwb = WorkBuilding.workbuildingObserver;

        if (uwb == null)
        {
            uwb = UIWorkbuildingObserver.InitializeWorkbuildingObserverScript();
        }
        else
        {
            uwb.gameObject.SetActive(true);
        }
        observingFactory    = f; isObserving = true;
        ignoreSetRecipeCall = true;
        advancedFactoryMode = f is AdvancedFactory;
        uwb.SetObservingPlace(observingFactory);

        Recipe[] recipes = observingFactory.GetFactoryRecipes();
        recipesDropdown.enabled = false;

        int positionInDropdown = 0;

        if (recipes.Length == 1 && recipes[0] == Recipe.NoRecipe)
        {
            recipesDropdown.interactable = false;
        }
        else
        {
            List <Dropdown.OptionData> recipeButtons = new List <Dropdown.OptionData>();
            Recipe r;
            if (advancedFactoryMode)
            {
                AdvancedRecipe ar = (observingFactory as AdvancedFactory).GetRecipe(), arf;
                for (int i = 0; i < recipes.Length; i++)
                {
                    r   = recipes[i];
                    arf = r as AdvancedRecipe;
                    if (arf == null)
                    {
                        recipeButtons.Add(new Dropdown.OptionData(Localization.GetResourceName(r.input.ID) + " -> " + Localization.GetResourceName(r.output.ID)));
                    }
                    else
                    {
                        recipeButtons.Add(new Dropdown.OptionData(
                                              Localization.GetResourceName(arf.input.ID) + " + " + Localization.GetResourceName(arf.input2.ID) + " -> " + Localization.GetResourceName(arf.output.ID)
                                              ));
                    }
                    if (r.ID == ar.ID)
                    {
                        positionInDropdown = i;
                    }
                }
            }
            else
            {
                Recipe rx = observingFactory.GetRecipe();
                for (int i = 0; i < recipes.Length; i++)
                {
                    r = recipes[i];
                    recipeButtons.Add(new Dropdown.OptionData(Localization.GetResourceName(r.input.ID) + " -> " + Localization.GetResourceName(r.output.ID)));
                    if (r.ID == rx.ID)
                    {
                        positionInDropdown = i;
                    }
                }
            }
            recipesDropdown.options      = recipeButtons;
            recipesDropdown.interactable = true;
        }
        recipesDropdown.value = positionInDropdown;
        RedrawRecipeData();
        recipesDropdown.enabled = true;
        //
        modesDropdown.value = (int)observingFactory.productionMode;
        if (observingFactory.productionMode == FactoryProductionMode.NoLimit)
        {
            limitPanel.SetActive(false);
        }
        else
        {
            showingProductionValue = observingFactory.productionModeValue;
            limitInputField.text   = showingProductionValue.ToString();
            limitPanel.SetActive(true);
        }
        //
        ignoreSetRecipeCall = false;
    }