diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index 096aae98..22ff394c 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -1,7 +1,11 @@ package ru.betterend; import net.fabricmc.api.ModInitializer; +import net.minecraft.block.Blocks; +import net.minecraft.item.Items; +import net.minecraft.tag.ItemTags; import ru.betterend.config.MainConfig; +import ru.betterend.recipe.RecipeBuilder; import ru.betterend.registry.BiomeRegistry; import ru.betterend.registry.BlockRegistry; import ru.betterend.registry.FeatureRegistry; @@ -21,5 +25,25 @@ public class BetterEnd implements ModInitializer { FeatureRegistry.register(); BiomeRegistry.register(); BetterEndBiomeSource.register(); + + // TEST // + new RecipeBuilder("test_block", Blocks.ANVIL) + .setShape(new String[] {"I#", "#I"}) + .addMaterial('I', Items.STRING) + .addMaterial('#', Items.APPLE) + .build(); + + new RecipeBuilder("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) + .setShape(new String[] {"I#Y"}) + .addMaterial('I', Items.STRING) + .addMaterial('#', ItemTags.LOGS) + .addMaterial('Y', ItemTags.ARROWS) + .build(); } } diff --git a/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java b/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java index 63ea84b8..8b97c737 100644 --- a/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java @@ -30,7 +30,7 @@ public class RecipeManagerMixin @Shadow private Map, Map>> recipes; - @Inject(method = "apply", at = @At(value = "TAIL")) + @Inject(method = "apply", at = @At(value = "RETURN")) private void setRecipes(Map map, ResourceManager resourceManager, Profiler profiler, CallbackInfo info) { recipes = EndRecipeManager.getMap(recipes); diff --git a/src/main/java/ru/betterend/recipe/RecipeBuilder.java b/src/main/java/ru/betterend/recipe/RecipeBuilder.java index fa7d6995..a839158e 100644 --- a/src/main/java/ru/betterend/recipe/RecipeBuilder.java +++ b/src/main/java/ru/betterend/recipe/RecipeBuilder.java @@ -26,7 +26,7 @@ public class RecipeBuilder { private boolean shaped = true; private String[] shape = new String[] {"#"}; private Map materialKeys = Maps.newHashMap(); - private int count; + private int count = 1; public RecipeBuilder(String name, Item output) { this.name = name; @@ -48,6 +48,12 @@ public class RecipeBuilder { return this; } + public RecipeBuilder setList(String shape) { + this.shape = new String[] {shape}; + this.shaped = false; + return this; + } + public RecipeBuilder addMaterial(char key, Item value) { materialKeys.put(key, Ingredient.ofItems(value)); return this; @@ -70,11 +76,12 @@ public class RecipeBuilder { private DefaultedList getMaterials(int width, int height) { DefaultedList materials = DefaultedList.ofSize(width * height, Ingredient.EMPTY); + int pos = 0; for (String line: shape) { for (int i = 0; i < width; i++) { char c = line.charAt(i); Ingredient material = materialKeys.get(c); - materials.add(material == null ? Ingredient.EMPTY : material); + materials.set(pos ++, material == null ? Ingredient.EMPTY : material); } } return materials;