Recipe instance

This commit is contained in:
paulevsGitch 2020-09-24 18:03:41 +03:00
parent 98b714827a
commit 911fa8ee6d
9 changed files with 33 additions and 28 deletions

View file

@ -29,19 +29,19 @@ public class BetterEnd implements ModInitializer {
CraftingRecipes.register(); CraftingRecipes.register();
// TEST // // TEST //
new RecipeBuilder("test_block", Blocks.ANVIL) RecipeBuilder.make("test_block", Blocks.ANVIL)
.setShape(new String[] {"I#", "#I"}) .setShape(new String[] {"I#", "#I"})
.addMaterial('I', Items.STRING) .addMaterial('I', Items.STRING)
.addMaterial('#', Items.APPLE) .addMaterial('#', Items.APPLE)
.build(); .build();
new RecipeBuilder("test_block_shaped", Blocks.STONE) RecipeBuilder.make("test_block_shaped", Blocks.STONE)
.setShape(new String[] {"I#", "#I"}) .setShape(new String[] {"I#", "#I"})
.addMaterial('I', Items.STRING) .addMaterial('I', Items.STRING)
.addMaterial('#', ItemTags.LOGS) .addMaterial('#', ItemTags.LOGS)
.build(); .build();
new RecipeBuilder("test_item_shapeless", Items.SUGAR) RecipeBuilder.make("test_item_shapeless", Items.SUGAR)
.setList("I#Y") .setList("I#Y")
.addMaterial('I', Items.STRING) .addMaterial('I', Items.STRING)
.addMaterial('#', ItemTags.LOGS) .addMaterial('#', ItemTags.LOGS)

View file

@ -3,7 +3,6 @@ package ru.betterend.blocks;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Material; import net.minecraft.block.Material;
import net.minecraft.block.MaterialColor; import net.minecraft.block.MaterialColor;

View file

@ -5,7 +5,6 @@ import java.util.List;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Material; import net.minecraft.block.Material;
import net.minecraft.block.MaterialColor; import net.minecraft.block.MaterialColor;
@ -18,7 +17,6 @@ import net.minecraft.loot.context.LootContext;
import net.minecraft.loot.context.LootContextParameters; import net.minecraft.loot.context.LootContextParameters;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
import ru.betterend.util.MHelper; import ru.betterend.util.MHelper;
public class BlockOre extends OreBlock { public class BlockOre extends OreBlock {

View file

@ -1,7 +1,6 @@
package ru.betterend.blocks; package ru.betterend.blocks;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.Material; import net.minecraft.block.Material;
import net.minecraft.block.MaterialColor; import net.minecraft.block.MaterialColor;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;

View file

@ -12,7 +12,9 @@ import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import net.minecraft.inventory.Inventory; import net.minecraft.inventory.Inventory;
import net.minecraft.recipe.Recipe; import net.minecraft.recipe.Recipe;
import net.minecraft.recipe.RecipeManager; import net.minecraft.recipe.RecipeManager;

View file

@ -4,17 +4,16 @@ import net.minecraft.block.Block;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.Items; import net.minecraft.item.Items;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import ru.betterend.registry.BlockRegistry; import ru.betterend.registry.BlockRegistry;
public class CraftingRecipes { public class CraftingRecipes {
public static void register() { public static void register() {
if (blockExists(BlockRegistry.ENDER_BLOCK)) { 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" }) .setShape(new String[] { "OO", "OO" })
.addMaterial('O', Items.ENDER_PEARL) .addMaterial('O', Items.ENDER_PEARL)
.build(); .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) .addMaterial('#', BlockRegistry.ENDER_BLOCK)
.setOutputCount(4) .setOutputCount(4)
.setList("#") .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(); 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(); return Registry.BLOCK.getId(block) != Registry.BLOCK.getDefaultId();
} }

View file

@ -1,7 +1,9 @@
package ru.betterend.recipe; package ru.betterend.recipe;
import java.util.Map; import java.util.Map;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import net.minecraft.recipe.Recipe; import net.minecraft.recipe.Recipe;
import net.minecraft.recipe.RecipeType; import net.minecraft.recipe.RecipeType;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;

View file

@ -4,7 +4,6 @@ import java.util.Map;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import net.minecraft.block.Block;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemConvertible;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -19,24 +18,32 @@ import net.minecraft.util.collection.DefaultedList;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
public class RecipeBuilder { public class RecipeBuilder {
private final String name; private static final RecipeBuilder INSTANCE = new RecipeBuilder();
private final Item output;
private String group = ""; private String name;
private RecipeType<?> type = RecipeType.CRAFTING; private ItemConvertible output;
private boolean shaped = true;
private String[] shape = new String[] {"#"}; private String group;
private RecipeType<?> type;
private boolean shaped;
private String[] shape;
private Map<Character, Ingredient> materialKeys = Maps.newHashMap(); private Map<Character, Ingredient> materialKeys = Maps.newHashMap();
private int count = 1; private int count;
public RecipeBuilder(String name, Item output) { private RecipeBuilder() {}
this.name = name;
this.output = output;
}
public RecipeBuilder(String name, Block output) { public static RecipeBuilder make(String name, ItemConvertible output) {
this.name = name; INSTANCE.name = name;
this.output = output.asItem(); 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) { public RecipeBuilder setGroup(String group) {

View file

@ -5,7 +5,6 @@ import net.minecraft.item.BlockItem;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.blocks.AeterniumBlock; import ru.betterend.blocks.AeterniumBlock;
import ru.betterend.blocks.BlockEndstoneDust; import ru.betterend.blocks.BlockEndstoneDust;