From 631ec96b5e09aad857528d952d4fbfa45be130a3 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 16 Oct 2018 21:10:38 +0200 Subject: [PATCH] jay ee eye --- .../blocks/tiles/TileEntityWoodStand.java | 4 +- .../naturesaura/jei/JEINaturesAuraPlugin.java | 37 +++++++++++ .../jei/treeritual/TreeRitualCategory.java | 60 ++++++++++++++++++ .../jei/treeritual/TreeRitualWrapper.java | 28 ++++++++ .../assets/naturesaura/lang/en_US.lang | 4 +- .../naturesaura/textures/gui/tree_ritual.png | Bin 0 -> 2247 bytes 6 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 src/main/java/de/ellpeck/naturesaura/jei/JEINaturesAuraPlugin.java create mode 100644 src/main/java/de/ellpeck/naturesaura/jei/treeritual/TreeRitualCategory.java create mode 100644 src/main/java/de/ellpeck/naturesaura/jei/treeritual/TreeRitualWrapper.java create mode 100644 src/main/resources/assets/naturesaura/textures/gui/tree_ritual.png diff --git a/src/main/java/de/ellpeck/naturesaura/blocks/tiles/TileEntityWoodStand.java b/src/main/java/de/ellpeck/naturesaura/blocks/tiles/TileEntityWoodStand.java index f11377b0..0fee1bb0 100644 --- a/src/main/java/de/ellpeck/naturesaura/blocks/tiles/TileEntityWoodStand.java +++ b/src/main/java/de/ellpeck/naturesaura/blocks/tiles/TileEntityWoodStand.java @@ -118,7 +118,9 @@ public class TileEntityWoodStand extends TileEntityImpl implements ITickable { } private void recurseTreeDestruction(BlockPos pos, BlockPos start) { - if (pos.distanceSq(start) >= 15 * 15) { + if (Math.abs(pos.getX() - start.getX()) >= 6 + || Math.abs(pos.getZ() - start.getZ()) >= 6 + || Math.abs(pos.getY() - start.getY()) >= 16) { return; } diff --git a/src/main/java/de/ellpeck/naturesaura/jei/JEINaturesAuraPlugin.java b/src/main/java/de/ellpeck/naturesaura/jei/JEINaturesAuraPlugin.java new file mode 100644 index 00000000..8dfffeae --- /dev/null +++ b/src/main/java/de/ellpeck/naturesaura/jei/JEINaturesAuraPlugin.java @@ -0,0 +1,37 @@ +package de.ellpeck.naturesaura.jei; + +import de.ellpeck.naturesaura.NaturesAura; +import de.ellpeck.naturesaura.blocks.ModBlocks; +import de.ellpeck.naturesaura.jei.treeritual.TreeRitualCategory; +import de.ellpeck.naturesaura.jei.treeritual.TreeRitualWrapper; +import de.ellpeck.naturesaura.recipes.TreeRitualRecipe; +import mezz.jei.api.IGuiHelper; +import mezz.jei.api.IModPlugin; +import mezz.jei.api.IModRegistry; +import mezz.jei.api.JEIPlugin; +import mezz.jei.api.recipe.IRecipeCategoryRegistration; +import net.minecraft.item.ItemStack; + +@JEIPlugin +public class JEINaturesAuraPlugin implements IModPlugin { + + public static final String TREE_RITUAL = NaturesAura.MOD_ID + ".tree_ritual"; + + @Override + public void registerCategories(IRecipeCategoryRegistration registry) { + IGuiHelper helper = registry.getJeiHelpers().getGuiHelper(); + registry.addRecipeCategories( + new TreeRitualCategory(helper) + ); + } + + @Override + public void register(IModRegistry registry) { + registry.handleRecipes(TreeRitualRecipe.class, TreeRitualWrapper::new, TREE_RITUAL); + + registry.addRecipes(TreeRitualRecipe.RECIPES, TREE_RITUAL); + + registry.addRecipeCatalyst(new ItemStack(ModBlocks.GOLD_POWDER), TREE_RITUAL); + registry.addRecipeCatalyst(new ItemStack(ModBlocks.WOOD_STAND), TREE_RITUAL); + } +} diff --git a/src/main/java/de/ellpeck/naturesaura/jei/treeritual/TreeRitualCategory.java b/src/main/java/de/ellpeck/naturesaura/jei/treeritual/TreeRitualCategory.java new file mode 100644 index 00000000..b483036a --- /dev/null +++ b/src/main/java/de/ellpeck/naturesaura/jei/treeritual/TreeRitualCategory.java @@ -0,0 +1,60 @@ +package de.ellpeck.naturesaura.jei.treeritual; + +import de.ellpeck.naturesaura.NaturesAura; +import de.ellpeck.naturesaura.jei.JEINaturesAuraPlugin; +import de.ellpeck.naturesaura.recipes.TreeRitualRecipe; +import mezz.jei.api.IGuiHelper; +import mezz.jei.api.gui.IDrawable; +import mezz.jei.api.gui.IGuiItemStackGroup; +import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; +import mezz.jei.api.recipe.IRecipeCategory; +import net.minecraft.client.resources.I18n; +import net.minecraft.util.ResourceLocation; + +public class TreeRitualCategory implements IRecipeCategory { + + private final IDrawable background; + + public TreeRitualCategory(IGuiHelper helper) { + this.background = helper.createDrawable(new ResourceLocation(NaturesAura.MOD_ID, "textures/gui/tree_ritual.png"), 0, 0, 146, 86); + } + + @Override + public String getUid() { + return JEINaturesAuraPlugin.TREE_RITUAL; + } + + @Override + public String getTitle() { + return I18n.format("container." + JEINaturesAuraPlugin.TREE_RITUAL + ".name"); + } + + @Override + public String getModName() { + return NaturesAura.MOD_NAME; + } + + @Override + public IDrawable getBackground() { + return this.background; + } + + @Override + public void setRecipe(IRecipeLayout recipeLayout, TreeRitualWrapper recipeWrapper, IIngredients ingredients) { + IGuiItemStackGroup group = recipeLayout.getItemStacks(); + TreeRitualRecipe recipe = recipeWrapper.recipe; + + group.init(0, true, 34, 34); + group.set(0, recipe.saplingType); + + group.init(1, true, 124, 34); + group.set(1, recipe.result); + + int[][] positions = new int[][]{{35, 1}, {35, 69}, {1, 35}, {69, 35}, {12, 12}, {58, 58}, {58, 12}, {12, 58}}; + for (int i = 0; i < recipe.items.length; i++) { + group.init(i + 2, true, positions[i][0] - 1, positions[i][1] - 1); + group.set(i + 2, recipe.items[i]); + } + } +} diff --git a/src/main/java/de/ellpeck/naturesaura/jei/treeritual/TreeRitualWrapper.java b/src/main/java/de/ellpeck/naturesaura/jei/treeritual/TreeRitualWrapper.java new file mode 100644 index 00000000..83f9b174 --- /dev/null +++ b/src/main/java/de/ellpeck/naturesaura/jei/treeritual/TreeRitualWrapper.java @@ -0,0 +1,28 @@ +package de.ellpeck.naturesaura.jei.treeritual; + +import de.ellpeck.naturesaura.recipes.TreeRitualRecipe; +import mezz.jei.api.ingredients.IIngredients; +import mezz.jei.api.ingredients.VanillaTypes; +import mezz.jei.api.recipe.IRecipeWrapper; +import net.minecraft.item.ItemStack; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class TreeRitualWrapper implements IRecipeWrapper { + + public final TreeRitualRecipe recipe; + + public TreeRitualWrapper(TreeRitualRecipe recipe) { + this.recipe = recipe; + } + + @Override + public void getIngredients(IIngredients ingredients) { + List inputs = new ArrayList<>(Arrays.asList(this.recipe.items)); + inputs.add(this.recipe.saplingType); + ingredients.setInputs(VanillaTypes.ITEM, inputs); + ingredients.setOutput(VanillaTypes.ITEM, this.recipe.result); + } +} diff --git a/src/main/resources/assets/naturesaura/lang/en_US.lang b/src/main/resources/assets/naturesaura/lang/en_US.lang index d1c9a726..1b423807 100644 --- a/src/main/resources/assets/naturesaura/lang/en_US.lang +++ b/src/main/resources/assets/naturesaura/lang/en_US.lang @@ -12,4 +12,6 @@ tile.naturesaura.wood_stand.name=Wooden Stand item.naturesaura.eye.name=Environmental Eye item.naturesaura.gold_fiber.name=Brilliant Fiber -item.naturesaura.gold_leaf.name=Gold Leaf \ No newline at end of file +item.naturesaura.gold_leaf.name=Gold Leaf + +container.naturesaura.tree_ritual.name=Tree Infusion \ No newline at end of file diff --git a/src/main/resources/assets/naturesaura/textures/gui/tree_ritual.png b/src/main/resources/assets/naturesaura/textures/gui/tree_ritual.png new file mode 100644 index 0000000000000000000000000000000000000000..c1415100ff210d8e7b5a284158ad290f68d3ee7d GIT binary patch literal 2247 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G!U;i$lZxy-8q?;Kn_c~qpu?a z!^VE@KZ&eBK4*bPWHAE+-vJP2%(~Xe2^5qlag8Vm&QB{TPb^AhC`ioAE78kKEm1Jh zGt@Io)|%tZz`$YQ>Eakt5%>0bVBT#D3Ac+kL&a~_mPShouWO9@nWAPQ*?GnCKy6`4 zq{7j9tN(w0et!O#=kKqtuiw`F|0nx??Z>-+%9l=?X!f~7j{V2nu9E!T^)g-BTYI+5 zbWdS86Kg3Fo+X)S+<$^$#_l4GbytiorO8cXG$?->5VJCM$ypmE=7e{r7VZc-?J>L3 zh3&wdsm_HE(|8(oYPUb~%3Yf6b|v=K8D%4eXY2ON3D44wHD2@%X2{b$LD4T~36@R= zS`X5o|9t8#uj@T4c5j(kJ=OVF-qQu|?p9YX*dM*I{C&ChcmMC#_I@ggTe-I6Y{xF| z**mX4R@f7~@zUPX_iFn#tll~BeipZ|;) z5YDTqmt=sM&gQUhKTiYHCHl+?_v6_de!YWwaKd|_2v+O9T5!Dg`Yv~K&3W5k45v-m zcl(>Gtv4_p!fQhzhOI2s`v2Q_*Z%*9x==m1*CcBBaYosj@o4^=?)Ex`;ZM((+rU5o zs!?Zdm@fBU{=45(RS*69RK^0imp`LkojO?k?hW&TDgX9OM~LLL0o7bz z!qf2C17sNAz2eP04MDr|W+N$C22%15S>#LclGpcj|DIE3eqeLy^VTa<89&_V0UBMm zI)!15d)2;ayNnp-%`RkEa=#Ku!1{D?j`#jxG_#g5PFQz44XUl^!@SwRILr=WJ5agg zdG<V?o zUo!o@b!DF+Oz4vL;!-1q3QcGjBXO74^S#LU$RH;x`f}++V2nPPtEvS|#i9Q!f95^i z@A2}UviJFqcl#>d&AcVIXS0hdFy+g!KLqCY_Y=?lx?@}_%>Urx-zi^i+e(2_F*KbG z5KoyuXy^CcQ-8m|Tm4(+e(w97p!|Kn{d@4G{O=h%fJH;EjmPGD;2d59%Hd`GZNS0+ zp2Ht3{;m0Pd$manQtoDwzw7V0|L)?4$T|DRi#o4gZ{>J_xmut3!DnzWa=_gk8aA=O zFynvuI3JjEfaOC4Lw{cvuuOci|59-{-)+goO1aMjB^l_)w&nY<`_f+1eNdNVT+#}h zDCQdljO9h1t6f~9Ofsjg@aR@sD>gTe~DWM4f`rH|J literal 0 HcmV?d00001