From 811ad8739c9d535b449c87dac6e86c64b392c6f0 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Mon, 17 Nov 2014 00:35:26 +0100 Subject: [PATCH] Add bow and arrow stats to NEI for toolmaterials --- resources/assets/tinker/lang/en_US.lang | 1 + .../nei/RecipeHandlerToolMaterials.java | 45 +++++++++++++++++-- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/resources/assets/tinker/lang/en_US.lang b/resources/assets/tinker/lang/en_US.lang index 04fdaee43fc..17ebdfa6029 100644 --- a/resources/assets/tinker/lang/en_US.lang +++ b/resources/assets/tinker/lang/en_US.lang @@ -724,6 +724,7 @@ tconstruct.waila.subtanks=Subtanks: tconstruct.waila.invalidstructure=Invalid structure tconstruct.nei.toolmaterials=Tool Materials +tconstruct.nei.projectilematerials=Bow & Arrow tconstruct.nei.alloying=Smeltery Alloying tconstruct.nei.castingbasin=Casting Basin tconstruct.nei.castingtable=Casting Table diff --git a/src/main/java/tconstruct/plugins/nei/RecipeHandlerToolMaterials.java b/src/main/java/tconstruct/plugins/nei/RecipeHandlerToolMaterials.java index 1e3ee128145..15113caa43d 100644 --- a/src/main/java/tconstruct/plugins/nei/RecipeHandlerToolMaterials.java +++ b/src/main/java/tconstruct/plugins/nei/RecipeHandlerToolMaterials.java @@ -15,6 +15,8 @@ import tconstruct.library.crafting.PatternBuilder; import tconstruct.library.crafting.PatternBuilder.ItemKey; import tconstruct.library.crafting.PatternBuilder.MaterialSet; +import tconstruct.library.tools.ArrowMaterial; +import tconstruct.library.tools.BowMaterial; import tconstruct.library.tools.DynamicToolPart; import tconstruct.library.tools.ToolMaterial; import tconstruct.library.util.HarvestLevels; @@ -32,6 +34,8 @@ public class CachedToolMaterialsRecipe extends CachedBaseRecipe public List toolParts; public ToolMaterial material; + public BowMaterial bowMaterial; + public ArrowMaterial arrowMaterial; public CachedToolMaterialsRecipe(List toolParts, int materialID) { @@ -43,6 +47,17 @@ public CachedToolMaterialsRecipe(List toolParts, int materialID) this.material = TConstructRegistry.getMaterial(materialID); } + public CachedToolMaterialsRecipe(List toolParts, int materialID, boolean arrowBow) + { + this.toolParts = new ArrayList(); + for (ItemStack stack : toolParts) + { + this.toolParts.add(new PositionedStack(stack, 10, 10)); + } + this.arrowMaterial = TConstructRegistry.getArrowMaterial(materialID); + this.bowMaterial = TConstructRegistry.getBowMaterial(materialID); + } + @Override public PositionedStack getIngredient () { @@ -135,6 +150,23 @@ public void drawExtras (int recipe) } } } + if (crecipe.bowMaterial != null) + { + int y = 20; + int x = 35; + GuiDraw.drawString(EnumChatFormatting.BOLD + StatCollector.translateToLocal("tconstruct.nei.projectilematerials"), 35, 10, 0x404040, false); + GuiDraw.drawString(StatCollector.translateToLocal("gui.toolstation6") + crecipe.bowMaterial.drawspeed, x, y, 0x404040, false); + y += 10; + GuiDraw.drawString(StatCollector.translateToLocal("gui.toolstation7") + crecipe.bowMaterial.flightSpeedMax, x, y, 0x404040, false); + } + if (crecipe.arrowMaterial != null) + { + int y = 50; + int x = 35; + GuiDraw.drawString(StatCollector.translateToLocal("gui.toolstation8") + crecipe.arrowMaterial.mass, x, y, 0x404040, false); + y += 10; + GuiDraw.drawString(StatCollector.translateToLocal("gui.toolstation22") + crecipe.arrowMaterial.breakChance, x, y, 0x404040, false); + } } @Override @@ -146,6 +178,7 @@ public void loadCraftingRecipes (String outputId, Object... results) for (int matID : TConstructRegistry.toolMaterials.keySet()) { List toolParts = new ArrayList(); + mat = TConstructRegistry.toolMaterials.get(matID); for (ItemKey key : PatternBuilder.instance.materials) { @@ -178,8 +211,10 @@ public void loadCraftingRecipes (String outputId, Object... results) } } - if(toolParts.size() > 0) + if(toolParts.size() > 0) { this.arecipes.add(new CachedToolMaterialsRecipe(toolParts, matID)); + this.arecipes.add(new CachedToolMaterialsRecipe(toolParts, matID, true)); + } } } else @@ -197,16 +232,20 @@ public void loadUsageRecipes (ItemStack ingred) if (materialID >= 0) { List toolParts = getSingleList(ingred); - if(toolParts.size() > 0) + if(toolParts.size() > 0) { this.arecipes.add(new CachedToolMaterialsRecipe(toolParts, materialID)); + this.arecipes.add(new CachedToolMaterialsRecipe(toolParts, materialID, true)); + } } } else if (PatternBuilder.instance.getPartID(ingred) < Short.MAX_VALUE) { int materialID = PatternBuilder.instance.getPartID(ingred); List toolParts = getSingleList(ingred); - if(toolParts.size() > 0) + if(toolParts.size() > 0) { this.arecipes.add(new CachedToolMaterialsRecipe(toolParts, materialID)); + this.arecipes.add(new CachedToolMaterialsRecipe(toolParts, materialID, true)); + } } else {