|
@@ -18,104 +18,12 @@ import net.minecraftforge.registries.IForgeRegistry;*/
|
|
|
|
|
|
public class ModRecipes
|
|
public class ModRecipes
|
|
{
|
|
{
|
|
-
|
|
+
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- {
|
|
|
|
- HashMap<Character, Ingredient> map = getPatternMap(chars, stacks);
|
|
|
|
- NonNullList<Ingredient> nonnulllist = getIngredientList(pattern, map);
|
|
|
|
- return new ShapedRecipe(group, pattern[0].length(), pattern.length, nonnulllist, result);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private static HashMap<Character, Ingredient> getPatternMap(char[] chars, ItemStack[][] stacks)
|
|
|
|
- {
|
|
|
|
- HashMap<Character, Ingredient> map = new HashMap<>();
|
|
|
|
- for(int i = 0; i < chars.length; i++)
|
|
|
|
- {
|
|
|
|
- map.put(chars[i], Ingredient.fromStacks(copyItemStack(stacks[i])));
|
|
|
|
- }
|
|
|
|
- map.put(' ', Ingredient.EMPTY);
|
|
|
|
- return map;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private static NonNullList<Ingredient> getIngredientList(String[] pattern, HashMap<Character, Ingredient> map)
|
|
|
|
- {
|
|
|
|
- int w = pattern[0].length();
|
|
|
|
- NonNullList<Ingredient> nonnulllist = NonNullList.<Ingredient>withSize(w * pattern.length, Ingredient.EMPTY);
|
|
|
|
- for(int i = 0; i < pattern.length; i++)
|
|
|
|
- {
|
|
|
|
- for (int j = 0; j < pattern[i].length(); j++)
|
|
|
|
- {
|
|
|
|
- nonnulllist.set(j + w * i, map.get(pattern[i].charAt(j)));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return nonnulllist;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private static void registerShaped(IForgeRegistry<IRecipe> r, String group, String[] pattern, ItemStack result, char[] chars, ItemStack[][] stacks)
|
|
|
|
- {
|
|
|
|
- ShapedRecipes recipe = newShapedRecipe(group, pattern, result, chars, stacks);
|
|
|
|
- recipe.setRegistryName(buildRegistryName(result));
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- r.register(recipe);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private static ShapelessRecipes newShapelessRecipe(String group, ItemStack result, ItemStack[][] stacks)
|
|
|
|
- {
|
|
|
|
- NonNullList<Ingredient> nonnulllist = NonNullList.<Ingredient>withSize(stacks.length, Ingredient.EMPTY);
|
|
|
|
- for(int i = 0; i < stacks.length; i++)
|
|
|
|
- {
|
|
|
|
- nonnulllist.set(i, Ingredient.fromStacks(copyItemStack(stacks[i])));
|
|
|
|
- }
|
|
|
|
- return new ShapelessRecipes(group, result, nonnulllist);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private static void registerShapeless(IForgeRegistry<IRecipe> r, String group, ItemStack result, ItemStack[][] stacks)
|
|
|
|
- {
|
|
|
|
- ShapelessRecipes recipe = newShapelessRecipe(group, result, stacks);
|
|
|
|
- recipe.setRegistryName(buildRegistryName(result));
|
|
|
|
- r.register(recipe);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private static void registerShapeless(IForgeRegistry<IRecipe> r, String group, ItemStack result, Item[] items)
|
|
|
|
- {
|
|
|
|
- ItemStack[][] stacks = new ItemStack[items.length][1];
|
|
|
|
- for(int i = 0; i < items.length; i++)
|
|
|
|
- {
|
|
|
|
- stacks[i][0] = new ItemStack(items[i]);
|
|
|
|
- }
|
|
|
|
- registerShapeless(r, group, result, stacks);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private static ItemStack[] copyItemStack(ItemStack[] stacks)
|
|
|
|
- {
|
|
|
|
- ItemStack[] copyStacks = new ItemStack[stacks.length];
|
|
|
|
- for(int i = 0; i < copyStacks.length; i++)
|
|
|
|
- {
|
|
|
|
- copyStacks[i] = stacks[i].copy();
|
|
|
|
- }
|
|
|
|
- return copyStacks;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private static String buildRegistryName(ItemStack stack)
|
|
|
|
- {
|
|
|
|
- id++;
|
|
|
|
- if(stack.getMetadata() != 0)
|
|
|
|
- {
|
|
|
|
- return stack.getItem().getRegistryName().getResourcePath() + "_" + stack.getMetadata() + "_" + id;
|
|
|
|
- }
|
|
|
|
- return stack.getItem().getRegistryName().getResourcePath() + "_" + id;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- private static int id = 0;
|
|
+
|
|
|
|
|
|
public static void init(IForgeRegistry<IRecipe> r)
|
|
public static void init(IForgeRegistry<IRecipe> r)
|
|
{
|
|
{
|
|
@@ -142,8 +50,6 @@ public class ModRecipes
|
|
});
|
|
});
|
|
registerShaped(r, "", new String[] {"XXX", "XXX", "XXX"}, new ItemStack(ModItems.hayBundle, 9),
|
|
registerShaped(r, "", new String[] {"XXX", "XXX", "XXX"}, new ItemStack(ModItems.hayBundle, 9),
|
|
new char[] {'X'}, new ItemStack[][] {{new ItemStack(Blocks.TALLGRASS, 1, 1), new ItemStack(Blocks.TALLGRASS, 1, 2)}});
|
|
new char[] {'X'}, new ItemStack[][] {{new ItemStack(Blocks.TALLGRASS, 1, 1), new ItemStack(Blocks.TALLGRASS, 1, 2)}});
|
|
- registerShaped(r, "", new String[] {"XXX"}, new ItemStack(ModItems.realHayBed, 3),
|
|
|
|
- new char[] {'X'}, new ItemStack[][] {{new ItemStack(ModBlocks.realHayBlock)}});
|
|
|
|
registerShaped(r, "", new String[] {" X ", "XXX"}, new ItemStack(ModItems.strawHat),
|
|
registerShaped(r, "", new String[] {" X ", "XXX"}, new ItemStack(ModItems.strawHat),
|
|
new char[] {'X'}, new ItemStack[][] {{new ItemStack(Items.WHEAT)}});
|
|
new char[] {'X'}, new ItemStack[][] {{new ItemStack(Items.WHEAT)}});
|
|
registerShaped(r, "", new String[] {" S ", "SCS", "WWW"}, new ItemStack(ModItems.campFire),
|
|
registerShaped(r, "", new String[] {" S ", "SCS", "WWW"}, new ItemStack(ModItems.campFire),
|