public static List <CraftingRecipe> getCraftableRecipes(CraftingRecipeType CraftingRecipeType, ICollection <ItemStack> items) { List <CraftingRecipe> craftableRecipes = new List <CraftingRecipe>(); foreach (CraftingRecipe recipe in GameManager.database.getCraftingRecipes(CraftingRecipeType)) { if (canCraftRecipe(recipe, items)) { craftableRecipes.Add(recipe); } } return(craftableRecipes); }
public List <CraftingRecipe> getCraftingRecipes(CraftingRecipeType CraftingRecipeType) { switch (CraftingRecipeType) { case (CraftingRecipeType.FLOOR): { return(floorCraftingRecipes); } case (CraftingRecipeType.PLAYER): { return(normalCraftingRecipes); } default: { return(null); } } return(null); }
public void setRecipeType(CraftingRecipeType type) { recipeType = type; }
private void displayEditRecipe() { recipeType = (CraftingRecipeType)EditorGUILayout.EnumPopup("Recipe Type: ", recipeType); List <CraftingRecipe> recipeList = database.getCraftingRecipes(recipeType); GUILayout.BeginHorizontal(); if (selectedIndex > 0) { if (GUILayout.Button("Privious")) { selectedIndex--; } } if (selectedIndex < recipeList.Count - 1) { if (GUILayout.Button("Next")) { selectedIndex++; } } if (recipeList.Count > 0) { if (GUILayout.Button("Last")) { selectedIndex = recipeList.Count - 1; } } List <String> strList = new List <string>(); for (int i = 0; i < recipeList.Count; i++) { CraftingRecipe recipe = recipeList[i]; strList.Add("[" + i + "] " + recipe.getRecipeName()); } selectedIndex = EditorGUILayout.Popup(selectedIndex, strList.ToArray()); GUILayout.EndHorizontal(); if (selectedIndex >= recipeList.Count) { selectedIndex = recipeList.Count - 1; } if (GUILayout.Button("Add New Recipe")) { CraftingRecipe recipe = new CraftingRecipe(); recipeList.Add(recipe); selectedIndex = recipeList.Count - 1; } if (selectedIndex >= recipeList.Count) { selectedIndex = recipeList.Count - 1; } if (selectedIndex >= 0) { CraftingRecipe recipe = recipeList[selectedIndex]; EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Recipe For " + recipe.getRecipeName()); if (GUILayout.Button("Remove This Recipe")) { recipeList.RemoveAt(selectedIndex); } EditorGUILayout.EndHorizontal(); recipe.time = EditorGUILayout.IntSlider("Crafting Time: ", recipe.time, 0, 60); GUILayout.Space(10); editDropTable(recipe.resultTable); EditorGUILayout.Space(); EditorGUILayout.PrefixLabel("------Required Items------"); for (int i = 0; i < recipe.requiredItems.Count; i++) { ItemStack item = recipe.requiredItems[i]; EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Required Item " + i); if (GUILayout.Button("Remove This Required Item")) { recipe.requiredItems.RemoveAt(i); } EditorGUILayout.EndHorizontal(); item.material = (MyMaterial)EditorGUILayout.EnumPopup("Material: ", item.material); item.amount = (int)EditorGUILayout.IntSlider("Amount Needed: ", item.amount, 1, 10); } if (GUILayout.Button("Add Required Item")) { recipe.requiredItems.Add(new ItemStack(MyMaterial.STONE, 1)); } } }