From c001231216a8ee81134a167c279cd5554df0d2c8 Mon Sep 17 00:00:00 2001 From: Modmuss50 Date: Wed, 15 Apr 2015 16:22:15 +0100 Subject: [PATCH] Added nei support for centrifuge --- .../compat/nei/CentrifugeRecipeHandler.java | 157 ++++++++++++++++++ .../compat/nei/CentrifugeRecipieHandler.java | 19 --- .../java/techreborn/compat/nei/NEIConfig.java | 6 +- src/main/java/techreborn/init/ModRecipes.java | 4 +- .../techreborn/textures/gui/centrifuge.png | Bin 1512 -> 1202 bytes 5 files changed, 162 insertions(+), 24 deletions(-) create mode 100644 src/main/java/techreborn/compat/nei/CentrifugeRecipeHandler.java delete mode 100644 src/main/java/techreborn/compat/nei/CentrifugeRecipieHandler.java diff --git a/src/main/java/techreborn/compat/nei/CentrifugeRecipeHandler.java b/src/main/java/techreborn/compat/nei/CentrifugeRecipeHandler.java new file mode 100644 index 000000000..3ac98cf54 --- /dev/null +++ b/src/main/java/techreborn/compat/nei/CentrifugeRecipeHandler.java @@ -0,0 +1,157 @@ +package techreborn.compat.nei; + +import codechicken.lib.gui.GuiDraw; +import codechicken.nei.NEIServerUtils; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.TemplateRecipeHandler; +import ic2.api.item.IC2Items; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.item.ItemStack; +import org.lwjgl.opengl.GL11; +import techreborn.api.CentrifugeRecipie; +import techreborn.api.TechRebornAPI; +import techreborn.client.gui.GuiCentrifuge; +import techreborn.config.ConfigTechReborn; + +import java.awt.*; +import java.util.ArrayList; +import java.util.List; + + +public class CentrifugeRecipeHandler extends TemplateRecipeHandler { + + public class CachedCentrifugeRecipe extends CachedRecipe { + + private List input = new ArrayList(); + private List outputs = new ArrayList(); + public Point focus; + public CentrifugeRecipie centrifugeRecipie; + + + public CachedCentrifugeRecipe(CentrifugeRecipie recipie) { + this.centrifugeRecipie = recipie; + int offset = 4; + PositionedStack pStack = new PositionedStack(recipie.getInputItem(), 80 - offset, 35 - offset); + pStack.setMaxSize(1); + this.input.add(pStack); + + + if(recipie.getOutput1() != null){ + this.outputs.add(new PositionedStack(recipie.getOutput1(), 80 - offset, 5 - offset)); + } + if(recipie.getOutput2() != null){ + this.outputs.add(new PositionedStack(recipie.getOutput2(), 110 - offset, 35 - offset)); + } + if(recipie.getOutput3() != null){ + this.outputs.add(new PositionedStack(recipie.getOutput3(), 80 - offset, 65 - offset)); + } + if(recipie.getOutput4() != null){ + this.outputs.add(new PositionedStack(recipie.getOutput4(), 50 - offset, 35 - offset)); + } + + ItemStack cellStack = IC2Items.getItem("cell"); + cellStack.stackSize = recipie.getCells(); + this.outputs.add(new PositionedStack(cellStack, 50 - offset, 5 - offset)); + + } + + @Override + public List getIngredients() { + return this.getCycledIngredients(cycleticks / 20, this.input); + } + + @Override + public List getOtherStacks() { + return this.outputs; + } + + @Override + public PositionedStack getResult() { + return null; + } + } + + @Override + public String getRecipeName() { + return "Centrifuge"; + } + + @Override + public String getGuiTexture() { + return "techreborn:textures/gui/centrifuge.png"; + } + + @Override + public Class getGuiClass() { + return GuiCentrifuge.class; + } + + @Override + public void drawBackground(int recipeIndex) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GuiDraw.changeTexture(getGuiTexture()); + GuiDraw.drawTexturedModalRect(0, 0, 4, 4, 166, 78); + GuiDraw.drawTooltipBox(10, 80, 145, 50); + GuiDraw.drawString("Info:", 14, 84, -1); + CachedRecipe recipe = arecipes.get(recipeIndex); + if(recipe instanceof CachedCentrifugeRecipe){ + CachedCentrifugeRecipe centrifugeRecipie = (CachedCentrifugeRecipe) recipe; + GuiDraw.drawString("EU needed: " + (ConfigTechReborn.CentrifugeInputTick * centrifugeRecipie.centrifugeRecipie.getTickTime()), 14, 94, -1); + GuiDraw.drawString("Ticks to smelt: " + centrifugeRecipie.centrifugeRecipie.getTickTime(), 14, 104, -1); + GuiDraw.drawString("Time to smelt: " + centrifugeRecipie.centrifugeRecipie.getTickTime() / 20 + " seconds" , 14, 114, -1); + } + + } + + @Override + public int recipiesPerPage() { + return 1; + } + + @Override + public void loadTransferRects() { + this.transferRects.add(new TemplateRecipeHandler.RecipeTransferRect(new Rectangle(75, 22, 15, 13), "tr.centrifuge", new Object[0])); + } + + public void loadCraftingRecipes(String outputId, Object... results) { + if (outputId.equals("tr.centrifuge")) { + for(CentrifugeRecipie centrifugeRecipie : TechRebornAPI.centrifugeRecipies){ + addCached(centrifugeRecipie); + } + } else { + super.loadCraftingRecipes(outputId, results); + } + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + for(CentrifugeRecipie centrifugeRecipie : TechRebornAPI.centrifugeRecipies){ + if(NEIServerUtils.areStacksSameTypeCrafting(centrifugeRecipie.getOutput1(), result)){ + addCached(centrifugeRecipie); + } + if(NEIServerUtils.areStacksSameTypeCrafting(centrifugeRecipie.getOutput2(), result)){ + addCached(centrifugeRecipie); + } + if(NEIServerUtils.areStacksSameTypeCrafting(centrifugeRecipie.getOutput3(), result)){ + addCached(centrifugeRecipie); + } + if(NEIServerUtils.areStacksSameTypeCrafting(centrifugeRecipie.getOutput4(), result)){ + addCached(centrifugeRecipie); + } + } + } + + @Override + public void loadUsageRecipes(ItemStack ingredient) { + for(CentrifugeRecipie centrifugeRecipie : TechRebornAPI.centrifugeRecipies){ + if(NEIServerUtils.areStacksSameTypeCrafting(centrifugeRecipie.getInputItem(), ingredient)){ + addCached(centrifugeRecipie); + } + } + } + + private void addCached(CentrifugeRecipie recipie) { + this.arecipes.add(new CachedCentrifugeRecipe(recipie)); + } + +} \ No newline at end of file diff --git a/src/main/java/techreborn/compat/nei/CentrifugeRecipieHandler.java b/src/main/java/techreborn/compat/nei/CentrifugeRecipieHandler.java deleted file mode 100644 index 4f2df070e..000000000 --- a/src/main/java/techreborn/compat/nei/CentrifugeRecipieHandler.java +++ /dev/null @@ -1,19 +0,0 @@ -package techreborn.compat.nei; - -import codechicken.nei.recipe.TemplateRecipeHandler; - -public class CentrifugeRecipieHandler extends TemplateRecipeHandler{ - - @Override - public String getRecipeName() - { - return "techreborn.centrifuge.recipe"; - } - - @Override - public String getGuiTexture() - { - return "techreborn:textures/gui/centrifuge.png"; - } - -} diff --git a/src/main/java/techreborn/compat/nei/NEIConfig.java b/src/main/java/techreborn/compat/nei/NEIConfig.java index 71cd73d71..d2de76a98 100644 --- a/src/main/java/techreborn/compat/nei/NEIConfig.java +++ b/src/main/java/techreborn/compat/nei/NEIConfig.java @@ -21,10 +21,10 @@ public class NEIConfig implements IConfigureNEI{ @Override public void loadConfig() { - CentrifugeRecipieHandler centrifugeRecipieHandler = new CentrifugeRecipieHandler(); + CentrifugeRecipeHandler centrifugeRecipeHandler = new CentrifugeRecipeHandler(); - API.registerRecipeHandler(centrifugeRecipieHandler); - API.registerUsageHandler(centrifugeRecipieHandler); + API.registerRecipeHandler(centrifugeRecipeHandler); + API.registerUsageHandler(centrifugeRecipeHandler); } } diff --git a/src/main/java/techreborn/init/ModRecipes.java b/src/main/java/techreborn/init/ModRecipes.java index c3059d3cd..972de35d8 100644 --- a/src/main/java/techreborn/init/ModRecipes.java +++ b/src/main/java/techreborn/init/ModRecipes.java @@ -1,7 +1,7 @@ package techreborn.init; +import cpw.mods.fml.common.registry.GameRegistry; import ic2.api.item.IC2Items; -import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -12,7 +12,6 @@ import techreborn.config.ConfigTechReborn; import techreborn.util.CraftingHelper; import techreborn.util.LogHelper; import techreborn.util.RecipeRemover; -import cpw.mods.fml.common.registry.GameRegistry; public class ModRecipes { public static ConfigTechReborn config; @@ -243,6 +242,7 @@ public class ModRecipes { public static void addMachineRecipes() { TechRebornAPI.registerCentrifugeRecipe(new CentrifugeRecipie(Items.apple, 4, Items.beef, Items.baked_potato, null, null, 120, 4)); + TechRebornAPI.registerCentrifugeRecipe(new CentrifugeRecipie(Items.nether_star, 1, Items.diamond, Items.emerald, Items.bed, Items.cake, 500, 8)); TechRebornAPI.registerRollingMachineRecipe(new RollingMachineRecipie(new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.furnace), 4)); LogHelper.info("Machine Recipes Added"); } diff --git a/src/main/resources/assets/techreborn/textures/gui/centrifuge.png b/src/main/resources/assets/techreborn/textures/gui/centrifuge.png index b0e64192c5a0bf653104dd5b20ce7ab9abae9c77..8a9834e83eee67417de0570262f48034a5ada7b5 100644 GIT binary patch literal 1202 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6&6|H(?D8gCb z5n0T@z%2~Ij105pNB{-dOFVsD+3&OP^NXrW?^)Kzz`$bf>EaktaqI2fi@mcQL>vNT zc4}Q_>y22%&(&x);q37JGe%V&#Q-F&7a0|h1<3>S8E%d1FKokpG_`M2UT3%8lw&Ml`>?S0Th;EroxR(? zNzVUg`+%>3%Y4q+eg>Ai6=wEK0wv71{($^^;NKqE8_$Jqs4kr{Z@+;;ld(kG!|$&P zWnw41C}%MJlq3KT9S2<*rgtyy{=fcRzPf<@!_$A8Hs;o`C}gnYppaQl1wK45W)x_c z{ApSoi-JY|%cGJQVT&HxtTWgr9E`3KY&dXho9UV6_q+${R2n})q^agoQZuDk@MlJoI8?D{h}Qszos zi}YiWf_U=nqo8tz^Z5>Z!ue|^@9yh#fP_1P04$PF7!C|EOacrF3c`(Rg8y1gNmiOr zx+?y-%Yx>24D;?c$f(_mP%oDiZiELIYI1@&v4LR+ivoj#gBnxh@?WJI&)>QzteDv8 zAjb$!6E~i`Ra~(0z_pc$bDxGJ*oibeH&y04TCk?*q)}Q~s{(P9j1Z#%b@=a_9p0)4L^S!Jxosr3&2|3AQ m1|u0F*t|`lC4`L(m@m(I*GINlP52iB5O})!xvXJlD((%qkB3PGcD~`_GfrI zqHNz{OBH=trBz)0*NlYZcVwS>0qPFet~nK~*iv{>K}TE_2i~Ze;LyXN zs#R(1qsm)TZkc0cbWcTI03>#T>NOe6YAJ2Jeus<4z+qnM3eJGLZ1^Cl$VHv1iK+y9 zISqCq$p_FY_+dN1gHe zYQ@R(an)VA{9@v&9c9r?G0RmMeU9}`m$}}5Ry-QbxmnXbw3%29+n%z`p;Z4kMzJZW?>|6uW#Hf>hy?QV>ku5R2Z8b9nt5Q_M003d(>+oE8(vG?ZhEphXm zitp?773t9_4mfhcj2IBb&C+PsKfc%!aJD0tXET!Q3Og?S7 zc%KAa%>9knu<|X~N)_=FgvC6B!4l2grprPR3pXOmfDei0`~mDq&)>6BJ`O6=rU%#3 zU8KTP%M+9iDuKK$2lPG!I6!L7z^<(+&rvX||WyX7gfl z*=_?~3bR1?iRmdZGj#OEgn68!$*-(Iy-AgR#Gg5CcOpHc6v;d!dmEwJ<3Oy(1~^`d z#+S~wTbS9v`)sy^rD$FM>*(IE&@X4(z`oK_blMP*fObqI{VeQZJj8O(eaFkVBo9v6 zA{>|+h*lmjYoDn*s?|$p9fMFnD&R`;WY1YYD8u+)Xi*Gs0ASFwoQ^%muq0h164E}H zGqCn)OFRAbPwUR?$rsHuS&ok3|1gr_I@DKd+RKYAuk6}=WLIa*>YyFaMxcL)-}QI- G7ybp1sR9N7