From 911fa8ee6d3e3b3cac1bd078de8ff6c20f60c71a Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 24 Sep 2020 18:03:41 +0300 Subject: [PATCH] Recipe instance --- src/main/java/ru/betterend/BetterEnd.java | 6 +-- .../ru/betterend/blocks/AeterniumBlock.java | 1 - .../java/ru/betterend/blocks/BlockOre.java | 2 - .../ru/betterend/blocks/TerminiteBlock.java | 1 - .../mixin/common/RecipeManagerMixin.java | 2 + .../ru/betterend/recipe/CraftingRecipes.java | 9 ++--- .../ru/betterend/recipe/EndRecipeManager.java | 2 + .../ru/betterend/recipe/RecipeBuilder.java | 37 +++++++++++-------- .../ru/betterend/registry/BlockRegistry.java | 1 - 9 files changed, 33 insertions(+), 28 deletions(-) diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index e3bdb02f..93ce03fa 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -29,19 +29,19 @@ public class BetterEnd implements ModInitializer { CraftingRecipes.register(); // TEST // - new RecipeBuilder("test_block", Blocks.ANVIL) + RecipeBuilder.make("test_block", Blocks.ANVIL) .setShape(new String[] {"I#", "#I"}) .addMaterial('I', Items.STRING) .addMaterial('#', Items.APPLE) .build(); - new RecipeBuilder("test_block_shaped", Blocks.STONE) + RecipeBuilder.make("test_block_shaped", Blocks.STONE) .setShape(new String[] {"I#", "#I"}) .addMaterial('I', Items.STRING) .addMaterial('#', ItemTags.LOGS) .build(); - new RecipeBuilder("test_item_shapeless", Items.SUGAR) + RecipeBuilder.make("test_item_shapeless", Items.SUGAR) .setList("I#Y") .addMaterial('I', Items.STRING) .addMaterial('#', ItemTags.LOGS) diff --git a/src/main/java/ru/betterend/blocks/AeterniumBlock.java b/src/main/java/ru/betterend/blocks/AeterniumBlock.java index 103421f3..3aa5a7c9 100644 --- a/src/main/java/ru/betterend/blocks/AeterniumBlock.java +++ b/src/main/java/ru/betterend/blocks/AeterniumBlock.java @@ -3,7 +3,6 @@ package ru.betterend.blocks; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; - import net.minecraft.block.BlockState; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; diff --git a/src/main/java/ru/betterend/blocks/BlockOre.java b/src/main/java/ru/betterend/blocks/BlockOre.java index 23a739dc..f3050e47 100644 --- a/src/main/java/ru/betterend/blocks/BlockOre.java +++ b/src/main/java/ru/betterend/blocks/BlockOre.java @@ -5,7 +5,6 @@ import java.util.List; import com.google.common.collect.Lists; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; - import net.minecraft.block.BlockState; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; @@ -18,7 +17,6 @@ import net.minecraft.loot.context.LootContext; import net.minecraft.loot.context.LootContextParameters; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.math.MathHelper; - import ru.betterend.util.MHelper; public class BlockOre extends OreBlock { diff --git a/src/main/java/ru/betterend/blocks/TerminiteBlock.java b/src/main/java/ru/betterend/blocks/TerminiteBlock.java index 653e4923..8ebeefc7 100644 --- a/src/main/java/ru/betterend/blocks/TerminiteBlock.java +++ b/src/main/java/ru/betterend/blocks/TerminiteBlock.java @@ -1,7 +1,6 @@ package ru.betterend.blocks; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; - import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; import net.minecraft.sound.BlockSoundGroup; diff --git a/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java b/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java index 8b97c737..5575d246 100644 --- a/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java @@ -12,7 +12,9 @@ import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + import com.google.gson.JsonElement; + import net.minecraft.inventory.Inventory; import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeManager; diff --git a/src/main/java/ru/betterend/recipe/CraftingRecipes.java b/src/main/java/ru/betterend/recipe/CraftingRecipes.java index dee45f41..6f52a2d3 100644 --- a/src/main/java/ru/betterend/recipe/CraftingRecipes.java +++ b/src/main/java/ru/betterend/recipe/CraftingRecipes.java @@ -4,17 +4,16 @@ import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.Items; import net.minecraft.util.registry.Registry; - import ru.betterend.registry.BlockRegistry; public class CraftingRecipes { public static void register() { if (blockExists(BlockRegistry.ENDER_BLOCK)) { - new RecipeBuilder("be_ender_pearl_to_block", BlockRegistry.ENDER_BLOCK) + RecipeBuilder.make("be_ender_pearl_to_block", BlockRegistry.ENDER_BLOCK) .setShape(new String[] { "OO", "OO" }) .addMaterial('O', Items.ENDER_PEARL) .build(); - new RecipeBuilder("be_ender_block_to_pearl", Items.ENDER_PEARL) + RecipeBuilder.make("be_ender_block_to_pearl", Items.ENDER_PEARL) .addMaterial('#', BlockRegistry.ENDER_BLOCK) .setOutputCount(4) .setList("#") @@ -22,12 +21,12 @@ public class CraftingRecipes { } } - private static boolean itemExists(Item item) + protected static boolean itemExists(Item item) { return Registry.ITEM.getId(item) != Registry.ITEM.getDefaultId(); } - private static boolean blockExists(Block block) + protected static boolean blockExists(Block block) { return Registry.BLOCK.getId(block) != Registry.BLOCK.getDefaultId(); } diff --git a/src/main/java/ru/betterend/recipe/EndRecipeManager.java b/src/main/java/ru/betterend/recipe/EndRecipeManager.java index f281eb35..dd766de8 100644 --- a/src/main/java/ru/betterend/recipe/EndRecipeManager.java +++ b/src/main/java/ru/betterend/recipe/EndRecipeManager.java @@ -1,7 +1,9 @@ package ru.betterend.recipe; import java.util.Map; + import com.google.common.collect.Maps; + import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeType; import net.minecraft.util.Identifier; diff --git a/src/main/java/ru/betterend/recipe/RecipeBuilder.java b/src/main/java/ru/betterend/recipe/RecipeBuilder.java index 7aa7e5c6..2272dc02 100644 --- a/src/main/java/ru/betterend/recipe/RecipeBuilder.java +++ b/src/main/java/ru/betterend/recipe/RecipeBuilder.java @@ -4,7 +4,6 @@ import java.util.Map; import com.google.common.collect.Maps; -import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemStack; @@ -19,24 +18,32 @@ import net.minecraft.util.collection.DefaultedList; import ru.betterend.BetterEnd; public class RecipeBuilder { - private final String name; - private final Item output; + private static final RecipeBuilder INSTANCE = new RecipeBuilder(); - private String group = ""; - private RecipeType type = RecipeType.CRAFTING; - private boolean shaped = true; - private String[] shape = new String[] {"#"}; + private String name; + private ItemConvertible output; + + private String group; + private RecipeType type; + private boolean shaped; + private String[] shape; private Map materialKeys = Maps.newHashMap(); - private int count = 1; + private int count; - public RecipeBuilder(String name, Item output) { - this.name = name; - this.output = output; - } + private RecipeBuilder() {} - public RecipeBuilder(String name, Block output) { - this.name = name; - this.output = output.asItem(); + public static RecipeBuilder make(String name, ItemConvertible output) { + INSTANCE.name = name; + INSTANCE.output = output; + + INSTANCE.group = ""; + INSTANCE.type = RecipeType.CRAFTING; + INSTANCE.shaped = true; + INSTANCE.shape = new String[] {"#"}; + INSTANCE.materialKeys.clear(); + INSTANCE.count = 1; + + return INSTANCE; } public RecipeBuilder setGroup(String group) { diff --git a/src/main/java/ru/betterend/registry/BlockRegistry.java b/src/main/java/ru/betterend/registry/BlockRegistry.java index 297676aa..5d159634 100644 --- a/src/main/java/ru/betterend/registry/BlockRegistry.java +++ b/src/main/java/ru/betterend/registry/BlockRegistry.java @@ -5,7 +5,6 @@ import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; - import ru.betterend.BetterEnd; import ru.betterend.blocks.AeterniumBlock; import ru.betterend.blocks.BlockEndstoneDust;