From c1b5c58eab2b4887ca78856531f3fa3829378613 Mon Sep 17 00:00:00 2001 From: Sollace Date: Mon, 20 Nov 2023 22:57:41 +0000 Subject: [PATCH] Added emi integration for the shaping bench --- .../unicopia/compat/emi/Main.java | 15 +++++++++++++++ .../resources/assets/unicopia/lang/en_us.json | 1 + .../blocks/carving/unstable_cloud_cutting.json | 6 ------ .../recipes/blocks/unstable_cloud.json | 18 ++++++++++++++++++ .../unicopia/tags/items/groups/pegasus.json | 1 + 5 files changed, 35 insertions(+), 6 deletions(-) delete mode 100644 src/main/resources/data/unicopia/recipes/blocks/carving/unstable_cloud_cutting.json create mode 100644 src/main/resources/data/unicopia/recipes/blocks/unstable_cloud.json diff --git a/src/main/java/com/minelittlepony/unicopia/compat/emi/Main.java b/src/main/java/com/minelittlepony/unicopia/compat/emi/Main.java index fbf4ce4f..01adac1f 100644 --- a/src/main/java/com/minelittlepony/unicopia/compat/emi/Main.java +++ b/src/main/java/com/minelittlepony/unicopia/compat/emi/Main.java @@ -11,6 +11,7 @@ import com.minelittlepony.unicopia.ability.magic.spell.crafting.SpellEnhancingRe import com.minelittlepony.unicopia.ability.magic.spell.crafting.SpellShapedCraftingRecipe; import com.minelittlepony.unicopia.ability.magic.spell.trait.SpellTraits; import com.minelittlepony.unicopia.ability.magic.spell.trait.Trait; +import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.item.EnchantableItem; import com.minelittlepony.unicopia.item.UItems; import com.minelittlepony.unicopia.item.URecipes; @@ -22,6 +23,7 @@ import dev.emi.emi.api.recipe.EmiRecipeCategory; import dev.emi.emi.api.render.EmiTexture; import dev.emi.emi.api.stack.Comparison; import dev.emi.emi.api.stack.EmiStack; +import dev.emi.emi.recipe.EmiStonecuttingRecipe; import net.minecraft.item.ItemStack; import net.minecraft.recipe.RecipeType; import net.minecraft.registry.DynamicRegistryManager; @@ -30,7 +32,9 @@ import net.minecraft.util.Identifier; public class Main implements EmiPlugin { static final EmiStack SPELL_BOOK_STATION = EmiStack.of(UItems.SPELLBOOK); + static final EmiStack CLOUD_SHAPING_STATION = EmiStack.of(UBlocks.SHAPING_BENCH); static final EmiRecipeCategory SPELL_BOOK_CATEGORY = new EmiRecipeCategory(Unicopia.id("spellbook"), SPELL_BOOK_STATION, SPELL_BOOK_STATION); + static final EmiRecipeCategory CLOUD_SHAPING_CATEGORY = new EmiRecipeCategory(Unicopia.id("cloud_shaping"), CLOUD_SHAPING_STATION, CLOUD_SHAPING_STATION); static final Identifier WIDGETS = Unicopia.id("textures/gui/widgets.png"); static final EmiTexture EMPTY_ARROW = new EmiTexture(WIDGETS, 44, 0, 24, 17); @@ -70,6 +74,17 @@ public class Main implements EmiPlugin { } }); + registry.addCategory(CLOUD_SHAPING_CATEGORY); + registry.addWorkstation(CLOUD_SHAPING_CATEGORY, CLOUD_SHAPING_STATION); + registry.getRecipeManager().listAllOfType(URecipes.CLOUD_SHAPING).forEach(recipe -> { + registry.addRecipe(new EmiStonecuttingRecipe(recipe) { + @Override + public EmiRecipeCategory getCategory() { + return CLOUD_SHAPING_CATEGORY; + } + }); + }); + Stream.of(UItems.GEMSTONE, UItems.BOTCHED_GEM, UItems.MAGIC_STAFF, UItems.FILLED_JAR).forEach(item -> { registry.setDefaultComparison(item, comparison -> Comparison.compareNbt()); }); diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index f1dfae00..997b1770 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -45,6 +45,7 @@ "item.unicopia.spellbook": "Spellbook", "emi.category.unicopia.spellbook": "Spellbook", + "emi.category.unicopia.cloud_shaping": "Shaping", "item.unicopia.alicorn_badge": "Alicorn Emblem", "item.unicopia.unicorn_badge": "Unicorn Emblem", diff --git a/src/main/resources/data/unicopia/recipes/blocks/carving/unstable_cloud_cutting.json b/src/main/resources/data/unicopia/recipes/blocks/carving/unstable_cloud_cutting.json deleted file mode 100644 index 5fc507d0..00000000 --- a/src/main/resources/data/unicopia/recipes/blocks/carving/unstable_cloud_cutting.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "unicopia:cloud_shaping", - "ingredient": { "item": "unicopia:cloud" }, - "result": "unicopia:unstable_cloud", - "count": 1 -} diff --git a/src/main/resources/data/unicopia/recipes/blocks/unstable_cloud.json b/src/main/resources/data/unicopia/recipes/blocks/unstable_cloud.json new file mode 100644 index 00000000..6ccbf5d4 --- /dev/null +++ b/src/main/resources/data/unicopia/recipes/blocks/unstable_cloud.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#O#", + "###" + ], + "key": { + "#": [ + { "item": "unicopia:cloud" } + ], + "O": [ + { "item": "unicopia:lightning_jar" }, + { "item": "unicopia:zap_apple_jam_jar" } + ] + }, + "result": { "item": "unicopia:unstable_cloud", "count": 8 } +} diff --git a/src/main/resources/data/unicopia/tags/items/groups/pegasus.json b/src/main/resources/data/unicopia/tags/items/groups/pegasus.json index 1d26b745..81c0a88c 100644 --- a/src/main/resources/data/unicopia/tags/items/groups/pegasus.json +++ b/src/main/resources/data/unicopia/tags/items/groups/pegasus.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "unicopia:shaping_bench", "#unicopia:clouds", "#unicopia:bed_sheets", "#unicopia:food_types/raw_fish",