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);
    }
Beispiel #2
0
    public List <CraftingRecipe> getCraftingRecipes(CraftingRecipeType CraftingRecipeType)
    {
        switch (CraftingRecipeType)
        {
        case (CraftingRecipeType.FLOOR): {
            return(floorCraftingRecipes);
        }

        case (CraftingRecipeType.PLAYER): {
            return(normalCraftingRecipes);
        }

        default: {
            return(null);
        }
        }
        return(null);
    }
Beispiel #3
0
 public void setRecipeType(CraftingRecipeType type)
 {
     recipeType = type;
 }
Beispiel #4
0
    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));
            }
        }
    }