From 43fda5138e7c0ce12e1de0e2e1676ac6950001a2 Mon Sep 17 00:00:00 2001 From: joshiejack Date: Sun, 19 Jan 2014 01:55:08 +0000 Subject: [PATCH 1/2] Added Alchemy Recipe Handler for NEI --- .../nei/NEIAlchemyRecipeHandler.java | 137 ++++++++++++++++++ .../alchemicalWizardy/nei/NEIConfig.java | 33 +++++ .../alchemicalwizardry/gui/nei/alchemy.png | Bin 0 -> 1400 bytes 3 files changed, 170 insertions(+) create mode 100644 BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java create mode 100644 BM_src/joshie/alchemicalWizardy/nei/NEIConfig.java create mode 100644 resources/assets/alchemicalwizardry/gui/nei/alchemy.png diff --git a/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java b/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java new file mode 100644 index 00000000..bc842f48 --- /dev/null +++ b/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java @@ -0,0 +1,137 @@ +package joshie.alchemicalWizardy.nei; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipe; +import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry; +import codechicken.nei.NEIServerUtils; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.TemplateRecipeHandler; + +public class NEIAlchemyRecipeHandler extends TemplateRecipeHandler { + public static ArrayList bloodOrbs; + + public class CachedAlchemyRecipe extends CachedRecipe { + public class BloodOrbs { + public PositionedStack stack; + public BloodOrbs(ItemStack orb) { + this.stack = new PositionedStack(orb, 136, 47, false); + } + } + + ArrayList orbs; + AlchemyRecipe recipe; + PositionedStack output; + List inputs; + int lp; + + public CachedAlchemyRecipe(AlchemyRecipe recipe) { + this.recipe = recipe; + List inputs = new ArrayList(); + ItemStack[] stacks = recipe.getRecipe(); + if(stacks.length > 0) + inputs.add(new PositionedStack(stacks[0], 76, 3)); + if(stacks.length > 1) + inputs.add(new PositionedStack(stacks[1], 51, 19)); + if(stacks.length > 2) + inputs.add(new PositionedStack(stacks[2], 101, 19)); + if(stacks.length > 3) + inputs.add(new PositionedStack(stacks[3], 64, 47)); + if(stacks.length > 4) + inputs.add(new PositionedStack(stacks[4], 88, 47)); + this.inputs = inputs; + this.output = new PositionedStack(recipe.getResult(), 76, 25); + this.lp = recipe.getAmountNeeded() * 100; + this.orbs = new ArrayList(); + for(int i = recipe.getOrbLevel(); i < bloodOrbs.size(); i++) { + ItemStack orb = new ItemStack(bloodOrbs.get(i - 1)); + orbs.add(new BloodOrbs(orb)); + } + } + + @Override + public List getIngredients() { + return inputs; + } + + @Override + public PositionedStack getResult() { + return output; + } + + @Override + public PositionedStack getOtherStack() { + return orbs.get((cycleticks/48) % orbs.size()).stack; + } + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + for(AlchemyRecipe recipe: AlchemyRecipeRegistry.recipes) { + ItemStack output = recipe.getResult(); + if(NEIServerUtils.areStacksSameTypeCrafting(result, recipe.getResult())) { + arecipes.add(new CachedAlchemyRecipe(recipe)); + } + } + } + + @Override + public void loadUsageRecipes(ItemStack ingredient) { + for(AlchemyRecipe recipe: AlchemyRecipeRegistry.recipes) { + ItemStack[] stacks = recipe.getRecipe(); + for(ItemStack stack: stacks) { + if(NEIServerUtils.areStacksSameTypeCrafting(stack, ingredient)) { + arecipes.add(new CachedAlchemyRecipe(recipe)); + } + } + + ArrayList orbs = new ArrayList(); + for(int i = recipe.getOrbLevel(); i < bloodOrbs.size(); i++) { + ItemStack orb = new ItemStack(bloodOrbs.get(i - 1)); + if(NEIServerUtils.areStacksSameTypeCrafting(orb, ingredient)) { + arecipes.add(new CachedAlchemyRecipe(recipe)); + } + } + } + } + + @Override + public void drawExtras(int id) { + CachedAlchemyRecipe cache = (CachedAlchemyRecipe) arecipes.get(id); + Minecraft.getMinecraft().fontRenderer.drawString("\u00a77" + cache.lp + "LP", getLPX(cache.lp), 34, 0); + } + + public int getLPX(int lp) { + if(lp < 10) + return 122; + else if (lp < 100) + return 122; + else if (lp < 1000) + return 130; + else if (lp < 10000) + return 127; + else if (lp < 100000) + return 124; + return 122; + } + + @Override + public String getRecipeName() { + return "Alchemic Chemistry Set"; + } + + @Override + public String getOverlayIdentifier() { + return "bmalchemy"; + } + + @Override + public String getGuiTexture() { + return new ResourceLocation("alchemicalwizardry", "gui/nei/alchemy.png").toString(); + } +} diff --git a/BM_src/joshie/alchemicalWizardy/nei/NEIConfig.java b/BM_src/joshie/alchemicalWizardy/nei/NEIConfig.java new file mode 100644 index 00000000..3d2c3726 --- /dev/null +++ b/BM_src/joshie/alchemicalWizardy/nei/NEIConfig.java @@ -0,0 +1,33 @@ +package joshie.alchemicalWizardy.nei; + +import java.util.ArrayList; + +import net.minecraft.item.Item; +import WayofTime.alchemicalWizardry.ModItems; +import codechicken.nei.api.API; +import codechicken.nei.api.IConfigureNEI; + +public class NEIConfig implements IConfigureNEI { + @Override + public void loadConfig() { + API.registerRecipeHandler(new NEIAlchemyRecipeHandler()); + API.registerUsageHandler(new NEIAlchemyRecipeHandler()); + + NEIAlchemyRecipeHandler.bloodOrbs = new ArrayList(); + NEIAlchemyRecipeHandler.bloodOrbs.add(ModItems.weakBloodOrb); + NEIAlchemyRecipeHandler.bloodOrbs.add(ModItems.apprenticeBloodOrb); + NEIAlchemyRecipeHandler.bloodOrbs.add(ModItems.magicianBloodOrb); + NEIAlchemyRecipeHandler.bloodOrbs.add(ModItems.masterBloodOrb); + NEIAlchemyRecipeHandler.bloodOrbs.add(ModItems.archmageBloodOrb); + } + + @Override + public String getName() { + return "Blood Magic NEI"; + } + + @Override + public String getVersion() { + return "1.0"; + } +} diff --git a/resources/assets/alchemicalwizardry/gui/nei/alchemy.png b/resources/assets/alchemicalwizardry/gui/nei/alchemy.png new file mode 100644 index 0000000000000000000000000000000000000000..70819322dbb723c5af4eb70e5fdf6fd4631fb262 GIT binary patch literal 1400 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIGvQXMsm# zF;M+_5N34R|6B_wC{yAZQ4*Y=R#Ki=l*-_klAn~S;FejGTAp8&U98|7Z1!T$rXHYK zpFCY0Ln`LHy&IS(>?z`KG3&^x4`x-$6Zi1zABl922s_K(oHog^@nGJix7FvwJs$3q zJsSSf>rce9ImtbS(^7waW52P}^7*HW*FR|3^?!VO^uI03hVuIQyd}$XfBP-|MmU(=bQP7pA_#fIm}=n3f*wtFZ(0# z-s=Av=bQglzF_Ft__zA&^-|gApMNep{zJ5kZ$oQ4|AA|M%O{JAwLj%yIK%=*a~SWO z;IwsDV<>;nGH-DaH$x&54#fX=c0>KEy}zQXr#wIS&!&Vy?&;oN{hw@Z$Zuy5P=ldw z7up-@n}nHbcw9Hd3hMRbf;ogm^)9){C=aB#VtJ0UD?t%ZG`lje}_itTXKfitl zYl8tJ(dajdS-FzQXDpvfBu892pctb!-SC*i_1C3mET{ADo8yeIAD6!{#ow=EsjjNp z^^@^hsqFdl=bz2^e7hJJKWB@7Y@Gj&CFc6qW$YI7&p-b8^QKI3U3Fh*>Fq+eFELHS z6nX!SIpTWhob%6T%O8;`zOg*D$M88Y-F=*Yl-rDH=H_E)B!A47S2^RRP+Vqz z+-<>I3udB22^gNzjc0EDmD!f8Ji&7J{AA?|WjQQH>EDZUSZ?(hGjIqKjW!FOm~;1h zqV@YcmL}Uxf-mae3G>G8_J(atvq7%j&Qxpc3A=#-P85s_tkvadO*LJp+f%j_xTLK zthY($^W6T{yB{9y?+<5Wh>~G)A~Np`17$bj+wPkF$>(xi1S};PJYD@<);T3K0RW;= B{^S4v literal 0 HcmV?d00001 From c14e5be86e1fb9c272f106ac2e1960de31707c86 Mon Sep 17 00:00:00 2001 From: joshiejack Date: Sun, 19 Jan 2014 02:04:35 +0000 Subject: [PATCH 2/2] Removed pointless code --- .../alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java b/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java index bc842f48..b0d65bfa 100644 --- a/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java +++ b/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java @@ -25,13 +25,11 @@ public class NEIAlchemyRecipeHandler extends TemplateRecipeHandler { } ArrayList orbs; - AlchemyRecipe recipe; PositionedStack output; List inputs; int lp; public CachedAlchemyRecipe(AlchemyRecipe recipe) { - this.recipe = recipe; List inputs = new ArrayList(); ItemStack[] stacks = recipe.getRecipe(); if(stacks.length > 0) @@ -124,11 +122,6 @@ public class NEIAlchemyRecipeHandler extends TemplateRecipeHandler { public String getRecipeName() { return "Alchemic Chemistry Set"; } - - @Override - public String getOverlayIdentifier() { - return "bmalchemy"; - } @Override public String getGuiTexture() {