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(); }
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 }; }
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; }
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(); }
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; }
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; }