From 9c81ebbac6b8d644c50a919303fc4815477b91ef Mon Sep 17 00:00:00 2001 From: mDiyo Date: Wed, 19 Jun 2013 18:58:37 -0700 Subject: [PATCH] Bricks, Library updates, and tweaks all around --- mods/tinker/resources/lang/en_US.xml | 22 +- mods/tinker/tconstruct/TConstruct.java | 2 +- mods/tinker/tconstruct/api/TConstructAPI.java | 6 - mods/tinker/tconstruct/blocks/Aggregator.java | 114 + .../tconstruct/blocks/LiquidMetalBase.java | 2 +- .../tconstruct/blocks/MultiBrickFancy.java | 2 +- .../blocks/logic/AggregatorLogic.java | 14 + .../blocks/logic/GlowstoneAggregator.java | 71 + .../tconstruct/client/TProxyClient.java | 25 +- .../client/block/SmelteryRender.java | 36 +- .../client/gui/GlowstoneAggregatorGui.java | 43 + .../tconstruct/client/gui/GuiManual.java | 10 +- .../client/gui/StencilTableGui.java | 8 +- .../tconstruct/client/gui/ToolStationGui.java | 8 + mods/tinker/tconstruct/common/TContent.java | 1854 +++++++++-------- .../tconstruct/common/TProxyCommon.java | 5 +- .../inventory/AggregatorContainer.java | 82 + .../inventory/KnapsackContainer.java | 11 +- .../tinker/tconstruct/items/MetalPattern.java | 2 +- .../tconstruct/items/armor/Knapsack.java | 26 - .../items/blocks/MultiBrickFancyItem.java | 58 + .../items/blocks/MultiBrickItem.java | 2 +- .../tconstruct/items/tools/Battleaxe.java | 12 + .../tinker/tconstruct/items/tools/Chisel.java | 39 +- .../tconstruct/items/tools/Hatchet.java | 2 +- .../tconstruct/items/tools/Mattock.java | 2 +- .../library/TConstructRegistry.java | 224 +- .../library/crafting/ShapelessToolRecipe.java | 3 +- .../library/crafting/ToolBuilder.java | 41 +- .../library/crafting/ToolRecipe.java | 6 +- .../library/tools/AbilityHelper.java | 6 +- .../tconstruct/library/tools/ToolCore.java | 49 +- .../library/tools/ToolMaterial.java | 24 +- .../tconstruct/library/util/IToolPart.java | 5 + .../tconstruct/modifiers/ModAttack.java | 17 +- .../tconstruct/modifiers/ModRedstone.java | 2 +- mods/tinker/tconstruct/util/PHConstruct.java | 6 + .../blocks/bricks/fancybrick_blueslime.png | Bin 0 -> 614 bytes .../blocks/bricks/fancybrick_bone.png | Bin 0 -> 845 bytes .../blocks/bricks/fancybrick_endstone.png | Bin 0 -> 631 bytes .../bricks/fancybrick_obsidian_ingot.png | Bin 0 -> 579 bytes .../textures/blocks/glass/glass_clear.png | Bin 0 -> 175 bytes .../blocks/glass/glass_clear_side.png | Bin 0 -> 175 bytes .../textures/blocks/glass/soulglass.png | Bin 0 -> 473 bytes .../textures/blocks/glass/soulglass_clear.png | Bin 0 -> 381 bytes .../blocks/glass/soulglass_clear_side.png | Bin 0 -> 174 bytes .../textures/blocks/glass/soulglass_side.png | Bin 0 -> 199 bytes .../blocks/glass/stainedglass_black.png | Bin 0 -> 167 bytes .../blocks/glass/stainedglass_black_side.png | Bin 0 -> 162 bytes .../blocks/glass/stainedglass_blue.png | Bin 0 -> 168 bytes .../blocks/glass/stainedglass_blue_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_brown_side.png | Bin 0 -> 165 bytes .../blocks/glass/stainedglass_cyan.png | Bin 0 -> 172 bytes .../blocks/glass/stainedglass_cyan_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_gray.png | Bin 0 -> 168 bytes .../blocks/glass/stainedglass_gray_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_green.png | Bin 0 -> 168 bytes .../blocks/glass/stainedglass_green_side.png | Bin 0 -> 165 bytes .../blocks/glass/stainedglass_lightblue.png | Bin 0 -> 168 bytes .../glass/stainedglass_lightblue_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_lightgray.png | Bin 0 -> 172 bytes .../glass/stainedglass_lightgray_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_lime.png | Bin 0 -> 168 bytes .../blocks/glass/stainedglass_lime_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_magenta.png | Bin 0 -> 168 bytes .../glass/stainedglass_magenta_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_orange.png | Bin 0 -> 168 bytes .../blocks/glass/stainedglass_orange_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_pink.png | Bin 0 -> 168 bytes .../blocks/glass/stainedglass_pink_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_purple.png | Bin 0 -> 168 bytes .../blocks/glass/stainedglass_purple_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_red.png | Bin 0 -> 168 bytes .../blocks/glass/stainedglass_red_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_white.png | Bin 0 -> 169 bytes .../blocks/glass/stainedglass_white_side.png | Bin 0 -> 166 bytes .../blocks/glass/stainedglass_yellow.png | Bin 0 -> 168 bytes .../blocks/glass/stainedglass_yellow_side.png | Bin 0 -> 166 bytes mods/tinker/textures/blocks/liquid_glass.png | Bin 0 -> 10198 bytes mods/tinker/textures/blocks/liquid_glass.txt | 32 + .../textures/blocks/liquid_glass_flow.png | Bin 0 -> 6070 bytes .../textures/blocks/liquid_glass_flow.txt | 0 .../machines/aggregator_glowstone_bottom.png | Bin 0 -> 475 bytes .../machines/aggregator_glowstone_side.png | Bin 0 -> 628 bytes .../machines/aggregator_glowstone_top.png | Bin 0 -> 751 bytes .../aggregator_glowstone_top_inactive.png | Bin 0 -> 722 bytes mods/tinker/textures/gui/aggregator.png | Bin 0 -> 1529 bytes 87 files changed, 1791 insertions(+), 1082 deletions(-) delete mode 100644 mods/tinker/tconstruct/api/TConstructAPI.java create mode 100644 mods/tinker/tconstruct/blocks/Aggregator.java create mode 100644 mods/tinker/tconstruct/blocks/logic/AggregatorLogic.java create mode 100644 mods/tinker/tconstruct/blocks/logic/GlowstoneAggregator.java create mode 100644 mods/tinker/tconstruct/client/gui/GlowstoneAggregatorGui.java create mode 100644 mods/tinker/tconstruct/inventory/AggregatorContainer.java create mode 100644 mods/tinker/tconstruct/items/blocks/MultiBrickFancyItem.java create mode 100644 mods/tinker/textures/blocks/bricks/fancybrick_blueslime.png create mode 100644 mods/tinker/textures/blocks/bricks/fancybrick_bone.png create mode 100644 mods/tinker/textures/blocks/bricks/fancybrick_endstone.png create mode 100644 mods/tinker/textures/blocks/bricks/fancybrick_obsidian_ingot.png create mode 100644 mods/tinker/textures/blocks/glass/glass_clear.png create mode 100644 mods/tinker/textures/blocks/glass/glass_clear_side.png create mode 100644 mods/tinker/textures/blocks/glass/soulglass.png create mode 100644 mods/tinker/textures/blocks/glass/soulglass_clear.png create mode 100644 mods/tinker/textures/blocks/glass/soulglass_clear_side.png create mode 100644 mods/tinker/textures/blocks/glass/soulglass_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_black.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_black_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_blue.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_blue_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_brown_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_cyan.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_cyan_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_gray.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_gray_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_green.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_green_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_lightblue.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_lightblue_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_lightgray.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_lightgray_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_lime.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_lime_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_magenta.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_magenta_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_orange.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_orange_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_pink.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_pink_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_purple.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_purple_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_red.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_red_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_white.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_white_side.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_yellow.png create mode 100644 mods/tinker/textures/blocks/glass/stainedglass_yellow_side.png create mode 100644 mods/tinker/textures/blocks/liquid_glass.png create mode 100644 mods/tinker/textures/blocks/liquid_glass.txt create mode 100644 mods/tinker/textures/blocks/liquid_glass_flow.png create mode 100644 mods/tinker/textures/blocks/liquid_glass_flow.txt create mode 100644 mods/tinker/textures/blocks/machines/aggregator_glowstone_bottom.png create mode 100644 mods/tinker/textures/blocks/machines/aggregator_glowstone_side.png create mode 100644 mods/tinker/textures/blocks/machines/aggregator_glowstone_top.png create mode 100644 mods/tinker/textures/blocks/machines/aggregator_glowstone_top_inactive.png create mode 100644 mods/tinker/textures/gui/aggregator.png diff --git a/mods/tinker/resources/lang/en_US.xml b/mods/tinker/resources/lang/en_US.xml index db7504a..9511a59 100644 --- a/mods/tinker/resources/lang/en_US.xml +++ b/mods/tinker/resources/lang/en_US.xml @@ -72,6 +72,23 @@ Endstone Brick Obsidian Brick + Obsidian Fancy Brick + Sandstone Fancy Brick + Netherrack Fancy Brick + Iron Fancy Brick + Gold Fancy Brick + Diamond Fancy Brick + Lapis Fancy Brick + Refined Stone Fancy Brick + Redstone Fancy Brick + Bone Fancy Brick + Slime Fancy Brick + Slime Fancy Brick + Endstone Fancy Brick + Obsidian Fancy Brick + Stone Road + Stone Fancy Brick + Iron Oreberry Gold Oreberry Copper Oreberry @@ -129,6 +146,7 @@ Torch + Knapsack Blank Pattern Blank Cast @@ -149,10 +167,6 @@ Liquid Alumite Bucket Liquid Obsidian Bucket Liquid Steel Bucket - Liquid Manganese Bucket - Liquid Heptazion Bucket - Liquid Damascus Steel Bucket - Liquid Angmallen Bucket Liquid Iron Liquid Gold diff --git a/mods/tinker/tconstruct/TConstruct.java b/mods/tinker/tconstruct/TConstruct.java index 14bd3ee..c7f5542 100644 --- a/mods/tinker/tconstruct/TConstruct.java +++ b/mods/tinker/tconstruct/TConstruct.java @@ -38,7 +38,7 @@ import cpw.mods.fml.common.registry.VillagerRegistry; * @dependencies: IC2 API, MFR API */ -@Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.3.dev.63", dependencies = "required-after:Forge@[7.7.1.675,)") +@Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.3.dev.67", dependencies = "required-after:Forge@[7.7.1.675,)") @NetworkMod(serverSideRequired = false, clientSideRequired = true, channels = { "TConstruct" }, packetHandler = mods.tinker.tconstruct.util.network.TPacketHandler.class) public class TConstruct { diff --git a/mods/tinker/tconstruct/api/TConstructAPI.java b/mods/tinker/tconstruct/api/TConstructAPI.java deleted file mode 100644 index c07ae43..0000000 --- a/mods/tinker/tconstruct/api/TConstructAPI.java +++ /dev/null @@ -1,6 +0,0 @@ -package mods.tinker.tconstruct.api; - -public class TConstructAPI -{ - -} diff --git a/mods/tinker/tconstruct/blocks/Aggregator.java b/mods/tinker/tconstruct/blocks/Aggregator.java new file mode 100644 index 0000000..ae70657 --- /dev/null +++ b/mods/tinker/tconstruct/blocks/Aggregator.java @@ -0,0 +1,114 @@ +package mods.tinker.tconstruct.blocks; + +import java.util.List; + +import mods.tinker.tconstruct.TConstruct; +import mods.tinker.tconstruct.blocks.logic.GlowstoneAggregator; +import mods.tinker.tconstruct.common.TProxyCommon; +import mods.tinker.tconstruct.library.TConstructRegistry; +import mods.tinker.tconstruct.library.blocks.InventoryBlock; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class Aggregator extends InventoryBlock +{ + public String[] textureNames = { "glowstone_top", "glowstone_top_inactive", "glowstone_side", "glowstone_bottom"}; + public Icon[] icons; + public Aggregator(int id) + { + super(id, Material.iron); + setHardness(2.0f); + this.setCreativeTab(TConstructRegistry.blockTab); + setLightValue(1.0f); + } + + @Override + public int damageDropped (int meta) + { + return meta; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IconRegister iconRegister) + { + this.icons = new Icon[textureNames.length]; + + for (int i = 0; i < this.icons.length; ++i) + { + this.icons[i] = iconRegister.registerIcon("tinker:machines/aggregator_"+textureNames[i]); + } + } + + /*@Override + public Icon getBlockTexture(IBlockAccess iblockaccess, int x, int y, int z, int side) + { + if (iblockaccess instanceof World) + { + System.out.println("Rawr!"); + World world = (World) iblockaccess; + if (world.canBlockSeeTheSky(x, y, z)) + { + int level = world.getSavedLightValue(EnumSkyBlock.Sky, x, y, z) - world.skylightSubtracted; + System.out.println("Level: "+level); + if (level < 12) + return icons[1]; + } + } + return this.getIcon(side, iblockaccess.getBlockMetadata(x, y, z)); + }*/ + + @Override + @SideOnly(Side.CLIENT) + public Icon getIcon (int side, int meta) + { + if (side == 0) + return icons[3]; + if (side == 1) + return icons[0]; + return icons[2]; + //return icons[meta]; + } + + @Override + public void getSubBlocks (int id, CreativeTabs tab, List list) + { + list.add(new ItemStack(id, 1, 0)); + /*for (int iter = 0; iter < icons.length; iter++) + { + list.add(new ItemStack(id, 1, iter)); + }*/ + } + + @Override + public TileEntity createTileEntity (World world, int metadata) + { + return new GlowstoneAggregator(); + } + + @Override + public Integer getGui (World world, int x, int y, int z, EntityPlayer entityplayer) + { + return TProxyCommon.glowstoneAggregatorGui; + } + + @Override + public Object getModInstance () + { + return TConstruct.instance; + } + + @Override + public String[] getTextureNames () + { + return textureNames; + } +} diff --git a/mods/tinker/tconstruct/blocks/LiquidMetalBase.java b/mods/tinker/tconstruct/blocks/LiquidMetalBase.java index 852ee4f..2f47fbe 100644 --- a/mods/tinker/tconstruct/blocks/LiquidMetalBase.java +++ b/mods/tinker/tconstruct/blocks/LiquidMetalBase.java @@ -34,7 +34,7 @@ public abstract class LiquidMetalBase extends Block protected LiquidMetalBase(int par1, Material par2Material) { super(par1, par2Material); - textureNames = new String[] { "iron", "gold", "copper", "tin", "aluminum", "cobalt", "ardite", "bronze", "alubrass", "manyullyn", "alumite", "obsidian", "steel" }; + textureNames = new String[] { "iron", "gold", "copper", "tin", "aluminum", "cobalt", "ardite", "bronze", "alubrass", "manyullyn", "alumite", "obsidian", "steel", "glass" }; setLightValue(0.625F); } diff --git a/mods/tinker/tconstruct/blocks/MultiBrickFancy.java b/mods/tinker/tconstruct/blocks/MultiBrickFancy.java index 1321b6b..8503413 100644 --- a/mods/tinker/tconstruct/blocks/MultiBrickFancy.java +++ b/mods/tinker/tconstruct/blocks/MultiBrickFancy.java @@ -15,7 +15,7 @@ import cpw.mods.fml.relauncher.SideOnly; public class MultiBrickFancy extends TConstructBlock { static String blockTextures[] = { "fancybrick_obsidian", "fancybrick_sandstone", "fancybrick_netherrack", "fancybrick_stone_refined", "fancybrick_iron", "fancybrick_gold", "fancybrick_lapis", "fancybrick_diamond", "fancybrick_redstone", - "fancybrick_bone", "fancybrick_slime", "fancybrick_blueslime", "fancybrick_endstone", "fancybrick_obsidian_ingot", "road_stone", "road_refinedstone" }; + "fancybrick_bone", "fancybrick_slime", "fancybrick_blueslime", "fancybrick_endstone", "fancybrick_obsidian_ingot", "fancybrick_stone", "road_stone" }; public MultiBrickFancy(int id) { diff --git a/mods/tinker/tconstruct/blocks/logic/AggregatorLogic.java b/mods/tinker/tconstruct/blocks/logic/AggregatorLogic.java new file mode 100644 index 0000000..259a424 --- /dev/null +++ b/mods/tinker/tconstruct/blocks/logic/AggregatorLogic.java @@ -0,0 +1,14 @@ +package mods.tinker.tconstruct.blocks.logic; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; +import mods.tinker.tconstruct.library.blocks.InventoryLogic; + +public abstract class AggregatorLogic extends InventoryLogic +{ + public AggregatorLogic(int invSize) + { + super(invSize); + } +} diff --git a/mods/tinker/tconstruct/blocks/logic/GlowstoneAggregator.java b/mods/tinker/tconstruct/blocks/logic/GlowstoneAggregator.java new file mode 100644 index 0000000..75a0cd6 --- /dev/null +++ b/mods/tinker/tconstruct/blocks/logic/GlowstoneAggregator.java @@ -0,0 +1,71 @@ +package mods.tinker.tconstruct.blocks.logic; + +import mods.tinker.tconstruct.inventory.AggregatorContainer; +import net.minecraft.block.Block; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +public class GlowstoneAggregator extends AggregatorLogic +{ + short currentTime; + short maxTime = 20 * 60 * 5; + int currentLightLevel; + + public GlowstoneAggregator() + { + super(3); + } + + @Override + public Container getGuiContainer (InventoryPlayer inventoryplayer, World world, int x, int y, int z) + { + return new AggregatorContainer(inventoryplayer, this); + } + + @Override + protected String getDefaultName () + { + return "aggregator.glowstone"; + } + + @Override + public void updateEntity () + { + if (worldObj.isRemote) + return; + if (inventory[2] == null || inventory[2].stackSize < this.getInventoryStackLimit()) + { + if (inventory[0] != null && inventory[0].itemID == Block.cobblestone.blockID) + { + currentLightLevel = worldObj.getSavedLightValue(EnumSkyBlock.Sky, xCoord, yCoord, zCoord) - worldObj.skylightSubtracted; + if (currentLightLevel > 12) + { + currentTime++; + if (currentTime >= 20) + { + currentTime = 0; + inventory[0].stackSize--; + if (inventory[0].stackSize < 1) + inventory[0] = null; + + if (inventory[2] != null) + inventory[2].stackSize++; + else + inventory[2] = new ItemStack(Block.glowStone); + } + } + /* + if (this.currentTime % 60 == 0) + System.out.println("Light: " + lightLevel); + currentTime++; + if (currentTime >= maxTime) + { + currentTime = 0; + }*/ + } + } + } +} diff --git a/mods/tinker/tconstruct/client/TProxyClient.java b/mods/tinker/tconstruct/client/TProxyClient.java index 1af8349..5666453 100644 --- a/mods/tinker/tconstruct/client/TProxyClient.java +++ b/mods/tinker/tconstruct/client/TProxyClient.java @@ -13,6 +13,7 @@ import mods.tinker.tconstruct.TConstruct; import mods.tinker.tconstruct.blocks.logic.CastingBasinLogic; import mods.tinker.tconstruct.blocks.logic.CastingTableLogic; import mods.tinker.tconstruct.blocks.logic.FrypanLogic; +import mods.tinker.tconstruct.blocks.logic.GlowstoneAggregator; import mods.tinker.tconstruct.blocks.logic.GolemCoreLogic; import mods.tinker.tconstruct.blocks.logic.PartCrafterLogic; import mods.tinker.tconstruct.blocks.logic.PatternChestLogic; @@ -45,6 +46,7 @@ import mods.tinker.tconstruct.client.entity.projectile.DaggerRender; import mods.tinker.tconstruct.client.entity.projectile.LaunchedItemRender; import mods.tinker.tconstruct.client.gui.ArmorExtendedGui; import mods.tinker.tconstruct.client.gui.FrypanGui; +import mods.tinker.tconstruct.client.gui.GlowstoneAggregatorGui; import mods.tinker.tconstruct.client.gui.GuiManual; import mods.tinker.tconstruct.client.gui.InventoryTab; import mods.tinker.tconstruct.client.gui.KnapsackGui; @@ -155,6 +157,9 @@ public class TProxyClient extends TProxyCommon return new StencilTableGui(player.inventory, (StencilTableLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); if (ID == toolForge) return new ToolForgeGui(player.inventory, (ToolForgeLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); + if (ID == glowstoneAggregatorGui) + return new GlowstoneAggregatorGui(player.inventory, (GlowstoneAggregator) world.getBlockTileEntity(x, y, z), world, x, y, z); + if (ID == manualGuiID) { ItemStack stack = player.getCurrentEquippedItem(); @@ -386,7 +391,7 @@ public class TProxyClient extends TProxyCommon //Tool parts TConstructClientRegistry.registerManualIcon("pickhead", new ItemStack(TContent.pickaxeHead, 1, 2)); TConstructClientRegistry.registerManualIcon("shovelhead", new ItemStack(TContent.shovelHead, 1, 2)); - TConstructClientRegistry.registerManualIcon("axehead", new ItemStack(TContent.axeHead, 1, 2)); + TConstructClientRegistry.registerManualIcon("axehead", new ItemStack(TContent.hatchetHead, 1, 2)); TConstructClientRegistry.registerManualIcon("swordblade", new ItemStack(TContent.swordBlade, 1, 2)); TConstructClientRegistry.registerManualIcon("pan", new ItemStack(TContent.frypanHead, 1, 2)); TConstructClientRegistry.registerManualIcon("board", new ItemStack(TContent.signHead, 1, 2)); @@ -404,9 +409,9 @@ public class TProxyClient extends TProxyCommon TConstructClientRegistry.registerManualIcon("pickicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.pickaxeHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.binding, 1, 12), "")); TConstructClientRegistry.registerManualIcon("shovelicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.shovelHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, "")); - TConstructClientRegistry.registerManualIcon("axeicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.axeHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, "")); + TConstructClientRegistry.registerManualIcon("axeicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.hatchetHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, "")); TConstructClientRegistry.registerManualIcon("mattockicon", - ToolBuilder.instance.buildTool(new ItemStack(TContent.axeHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.shovelHead, 1, 12), "")); + ToolBuilder.instance.buildTool(new ItemStack(TContent.hatchetHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.shovelHead, 1, 12), "")); TConstructClientRegistry.registerManualIcon("swordicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.swordBlade, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.wideGuard, 1, 12), "")); TConstructClientRegistry.registerManualIcon("longswordicon", @@ -645,9 +650,9 @@ public class TProxyClient extends TProxyCommon String[] effectTypes = { "diamond", "emerald", "redstone", "piston", "moss", "ice", "lava", "blaze", "necrotic", "electric", "lapis", "quartz", "silk", "beheading", "smite", "spider", "reinforced" }; int[] universalEffects = { 0, 1, 4, 9, 16 }; - int[] weaponEffects = { 3, 5, 7, 8, 11, 13, 14, 15 }; + int[] weaponEffects = { 3, 5, 7, 13, 14, 15 }; int[] harvestEffects = { 2 }; - int[] nonUtility = { 6, 10, 12 }; + int[] nonUtility = { 6, 8, 10, 11, 12 }; for (int partIter = 0; partIter < partTypes.length; partIter++) { @@ -656,13 +661,17 @@ public class TProxyClient extends TProxyCommon for (ToolCore tool : TConstructRegistry.getToolMapping()) { - List list = Arrays.asList(tool.toolCategories()); + for (int i = 0; i < effectTypes.length; i++) + { + TConstructClientRegistry.addEffectRenderMapping(tool, i, "tinker", effectTypes[i], true); + } + /*List list = Arrays.asList(tool.toolCategories()); for (int i = 0; i < universalEffects.length; i++) { TConstructClientRegistry.addEffectRenderMapping(tool, universalEffects[i], "tinker", effectTypes[universalEffects[i]], true); } - if (list.contains("harvest")) + if (list.contains("harvest") || list.contains("utility")) { for (int i = 0; i < harvestEffects.length; i++) { @@ -684,7 +693,7 @@ public class TProxyClient extends TProxyCommon { TConstructClientRegistry.addEffectRenderMapping(tool, nonUtility[i], "tinker", effectTypes[nonUtility[i]], true); } - } + }*/ } } diff --git a/mods/tinker/tconstruct/client/block/SmelteryRender.java b/mods/tinker/tconstruct/client/block/SmelteryRender.java index dca8fc8..01f1bb2 100644 --- a/mods/tinker/tconstruct/client/block/SmelteryRender.java +++ b/mods/tinker/tconstruct/client/block/SmelteryRender.java @@ -61,22 +61,25 @@ public class SmelteryRender implements ISimpleBlockRenderingHandler if (input != null && logic.getTempForSlot(i) > 20) { ItemStack blockToRender = Smeltery.getRenderIndex(input); - float blockHeight = input.stackSize / (float) blockToRender.stackSize; - renderer.setRenderBounds(-0.001F, 0.0F, -0.001F, 1.001F, MathHelper.clamp_float(blockHeight, 0.01F, 1.0F), 1.001F); + if (blockToRender != null) + { + float blockHeight = input.stackSize / (float) blockToRender.stackSize; + renderer.setRenderBounds(-0.001F, 0.0F, -0.001F, 1.001F, MathHelper.clamp_float(blockHeight, 0.01F, 1.0F), 1.001F); - if (blockToRender.itemID < 4096) //Block - { - Block liquidBlock = Block.blocksList[blockToRender.itemID]; - //ForgeHooksClient.bindTexture(liquidBlock.getTextureFile(), 0); - BlockSkinRenderHelper.renderMetadataBlock(liquidBlock, blockToRender.getItemDamage(), posX + i % 3, posY + i / 9, posZ + i / 3, renderer, world); - } - else - //Item - { - Item liquidItem = Item.itemsList[blockToRender.itemID]; - //ForgeHooksClient.bindTexture(liquidItem.getTextureFile(), 0); - int metadata = blockToRender.getItemDamage(); - BlockSkinRenderHelper.renderFakeBlock(liquidItem.getIconFromDamage(metadata), posX, posY + i / 9, posZ, renderer, world); + if (blockToRender.itemID < 4096) //Block + { + Block liquidBlock = Block.blocksList[blockToRender.itemID]; + //ForgeHooksClient.bindTexture(liquidBlock.getTextureFile(), 0); + BlockSkinRenderHelper.renderMetadataBlock(liquidBlock, blockToRender.getItemDamage(), posX + i % 3, posY + i / 9, posZ + i / 3, renderer, world); + } + else + //Item + { + Item liquidItem = Item.itemsList[blockToRender.itemID]; + //ForgeHooksClient.bindTexture(liquidItem.getTextureFile(), 0); + int metadata = blockToRender.getItemDamage(); + BlockSkinRenderHelper.renderFakeBlock(liquidItem.getIconFromDamage(metadata), posX, posY + i / 9, posZ, renderer, world); + } } } } @@ -147,7 +150,8 @@ public class SmelteryRender implements ISimpleBlockRenderingHandler Block liquidBlock = Block.blocksList[blockToRender.itemID]; BlockSkinRenderHelper.renderMetadataBlock(liquidBlock, blockToRender.getItemDamage(), posX + i % 3, posY, posZ + i / 3, renderer, world); } - else //Item + else + //Item { Item liquidItem = Item.itemsList[blockToRender.itemID]; int metadata = blockToRender.getItemDamage(); diff --git a/mods/tinker/tconstruct/client/gui/GlowstoneAggregatorGui.java b/mods/tinker/tconstruct/client/gui/GlowstoneAggregatorGui.java new file mode 100644 index 0000000..3287b97 --- /dev/null +++ b/mods/tinker/tconstruct/client/gui/GlowstoneAggregatorGui.java @@ -0,0 +1,43 @@ +package mods.tinker.tconstruct.client.gui; + +import mods.tinker.tconstruct.blocks.logic.GlowstoneAggregator; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +import org.lwjgl.opengl.GL11; + +public class GlowstoneAggregatorGui extends GuiContainer +{ + public GlowstoneAggregator logic; + + public GlowstoneAggregatorGui(InventoryPlayer inventoryplayer, GlowstoneAggregator frypan, World world, int x, int y, int z) + { + super(frypan.getGuiContainer(inventoryplayer, world, x, y, z)); + logic = frypan; + } + + protected void drawGuiContainerForegroundLayer(int par1, int par2) + { + //fontRenderer.drawString(StatCollector.translateToLocal("aggregator.glowstone"), 60, 6, 0x404040); + fontRenderer.drawString("Glowstone Aggregator", 8, 6, 0x404040); + fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, (ySize - 96) + 2, 0x404040); + } + + protected void drawGuiContainerBackgroundLayer(float f, int i, int j) + { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + mc.renderEngine.bindTexture("/mods/tinker/textures/gui/aggregator.png"); + int cornerX = (width - xSize) / 2; + int cornerY = (height - ySize) / 2; + drawTexturedModalRect(cornerX, cornerY, 0, 0, xSize, ySize); + /*if (logic.fuel > 0) + { + int fuel = logic.gaugeFuelScaled(12); + drawTexturedModalRect(cornerX + 27, (cornerY + 40) - fuel, 176, 12 - fuel, 14, fuel + 2); + } + int fuelgague = logic.gaugeProgressScaled(24); + drawTexturedModalRect(cornerX + 140, cornerY + 8, 176, 14, fuelgague, 16);*/ + } +} diff --git a/mods/tinker/tconstruct/client/gui/GuiManual.java b/mods/tinker/tconstruct/client/gui/GuiManual.java index 4335fc6..1f6b8e1 100644 --- a/mods/tinker/tconstruct/client/gui/GuiManual.java +++ b/mods/tinker/tconstruct/client/gui/GuiManual.java @@ -49,7 +49,7 @@ public class GuiManual extends GuiScreen ItemStack[] iconsRight; String[] multiTextRight; ToolMaterial materialRight; - + SmallFontRenderer fonts = TProxyClient.smallFontRenderer; public GuiManual(ItemStack stack, Document doc) @@ -784,7 +784,7 @@ public class GuiManual extends GuiScreen if (icons[2] != null) renderitem.renderItemAndEffectIntoGUI(fonts, mc.renderEngine, icons[2], (localWidth + 18) / 2, (localHeight + 74) / 2); renderitem.zLevel = 0; - + GL11.glScalef(0.5F, 0.5F, 0.5F); RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); @@ -811,8 +811,10 @@ public class GuiManual extends GuiScreen GL11.glDisable(GL12.GL_RESCALE_NORMAL); this.fonts.drawSplitString(icons[1].getTooltip(this.mc.thePlayer, false).get((0)).toString(), localWidth + 128, localHeight + 53, 52, 0); - this.fonts.drawSplitString(icons[2].getTooltip(this.mc.thePlayer, false).get((0)).toString(), localWidth + 128, localHeight + 85, 52, 0); - this.fonts.drawSplitString(icons[3].getTooltip(this.mc.thePlayer, false).get((0)).toString(), localWidth + 128, localHeight + 117, 52, 0); + if (icons[2] != null) + this.fonts.drawSplitString(icons[2].getTooltip(this.mc.thePlayer, false).get((0)).toString(), localWidth + 128, localHeight + 85, 52, 0); + if (icons[3] != null) + this.fonts.drawSplitString(icons[3].getTooltip(this.mc.thePlayer, false).get((0)).toString(), localWidth + 128, localHeight + 117, 52, 0); this.fonts.drawString("Durability: " + material.durability(), localWidth, localHeight + 40, 0); this.fonts.drawString("Handle Modifier: " + material.handleDurability() + "x", localWidth, localHeight + 50, 0); diff --git a/mods/tinker/tconstruct/client/gui/StencilTableGui.java b/mods/tinker/tconstruct/client/gui/StencilTableGui.java index 20ef028..957dc10 100644 --- a/mods/tinker/tconstruct/client/gui/StencilTableGui.java +++ b/mods/tinker/tconstruct/client/gui/StencilTableGui.java @@ -89,14 +89,14 @@ public class StencilTableGui extends GuiContainer if (button.id == 0) { patternIndex++; - if (patternIndex > TContent.patternOutputs.length-1) + if (patternIndex >= TContent.patternOutputs.length-1) patternIndex = 0; } else if (button.id == 1) { patternIndex--; if (patternIndex < 0) - patternIndex = TContent.patternOutputs.length-1; + patternIndex = TContent.patternOutputs.length-2; } ItemStack stack = new ItemStack(TContent.woodPattern, 1, patternIndex + 1); logic.setInventorySlotContents(1, stack); @@ -107,14 +107,14 @@ public class StencilTableGui extends GuiContainer if (button.id == 0) { patternIndex++; - if (patternIndex > TContent.patternOutputs.length) + if (patternIndex > TContent.patternOutputs.length-1) patternIndex = 0; } else if (button.id == 1) { patternIndex--; if (patternIndex < 0) - patternIndex = TContent.patternOutputs.length; + patternIndex = TContent.patternOutputs.length-1; } ItemStack stack = new ItemStack(TContent.metalPattern, 1, patternIndex); logic.setInventorySlotContents(1, stack); diff --git a/mods/tinker/tconstruct/client/gui/ToolStationGui.java b/mods/tinker/tconstruct/client/gui/ToolStationGui.java index c7b7ec6..1472669 100644 --- a/mods/tinker/tconstruct/client/gui/ToolStationGui.java +++ b/mods/tinker/tconstruct/client/gui/ToolStationGui.java @@ -300,6 +300,14 @@ public class ToolStationGui extends NewContainerGui offset++; offset++; } + else if (categories.contains("utility")) + { + float mineSpeed = tags.getInteger("MiningSpeed"); + float trueSpeed = mineSpeed / (100f); + fontRenderer.drawString("Usage Speed: " + trueSpeed, xSize + 8, base + offset * 10, 0xffffff); + offset++; + offset++; + } int modifiers = tags.getInteger("Modifiers"); if (modifiers > 0) diff --git a/mods/tinker/tconstruct/common/TContent.java b/mods/tinker/tconstruct/common/TContent.java index 9db1537..75d3148 100644 --- a/mods/tinker/tconstruct/common/TContent.java +++ b/mods/tinker/tconstruct/common/TContent.java @@ -47,57 +47,57 @@ import extrabiomes.api.BiomeManager; public class TContent implements IFuelHandler { - //Patterns and other materials - public static Item blankPattern; - public static Item materials; - public static Item toolRod; - public static Item toolShard; - public static Item woodPattern; - public static Item metalPattern; + //Patterns and other materials + public static Item blankPattern; + public static Item materials; + public static Item toolRod; + public static Item toolShard; + public static Item woodPattern; + public static Item metalPattern; - public static Item manualBook; - public static Item buckets; - public static Item titleIcon; + public static Item manualBook; + public static Item buckets; + public static Item titleIcon; - public static Item strangeFood; - public static Item diamondApple; - //public static Item stonePattern; - //public static Item netherPattern; + public static Item strangeFood; + public static Item diamondApple; + //public static Item stonePattern; + //public static Item netherPattern; - //Tools - public static ToolCore pickaxe; - public static ToolCore shovel; - public static ToolCore axe; - public static ToolCore broadsword; - public static ToolCore longsword; - public static ToolCore rapier; - public static ToolCore dagger; + //Tools + public static ToolCore pickaxe; + public static ToolCore shovel; + public static ToolCore hatchet; + public static ToolCore broadsword; + public static ToolCore longsword; + public static ToolCore rapier; + public static ToolCore dagger; public static ToolCore cutlass; - public static ToolCore frypan; - public static ToolCore battlesign; - public static ToolCore chisel; + public static ToolCore frypan; + public static ToolCore battlesign; + public static ToolCore chisel; public static ToolCore mattock; - //public static ToolCore longbow; + //public static ToolCore longbow; - public static ToolCore scythe; - public static ToolCore lumberaxe; + public static ToolCore scythe; + public static ToolCore lumberaxe; public static ToolCore cleaver; public static ToolCore excavator; public static ToolCore hammer; public static ToolCore battleaxe; - public static Item potionLauncher; + public static Item potionLauncher; - //Tool parts + //Tool parts public static Item binding; public static Item toughBinding; public static Item toughRod; public static Item heavyPlate; - - public static Item pickaxeHead; - public static Item shovelHead; - public static Item axeHead; + + public static Item pickaxeHead; + public static Item shovelHead; + public static Item hatchetHead; public static Item frypanHead; public static Item signHead; public static Item chiselHead; @@ -106,1018 +106,1084 @@ public class TContent implements IFuelHandler public static Item excavatorHead; public static Item hammerHead; - public static Item swordBlade; + public static Item swordBlade; public static Item largeSwordBlade; public static Item knifeBlade; - - public static Item wideGuard; - public static Item handGuard; - public static Item crossbar; + + public static Item wideGuard; + public static Item handGuard; + public static Item crossbar; public static Item fullGuard; - //Crafting blocks - public static Block toolStationWood; - public static Block toolStationStone; - public static Block toolForge; - public static Block heldItemBlock; - public static Block craftedSoil; + //Crafting blocks + public static Block toolStationWood; + public static Block toolStationStone; + public static Block toolForge; + public static Block heldItemBlock; + public static Block craftedSoil; - public static Block smeltery; - public static Block lavaTank; - public static Block searedBlock; - public static Block metalBlock; + public static Block smeltery; + public static Block lavaTank; + public static Block searedBlock; + public static Block metalBlock; - //Decoration - public static Block stoneTorch; - public static Block multiBrick; + //Decoration + public static Block stoneTorch; + public static Block multiBrick; + public static Block multiBrickFancy; - //Traps - public static Block landmine; - public static Block barricade; + //Traps + public static Block landmine; + public static Block barricade; - //InfiBlocks - public static Block speedBlock; + //InfiBlocks + public static Block speedBlock; - //Liquids - public static Block liquidMetalFlowing; - public static Block liquidMetalStill; - public static Material liquidMetal; + public static Block aggregator; - //Ores - public static Block oreSlag; - public static Block oreGravel; - public static OreberryBush oreBerry; - public static OreberryBush oreBerrySecond; - public static Item oreBerries; + //Liquids + public static Block liquidMetalFlowing; + public static Block liquidMetalStill; + public static Material liquidMetal; - //Tool modifiers - public static ModElectric modE; - public static ModLapis modL; + //Ores + public static Block oreSlag; + public static Block oreGravel; + public static OreberryBush oreBerry; + public static OreberryBush oreBerrySecond; + public static Item oreBerries; - //Golems - /*public static Block glowSapling; - public static Block glowLeaves; - public static Block glowLog;*/ + //Tool modifiers + public static ModElectric modE; + public static ModLapis modL; - public static Block redstoneBallRepeater; - public static Item redstoneBallRepeaterItem; + //Golems + /*public static Block glowSapling; + public static Block glowLeaves; + public static Block glowLog;*/ - public static Block golemCore; - public static Block golemPedestal; - public static Block golemHead; + public static Block redstoneBallRepeater; + public static Item redstoneBallRepeaterItem; - public static Item golemWand; - public static Item golemRecharger; - public static Item corestone; - public static Item notebook; - public static Item note; + public static Block golemCore; + public static Block golemPedestal; + public static Block golemHead; - //Wearables - public static Item heavyHelmet; - public static Item heavyChestplate; - public static Item heavyPants; - public static Item heavyBoots; - public static Item glove; - public static Item knapsack; + public static Item golemWand; + public static Item golemRecharger; + public static Item corestone; + public static Item notebook; + public static Item note; - public static Item heartCanister; - - //Chest hooks - public static ChestGenHooks tinkerHouseChest; - public static ChestGenHooks tinkerHousePatterns; + //Wearables + public static Item heavyHelmet; + public static Item heavyChestplate; + public static Item heavyPants; + public static Item heavyBoots; + public static Item glove; + public static Item knapsack; - public TContent() - { - registerBlocks(); - registerItems(); - registerMaterials(); - addCraftingRecipes(); - setupToolTabs(); - addLoot(); - } + public static Item heartCanister; - public void createEntities () - { - EntityRegistry.registerModEntity(FancyEntityItem.class, "Fancy Item", 0, TConstruct.instance, 32, 5, true); - EntityRegistry.registerModEntity(DaggerEntity.class, "Dagger", 1, TConstruct.instance, 32, 5, true); - //EntityRegistry.registerModEntity(Crystal.class, "Crystal", 2, TConstruct.instance, 32, 5, true); - //EntityRegistry.registerModEntity(SlimeClone.class, "SlimeClone", 2, TConstruct.instance, 32, 5, true); - //EntityRegistry.registerModEntity(LaunchedPotion.class, "Launched Potion", 1, TConstruct.instance, 32, 3, true); - //EntityRegistry.registerModEntity(CartEntity.class, "Small Wagon", 1, TConstruct.instance, 32, 5, true); + //Chest hooks + public static ChestGenHooks tinkerHouseChest; + public static ChestGenHooks tinkerHousePatterns; - //EntityRegistry.registerModEntity(Skyla.class, "Skyla", 10, TConstruct.instance, 32, 5, true); - EntityRegistry.registerModEntity(Automaton.class, "Automaton", 11, TConstruct.instance, 64, 5, true); - EntityRegistry.registerModEntity(BlueSlime.class, "EdibleSlime", 12, TConstruct.instance, 64, 5, true); - //EntityRegistry.registerModEntity(MetalSlime.class, "MetalSlime", 13, TConstruct.instance, 64, 5, true); + public TContent() + { + registerBlocks(); + registerItems(); + registerMaterials(); + addCraftingRecipes(); + setupToolTabs(); + addLoot(); + } - BiomeGenBase[] plains = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.PLAINS); - BiomeGenBase[] mountain = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.MOUNTAIN); - BiomeGenBase[] hills = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.HILLS); - BiomeGenBase[] swamp = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.SWAMP); - BiomeGenBase[] desert = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.DESERT); - BiomeGenBase[] frozen = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.FROZEN); - BiomeGenBase[] jungle = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.JUNGLE); - BiomeGenBase[] wasteland = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.WASTELAND); + public void createEntities () + { + EntityRegistry.registerModEntity(FancyEntityItem.class, "Fancy Item", 0, TConstruct.instance, 32, 5, true); + EntityRegistry.registerModEntity(DaggerEntity.class, "Dagger", 1, TConstruct.instance, 32, 5, true); + //EntityRegistry.registerModEntity(Crystal.class, "Crystal", 2, TConstruct.instance, 32, 5, true); + //EntityRegistry.registerModEntity(SlimeClone.class, "SlimeClone", 2, TConstruct.instance, 32, 5, true); + //EntityRegistry.registerModEntity(LaunchedPotion.class, "Launched Potion", 1, TConstruct.instance, 32, 3, true); + //EntityRegistry.registerModEntity(CartEntity.class, "Small Wagon", 1, TConstruct.instance, 32, 5, true); - BiomeGenBase[] nether = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.NETHER); + //EntityRegistry.registerModEntity(Skyla.class, "Skyla", 10, TConstruct.instance, 32, 5, true); + EntityRegistry.registerModEntity(Automaton.class, "Automaton", 11, TConstruct.instance, 64, 5, true); + EntityRegistry.registerModEntity(BlueSlime.class, "EdibleSlime", 12, TConstruct.instance, 64, 5, true); + //EntityRegistry.registerModEntity(MetalSlime.class, "MetalSlime", 13, TConstruct.instance, 64, 5, true); - /*if (PHConstruct.superfunWorld) - { - EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, plains); - EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, mountain); - EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, hills); - EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, swamp); - EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, desert); - EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, frozen); - EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, jungle); - EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, wasteland); - DimensionManager.unregisterProviderType(0); - DimensionManager.registerProviderType(0, OverworldProvider.class, true); - }*/ - if (PHConstruct.blueSlime) - { - EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, plains); - EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, mountain); - EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, hills); - EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, swamp); - EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, desert); - EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, frozen); - EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, jungle); - EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, wasteland); - } - - try - { - Class.forName("extrabiomes.api.BiomeManager"); - Collection ebxlCollection = BiomeManager.getBiomes(); - BiomeGenBase[] ebxlBiomes = (BiomeGenBase[]) ebxlCollection.toArray(); - EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, ebxlBiomes); - } - catch (Exception e) - { - - } - //EntityRegistry.addSpawn(MetalSlime.class, 1, 4, 4, EnumCreatureType.monster, overworldBiomes); - } + BiomeGenBase[] plains = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.PLAINS); + BiomeGenBase[] mountain = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.MOUNTAIN); + BiomeGenBase[] hills = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.HILLS); + BiomeGenBase[] swamp = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.SWAMP); + BiomeGenBase[] desert = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.DESERT); + BiomeGenBase[] frozen = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.FROZEN); + BiomeGenBase[] jungle = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.JUNGLE); + BiomeGenBase[] wasteland = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.WASTELAND); - void registerBlocks () - { - //Tool Station - toolStationWood = new ToolStationBlock(PHConstruct.woodCrafter, Material.wood).setUnlocalizedName("ToolStation"); - GameRegistry.registerBlock(toolStationWood, ToolStationItemBlock.class, "ToolStationBlock"); - GameRegistry.registerTileEntity(ToolStationLogic.class, "ToolStation"); - GameRegistry.registerTileEntity(PartCrafterLogic.class, "PartCrafter"); - GameRegistry.registerTileEntity(PatternChestLogic.class, "PatternHolder"); - GameRegistry.registerTileEntity(StencilTableLogic.class, "PatternShaper"); - - toolForge = new ToolForgeBlock(PHConstruct.toolForge, Material.iron).setUnlocalizedName("ToolForge"); - GameRegistry.registerBlock(toolForge, ToolForgeItemBlock.class, "ToolForgeBlock"); - GameRegistry.registerTileEntity(ToolForgeLogic.class, "ToolForge"); + BiomeGenBase[] nether = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.NETHER); - heldItemBlock = new EquipBlock(PHConstruct.heldItemBlock, Material.wood).setUnlocalizedName("Frypan"); - GameRegistry.registerBlock(heldItemBlock, "HeldItemBlock"); - GameRegistry.registerTileEntity(FrypanLogic.class, "FrypanLogic"); + /*if (PHConstruct.superfunWorld) + { + EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, plains); + EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, mountain); + EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, hills); + EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, swamp); + EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, desert); + EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, frozen); + EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, jungle); + EntityRegistry.addSpawn(NitroCreeper.class, 1000, 100, 100, EnumCreatureType.monster, wasteland); + DimensionManager.unregisterProviderType(0); + DimensionManager.registerProviderType(0, OverworldProvider.class, true); + }*/ + if (PHConstruct.blueSlime) + { + EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, plains); + EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, mountain); + EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, hills); + EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, swamp); + EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, desert); + EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, frozen); + EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, jungle); + EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, wasteland); + } - craftedSoil = new SoilBlock(PHConstruct.craftedSoil).setUnlocalizedName("TConstruct.Soil"); - craftedSoil.stepSound = Block.soundGravelFootstep; - GameRegistry.registerBlock(craftedSoil, CraftedSoilItemBlock.class, "CraftedSoil"); + try + { + Class.forName("extrabiomes.api.BiomeManager"); + Collection ebxlCollection = BiomeManager.getBiomes(); + BiomeGenBase[] ebxlBiomes = (BiomeGenBase[]) ebxlCollection.toArray(); + EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, ebxlBiomes); + } + catch (Exception e) + { - metalBlock = new TMetalBlock(PHConstruct.metalBlock, Material.iron, 10.0F).setUnlocalizedName("tconstruct.metalblock"); - metalBlock.stepSound = Block.soundMetalFootstep; - GameRegistry.registerBlock(metalBlock, MetalItemBlock.class, "MetalBlock"); + } + //EntityRegistry.addSpawn(MetalSlime.class, 1, 4, 4, EnumCreatureType.monster, overworldBiomes); + } - //Smeltery - smeltery = new SmelteryBlock(PHConstruct.smeltery).setUnlocalizedName("Smeltery"); - GameRegistry.registerBlock(smeltery, SmelteryItemBlock.class, "Smeltery"); - GameRegistry.registerTileEntity(SmelteryLogic.class, "TConstruct.Smeltery"); - GameRegistry.registerTileEntity(SmelteryDrainLogic.class, "TConstruct.SmelteryDrain"); - GameRegistry.registerTileEntity(MultiServantLogic.class, "TConstruct.Servants"); + void registerBlocks () + { + //Tool Station + toolStationWood = new ToolStationBlock(PHConstruct.woodCrafter, Material.wood).setUnlocalizedName("ToolStation"); + GameRegistry.registerBlock(toolStationWood, ToolStationItemBlock.class, "ToolStationBlock"); + GameRegistry.registerTileEntity(ToolStationLogic.class, "ToolStation"); + GameRegistry.registerTileEntity(PartCrafterLogic.class, "PartCrafter"); + GameRegistry.registerTileEntity(PatternChestLogic.class, "PatternHolder"); + GameRegistry.registerTileEntity(StencilTableLogic.class, "PatternShaper"); - lavaTank = new LavaTankBlock(PHConstruct.lavaTank).setUnlocalizedName("LavaTank"); - lavaTank.setStepSound(Block.soundGlassFootstep); - GameRegistry.registerBlock(lavaTank, LavaTankItemBlock.class, "LavaTank"); - GameRegistry.registerTileEntity(LavaTankLogic.class, "TConstruct.LavaTank"); + toolForge = new ToolForgeBlock(PHConstruct.toolForge, Material.iron).setUnlocalizedName("ToolForge"); + GameRegistry.registerBlock(toolForge, ToolForgeItemBlock.class, "ToolForgeBlock"); + GameRegistry.registerTileEntity(ToolForgeLogic.class, "ToolForge"); - searedBlock = new SearedBlock(PHConstruct.searedTable).setUnlocalizedName("SearedBlock"); - GameRegistry.registerBlock(searedBlock, SearedTableItemBlock.class, "SearedBlock"); - GameRegistry.registerTileEntity(CastingTableLogic.class, "CastingTable"); - GameRegistry.registerTileEntity(FaucetLogic.class, "Faucet"); - GameRegistry.registerTileEntity(CastingBasinLogic.class, "CastingBasin"); + heldItemBlock = new EquipBlock(PHConstruct.heldItemBlock, Material.wood).setUnlocalizedName("Frypan"); + GameRegistry.registerBlock(heldItemBlock, "HeldItemBlock"); + GameRegistry.registerTileEntity(FrypanLogic.class, "FrypanLogic"); - //Traps - /*landmine = new Landmine(PHConstruct.landmine, 0, EnumMobType.mobs, Material.cactus).setUnlocalizedName("landmine"); - GameRegistry.registerBlock(landmine, "landmine");*/ + craftedSoil = new SoilBlock(PHConstruct.craftedSoil).setUnlocalizedName("TConstruct.Soil"); + craftedSoil.stepSound = Block.soundGravelFootstep; + GameRegistry.registerBlock(craftedSoil, CraftedSoilItemBlock.class, "CraftedSoil"); - //Liquids - liquidMetal = new MaterialLiquid(MapColor.tntColor); - liquidMetalFlowing = new LiquidMetalFlowing(PHConstruct.metalFlowing).setUnlocalizedName("liquid.metalFlow"); - liquidMetalStill = new LiquidMetalStill(PHConstruct.metalStill).setUnlocalizedName("liquid.metalStill"); - GameRegistry.registerBlock(liquidMetalFlowing, LiquidItemBlock.class, "metalFlow"); - GameRegistry.registerBlock(liquidMetalStill, LiquidItemBlock.class, "metalStill"); - GameRegistry.registerTileEntity(LiquidTextureLogic.class, "LiquidTexture"); + metalBlock = new TMetalBlock(PHConstruct.metalBlock, Material.iron, 10.0F).setUnlocalizedName("tconstruct.metalblock"); + metalBlock.stepSound = Block.soundMetalFootstep; + GameRegistry.registerBlock(metalBlock, MetalItemBlock.class, "MetalBlock"); - //Decoration - stoneTorch = new StoneTorch(PHConstruct.stoneTorch).setUnlocalizedName("decoration.stonetorch"); - GameRegistry.registerBlock(stoneTorch, "decoration.stonetorch"); + //Smeltery + smeltery = new SmelteryBlock(PHConstruct.smeltery).setUnlocalizedName("Smeltery"); + GameRegistry.registerBlock(smeltery, SmelteryItemBlock.class, "Smeltery"); + GameRegistry.registerTileEntity(SmelteryLogic.class, "TConstruct.Smeltery"); + GameRegistry.registerTileEntity(SmelteryDrainLogic.class, "TConstruct.SmelteryDrain"); + GameRegistry.registerTileEntity(MultiServantLogic.class, "TConstruct.Servants"); - multiBrick = new MultiBrick(PHConstruct.multiBrick).setUnlocalizedName("Decoration.Brick"); - GameRegistry.registerBlock(multiBrick, MultiBrickItem.class, "decoration.multibrick"); + lavaTank = new LavaTankBlock(PHConstruct.lavaTank).setUnlocalizedName("LavaTank"); + lavaTank.setStepSound(Block.soundGlassFootstep); + GameRegistry.registerBlock(lavaTank, LavaTankItemBlock.class, "LavaTank"); + GameRegistry.registerTileEntity(LavaTankLogic.class, "TConstruct.LavaTank"); - //Ores - String[] berryOres = new String[] { "berry_iron", "berry_gold", "berry_copper", "berry_tin", "berry_iron_ripe", "berry_gold_ripe", "berry_copper_ripe", "berry_tin_ripe" }; - oreBerry = (OreberryBush) new OreberryBush(PHConstruct.oreBerry, berryOres, 0, 4, new String[] { "oreIron", "oreGold", "oreCopper", "oreTin" }).setUnlocalizedName("ore.berries.one"); - GameRegistry.registerBlock(oreBerry, OreberryBushItem.class, "ore.berries.one"); - String[] berryOresTwo = new String[] { "berry_aluminum", "berry_silver", "", "", "berry_aluminum_ripe", "berry_silver_ripe", "", "" }; - oreBerrySecond = (OreberryBush) new OreberryBush(PHConstruct.oreBerrySecond, berryOresTwo, 4, 2, new String[] { "oreAluminum", "oreSilver" }).setUnlocalizedName("ore.berries.two"); - GameRegistry.registerBlock(oreBerrySecond, OreberryBushSecondItem.class, "ore.berries.two"); + searedBlock = new SearedBlock(PHConstruct.searedTable).setUnlocalizedName("SearedBlock"); + GameRegistry.registerBlock(searedBlock, SearedTableItemBlock.class, "SearedBlock"); + GameRegistry.registerTileEntity(CastingTableLogic.class, "CastingTable"); + GameRegistry.registerTileEntity(FaucetLogic.class, "Faucet"); + GameRegistry.registerTileEntity(CastingBasinLogic.class, "CastingBasin"); - String[] oreTypes = new String[] { "nether_slag", "nether_cobalt", "nether_ardite", "ore_copper", "ore_tin", "ore_aluminum", "ore_slag" }; - oreSlag = new MetalOre(PHConstruct.oreSlag, Material.iron, 10.0F, oreTypes).setUnlocalizedName("tconstruct.stoneore"); - GameRegistry.registerBlock(oreSlag, MetalOreItemBlock.class, "SearedBrick"); - MinecraftForge.setBlockHarvestLevel(oreSlag, 1, "pickaxe", 4); - MinecraftForge.setBlockHarvestLevel(oreSlag, 2, "pickaxe", 4); - MinecraftForge.setBlockHarvestLevel(oreSlag, 3, "pickaxe", 1); - MinecraftForge.setBlockHarvestLevel(oreSlag, 4, "pickaxe", 1); - MinecraftForge.setBlockHarvestLevel(oreSlag, 5, "pickaxe", 1); + //Traps + /*landmine = new Landmine(PHConstruct.landmine, 0, EnumMobType.mobs, Material.cactus).setUnlocalizedName("landmine"); + GameRegistry.registerBlock(landmine, "landmine");*/ - oreGravel = new GravelOre(PHConstruct.oreGravel).setUnlocalizedName("GravelOre").setUnlocalizedName("tconstruct.gravelore"); - GameRegistry.registerBlock(oreGravel, GravelOreItem.class, "GravelOre"); + //Liquids + liquidMetal = new MaterialLiquid(MapColor.tntColor); + liquidMetalFlowing = new LiquidMetalFlowing(PHConstruct.metalFlowing).setUnlocalizedName("liquid.metalFlow"); + liquidMetalStill = new LiquidMetalStill(PHConstruct.metalStill).setUnlocalizedName("liquid.metalStill"); + GameRegistry.registerBlock(liquidMetalFlowing, LiquidItemBlock.class, "metalFlow"); + GameRegistry.registerBlock(liquidMetalStill, LiquidItemBlock.class, "metalStill"); + GameRegistry.registerTileEntity(LiquidTextureLogic.class, "LiquidTexture"); - MinecraftForge.setBlockHarvestLevel(oreGravel, 0, "shovel", 1); - MinecraftForge.setBlockHarvestLevel(oreGravel, 1, "shovel", 2); - MinecraftForge.setBlockHarvestLevel(oreGravel, 2, "shovel", 1); - MinecraftForge.setBlockHarvestLevel(oreGravel, 3, "shovel", 1); - MinecraftForge.setBlockHarvestLevel(oreGravel, 4, "shovel", 1); - MinecraftForge.setBlockHarvestLevel(oreGravel, 5, "shovel", 4); + //Decoration + stoneTorch = new StoneTorch(PHConstruct.stoneTorch).setUnlocalizedName("decoration.stonetorch"); + GameRegistry.registerBlock(stoneTorch, "decoration.stonetorch"); - speedBlock = new SpeedBlock(PHConstruct.speedBlock).setUnlocalizedName("SpeedBlock"); - GameRegistry.registerBlock(speedBlock, SpeedBlockItem.class, "SpeedBlock"); + multiBrick = new MultiBrick(PHConstruct.multiBrick).setUnlocalizedName("Decoration.Brick"); + GameRegistry.registerBlock(multiBrick, MultiBrickItem.class, "decoration.multibrick"); + multiBrickFancy = new MultiBrickFancy(PHConstruct.multiBrickFancy).setUnlocalizedName("Decoration.BrickFancy"); + GameRegistry.registerBlock(multiBrickFancy, MultiBrickFancyItem.class, "decoration.multibrickfancy"); - /*redstoneBallRepeater = new RedstoneBallRepeater(PHConstruct.redstoneBallRepeater, false).setUnlocalizedName("decoration.redstoneballrepeater"); - GameRegistry.registerBlock(redstoneBallRepeater, "decoration.redstoneballrepeater"); - Item.itemsList[PHConstruct.redstoneBallRepeater] = null; - redstoneBallRepeaterItem = new RedstoneBallRepeaterItem(PHConstruct.redstoneBallRepeater-256).setUnlocalizedName("decoration.redstoneballrepeater");*/ + //Ores + String[] berryOres = new String[] { "berry_iron", "berry_gold", "berry_copper", "berry_tin", "berry_iron_ripe", "berry_gold_ripe", "berry_copper_ripe", "berry_tin_ripe" }; + oreBerry = (OreberryBush) new OreberryBush(PHConstruct.oreBerry, berryOres, 0, 4, new String[] { "oreIron", "oreGold", "oreCopper", "oreTin" }).setUnlocalizedName("ore.berries.one"); + GameRegistry.registerBlock(oreBerry, OreberryBushItem.class, "ore.berries.one"); + String[] berryOresTwo = new String[] { "berry_aluminum", "berry_silver", "", "", "berry_aluminum_ripe", "berry_silver_ripe", "", "" }; + oreBerrySecond = (OreberryBush) new OreberryBush(PHConstruct.oreBerrySecond, berryOresTwo, 4, 2, new String[] { "oreAluminum", "oreSilver" }).setUnlocalizedName("ore.berries.two"); + GameRegistry.registerBlock(oreBerrySecond, OreberryBushSecondItem.class, "ore.berries.two"); - //Golems - /*golemCore = new GolemCoreBlock(PHConstruct.golemCore).setUnlocalizedName("golemcore"); - GameRegistry.registerBlock(golemCore, "Golem Core"); - GameRegistry.registerTileEntity(GolemCoreLogic.class, "TConstruct.GolemCore"); - - golemHead = new GolemHeadBlock(PHConstruct.golemHead).setUnlocalizedName("golemhead"); - GameRegistry.registerBlock(golemHead, "Golem Head");*/ + String[] oreTypes = new String[] { "nether_slag", "nether_cobalt", "nether_ardite", "ore_copper", "ore_tin", "ore_aluminum", "ore_slag" }; + oreSlag = new MetalOre(PHConstruct.oreSlag, Material.iron, 10.0F, oreTypes).setUnlocalizedName("tconstruct.stoneore"); + GameRegistry.registerBlock(oreSlag, MetalOreItemBlock.class, "SearedBrick"); + MinecraftForge.setBlockHarvestLevel(oreSlag, 1, "pickaxe", 4); + MinecraftForge.setBlockHarvestLevel(oreSlag, 2, "pickaxe", 4); + MinecraftForge.setBlockHarvestLevel(oreSlag, 3, "pickaxe", 1); + MinecraftForge.setBlockHarvestLevel(oreSlag, 4, "pickaxe", 1); + MinecraftForge.setBlockHarvestLevel(oreSlag, 5, "pickaxe", 1); - /*golemPedestal = new GolemPedestalBlock(PHConstruct.golemPedestal).setUnlocalizedName("golempedestal"); - GameRegistry.registerBlock(golemPedestal, "Golem Pedestal"); - GameRegistry.registerTileEntity(GolemPedestalLogic.class, "TConstruct.GolemPedestal");*/ - - //Traps - /*landmine = new Landmine(PHConstruct.landmine, EnumMobType.mobs, Material.wood).setUnlocalizedName("tconstruct.landmine"); - GameRegistry.registerBlock(landmine, "Landmine"); - barricade = new BarricadeBlock(PHConstruct.barricade).setUnlocalizedName("tconstruct.barricade"); - GameRegistry.registerBlock(barricade, "Barricade");*/ - } + oreGravel = new GravelOre(PHConstruct.oreGravel).setUnlocalizedName("GravelOre").setUnlocalizedName("tconstruct.gravelore"); + GameRegistry.registerBlock(oreGravel, GravelOreItem.class, "GravelOre"); - void registerItems () - { - titleIcon = new TitleIcon(PHConstruct.uselessItem).setUnlocalizedName("tconstruct.titleicon"); - String[] blanks = new String[] { "blank_pattern", "blank_cast" }; - blankPattern = new CraftingItem(PHConstruct.blankPattern, blanks, blanks, "materials/").setUnlocalizedName("tconstruct.Pattern"); + MinecraftForge.setBlockHarvestLevel(oreGravel, 0, "shovel", 1); + MinecraftForge.setBlockHarvestLevel(oreGravel, 1, "shovel", 2); + MinecraftForge.setBlockHarvestLevel(oreGravel, 2, "shovel", 1); + MinecraftForge.setBlockHarvestLevel(oreGravel, 3, "shovel", 1); + MinecraftForge.setBlockHarvestLevel(oreGravel, 4, "shovel", 1); + MinecraftForge.setBlockHarvestLevel(oreGravel, 5, "shovel", 4); - materials = new MaterialItem(PHConstruct.materials).setUnlocalizedName("tconstruct.Materials"); - toolRod = new ToolPart(PHConstruct.toolRod, "ToolRod", "_rod").setUnlocalizedName("tconstruct.ToolRod"); - TConstructRegistry.toolRod = toolRod; - toolShard = new ToolShard(PHConstruct.toolShard, "ToolShard", "_chunk").setUnlocalizedName("tconstruct.ToolShard"); - woodPattern = new Pattern(PHConstruct.woodPattern, "WoodPattern", "pattern_", "materials/").setUnlocalizedName("tconstruct.Pattern"); - metalPattern = new MetalPattern(PHConstruct.metalPattern, "MetalPattern", "cast_", "materials/").setUnlocalizedName("tconstruct.MetalPattern"); - //netherPattern = new Pattern(PHTools.netherPattern, 128, patternTexture).setUnlocalizedName("tconstruct.Pattern"); + speedBlock = new SpeedBlock(PHConstruct.speedBlock).setUnlocalizedName("SpeedBlock"); + GameRegistry.registerBlock(speedBlock, SpeedBlockItem.class, "SpeedBlock"); - manualBook = new Manual(PHConstruct.manual); - buckets = new FilledBucket(PHConstruct.buckets); + aggregator = new Aggregator(PHConstruct.aggregator).setUnlocalizedName("Aggregator"); + GameRegistry.registerBlock(aggregator, "Aggregator"); + GameRegistry.registerTileEntity(GlowstoneAggregator.class, "GlowstoneAggregator"); - pickaxe = new Pickaxe(PHConstruct.pickaxe); - shovel = new Shovel(PHConstruct.shovel); - axe = new Hatchet(PHConstruct.axe); - broadsword = new Broadsword(PHConstruct.broadsword); - longsword = new Longsword(PHConstruct.longsword); - rapier = new Rapier(PHConstruct.rapier); - dagger = new Dagger(PHConstruct.dagger); - cutlass = new Cutlass(PHConstruct.cutlass); + /*redstoneBallRepeater = new RedstoneBallRepeater(PHConstruct.redstoneBallRepeater, false).setUnlocalizedName("decoration.redstoneballrepeater"); + GameRegistry.registerBlock(redstoneBallRepeater, "decoration.redstoneballrepeater"); + Item.itemsList[PHConstruct.redstoneBallRepeater] = null; + redstoneBallRepeaterItem = new RedstoneBallRepeaterItem(PHConstruct.redstoneBallRepeater-256).setUnlocalizedName("decoration.redstoneballrepeater");*/ + + //Golems + /*golemCore = new GolemCoreBlock(PHConstruct.golemCore).setUnlocalizedName("golemcore"); + GameRegistry.registerBlock(golemCore, "Golem Core"); + GameRegistry.registerTileEntity(GolemCoreLogic.class, "TConstruct.GolemCore"); + + golemHead = new GolemHeadBlock(PHConstruct.golemHead).setUnlocalizedName("golemhead"); + GameRegistry.registerBlock(golemHead, "Golem Head");*/ + + /*golemPedestal = new GolemPedestalBlock(PHConstruct.golemPedestal).setUnlocalizedName("golempedestal"); + GameRegistry.registerBlock(golemPedestal, "Golem Pedestal"); + GameRegistry.registerTileEntity(GolemPedestalLogic.class, "TConstruct.GolemPedestal");*/ + + //Traps + /*landmine = new Landmine(PHConstruct.landmine, EnumMobType.mobs, Material.wood).setUnlocalizedName("tconstruct.landmine"); + GameRegistry.registerBlock(landmine, "Landmine"); + barricade = new BarricadeBlock(PHConstruct.barricade).setUnlocalizedName("tconstruct.barricade"); + GameRegistry.registerBlock(barricade, "Barricade");*/ + } + + void registerItems () + { + titleIcon = new TitleIcon(PHConstruct.uselessItem).setUnlocalizedName("tconstruct.titleicon"); + String[] blanks = new String[] { "blank_pattern", "blank_cast" }; + blankPattern = new CraftingItem(PHConstruct.blankPattern, blanks, blanks, "materials/").setUnlocalizedName("tconstruct.Pattern"); + + materials = new MaterialItem(PHConstruct.materials).setUnlocalizedName("tconstruct.Materials"); + toolRod = new ToolPart(PHConstruct.toolRod, "ToolRod", "_rod").setUnlocalizedName("tconstruct.ToolRod"); + toolShard = new ToolShard(PHConstruct.toolShard, "ToolShard", "_chunk").setUnlocalizedName("tconstruct.ToolShard"); + woodPattern = new Pattern(PHConstruct.woodPattern, "WoodPattern", "pattern_", "materials/").setUnlocalizedName("tconstruct.Pattern"); + metalPattern = new MetalPattern(PHConstruct.metalPattern, "MetalPattern", "cast_", "materials/").setUnlocalizedName("tconstruct.MetalPattern"); + //netherPattern = new Pattern(PHTools.netherPattern, 128, patternTexture).setUnlocalizedName("tconstruct.Pattern"); + + manualBook = new Manual(PHConstruct.manual); + buckets = new FilledBucket(PHConstruct.buckets); + + pickaxe = new Pickaxe(PHConstruct.pickaxe); + shovel = new Shovel(PHConstruct.shovel); + hatchet = new Hatchet(PHConstruct.axe); + broadsword = new Broadsword(PHConstruct.broadsword); + longsword = new Longsword(PHConstruct.longsword); + rapier = new Rapier(PHConstruct.rapier); + dagger = new Dagger(PHConstruct.dagger); + cutlass = new Cutlass(PHConstruct.cutlass); + + frypan = new FryingPan(PHConstruct.frypan); + battlesign = new BattleSign(PHConstruct.battlesign); + mattock = new Mattock(PHConstruct.mattock); + chisel = new Chisel(PHConstruct.chisel); - frypan = new FryingPan(PHConstruct.frypan); - battlesign = new BattleSign(PHConstruct.battlesign); - mattock = new Mattock(PHConstruct.mattock); - chisel = new Chisel(PHConstruct.chisel); - lumberaxe = new LumberAxe(PHConstruct.lumberaxe); cleaver = new Cleaver(PHConstruct.cleaver); scythe = new Scythe(PHConstruct.scythe); excavator = new Excavator(PHConstruct.excavator); hammer = new Hammer(PHConstruct.hammer); battleaxe = new Battleaxe(PHConstruct.battleaxe); - - potionLauncher = new PotionLauncher(PHConstruct.potionLauncher).setUnlocalizedName("tconstruct.PotionLauncher"); - pickaxeHead = new ToolPart(PHConstruct.pickaxeHead, "PickaxeHead", "_pickaxe_head").setUnlocalizedName("tconstruct.PickaxeHead"); - shovelHead = new ToolPart(PHConstruct.shovelHead, "ShovelHead", "_shovel_head").setUnlocalizedName("tconstruct.ShovelHead"); - axeHead = new ToolPart(PHConstruct.axeHead, "AxeHead", "_axe_head").setUnlocalizedName("tconstruct.AxeHead"); - binding = new ToolPart(PHConstruct.binding, "Binding", "_binding").setUnlocalizedName("tconstruct.Binding"); - toughBinding = new ToolPart(PHConstruct.toughBinding, "ThickBinding", "_toughbind").setUnlocalizedName("tconstruct.ThickBinding"); - toughRod = new ToolPart(PHConstruct.toughRod, "ThickRod", "_toughrod").setUnlocalizedName("tconstruct.ThickRod"); - heavyPlate = new ToolPart(PHConstruct.largePlate, "LargePlate", "_largeplate").setUnlocalizedName("tconstruct.LargePlate"); + Item[] tools = { pickaxe, shovel, hatchet, broadsword, longsword, rapier, cutlass, frypan, battlesign, mattock, chisel, lumberaxe, cleaver, scythe, excavator, hammer, battleaxe }; + String[] toolStrings = { "pickaxe", "shovel", "hatchet", "broadsword", "longsword", "rapier", "cutlass", "frypan", "battlesign", "mattock", "chisel", "lumberaxe", "cleaver", "scythe", + "excavator", "hammer", "battleaxe" }; - swordBlade = new ToolPart(PHConstruct.swordBlade, "SwordBlade", "_sword_blade").setUnlocalizedName("tconstruct.SwordBlade"); - wideGuard = new ToolPart(PHConstruct.largeGuard, "LargeGuard", "_large_guard").setUnlocalizedName("tconstruct.LargeGuard"); - handGuard = new ToolPart(PHConstruct.medGuard, "MediumGuard", "_medium_guard").setUnlocalizedName("tconstruct.MediumGuard"); - crossbar = new ToolPart(PHConstruct.crossbar, "Crossbar", "_crossbar").setUnlocalizedName("tconstruct.Crossbar"); - knifeBlade = new ToolPart(PHConstruct.knifeBlade, "KnifeBlade", "_knife_blade").setUnlocalizedName("tconstruct.KnifeBlade"); - fullGuard = new ToolPartHidden(PHConstruct.fullGuard, "FullGuard", "_full_guard").setUnlocalizedName("tconstruct.FullGuard"); + for (int i = 0; i < tools.length; i++) + { + TConstructRegistry.addItemToDirectory(toolStrings[i], tools[i]); + } - frypanHead = new ToolPart(PHConstruct.frypanHead, "FrypanHead", "_frypan_head").setUnlocalizedName("tconstruct.FrypanHead"); - signHead = new ToolPart(PHConstruct.signHead, "SignHead", "_battlesign_head").setUnlocalizedName("tconstruct.SignHead"); - chiselHead = new ToolPart(PHConstruct.chiselHead, "ChiselHead", "_chisel_head").setUnlocalizedName("tconstruct.ChiselHead"); - - scytheBlade = new ToolPart(PHConstruct.scytheBlade, "ScytheBlade", "_scythe_head").setUnlocalizedName("tconstruct.ScytheBlade"); + potionLauncher = new PotionLauncher(PHConstruct.potionLauncher).setUnlocalizedName("tconstruct.PotionLauncher"); + + pickaxeHead = new ToolPart(PHConstruct.pickaxeHead, "PickaxeHead", "_pickaxe_head").setUnlocalizedName("tconstruct.PickaxeHead"); + shovelHead = new ToolPart(PHConstruct.shovelHead, "ShovelHead", "_shovel_head").setUnlocalizedName("tconstruct.ShovelHead"); + hatchetHead = new ToolPart(PHConstruct.axeHead, "AxeHead", "_axe_head").setUnlocalizedName("tconstruct.AxeHead"); + binding = new ToolPart(PHConstruct.binding, "Binding", "_binding").setUnlocalizedName("tconstruct.Binding"); + toughBinding = new ToolPart(PHConstruct.toughBinding, "ThickBinding", "_toughbind").setUnlocalizedName("tconstruct.ThickBinding"); + toughRod = new ToolPart(PHConstruct.toughRod, "ThickRod", "_toughrod").setUnlocalizedName("tconstruct.ThickRod"); + heavyPlate = new ToolPart(PHConstruct.largePlate, "LargePlate", "_largeplate").setUnlocalizedName("tconstruct.LargePlate"); + + swordBlade = new ToolPart(PHConstruct.swordBlade, "SwordBlade", "_sword_blade").setUnlocalizedName("tconstruct.SwordBlade"); + wideGuard = new ToolPart(PHConstruct.largeGuard, "LargeGuard", "_large_guard").setUnlocalizedName("tconstruct.LargeGuard"); + handGuard = new ToolPart(PHConstruct.medGuard, "MediumGuard", "_medium_guard").setUnlocalizedName("tconstruct.MediumGuard"); + crossbar = new ToolPart(PHConstruct.crossbar, "Crossbar", "_crossbar").setUnlocalizedName("tconstruct.Crossbar"); + knifeBlade = new ToolPart(PHConstruct.knifeBlade, "KnifeBlade", "_knife_blade").setUnlocalizedName("tconstruct.KnifeBlade"); + fullGuard = new ToolPartHidden(PHConstruct.fullGuard, "FullGuard", "_full_guard").setUnlocalizedName("tconstruct.FullGuard"); + + frypanHead = new ToolPart(PHConstruct.frypanHead, "FrypanHead", "_frypan_head").setUnlocalizedName("tconstruct.FrypanHead"); + signHead = new ToolPart(PHConstruct.signHead, "SignHead", "_battlesign_head").setUnlocalizedName("tconstruct.SignHead"); + chiselHead = new ToolPart(PHConstruct.chiselHead, "ChiselHead", "_chisel_head").setUnlocalizedName("tconstruct.ChiselHead"); + + scytheBlade = new ToolPart(PHConstruct.scytheBlade, "ScytheBlade", "_scythe_head").setUnlocalizedName("tconstruct.ScytheBlade"); broadAxeHead = new ToolPart(PHConstruct.lumberHead, "LumberHead", "_lumberaxe_head").setUnlocalizedName("tconstruct.LumberHead"); excavatorHead = new ToolPart(PHConstruct.excavatorHead, "ExcavatorHead", "_excavator_head").setUnlocalizedName("tconstruct.ExcavatorHead"); largeSwordBlade = new ToolPart(PHConstruct.largeSwordBlade, "LargeSwordBlade", "_large_sword_blade").setUnlocalizedName("tconstruct.LargeSwordBlade"); hammerHead = new ToolPart(PHConstruct.hammerHead, "HammerHead", "_hammer_head").setUnlocalizedName("tconstruct.HammerHead"); - diamondApple = new DiamondApple(PHConstruct.diamondApple).setUnlocalizedName("tconstruct.apple.diamond"); - strangeFood = new StrangeFood(PHConstruct.slimefood).setUnlocalizedName("tconstruct.strangefood"); - oreBerries = new OreBerries(PHConstruct.oreChunks).setUnlocalizedName("oreberry"); + Item[] toolParts = { toolRod, toolShard, pickaxeHead, shovelHead, hatchetHead, binding, toughBinding, toughRod, heavyPlate, swordBlade, wideGuard, handGuard, crossbar, knifeBlade, fullGuard, + frypanHead, signHead, chiselHead, scytheBlade, broadAxeHead, excavatorHead, largeSwordBlade, hammerHead }; + String[] toolPartStrings = { "toolRod", "toolShard", "pickaxeHead", "shovelHead", "hatchetHead", "binding", "toughBinding", "toughRod", "heavyPlate", "swordBlade", "wideGuard", "handGuard", + "crossbar", "knifeBlade", "fullGuard", "frypanHead", "signHead", "chiselHead", "scytheBlade", "broadAxeHead", "excavatorHead", "largeSwordBlade", "hammerHead" }; - //Wearables - //heavyHelmet = new TArmorBase(PHConstruct.heavyHelmet, 0).setUnlocalizedName("tconstruct.HeavyHelmet"); - heartCanister = new HeartCanister(PHConstruct.heartCanister).setUnlocalizedName("tconstruct.canister"); - heavyBoots = new TArmorBase(PHConstruct.heavyBoots, 3).setUnlocalizedName("tconstruct.HeavyBoots"); - glove = new Glove(PHConstruct.glove).setUnlocalizedName("tconstruct.Glove"); - knapsack = new Knapsack(PHConstruct.knapsack).setUnlocalizedName("tconstruct.storage"); - /*public static Item heavyHelmet; - public static Item heavyChestplate; - public static Item heavyPants; - public static Item heavyBoots;*/ + for (int i = 0; i < toolParts.length; i++) + { + TConstructRegistry.addItemToDirectory(toolPartStrings[i], toolParts[i]); + } - //Vanilla stack sizes - Item.doorWood.setMaxStackSize(16); - Item.doorIron.setMaxStackSize(16); - Item.snowball.setMaxStackSize(64); - Item.boat.setMaxStackSize(16); - Item.minecartEmpty.setMaxStackSize(3); - Item.minecartCrate.setMaxStackSize(3); - Item.minecartPowered.setMaxStackSize(3); - Block.torchWood.setTickRandomly(false); - } + diamondApple = new DiamondApple(PHConstruct.diamondApple).setUnlocalizedName("tconstruct.apple.diamond"); + strangeFood = new StrangeFood(PHConstruct.slimefood).setUnlocalizedName("tconstruct.strangefood"); + oreBerries = new OreBerries(PHConstruct.oreChunks).setUnlocalizedName("oreberry"); - void registerMaterials () - { - TConstructRegistry.addToolMaterial(0, "Wood", 1, 0, 59, 200, 0, 1.0F, 0, 0f, "\u00A7e", ""); - TConstructRegistry.addToolMaterial(1, "Stone", 1, 1, 131, 400, 1, 0.5F, 0, 1f, "", "Stonebound"); - TConstructRegistry.addToolMaterial(2, "Iron", 1, 2, 250, 600, 2, 1.3F, 1, 0f, "\u00A7f", ""); - TConstructRegistry.addToolMaterial(3, "Flint", 1, 1, 171, 525, 2, 0.7F, 0, 1f, "\u00A78", "Stonebound"); - TConstructRegistry.addToolMaterial(4, "Cactus", 1, 1, 150, 500, 2, 1.0F, 0, -1f, "\u00A72", "Spiny"); - TConstructRegistry.addToolMaterial(5, "Bone", 1, 1, 200, 400, 1, 1.0F, 0, 0f, "\u00A7e", ""); - TConstructRegistry.addToolMaterial(6, "Obsidian", 1, 3, 89, 700, 2, 0.8F, 3, 0f, "\u00A7d", ""); - TConstructRegistry.addToolMaterial(7, "Netherrack", 1, 2, 131, 400, 1, 1.2F, 0, 1f, "\u00A74", "Stonebound"); - TConstructRegistry.addToolMaterial(8, "Slime", 1, 3, 1500, 150, 0, 2.0F, 0, 0f, "\u00A7a", ""); - TConstructRegistry.addToolMaterial(9, "Paper", 1, 0, 30, 200, 0, 0.3F, 0, 0f, "\u00A7f", "Writable"); - TConstructRegistry.addToolMaterial(10, "Cobalt", 2, 4, 800, 1100, 3, 1.75F, 2, 0f, "\u00A73", ""); - TConstructRegistry.addToolMaterial(11, "Ardite", 2, 4, 600, 800, 3, 2.0F, 0, 2f, "\u00A74", "Stonebound"); - TConstructRegistry.addToolMaterial(12, "Manyullyn", 2, 5, 1200, 900, 4, 2.5F, 0, 0f, "\u00A75", ""); - TConstructRegistry.addToolMaterial(13, "Copper", 1, 1, 180, 500, 2, 1.15F, 0, 0f, "\u00A7c", ""); - TConstructRegistry.addToolMaterial(14, "Bronze", 1, 2, 350, 700, 2, 1.3F, 1, 0f, "\u00A76", ""); - TConstructRegistry.addToolMaterial(15, "Alumite", 2, 4, 550, 800, 3, 1.3F, 2, 0f, "\u00A7d", ""); - TConstructRegistry.addToolMaterial(16, "Steel", 2, 4, 750, 800, 3, 1.3F, 2, 0f); - TConstructRegistry.addToolMaterial(17, "BlueSlime", 1, 1, 500, 150, 0, 1.5F, 0, 0f, "\u00A7b", ""); + //Wearables + //heavyHelmet = new TArmorBase(PHConstruct.heavyHelmet, 0).setUnlocalizedName("tconstruct.HeavyHelmet"); + heartCanister = new HeartCanister(PHConstruct.heartCanister).setUnlocalizedName("tconstruct.canister"); + heavyBoots = new TArmorBase(PHConstruct.heavyBoots, 3).setUnlocalizedName("tconstruct.HeavyBoots"); + glove = new Glove(PHConstruct.glove).setUnlocalizedName("tconstruct.Glove"); + knapsack = new Knapsack(PHConstruct.knapsack).setUnlocalizedName("tconstruct.storage"); + /*public static Item heavyHelmet; + public static Item heavyChestplate; + public static Item heavyPants; + public static Item heavyBoots;*/ - //Thaumcraft - TConstructRegistry.addToolMaterial(21, "Thaumium", 2, 2, 250, 600, 2, 1.3F, 1, 0f); + String[] materialStrings = { "paperStack", "greenSlimeCrystal", "searedBrick", "ingotCobalt", "ingotArdite", "ingotManyullyn", "mossBall", "lavaCrystal", "necroticBone", "ingotCopper", + "ingotTin", "ingotAluminum", "rawAluminum", "ingotBronze", "ingotAluminumBrass", "ingotAlumite", "ingotSteel", "blueSlimeCrystal", "ingotObsidian", "nuggetIron", "nuggetCopper", + "nuggetTin", "nuggetAluminum", "nuggetSilver", "nuggetAluminumBrass", "silkyCloth", "silkyJewel" }; + + for (int i = 0; i < materialStrings.length; i++) + { + TConstructRegistry.addItemStackToDirectory(materialStrings[i], new ItemStack(materials, 1, i)); + } - /*//Metallurgy - TConstructRegistry.addToolMaterial(22, "Heptazion", 2, 2, 300, 800, 1, 1.0F, 0, 0f); - TConstructRegistry.addToolMaterial(23, "Damascus Steel", 2, 3, 500, 600, 2, 1.35F, 1, 0f); - TConstructRegistry.addToolMaterial(24, "Angmallen", 2, 2, 300, 800, 2, 0.8F, 0, 0f); + String[] oreberries = { "Iron", "Gold", "Copper", "Tin", "Aluminum", "Silver" }; + + for (int i = 0; i < oreberries.length; i++) + { + TConstructRegistry.addItemStackToDirectory("oreberry"+oreberries[i], new ItemStack(oreBerries, 1, i)); + } + + TConstructRegistry.addItemStackToDirectory("diamondApple", new ItemStack(diamondApple, 1, 0)); + TConstructRegistry.addItemStackToDirectory("blueSlimeFood", new ItemStack(strangeFood, 1, 0)); + + TConstructRegistry.addItemStackToDirectory("canisterEmpty", new ItemStack(heartCanister, 1, 0)); + TConstructRegistry.addItemStackToDirectory("miniRedHeart", new ItemStack(heartCanister, 1, 1)); + TConstructRegistry.addItemStackToDirectory("canisterRedHeart", new ItemStack(heartCanister, 1, 2)); - TConstructRegistry.addToolMaterial(25, "Promethium", 1, 1, 200, 400, 1, 1.0F, 0, 0.5f); - TConstructRegistry.addToolMaterial(26, "Deep Iron", 1, 2, 250, 600, 2, 1.3F, 1, 0f); - TConstructRegistry.addToolMaterial(27, "Oureclase", 2, 3, 750, 800, 2, 1.2F, 0, 0f); - TConstructRegistry.addToolMaterial(28, "Aredrite", 2, 3, 1000, 400, 2, 1.5F, 0, 1.0f); - TConstructRegistry.addToolMaterial(29, "Astral Silver", 1, 4, 35, 1200, 1, 0.5F, 0, 0f); - TConstructRegistry.addToolMaterial(30, "Carmot", 1, 4, 50, 1200, 1, 0.5F, 0, 0f); - TConstructRegistry.addToolMaterial(31, "Mithril", 2, 4, 1000, 900, 3, 1.25F, 3, 0f); - TConstructRegistry.addToolMaterial(32, "Orichalcum", 2, 5, 1350, 900, 3, 1.25F, 0, 0f); - TConstructRegistry.addToolMaterial(33, "Adamantine", 3, 6, 1550, 1000, 4, 1.5F, 1, 0f); - TConstructRegistry.addToolMaterial(34, "Atlarus", 3, 6, 1750, 1000, 4, 1.6F, 2, 0f); + //Vanilla stack sizes + Item.doorWood.setMaxStackSize(16); + Item.doorIron.setMaxStackSize(16); + Item.snowball.setMaxStackSize(64); + Item.boat.setMaxStackSize(16); + Item.minecartEmpty.setMaxStackSize(3); + Item.minecartCrate.setMaxStackSize(3); + Item.minecartPowered.setMaxStackSize(3); + Block.torchWood.setTickRandomly(false); + } - TConstructRegistry.addToolMaterial(35, "Black Steel", 2, 2, 500, 800, 2, 1.3F, 2, 0f); - TConstructRegistry.addToolMaterial(36, "Quicksilver", 2, 4, 1100, 1400, 3, 1.0F, 1, 0f); - TConstructRegistry.addToolMaterial(37, "Haderoth", 2, 4, 1250, 1200, 3, 1.0F, 2, 0f); - TConstructRegistry.addToolMaterial(38, "Celenegil", 3, 5, 1600, 1400, 3, 1.0F, 2, 0f); - TConstructRegistry.addToolMaterial(39, "Tartarite", 3, 7, 3000, 1400, 5, 1.6667F, 4, 0f);*/ + void registerMaterials () + { + TConstructRegistry.addToolMaterial(0, "Wood", 0, 59, 200, 0, 1.0F, 0, 0f, "\u00A7e", ""); + TConstructRegistry.addToolMaterial(1, "Stone", 1, 131, 400, 1, 0.5F, 0, 1f, "", "Stonebound"); + TConstructRegistry.addToolMaterial(2, "Iron", 2, 250, 600, 2, 1.3F, 1, 0f, "\u00A7f", ""); + TConstructRegistry.addToolMaterial(3, "Flint", 1, 171, 525, 2, 0.7F, 0, 1f, "\u00A78", "Stonebound"); + TConstructRegistry.addToolMaterial(4, "Cactus", 1, 150, 500, 2, 1.0F, 0, -1f, "\u00A72", "Spiny"); + TConstructRegistry.addToolMaterial(5, "Bone", 1, 200, 400, 1, 1.0F, 0, 0f, "\u00A7e", ""); + TConstructRegistry.addToolMaterial(6, "Obsidian", 3, 89, 700, 2, 0.8F, 3, 0f, "\u00A7d", ""); + TConstructRegistry.addToolMaterial(7, "Netherrack", 2, 131, 400, 1, 1.2F, 0, 1f, "\u00A74", "Stonebound"); + TConstructRegistry.addToolMaterial(8, "Slime", 3, 1500, 150, 0, 2.0F, 0, 0f, "\u00A7a", ""); + TConstructRegistry.addToolMaterial(9, "Paper", 0, 30, 200, 0, 0.3F, 0, 0f, "\u00A7f", "Writable"); + TConstructRegistry.addToolMaterial(10, "Cobalt", 4, 800, 1100, 3, 1.75F, 2, 0f, "\u00A73", ""); + TConstructRegistry.addToolMaterial(11, "Ardite", 4, 600, 800, 3, 2.0F, 0, 2f, "\u00A74", "Stonebound"); + TConstructRegistry.addToolMaterial(12, "Manyullyn", 5, 1200, 900, 4, 2.5F, 0, 0f, "\u00A75", ""); + TConstructRegistry.addToolMaterial(13, "Copper", 1, 180, 500, 2, 1.15F, 0, 0f, "\u00A7c", ""); + TConstructRegistry.addToolMaterial(14, "Bronze", 2, 350, 700, 2, 1.3F, 1, 0f, "\u00A76", ""); + TConstructRegistry.addToolMaterial(15, "Alumite", 4, 550, 800, 3, 1.3F, 2, 0f, "\u00A7d", ""); + TConstructRegistry.addToolMaterial(16, "Steel", 4, 750, 800, 3, 1.3F, 2, 0f, "", ""); + TConstructRegistry.addToolMaterial(17, "BlueSlime", 1, 500, 150, 0, 1.5F, 0, 0f, "\u00A7b", ""); - PatternBuilder pb = PatternBuilder.instance; - if (PHConstruct.enableTWood) - pb.registerFullMaterial(Block.planks, 2, "Wood", new ItemStack(Item.stick, 2), new ItemStack(Item.stick), 0); - else - pb.registerMaterialSet("Wood", new ItemStack(Item.stick, 2), new ItemStack(Item.stick), 0); - if (PHConstruct.enableTStone) - { - pb.registerFullMaterial(Block.stone, 2, "Stone", new ItemStack(TContent.toolShard, 1, 1), new ItemStack(TContent.toolRod, 1, 1), 1); - pb.registerMaterial(Block.cobblestone, 2, "Stone"); - } - //else - //pb.registerMaterialSet("Stone", new ItemStack(TContent.toolShard, 1, 1), new ItemStack(TContent.toolRod, 1, 1), 1); - pb.registerFullMaterial(Item.ingotIron, 2, "Iron", new ItemStack(TContent.toolShard, 1, 2), new ItemStack(TContent.toolRod, 1, 2), 2); - pb.registerFullMaterial(Item.flint, 2, "Flint", new ItemStack(TContent.toolShard, 1, 3), new ItemStack(TContent.toolRod, 1, 3), 3); - if (PHConstruct.enableTCactus) - pb.registerFullMaterial(Block.cactus, 2, "Cactus", new ItemStack(TContent.toolShard, 1, 4), new ItemStack(TContent.toolRod, 1, 4), 4); - else - pb.registerMaterialSet("Cactus", new ItemStack(TContent.toolShard, 1, 4), new ItemStack(TContent.toolRod, 1, 4), 4); - if (PHConstruct.enableTBone) - pb.registerFullMaterial(Item.bone, 2, "Bone", new ItemStack(Item.dyePowder, 1, 15), new ItemStack(Item.bone), 5); - else - pb.registerMaterialSet("Bone", new ItemStack(Item.dyePowder, 1, 15), new ItemStack(Item.bone), 5); - pb.registerFullMaterial(Block.obsidian, 2, "Obsidian", new ItemStack(TContent.toolShard, 1, 6), new ItemStack(TContent.toolRod, 1, 6), 6); - pb.registerMaterial(new ItemStack(materials, 1, 18), 2, "Obsidian"); - pb.registerFullMaterial(Block.netherrack, 2, "Netherrack", new ItemStack(TContent.toolShard, 1, 7), new ItemStack(TContent.toolRod, 1, 7), 7); - pb.registerFullMaterial(new ItemStack(materials, 1, 1), 2, "Slime", new ItemStack(toolShard, 1, 8), new ItemStack(toolRod, 1, 8), 8); - pb.registerFullMaterial(new ItemStack(materials, 1, 0), 2, "Paper", new ItemStack(Item.paper, 2), new ItemStack(toolRod, 1, 9), 9); - pb.registerMaterialSet("Cobalt", new ItemStack(toolShard, 1, 10), new ItemStack(toolRod, 1, 10), 10); - pb.registerMaterialSet("Ardite", new ItemStack(toolShard, 1, 11), new ItemStack(toolRod, 1, 11), 11); - pb.registerMaterialSet("Manyullyn", new ItemStack(toolShard, 1, 12), new ItemStack(toolRod, 1, 12), 12); - pb.registerMaterialSet("Copper", new ItemStack(toolShard, 1, 13), new ItemStack(toolRod, 1, 13), 13); - pb.registerMaterialSet("Bronze", new ItemStack(toolShard, 1, 14), new ItemStack(toolRod, 1, 14), 14); - pb.registerMaterialSet("Alumite", new ItemStack(toolShard, 1, 15), new ItemStack(toolRod, 1, 15), 15); - pb.registerMaterialSet("Steel", new ItemStack(toolShard, 1, 16), new ItemStack(toolRod, 1, 16), 16); - pb.registerFullMaterial(new ItemStack(materials, 1, 17), 2, "BlueSlime", new ItemStack(toolShard, 1, 17), new ItemStack(toolRod, 1, 17), 17); + //Thaumcraft + //TConstructRegistry.addToolMaterial(21, "Thaumium", 2, 250, 600, 2, 1.3F, 1, 0f, "", ""); - pb.addToolPattern((IPattern) woodPattern); - } + /*//Metallurgy + TConstructRegistry.addToolMaterial(22, "Heptazion", 2, 2, 300, 800, 1, 1.0F, 0, 0f); + TConstructRegistry.addToolMaterial(23, "Damascus Steel", 2, 3, 500, 600, 2, 1.35F, 1, 0f); + TConstructRegistry.addToolMaterial(24, "Angmallen", 2, 2, 300, 800, 2, 0.8F, 0, 0f); - public static Item[] patternOutputs; - public static LiquidStack[] liquids; + TConstructRegistry.addToolMaterial(25, "Promethium", 1, 1, 200, 400, 1, 1.0F, 0, 0.5f); + TConstructRegistry.addToolMaterial(26, "Deep Iron", 1, 2, 250, 600, 2, 1.3F, 1, 0f); + TConstructRegistry.addToolMaterial(27, "Oureclase", 2, 3, 750, 800, 2, 1.2F, 0, 0f); + TConstructRegistry.addToolMaterial(28, "Aredrite", 2, 3, 1000, 400, 2, 1.5F, 0, 1.0f); + TConstructRegistry.addToolMaterial(29, "Astral Silver", 1, 4, 35, 1200, 1, 0.5F, 0, 0f); + TConstructRegistry.addToolMaterial(30, "Carmot", 1, 4, 50, 1200, 1, 0.5F, 0, 0f); + TConstructRegistry.addToolMaterial(31, "Mithril", 2, 4, 1000, 900, 3, 1.25F, 3, 0f); + TConstructRegistry.addToolMaterial(32, "Orichalcum", 2, 5, 1350, 900, 3, 1.25F, 0, 0f); + TConstructRegistry.addToolMaterial(33, "Adamantine", 3, 6, 1550, 1000, 4, 1.5F, 1, 0f); + TConstructRegistry.addToolMaterial(34, "Atlarus", 3, 6, 1750, 1000, 4, 1.6F, 2, 0f); - void addCraftingRecipes () - { - /* Tools */ - patternOutputs = new Item[] { toolRod, pickaxeHead, shovelHead, axeHead, swordBlade, wideGuard, handGuard, crossbar, binding, frypanHead, signHead, knifeBlade, chiselHead, - toughRod, toughBinding, heavyPlate, broadAxeHead, scytheBlade, excavatorHead, largeSwordBlade, hammerHead }; + TConstructRegistry.addToolMaterial(35, "Black Steel", 2, 2, 500, 800, 2, 1.3F, 2, 0f); + TConstructRegistry.addToolMaterial(36, "Quicksilver", 2, 4, 1100, 1400, 3, 1.0F, 1, 0f); + TConstructRegistry.addToolMaterial(37, "Haderoth", 2, 4, 1250, 1200, 3, 1.0F, 2, 0f); + TConstructRegistry.addToolMaterial(38, "Celenegil", 3, 5, 1600, 1400, 3, 1.0F, 2, 0f); + TConstructRegistry.addToolMaterial(39, "Tartarite", 3, 7, 3000, 1400, 5, 1.6667F, 4, 0f);*/ - ToolBuilder tb = ToolBuilder.instance; - tb.addToolRecipe(pickaxe, pickaxeHead, binding); - tb.addToolRecipe(broadsword, swordBlade, wideGuard); - tb.addToolRecipe(axe, axeHead); - tb.addToolRecipe(shovel, shovelHead); - tb.addToolRecipe(longsword, swordBlade, handGuard); - tb.addToolRecipe(rapier, swordBlade, crossbar); - tb.addToolRecipe(frypan, frypanHead); - tb.addToolRecipe(battlesign, signHead); - tb.addToolRecipe(mattock, axeHead, shovelHead); - tb.addToolRecipe(dagger, knifeBlade, crossbar); - tb.addToolRecipe(cutlass, swordBlade, fullGuard); - tb.addToolRecipe(chisel, chiselHead); - tb.addCustomToolRecipe(scythe, scytheBlade, toughRod, toughBinding, toughRod); - tb.addCustomToolRecipe(lumberaxe, broadAxeHead, toughRod, heavyPlate, toughBinding); - tb.addCustomToolRecipe(cleaver, largeSwordBlade, toughRod, heavyPlate, toughRod); - tb.addCustomToolRecipe(excavator, excavatorHead, toughRod, toughBinding, toughRod); - tb.addCustomToolRecipe(hammer, hammerHead, toughRod, heavyPlate, heavyPlate); - tb.addCustomToolRecipe(battleaxe, broadAxeHead, toughRod, broadAxeHead, toughBinding); + PatternBuilder pb = PatternBuilder.instance; + if (PHConstruct.enableTWood) + pb.registerFullMaterial(Block.planks, 2, "Wood", new ItemStack(Item.stick), new ItemStack(Item.stick), 0); + else + pb.registerMaterialSet("Wood", new ItemStack(Item.stick, 2), new ItemStack(Item.stick), 0); + if (PHConstruct.enableTStone) + { + pb.registerFullMaterial(Block.stone, 2, "Stone", new ItemStack(TContent.toolShard, 1, 1), new ItemStack(TContent.toolRod, 1, 1), 1); + pb.registerMaterial(Block.cobblestone, 2, "Stone"); + } + //else + //pb.registerMaterialSet("Stone", new ItemStack(TContent.toolShard, 1, 1), new ItemStack(TContent.toolRod, 1, 1), 1); + pb.registerFullMaterial(Item.ingotIron, 2, "Iron", new ItemStack(TContent.toolShard, 1, 2), new ItemStack(TContent.toolRod, 1, 2), 2); + pb.registerFullMaterial(Item.flint, 2, "Flint", new ItemStack(TContent.toolShard, 1, 3), new ItemStack(TContent.toolRod, 1, 3), 3); + if (PHConstruct.enableTCactus) + pb.registerFullMaterial(Block.cactus, 2, "Cactus", new ItemStack(TContent.toolShard, 1, 4), new ItemStack(TContent.toolRod, 1, 4), 4); + else + pb.registerMaterialSet("Cactus", new ItemStack(TContent.toolShard, 1, 4), new ItemStack(TContent.toolRod, 1, 4), 4); + if (PHConstruct.enableTBone) + pb.registerFullMaterial(Item.bone, 2, "Bone", new ItemStack(Item.dyePowder, 1, 15), new ItemStack(Item.bone), 5); + else + pb.registerMaterialSet("Bone", new ItemStack(Item.dyePowder, 1, 15), new ItemStack(Item.bone), 5); + pb.registerFullMaterial(Block.obsidian, 2, "Obsidian", new ItemStack(TContent.toolShard, 1, 6), new ItemStack(TContent.toolRod, 1, 6), 6); + pb.registerMaterial(new ItemStack(materials, 1, 18), 2, "Obsidian"); + pb.registerFullMaterial(Block.netherrack, 2, "Netherrack", new ItemStack(TContent.toolShard, 1, 7), new ItemStack(TContent.toolRod, 1, 7), 7); + pb.registerFullMaterial(new ItemStack(materials, 1, 1), 2, "Slime", new ItemStack(toolShard, 1, 8), new ItemStack(toolRod, 1, 8), 8); + pb.registerFullMaterial(new ItemStack(materials, 1, 0), 2, "Paper", new ItemStack(Item.paper, 2), new ItemStack(toolRod, 1, 9), 9); + pb.registerMaterialSet("Cobalt", new ItemStack(toolShard, 1, 10), new ItemStack(toolRod, 1, 10), 10); + pb.registerMaterialSet("Ardite", new ItemStack(toolShard, 1, 11), new ItemStack(toolRod, 1, 11), 11); + pb.registerMaterialSet("Manyullyn", new ItemStack(toolShard, 1, 12), new ItemStack(toolRod, 1, 12), 12); + pb.registerMaterialSet("Copper", new ItemStack(toolShard, 1, 13), new ItemStack(toolRod, 1, 13), 13); + pb.registerMaterialSet("Bronze", new ItemStack(toolShard, 1, 14), new ItemStack(toolRod, 1, 14), 14); + pb.registerMaterialSet("Alumite", new ItemStack(toolShard, 1, 15), new ItemStack(toolRod, 1, 15), 15); + pb.registerMaterialSet("Steel", new ItemStack(toolShard, 1, 16), new ItemStack(toolRod, 1, 16), 16); + pb.registerFullMaterial(new ItemStack(materials, 1, 17), 2, "BlueSlime", new ItemStack(toolShard, 1, 17), new ItemStack(toolRod, 1, 17), 17); - ItemStack diamond = new ItemStack(Item.diamond); - tb.registerToolMod(new ModRepair()); - tb.registerToolMod(new ModDurability(new ItemStack[] { diamond }, 0, 500, 0f, 3, "Diamond", "\u00a7bDurability +500", "\u00a7b")); - tb.registerToolMod(new ModDurability(new ItemStack[] { new ItemStack(Item.emerald) }, 1, 0, 0.5f, 2, "Emerald", "\u00a72Durability +50%", "\u00a72")); + pb.addToolPattern((IPattern) woodPattern); + } - modE = new ModElectric(); - tb.registerToolMod(modE); + public static Item[] patternOutputs; + public static LiquidStack[] liquids; - ItemStack redstoneItem = new ItemStack(Item.redstone); - ItemStack redstoneBlock = new ItemStack(Block.blockRedstone); - tb.registerToolMod(new ModRedstone(new ItemStack[] { redstoneItem }, 2, 1)); - tb.registerToolMod(new ModRedstone(new ItemStack[] { redstoneItem, redstoneItem }, 2, 2)); - tb.registerToolMod(new ModRedstone(new ItemStack[] { redstoneBlock }, 2, 9)); - tb.registerToolMod(new ModRedstone(new ItemStack[] { redstoneItem, redstoneBlock }, 2, 10)); - tb.registerToolMod(new ModRedstone(new ItemStack[] { redstoneBlock, redstoneBlock }, 2, 18)); + void addCraftingRecipes () + { + /* Tools */ + patternOutputs = new Item[] { toolRod, pickaxeHead, shovelHead, hatchetHead, swordBlade, wideGuard, handGuard, crossbar, binding, frypanHead, signHead, knifeBlade, chiselHead, toughRod, + toughBinding, heavyPlate, broadAxeHead, scytheBlade, excavatorHead, largeSwordBlade, hammerHead, fullGuard }; - ItemStack lapisItem = new ItemStack(Item.dyePowder, 1, 4); - ItemStack lapisBlock = new ItemStack(Block.blockLapis); - modL = new ModLapis(new ItemStack[] { lapisItem }, 10, 1); - tb.registerToolMod(modL); - tb.registerToolMod(new ModLapis(new ItemStack[] { lapisItem, lapisItem }, 10, 2)); - tb.registerToolMod(new ModLapis(new ItemStack[] { lapisBlock }, 10, 9)); - tb.registerToolMod(new ModLapis(new ItemStack[] { lapisItem, lapisBlock }, 10, 10)); - tb.registerToolMod(new ModLapis(new ItemStack[] { lapisBlock, lapisBlock }, 10, 18)); + ToolBuilder tb = ToolBuilder.instance; + tb.addNormalToolRecipe(pickaxe, pickaxeHead, binding); + tb.addNormalToolRecipe(broadsword, swordBlade, wideGuard); + tb.addNormalToolRecipe(hatchet, hatchetHead); + tb.addNormalToolRecipe(shovel, shovelHead); + tb.addNormalToolRecipe(longsword, swordBlade, handGuard); + tb.addNormalToolRecipe(rapier, swordBlade, crossbar); + tb.addNormalToolRecipe(frypan, frypanHead); + tb.addNormalToolRecipe(battlesign, signHead); + tb.addNormalToolRecipe(mattock, hatchetHead, shovelHead); + tb.addNormalToolRecipe(dagger, knifeBlade, crossbar); + tb.addNormalToolRecipe(cutlass, swordBlade, fullGuard); + tb.addNormalToolRecipe(chisel, chiselHead); + tb.addNormalToolRecipe(scythe, scytheBlade, toughRod, toughBinding, toughRod); + tb.addNormalToolRecipe(lumberaxe, broadAxeHead, toughRod, heavyPlate, toughBinding); + tb.addNormalToolRecipe(cleaver, largeSwordBlade, toughRod, heavyPlate, toughRod); + tb.addNormalToolRecipe(excavator, excavatorHead, toughRod, toughBinding, toughRod); + tb.addNormalToolRecipe(hammer, hammerHead, toughRod, heavyPlate, heavyPlate); + tb.addNormalToolRecipe(battleaxe, broadAxeHead, toughRod, broadAxeHead, toughBinding); - tb.registerToolMod(new ModInteger(new ItemStack[] { new ItemStack(materials, 1, 6) }, 4, "Moss", 3, "\u00a72", "Auto-Repair")); - ItemStack blazePowder = new ItemStack(Item.blazePowder); - tb.registerToolMod(new ModBlaze(new ItemStack[] { blazePowder }, 7, 1)); - tb.registerToolMod(new ModBlaze(new ItemStack[] { blazePowder, blazePowder }, 7, 2)); - tb.registerToolMod(new ModAutoSmelt(new ItemStack[] { new ItemStack(materials, 1, 7) }, 6, "Lava", "\u00a74", "Auto-Smelt")); - tb.registerToolMod(new ModInteger(new ItemStack[] { new ItemStack(materials, 1, 8) }, 8, "Necrotic", 1, "\u00a78", "Life Steal")); + ItemStack diamond = new ItemStack(Item.diamond); + tb.registerToolMod(new ModRepair()); + tb.registerToolMod(new ModDurability(new ItemStack[] { diamond }, 0, 500, 0f, 3, "Diamond", "\u00a7bDurability +500", "\u00a7b")); + tb.registerToolMod(new ModDurability(new ItemStack[] { new ItemStack(Item.emerald) }, 1, 0, 0.5f, 2, "Emerald", "\u00a72Durability +50%", "\u00a72")); - ItemStack quartzItem = new ItemStack(Item.netherQuartz); - ItemStack quartzBlock = new ItemStack(Block.blockNetherQuartz, 1, Short.MAX_VALUE); - tb.registerToolMod(new ModAttack("Quartz", new ItemStack[] { quartzItem }, 11, 1)); - tb.registerToolMod(new ModAttack("Quartz", new ItemStack[] { quartzItem, quartzItem }, 11, 2)); - tb.registerToolMod(new ModAttack("Quartz", new ItemStack[] { quartzBlock }, 11, 4)); - tb.registerToolMod(new ModAttack("Quartz", new ItemStack[] { quartzItem, quartzBlock }, 11, 5)); - tb.registerToolMod(new ModAttack("Quartz", new ItemStack[] { quartzBlock, quartzBlock }, 11, 8)); + modE = new ModElectric(); + tb.registerToolMod(modE); - tb.registerToolMod(new ModExtraModifier(new ItemStack[] { diamond, new ItemStack(Block.blockGold) }, "Tier1Free")); - tb.registerToolMod(new ModExtraModifier(new ItemStack[] { new ItemStack(Item.netherStar) }, "Tier2Free")); + ItemStack redstoneItem = new ItemStack(Item.redstone); + ItemStack redstoneBlock = new ItemStack(Block.blockRedstone); + tb.registerToolMod(new ModRedstone(new ItemStack[] { redstoneItem }, 2, 1)); + tb.registerToolMod(new ModRedstone(new ItemStack[] { redstoneItem, redstoneItem }, 2, 2)); + tb.registerToolMod(new ModRedstone(new ItemStack[] { redstoneBlock }, 2, 9)); + tb.registerToolMod(new ModRedstone(new ItemStack[] { redstoneItem, redstoneBlock }, 2, 10)); + tb.registerToolMod(new ModRedstone(new ItemStack[] { redstoneBlock, redstoneBlock }, 2, 18)); - ItemStack silkyJewel = new ItemStack(materials, 1, 26); - tb.registerToolMod(new ModButtertouch(new ItemStack[] { silkyJewel }, 12)); - - ItemStack piston = new ItemStack(Block.pistonBase); + ItemStack lapisItem = new ItemStack(Item.dyePowder, 1, 4); + ItemStack lapisBlock = new ItemStack(Block.blockLapis); + modL = new ModLapis(new ItemStack[] { lapisItem }, 10, 1); + tb.registerToolMod(modL); + tb.registerToolMod(new ModLapis(new ItemStack[] { lapisItem, lapisItem }, 10, 2)); + tb.registerToolMod(new ModLapis(new ItemStack[] { lapisBlock }, 10, 9)); + tb.registerToolMod(new ModLapis(new ItemStack[] { lapisItem, lapisBlock }, 10, 10)); + tb.registerToolMod(new ModLapis(new ItemStack[] { lapisBlock, lapisBlock }, 10, 18)); + + tb.registerToolMod(new ModInteger(new ItemStack[] { new ItemStack(materials, 1, 6) }, 4, "Moss", 3, "\u00a72", "Auto-Repair")); + ItemStack blazePowder = new ItemStack(Item.blazePowder); + tb.registerToolMod(new ModBlaze(new ItemStack[] { blazePowder }, 7, 1)); + tb.registerToolMod(new ModBlaze(new ItemStack[] { blazePowder, blazePowder }, 7, 2)); + tb.registerToolMod(new ModAutoSmelt(new ItemStack[] { new ItemStack(materials, 1, 7) }, 6, "Lava", "\u00a74", "Auto-Smelt")); + tb.registerToolMod(new ModInteger(new ItemStack[] { new ItemStack(materials, 1, 8) }, 8, "Necrotic", 1, "\u00a78", "Life Steal")); + + ItemStack quartzItem = new ItemStack(Item.netherQuartz); + ItemStack quartzBlock = new ItemStack(Block.blockNetherQuartz, 1, Short.MAX_VALUE); + tb.registerToolMod(new ModAttack("Quartz", new ItemStack[] { quartzItem }, 11, 1)); + tb.registerToolMod(new ModAttack("Quartz", new ItemStack[] { quartzItem, quartzItem }, 11, 2)); + tb.registerToolMod(new ModAttack("Quartz", new ItemStack[] { quartzBlock }, 11, 4)); + tb.registerToolMod(new ModAttack("Quartz", new ItemStack[] { quartzItem, quartzBlock }, 11, 5)); + tb.registerToolMod(new ModAttack("Quartz", new ItemStack[] { quartzBlock, quartzBlock }, 11, 8)); + + tb.registerToolMod(new ModExtraModifier(new ItemStack[] { diamond, new ItemStack(Block.blockGold) }, "Tier1Free")); + tb.registerToolMod(new ModExtraModifier(new ItemStack[] { new ItemStack(Item.netherStar) }, "Tier2Free")); + + ItemStack silkyJewel = new ItemStack(materials, 1, 26); + tb.registerToolMod(new ModButtertouch(new ItemStack[] { silkyJewel }, 12)); + + ItemStack piston = new ItemStack(Block.pistonBase); tb.registerToolMod(new ModPiston(new ItemStack[] { piston }, 3, 1)); tb.registerToolMod(new ModPiston(new ItemStack[] { piston, piston }, 3, 2)); tb.registerToolMod(new ModInteger(new ItemStack[] { new ItemStack(Block.obsidian), new ItemStack(Item.enderPearl) }, 13, "Beheading", 1, "\u00a7d", "Beheading")); - + ItemStack holySoil = new ItemStack(craftedSoil, 1, 4); tb.registerToolMod(new ModSmite("Smite", new ItemStack[] { holySoil }, 14, 1)); tb.registerToolMod(new ModSmite("Smite", new ItemStack[] { holySoil, holySoil }, 14, 2)); - + ItemStack spidereyeball = new ItemStack(Item.fermentedSpiderEye); tb.registerToolMod(new ModAntiSpider("Anti-Spider", new ItemStack[] { spidereyeball }, 15, 1)); tb.registerToolMod(new ModAntiSpider("Anti-Spider", new ItemStack[] { spidereyeball, spidereyeball }, 15, 2)); - + ItemStack obsidianPlate = new ItemStack(heavyPlate, 1, 6); - tb.registerToolMod(new ModReinforced( new ItemStack[] { obsidianPlate }, 16, 1)); + tb.registerToolMod(new ModReinforced(new ItemStack[] { obsidianPlate }, 16, 1)); - TConstructRegistry.registerActiveToolMod(new TActiveOmniMod()); + TConstructRegistry.registerActiveToolMod(new TActiveOmniMod()); - /* Smeltery */ - ItemStack ingotcast = new ItemStack(metalPattern, 1, 0); + /* Smeltery */ + ItemStack ingotcast = new ItemStack(metalPattern, 1, 0); - LiquidCasting tableCasting = TConstructRegistry.instance.getTableCasting(); - //Blank - tableCasting.addCastingRecipe(new ItemStack(blankPattern, 1, 1), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 8), 80); - tableCasting.addCastingRecipe(new ItemStack(blankPattern, 1, 1), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 1), 80); + LiquidCasting tableCasting = TConstructRegistry.instance.getTableCasting(); + //Blank + tableCasting.addCastingRecipe(new ItemStack(blankPattern, 1, 1), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 8), 80); + tableCasting.addCastingRecipe(new ItemStack(blankPattern, 1, 1), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 1), 80); - //Ingots - tableCasting.addCastingRecipe(new ItemStack(Item.ingotIron), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 0), ingotcast, 80); //Iron - tableCasting.addCastingRecipe(new ItemStack(Item.ingotGold), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 1), ingotcast, 80); //gold - tableCasting.addCastingRecipe(new ItemStack(materials, 1, 9), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 2), ingotcast, 80); //copper - tableCasting.addCastingRecipe(new ItemStack(materials, 1, 10), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 3), ingotcast, 80); //tin - tableCasting.addCastingRecipe(new ItemStack(materials, 1, 11), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 4), ingotcast, 80); //aluminum - tableCasting.addCastingRecipe(new ItemStack(materials, 1, 3), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 5), ingotcast, 80); //cobalt - tableCasting.addCastingRecipe(new ItemStack(materials, 1, 4), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 6), ingotcast, 80); //ardite - tableCasting.addCastingRecipe(new ItemStack(materials, 1, 13), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 7), ingotcast, 80); //bronze - tableCasting.addCastingRecipe(new ItemStack(materials, 1, 14), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 8), ingotcast, 80); //albrass - tableCasting.addCastingRecipe(new ItemStack(materials, 1, 5), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 9), ingotcast, 80); //manyullyn - tableCasting.addCastingRecipe(new ItemStack(materials, 1, 15), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 10), ingotcast, 80); //alumite - tableCasting.addCastingRecipe(new ItemStack(materials, 1, 18), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 11), ingotcast, 80); //obsidian - tableCasting.addCastingRecipe(new ItemStack(materials, 1, 16), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 12), ingotcast, 80); //steel + //Ingots + tableCasting.addCastingRecipe(new ItemStack(Item.ingotIron), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 0), ingotcast, 80); //Iron + tableCasting.addCastingRecipe(new ItemStack(Item.ingotGold), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 1), ingotcast, 80); //gold + tableCasting.addCastingRecipe(new ItemStack(materials, 1, 9), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 2), ingotcast, 80); //copper + tableCasting.addCastingRecipe(new ItemStack(materials, 1, 10), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 3), ingotcast, 80); //tin + tableCasting.addCastingRecipe(new ItemStack(materials, 1, 11), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 4), ingotcast, 80); //aluminum + tableCasting.addCastingRecipe(new ItemStack(materials, 1, 3), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 5), ingotcast, 80); //cobalt + tableCasting.addCastingRecipe(new ItemStack(materials, 1, 4), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 6), ingotcast, 80); //ardite + tableCasting.addCastingRecipe(new ItemStack(materials, 1, 13), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 7), ingotcast, 80); //bronze + tableCasting.addCastingRecipe(new ItemStack(materials, 1, 14), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 8), ingotcast, 80); //albrass + tableCasting.addCastingRecipe(new ItemStack(materials, 1, 5), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 9), ingotcast, 80); //manyullyn + tableCasting.addCastingRecipe(new ItemStack(materials, 1, 15), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 10), ingotcast, 80); //alumite + tableCasting.addCastingRecipe(new ItemStack(materials, 1, 18), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 11), ingotcast, 80); //obsidian + tableCasting.addCastingRecipe(new ItemStack(materials, 1, 16), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 12), ingotcast, 80); //steel - //Buckets - ItemStack bucket = new ItemStack(Item.bucketEmpty); - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 0), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 0), bucket, true, 10); //Iron - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 1), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 1), bucket, true, 10); //gold - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 2), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 2), bucket, true, 10); //copper - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 3), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 3), bucket, true, 10); //tin - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 4), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 4), bucket, true, 10); //aluminum - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 5), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 5), bucket, true, 10); //cobalt - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 6), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 6), bucket, true, 10); //ardite - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 7), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 7), bucket, true, 10); //bronze - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 8), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 8), bucket, true, 10); //albrass - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 9), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 9), bucket, true, 10); //manyullyn - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 10), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 10), bucket, true, 10); //alumite - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 11), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 11), bucket, true, 10);// obsidian - tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 12), new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 12), bucket, true, 10); //steel + //Buckets + ItemStack bucket = new ItemStack(Item.bucketEmpty); + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 0), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 0), bucket, true, 10); //Iron + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 1), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 1), bucket, true, 10); //gold + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 2), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 2), bucket, true, 10); //copper + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 3), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 3), bucket, true, 10); //tin + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 4), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 4), bucket, true, 10); //aluminum + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 5), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 5), bucket, true, 10); //cobalt + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 6), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 6), bucket, true, 10); //ardite + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 7), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 7), bucket, true, 10); //bronze + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 8), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 8), bucket, true, 10); //albrass + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 9), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 9), bucket, true, 10); //manyullyn + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 10), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 10), bucket, true, 10); //alumite + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 11), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 11), bucket, true, 10);// obsidian + tableCasting.addCastingRecipe(new ItemStack(buckets, 1, 12), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 12), bucket, true, 10); //steel - liquids = new LiquidStack[] { new LiquidStack(liquidMetalStill.blockID, 1, 0), new LiquidStack(liquidMetalStill.blockID, 1, 2), new LiquidStack(liquidMetalStill.blockID, 1, 5), - new LiquidStack(liquidMetalStill.blockID, 1, 6), new LiquidStack(liquidMetalStill.blockID, 1, 9), new LiquidStack(liquidMetalStill.blockID, 1, 7), - new LiquidStack(liquidMetalStill.blockID, 1, 10), new LiquidStack(liquidMetalStill.blockID, 1, 11), new LiquidStack(liquidMetalStill.blockID, 1, 12) }; - int[] liquidDamage = new int[] { 2, 13, 10, 11, 12, 14, 15, 6, 16 }; + liquids = new LiquidStack[] { new LiquidStack(liquidMetalStill.blockID, 1, 0), new LiquidStack(liquidMetalStill.blockID, 1, 2), new LiquidStack(liquidMetalStill.blockID, 1, 5), + new LiquidStack(liquidMetalStill.blockID, 1, 6), new LiquidStack(liquidMetalStill.blockID, 1, 9), new LiquidStack(liquidMetalStill.blockID, 1, 7), + new LiquidStack(liquidMetalStill.blockID, 1, 10), new LiquidStack(liquidMetalStill.blockID, 1, 11), new LiquidStack(liquidMetalStill.blockID, 1, 12) }; + int[] liquidDamage = new int[] { 2, 13, 10, 11, 12, 14, 15, 6, 16 }; - for (int iter = 0; iter < patternOutputs.length; iter++) - { - ItemStack cast = new ItemStack(metalPattern, 1, iter + 1); - for (int iterTwo = 0; iterTwo < liquids.length; iterTwo++) - { - tableCasting.addCastingRecipe(new ItemStack(patternOutputs[iter], 1, liquidDamage[iterTwo]), new LiquidStack(liquids[iterTwo].itemID, ((IPattern) metalPattern).getPatternCost(iter) - * TConstruct.ingotLiquidValue / 2, liquids[iterTwo].itemMeta), cast, 50); - } - } + for (int iter = 0; iter < patternOutputs.length; iter++) + { + ItemStack cast = new ItemStack(metalPattern, 1, iter + 1); + for (int iterTwo = 0; iterTwo < liquids.length; iterTwo++) + { + tableCasting.addCastingRecipe(new ItemStack(patternOutputs[iter], 1, liquidDamage[iterTwo]), new LiquidStack(liquids[iterTwo].itemID, ((IPattern) metalPattern).getPatternCost(iter) + * TConstruct.ingotLiquidValue / 2, liquids[iterTwo].itemMeta), cast, 50); + } + } - LiquidCasting basinCasting = TConstructRegistry.getBasinCasting(); - basinCasting.addCastingRecipe(new ItemStack(Block.blockIron), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 0), null, true, 100); //Iron - basinCasting.addCastingRecipe(new ItemStack(Block.blockGold), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 1), null, true, 100); //gold - basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 3), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 2), null, true, 100); //copper - basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 5), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 3), null, true, 100); //tin - basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 6), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 4), null, true, 100); //aluminum - basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 0), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 5), null, true, 100); //cobalt - basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 1), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 6), null, true, 100); //ardite - basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 4), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 7), null, true, 100); //bronze - basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 7), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 8), null, true, 100); //albrass - basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 2), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 9), null, true, 100); //manyullyn - basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 8), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 10), null, true, 100); //alumite - basinCasting.addCastingRecipe(new ItemStack(Block.obsidian), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 11), null, true, 100);// obsidian - basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 9), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 12), null, true, 100); //steel + LiquidCasting basinCasting = TConstructRegistry.getBasinCasting(); + basinCasting.addCastingRecipe(new ItemStack(Block.blockIron), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 0), null, true, 100); //Iron + basinCasting.addCastingRecipe(new ItemStack(Block.blockGold), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 1), null, true, 100); //gold + basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 3), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 2), null, true, 100); //copper + basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 5), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 3), null, true, 100); //tin + basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 6), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 4), null, true, 100); //aluminum + basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 0), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 5), null, true, 100); //cobalt + basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 1), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 6), null, true, 100); //ardite + basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 4), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 7), null, true, 100); //bronze + basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 7), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 8), null, true, 100); //albrass + basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 2), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 9), null, true, 100); //manyullyn + basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 8), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 10), null, true, 100); //alumite + basinCasting.addCastingRecipe(new ItemStack(Block.obsidian), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 11), null, true, 100);// obsidian + basinCasting.addCastingRecipe(new ItemStack(metalBlock, 1, 9), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 12), null, true, 100); //steel - basinCasting.addCastingRecipe(new ItemStack(speedBlock, 1, 0), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 3), new ItemStack(Block.gravel), true, 100); //brownstone + basinCasting.addCastingRecipe(new ItemStack(speedBlock, 1, 0), new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 3), new ItemStack(Block.gravel), true, 100); //brownstone - //Ore - Smeltery.addMelting(Block.oreIron, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 0)); - Smeltery.addMelting(Block.oreGold, 0, 400, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 1)); - Smeltery.addMelting(oreGravel, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 0)); - //Smeltery.addMelting(oreGravel, 1, 400, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 1)); + //Ore + Smeltery.addMelting(Block.oreIron, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 0)); + Smeltery.addMelting(Block.oreGold, 0, 400, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 1)); + Smeltery.addMelting(oreGravel, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 0)); + //Smeltery.addMelting(oreGravel, 1, 400, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 1)); - //Items - Smeltery.addMelting(new ItemStack(Item.ingotIron, 4), Block.blockIron.blockID, 0, 500, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 0)); - Smeltery.addMelting(new ItemStack(Item.ingotGold, 4), Block.blockGold.blockID, 0, 300, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 1)); - Smeltery.addMelting(new ItemStack(Item.goldNugget, 4), Block.blockGold.blockID, 0, 150, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 1)); + //Items + Smeltery.addMelting(new ItemStack(Item.ingotIron, 4), Block.blockIron.blockID, 0, 500, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 0)); + Smeltery.addMelting(new ItemStack(Item.ingotGold, 4), Block.blockGold.blockID, 0, 300, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 1)); + Smeltery.addMelting(new ItemStack(Item.goldNugget, 4), Block.blockGold.blockID, 0, 150, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 1)); - Smeltery.addMelting(new ItemStack(Item.bucketEmpty), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 3, 0)); - Smeltery.addMelting(new ItemStack(Item.minecartEmpty), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 5, 0)); - Smeltery.addMelting(new ItemStack(materials, 1, 18), Block.obsidian.blockID, 0, 750, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 11));//obsidian + Smeltery.addMelting(new ItemStack(Item.bucketEmpty), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 3, 0)); + Smeltery.addMelting(new ItemStack(Item.minecartEmpty), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 5, 0)); + Smeltery.addMelting(new ItemStack(materials, 1, 18), Block.obsidian.blockID, 0, 750, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 11));//obsidian - //Blocks - Smeltery.addMelting(Block.blockIron, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 0)); - Smeltery.addMelting(Block.blockGold, 0, 400, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 1)); - Smeltery.addMelting(Block.obsidian, 0, 800, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 11)); - Smeltery.addMelting(Block.ice, 0, 75, new LiquidStack(Block.waterStill.blockID, 1000, 0)); + //Blocks + Smeltery.addMelting(Block.blockIron, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 0)); + Smeltery.addMelting(Block.blockGold, 0, 400, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 9, 1)); + Smeltery.addMelting(Block.obsidian, 0, 800, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 11)); + Smeltery.addMelting(Block.ice, 0, 75, new LiquidStack(Block.waterStill.blockID, 1000, 0)); - //Alloys - Smeltery.addAlloyMixing(new LiquidStack(liquidMetalStill.blockID, 16, 7), new LiquidStack(liquidMetalStill.blockID, 24, 2), new LiquidStack(liquidMetalStill.blockID, 8, 3)); //Bronze - Smeltery.addAlloyMixing(new LiquidStack(liquidMetalStill.blockID, 16, 8), new LiquidStack(liquidMetalStill.blockID, 24, 4), new LiquidStack(liquidMetalStill.blockID, 8, 2)); //Aluminum Brass - Smeltery.addAlloyMixing(new LiquidStack(liquidMetalStill.blockID, 16, 9), new LiquidStack(liquidMetalStill.blockID, 32, 5), new LiquidStack(liquidMetalStill.blockID, 32, 6)); //Manyullyn - Smeltery.addAlloyMixing(new LiquidStack(liquidMetalStill.blockID, 48, 10), new LiquidStack(liquidMetalStill.blockID, 80, 4), new LiquidStack(liquidMetalStill.blockID, 32, 0), new LiquidStack( - liquidMetalStill.blockID, 32, 11)); //Alumite + //Alloys + Smeltery.addAlloyMixing(new LiquidStack(liquidMetalStill.blockID, 16, 7), new LiquidStack(liquidMetalStill.blockID, 24, 2), new LiquidStack(liquidMetalStill.blockID, 8, 3)); //Bronze + Smeltery.addAlloyMixing(new LiquidStack(liquidMetalStill.blockID, 16, 8), new LiquidStack(liquidMetalStill.blockID, 24, 4), new LiquidStack(liquidMetalStill.blockID, 8, 2)); //Aluminum Brass + Smeltery.addAlloyMixing(new LiquidStack(liquidMetalStill.blockID, 16, 9), new LiquidStack(liquidMetalStill.blockID, 32, 5), new LiquidStack(liquidMetalStill.blockID, 32, 6)); //Manyullyn + Smeltery.addAlloyMixing(new LiquidStack(liquidMetalStill.blockID, 48, 10), new LiquidStack(liquidMetalStill.blockID, 80, 4), new LiquidStack(liquidMetalStill.blockID, 32, 0), new LiquidStack( + liquidMetalStill.blockID, 32, 11)); //Alumite - //Oreberries - Smeltery.addMelting(new ItemStack(oreBerries, 4, 0), Block.blockIron.blockID, 0, 100, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 0)); //Iron - Smeltery.addMelting(new ItemStack(oreBerries, 4, 1), Block.blockGold.blockID, 0, 100, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 1)); //Gold - Smeltery.addMelting(new ItemStack(oreBerries, 4, 2), metalBlock.blockID, 3, 100, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 2)); //Copper - Smeltery.addMelting(new ItemStack(oreBerries, 4, 3), metalBlock.blockID, 5, 100, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 3)); //Tin - Smeltery.addMelting(new ItemStack(oreBerries, 4, 4), metalBlock.blockID, 6, 100, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 4)); //Aluminum + //Oreberries + Smeltery.addMelting(new ItemStack(oreBerries, 4, 0), Block.blockIron.blockID, 0, 100, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 0)); //Iron + Smeltery.addMelting(new ItemStack(oreBerries, 4, 1), Block.blockGold.blockID, 0, 100, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 1)); //Gold + Smeltery.addMelting(new ItemStack(oreBerries, 4, 2), metalBlock.blockID, 3, 100, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 2)); //Copper + Smeltery.addMelting(new ItemStack(oreBerries, 4, 3), metalBlock.blockID, 5, 100, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 3)); //Tin + Smeltery.addMelting(new ItemStack(oreBerries, 4, 4), metalBlock.blockID, 6, 100, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue / 9, 4)); //Aluminum - //Vanilla Armor - Smeltery.addMelting(new ItemStack(Item.helmetIron, 1, 0), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 5, 0)); - Smeltery.addMelting(new ItemStack(Item.plateIron, 1, 0), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 8, 0)); - Smeltery.addMelting(new ItemStack(Item.legsIron, 1, 0), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 7, 0)); - Smeltery.addMelting(new ItemStack(Item.bootsIron, 1, 0), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 4, 0)); + //Vanilla Armor + Smeltery.addMelting(new ItemStack(Item.helmetIron, 1, 0), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 5, 0)); + Smeltery.addMelting(new ItemStack(Item.plateIron, 1, 0), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 8, 0)); + Smeltery.addMelting(new ItemStack(Item.legsIron, 1, 0), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 7, 0)); + Smeltery.addMelting(new ItemStack(Item.bootsIron, 1, 0), Block.blockIron.blockID, 0, 600, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 4, 0)); - Smeltery.addMelting(new ItemStack(Item.helmetGold, 1, 0), Block.blockGold.blockID, 0, 350, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 5, 1)); - Smeltery.addMelting(new ItemStack(Item.plateGold, 1, 0), Block.blockGold.blockID, 0, 350, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 8, 1)); - Smeltery.addMelting(new ItemStack(Item.legsGold, 1, 0), Block.blockGold.blockID, 0, 350, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 7, 1)); - Smeltery.addMelting(new ItemStack(Item.bootsGold, 1, 0), Block.blockGold.blockID, 0, 350, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 4, 1)); + Smeltery.addMelting(new ItemStack(Item.helmetGold, 1, 0), Block.blockGold.blockID, 0, 350, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 5, 1)); + Smeltery.addMelting(new ItemStack(Item.plateGold, 1, 0), Block.blockGold.blockID, 0, 350, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 8, 1)); + Smeltery.addMelting(new ItemStack(Item.legsGold, 1, 0), Block.blockGold.blockID, 0, 350, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 7, 1)); + Smeltery.addMelting(new ItemStack(Item.bootsGold, 1, 0), Block.blockGold.blockID, 0, 350, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 4, 1)); - Smeltery.addMelting(new ItemStack(Item.helmetChain, 1, 0), this.metalBlock.blockID, 9, 700, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 12)); - Smeltery.addMelting(new ItemStack(Item.plateChain, 1, 0), this.metalBlock.blockID, 9, 700, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 12)); - Smeltery.addMelting(new ItemStack(Item.legsChain, 1, 0), this.metalBlock.blockID, 9, 700, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 12)); - Smeltery.addMelting(new ItemStack(Item.bootsChain, 1, 0), this.metalBlock.blockID, 9, 700, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 12)); + Smeltery.addMelting(new ItemStack(Item.helmetChain, 1, 0), this.metalBlock.blockID, 9, 700, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 12)); + Smeltery.addMelting(new ItemStack(Item.plateChain, 1, 0), this.metalBlock.blockID, 9, 700, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 12)); + Smeltery.addMelting(new ItemStack(Item.legsChain, 1, 0), this.metalBlock.blockID, 9, 700, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 12)); + Smeltery.addMelting(new ItemStack(Item.bootsChain, 1, 0), this.metalBlock.blockID, 9, 700, new LiquidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue, 12)); - /* Detailing */ - Detailing chiseling = TConstructRegistry.getChiselDetailing(); - chiseling.addDetailing(Block.stone, 0, Block.stoneBrick, 0, chisel); - chiseling.addDetailing(speedBlock, 0, speedBlock, 1, chisel); - chiseling.addDetailing(speedBlock, 2, speedBlock, 3, chisel); - chiseling.addDetailing(speedBlock, 3, speedBlock, 4, chisel); - chiseling.addDetailing(speedBlock, 4, speedBlock, 5, chisel); - chiseling.addDetailing(speedBlock, 5, speedBlock, 6, chisel); + /* Detailing */ + Detailing chiseling = TConstructRegistry.getChiselDetailing(); + chiseling.addDetailing(Block.stone, 0, Block.stoneBrick, 0, chisel); + chiseling.addDetailing(speedBlock, 0, speedBlock, 1, chisel); + chiseling.addDetailing(speedBlock, 2, speedBlock, 3, chisel); + chiseling.addDetailing(speedBlock, 3, speedBlock, 4, chisel); + chiseling.addDetailing(speedBlock, 4, speedBlock, 5, chisel); + chiseling.addDetailing(speedBlock, 5, speedBlock, 6, chisel); - chiseling.addDetailing(Block.obsidian, 0, multiBrick, 0, chisel); - chiseling.addDetailing(Block.sandStone, 0, Block.sandStone, 2, chisel); - chiseling.addDetailing(Block.sandStone, 2, Block.sandStone, 1, chisel); - chiseling.addDetailing(Block.sandStone, 1, multiBrick, 1, chisel); - //chiseling.addDetailing(Block.netherrack, 0, multiBrick, 2, chisel); - //chiseling.addDetailing(Block.stone_refined, 0, multiBrick, 3, chisel); - chiseling.addDetailing(Item.ingotIron, 0, multiBrick, 4, chisel); - chiseling.addDetailing(Item.ingotGold, 0, multiBrick, 5, chisel); - chiseling.addDetailing(Item.dyePowder, 4, multiBrick, 6, chisel); - chiseling.addDetailing(Item.diamond, 0, multiBrick, 7, chisel); - chiseling.addDetailing(Item.redstone, 0, multiBrick, 8, chisel); - chiseling.addDetailing(Item.bone, 0, multiBrick, 9, chisel); - chiseling.addDetailing(Item.slimeBall, 0, multiBrick, 10, chisel); - chiseling.addDetailing(strangeFood, 0, multiBrick, 11, chisel); - chiseling.addDetailing(Block.whiteStone, 0, multiBrick, 12, chisel); - chiseling.addDetailing(materials, 18, multiBrick, 13, chisel); + chiseling.addDetailing(Block.obsidian, 0, multiBrick, 0, chisel); + chiseling.addDetailing(Block.sandStone, 0, Block.sandStone, 2, chisel); + chiseling.addDetailing(Block.sandStone, 2, Block.sandStone, 1, chisel); + chiseling.addDetailing(Block.sandStone, 1, multiBrick, 1, chisel); + //chiseling.addDetailing(Block.netherrack, 0, multiBrick, 2, chisel); + //chiseling.addDetailing(Block.stone_refined, 0, multiBrick, 3, chisel); + chiseling.addDetailing(Item.ingotIron, 0, multiBrick, 4, chisel); + chiseling.addDetailing(Item.ingotGold, 0, multiBrick, 5, chisel); + chiseling.addDetailing(Item.dyePowder, 4, multiBrick, 6, chisel); + chiseling.addDetailing(Item.diamond, 0, multiBrick, 7, chisel); + chiseling.addDetailing(Item.redstone, 0, multiBrick, 8, chisel); + chiseling.addDetailing(Item.bone, 0, multiBrick, 9, chisel); + chiseling.addDetailing(Item.slimeBall, 0, multiBrick, 10, chisel); + chiseling.addDetailing(strangeFood, 0, multiBrick, 11, chisel); + chiseling.addDetailing(Block.whiteStone, 0, multiBrick, 12, chisel); + chiseling.addDetailing(materials, 18, multiBrick, 13, chisel); - GameRegistry.addRecipe(new ItemStack(toolForge, 1, 0), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', Block.blockIron); - GameRegistry.addRecipe(new ItemStack(toolForge, 1, 1), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', Block.blockGold); - GameRegistry.addRecipe(new ItemStack(toolForge, 1, 2), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', Block.blockDiamond); - GameRegistry.addRecipe(new ItemStack(toolForge, 1, 3), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', Block.blockEmerald); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 4), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', "blockCobalt")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 5), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', "blockArdite")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 6), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', "blockManyullyn")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 7), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', "blockCopper")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 8), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', "blockBronze")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 9), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', "blockTin")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 10), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', "blockNaturalAluminum")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 11), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', "blockAluminumBrass")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 12), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', "blockAlumite")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 13), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), - 'm', "blockSteel")); - - /* Crafting */ - GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 0), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', Block.workbench); - GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 1), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.wood, 1, 0)); - GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 2), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.wood, 1, 1)); - GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 3), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.wood, 1, 2)); - GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 4), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.wood, 1, 3)); - GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 5), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', Block.chest); - GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 10), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.planks, 1, 0)); - GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 11), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.planks, 1, 1)); - GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 12), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.planks, 1, 2)); - GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 13), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.planks, 1, 3)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolStationWood, 1, 1), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', "logWood")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolStationWood, 1, 10), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', "plankWood")); + chiseling.addDetailing(multiBrick, 0, multiBrickFancy, 0, chisel); + chiseling.addDetailing(multiBrick, 1, multiBrickFancy, 1, chisel); + chiseling.addDetailing(multiBrick, 2, multiBrickFancy, 2, chisel); + chiseling.addDetailing(multiBrick, 3, multiBrickFancy, 3, chisel); + chiseling.addDetailing(multiBrick, 4, multiBrickFancy, 4, chisel); + chiseling.addDetailing(multiBrick, 5, multiBrickFancy, 5, chisel); + chiseling.addDetailing(multiBrick, 6, multiBrickFancy, 6, chisel); + chiseling.addDetailing(multiBrick, 7, multiBrickFancy, 7, chisel); + chiseling.addDetailing(multiBrick, 8, multiBrickFancy, 8, chisel); + chiseling.addDetailing(multiBrick, 9, multiBrickFancy, 9, chisel); + chiseling.addDetailing(multiBrick, 10, multiBrickFancy, 10, chisel); + chiseling.addDetailing(multiBrick, 11, multiBrickFancy, 11, chisel); + chiseling.addDetailing(multiBrick, 12, multiBrickFancy, 12, chisel); + chiseling.addDetailing(multiBrick, 13, multiBrickFancy, 13, chisel); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blankPattern, 1, 0), "ps", "sp", 'p', "plankWood", 's', "stickWood")); - GameRegistry.addRecipe(new ItemStack(manualBook), "wp", 'w', new ItemStack(blankPattern, 1, 0), 'p', Item.paper); - GameRegistry.addShapelessRecipe(new ItemStack(manualBook, 2, 0), new ItemStack(manualBook, 1, 0), Item.book); - GameRegistry.addShapelessRecipe(new ItemStack(manualBook, 1, 1), new ItemStack(manualBook, 1, 0)); - GameRegistry.addShapelessRecipe(new ItemStack(manualBook, 2, 1), new ItemStack(manualBook, 1, 1), Item.book); - GameRegistry.addShapelessRecipe(new ItemStack(manualBook, 1, 2), new ItemStack(manualBook, 1, 1)); - GameRegistry.addShapelessRecipe(new ItemStack(manualBook, 2, 2), new ItemStack(manualBook, 1, 2), Item.book); + chiseling.addDetailing(Block.stoneBrick, 0, multiBrickFancy, 15, chisel); + chiseling.addDetailing(multiBrickFancy, 15, multiBrickFancy, 14, chisel); + chiseling.addDetailing(multiBrickFancy, 14, Block.stoneBrick, 3, chisel); + /*chiseling.addDetailing(multiBrick, 14, multiBrickFancy, 14, chisel); + chiseling.addDetailing(multiBrick, 15, multiBrickFancy, 15, chisel);*/ - GameRegistry.addRecipe(new ItemStack(materials, 1, 0), "pp", "pp", 'p', Item.paper); //Paper stack - OreDictionary.registerOre("mossystone", new ItemStack(Block.stoneBrick, 1, 1)); - OreDictionary.registerOre("mossystone", new ItemStack(Block.cobblestoneMossy)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(materials, 1, 6), "ppp", "ppp", "ppp", 'p', "mossystone")); //Moss ball - GameRegistry.addRecipe(new ItemStack(materials, 1, 6), "ppp", "ppp", "ppp", 'p', new ItemStack(Block.stoneBrick, 1, 1)); //Moss ball - GameRegistry.addRecipe(new ItemStack(materials, 1, 7), "xcx", "cbc", "xcx", 'b', Item.bucketLava, 'c', Item.fireballCharge, 'x', Item.blazeRod); //Auto-smelt - GameRegistry.addRecipe(new ItemStack(materials, 1, 7), "xcx", "cbc", "xcx", 'b', Item.bucketLava, 'x', Item.fireballCharge, 'c', Item.blazeRod); //Auto-smelt - - GameRegistry.addShapelessRecipe(new ItemStack(craftedSoil, 1, 0), Item.slimeBall, Item.slimeBall, Item.slimeBall, Item.slimeBall, Block.sand, Block.dirt); //Slimy sand - GameRegistry.addShapelessRecipe(new ItemStack(craftedSoil, 1, 2), strangeFood, strangeFood, strangeFood, strangeFood, Block.sand, Block.dirt); //Slimy sand - GameRegistry.addShapelessRecipe(new ItemStack(craftedSoil, 2, 1), Item.clay, Block.sand, Block.gravel); //Grout - GameRegistry.addShapelessRecipe(new ItemStack(craftedSoil, 8, 1), Block.blockClay, Block.sand, Block.gravel, Block.sand, Block.gravel, Block.sand, Block.gravel, Block.sand, Block.gravel); //Grout + GameRegistry.addRecipe(new ItemStack(toolForge, 1, 0), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', Block.blockIron); + GameRegistry.addRecipe(new ItemStack(toolForge, 1, 1), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', Block.blockGold); + GameRegistry.addRecipe(new ItemStack(toolForge, 1, 2), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', Block.blockDiamond); + GameRegistry.addRecipe(new ItemStack(toolForge, 1, 3), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', Block.blockEmerald); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 4), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', + "blockCobalt")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 5), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', + "blockArdite")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 6), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', + "blockManyullyn")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 7), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', + "blockCopper")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 8), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', + "blockBronze")); + GameRegistry + .addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 9), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', "blockTin")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 10), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', + "blockNaturalAluminum")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 11), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', + "blockAluminumBrass")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 12), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', + "blockAlumite")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolForge, 1, 13), "bbb", "msm", "m m", 'b', new ItemStack(smeltery, 1, 2), 's', new ItemStack(toolStationWood, 1, 0), 'm', + "blockSteel")); + + /* Crafting */ + GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 0), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', Block.workbench); + GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 1), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.wood, 1, 0)); + GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 2), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.wood, 1, 1)); + GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 3), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.wood, 1, 2)); + GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 4), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.wood, 1, 3)); + GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 5), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', Block.chest); + GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 10), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.planks, 1, 0)); + GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 11), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.planks, 1, 1)); + GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 12), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.planks, 1, 2)); + GameRegistry.addRecipe(new ItemStack(toolStationWood, 1, 13), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', new ItemStack(Block.planks, 1, 3)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolStationWood, 1, 1), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', "logWood")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(toolStationWood, 1, 10), "p", "w", 'p', new ItemStack(blankPattern, 1, 0), 'w', "plankWood")); + + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blankPattern, 1, 0), "ps", "sp", 'p', "plankWood", 's', "stickWood")); + GameRegistry.addRecipe(new ItemStack(manualBook), "wp", 'w', new ItemStack(blankPattern, 1, 0), 'p', Item.paper); + GameRegistry.addShapelessRecipe(new ItemStack(manualBook, 2, 0), new ItemStack(manualBook, 1, 0), Item.book); + GameRegistry.addShapelessRecipe(new ItemStack(manualBook, 1, 1), new ItemStack(manualBook, 1, 0)); + GameRegistry.addShapelessRecipe(new ItemStack(manualBook, 2, 1), new ItemStack(manualBook, 1, 1), Item.book); + GameRegistry.addShapelessRecipe(new ItemStack(manualBook, 1, 2), new ItemStack(manualBook, 1, 1)); + GameRegistry.addShapelessRecipe(new ItemStack(manualBook, 2, 2), new ItemStack(manualBook, 1, 2), Item.book); + + GameRegistry.addRecipe(new ItemStack(materials, 1, 0), "pp", "pp", 'p', Item.paper); //Paper stack + OreDictionary.registerOre("mossystone", new ItemStack(Block.stoneBrick, 1, 1)); + OreDictionary.registerOre("mossystone", new ItemStack(Block.cobblestoneMossy)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(materials, 1, 6), "ppp", "ppp", "ppp", 'p', "mossystone")); //Moss ball + GameRegistry.addRecipe(new ItemStack(materials, 1, 6), "ppp", "ppp", "ppp", 'p', new ItemStack(Block.stoneBrick, 1, 1)); //Moss ball + GameRegistry.addRecipe(new ItemStack(materials, 1, 7), "xcx", "cbc", "xcx", 'b', Item.bucketLava, 'c', Item.fireballCharge, 'x', Item.blazeRod); //Auto-smelt + GameRegistry.addRecipe(new ItemStack(materials, 1, 7), "xcx", "cbc", "xcx", 'b', Item.bucketLava, 'x', Item.fireballCharge, 'c', Item.blazeRod); //Auto-smelt + + GameRegistry.addShapelessRecipe(new ItemStack(craftedSoil, 1, 0), Item.slimeBall, Item.slimeBall, Item.slimeBall, Item.slimeBall, Block.sand, Block.dirt); //Slimy sand + GameRegistry.addShapelessRecipe(new ItemStack(craftedSoil, 1, 2), strangeFood, strangeFood, strangeFood, strangeFood, Block.sand, Block.dirt); //Slimy sand + GameRegistry.addShapelessRecipe(new ItemStack(craftedSoil, 2, 1), Item.clay, Block.sand, Block.gravel); //Grout + GameRegistry.addShapelessRecipe(new ItemStack(craftedSoil, 8, 1), Block.blockClay, Block.sand, Block.gravel, Block.sand, Block.gravel, Block.sand, Block.gravel, Block.sand, Block.gravel); //Grout GameRegistry.addShapelessRecipe(new ItemStack(craftedSoil, 1, 3), Block.dirt, Item.rottenFlesh, new ItemStack(Item.dyePowder, 1, 15)); //Graveyard Soil FurnaceRecipes.smelting().addSmelting(craftedSoil.blockID, 3, new ItemStack(craftedSoil, 1, 4), 0.2f); //Concecrated Soil - FurnaceRecipes.smelting().addSmelting(craftedSoil.blockID, 0, new ItemStack(materials, 1, 1), 2f); //Slime - FurnaceRecipes.smelting().addSmelting(craftedSoil.blockID, 1, new ItemStack(materials, 1, 2), 2f); //Seared brick item - FurnaceRecipes.smelting().addSmelting(craftedSoil.blockID, 2, new ItemStack(materials, 1, 17), 2f); //Blue Slime - //GameRegistry.addRecipe(new ItemStack(oreSlag, 1, 0), "pp", "pp", 'p', new ItemStack(materials, 1, 2)); //Seared brick block + FurnaceRecipes.smelting().addSmelting(craftedSoil.blockID, 0, new ItemStack(materials, 1, 1), 2f); //Slime + FurnaceRecipes.smelting().addSmelting(craftedSoil.blockID, 1, new ItemStack(materials, 1, 2), 2f); //Seared brick item + FurnaceRecipes.smelting().addSmelting(craftedSoil.blockID, 2, new ItemStack(materials, 1, 17), 2f); //Blue Slime + //GameRegistry.addRecipe(new ItemStack(oreSlag, 1, 0), "pp", "pp", 'p', new ItemStack(materials, 1, 2)); //Seared brick block - GameRegistry.addRecipe(new ItemStack(materials, 1, 25), "sss", "sns", "sss", 'n', new ItemStack(materials, 1, 24), 's', new ItemStack(Item.silk)); //Silky Cloth - GameRegistry.addRecipe(new ItemStack(materials, 1, 25), "sss", "sns", "sss", 'n', new ItemStack(Item.goldNugget), 's', new ItemStack(Item.silk)); - GameRegistry.addRecipe(new ItemStack(materials, 1, 26), " c ", "cec", " c ", 'c', new ItemStack(materials, 1, 25), 'e', new ItemStack(Item.emerald)); //Silky Jewel - + GameRegistry.addRecipe(new ItemStack(materials, 1, 25), "sss", "sns", "sss", 'n', new ItemStack(materials, 1, 24), 's', new ItemStack(Item.silk)); //Silky Cloth + GameRegistry.addRecipe(new ItemStack(materials, 1, 25), "sss", "sns", "sss", 'n', new ItemStack(Item.goldNugget), 's', new ItemStack(Item.silk)); + GameRegistry.addRecipe(new ItemStack(materials, 1, 26), " c ", "cec", " c ", 'c', new ItemStack(materials, 1, 25), 'e', new ItemStack(Item.emerald)); //Silky Jewel - //FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 1, new ItemStack(materials, 1, 3), 3f); - //FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 2, new ItemStack(materials, 1, 4), 3f); - FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 3, new ItemStack(materials, 1, 9), 0.5f); - FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 4, new ItemStack(materials, 1, 10), 0.5f); - FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 5, new ItemStack(materials, 1, 12), 0.5f); + //FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 1, new ItemStack(materials, 1, 3), 3f); + //FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 2, new ItemStack(materials, 1, 4), 3f); + FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 3, new ItemStack(materials, 1, 9), 0.5f); + FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 4, new ItemStack(materials, 1, 10), 0.5f); + FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 5, new ItemStack(materials, 1, 12), 0.5f); - FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 0, new ItemStack(materials, 1, 19), 0.2f); - FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 1, new ItemStack(Item.goldNugget), 0.2f); - FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 2, new ItemStack(materials, 1, 20), 0.2f); - FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 3, new ItemStack(materials, 1, 21), 0.2f); - FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 4, new ItemStack(materials, 1, 22), 0.2f); - FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 5, new ItemStack(materials, 1, 23), 0.2f); + FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 0, new ItemStack(materials, 1, 19), 0.2f); + FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 1, new ItemStack(Item.goldNugget), 0.2f); + FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 2, new ItemStack(materials, 1, 20), 0.2f); + FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 3, new ItemStack(materials, 1, 21), 0.2f); + FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 4, new ItemStack(materials, 1, 22), 0.2f); + FurnaceRecipes.smelting().addSmelting(oreBerries.itemID, 5, new ItemStack(materials, 1, 23), 0.2f); - FurnaceRecipes.smelting().addSmelting(oreGravel.blockID, 0, new ItemStack(Item.ingotIron), 0.2f); - FurnaceRecipes.smelting().addSmelting(oreGravel.blockID, 1, new ItemStack(Item.ingotGold), 0.2f); - FurnaceRecipes.smelting().addSmelting(oreGravel.blockID, 2, new ItemStack(materials, 1, 9), 0.2f); - FurnaceRecipes.smelting().addSmelting(oreGravel.blockID, 3, new ItemStack(materials, 1, 10), 0.2f); - FurnaceRecipes.smelting().addSmelting(oreGravel.blockID, 4, new ItemStack(materials, 1, 12), 0.2f); + FurnaceRecipes.smelting().addSmelting(oreGravel.blockID, 0, new ItemStack(Item.ingotIron), 0.2f); + FurnaceRecipes.smelting().addSmelting(oreGravel.blockID, 1, new ItemStack(Item.ingotGold), 0.2f); + FurnaceRecipes.smelting().addSmelting(oreGravel.blockID, 2, new ItemStack(materials, 1, 9), 0.2f); + FurnaceRecipes.smelting().addSmelting(oreGravel.blockID, 3, new ItemStack(materials, 1, 10), 0.2f); + FurnaceRecipes.smelting().addSmelting(oreGravel.blockID, 4, new ItemStack(materials, 1, 12), 0.2f); - FurnaceRecipes.smelting().addSmelting(speedBlock.blockID, 0, new ItemStack(speedBlock, 1, 2), 0.2f); + FurnaceRecipes.smelting().addSmelting(speedBlock.blockID, 0, new ItemStack(speedBlock, 1, 2), 0.2f); - //Metal conversion - GameRegistry.addRecipe(new ItemStack(materials, 9, 9), "m", 'm', new ItemStack(metalBlock, 1, 3)); //Copper - GameRegistry.addRecipe(new ItemStack(materials, 9, 10), "m", 'm', new ItemStack(metalBlock, 1, 5)); //Tin - GameRegistry.addRecipe(new ItemStack(materials, 9, 12), "m", 'm', new ItemStack(metalBlock, 1, 6)); //Aluminum - GameRegistry.addRecipe(new ItemStack(materials, 9, 13), "m", 'm', new ItemStack(metalBlock, 1, 4)); //Bronze - GameRegistry.addRecipe(new ItemStack(materials, 9, 14), "m", 'm', new ItemStack(metalBlock, 1, 7)); //AluBrass - GameRegistry.addRecipe(new ItemStack(materials, 9, 3), "m", 'm', new ItemStack(metalBlock, 1, 0)); //Cobalt - GameRegistry.addRecipe(new ItemStack(materials, 9, 4), "m", 'm', new ItemStack(metalBlock, 1, 1)); //Ardite - GameRegistry.addRecipe(new ItemStack(materials, 9, 5), "m", 'm', new ItemStack(metalBlock, 1, 2)); //Manyullyn - GameRegistry.addRecipe(new ItemStack(materials, 9, 15), "m", 'm', new ItemStack(metalBlock, 1, 8)); //Alumite - GameRegistry.addRecipe(new ItemStack(materials, 9, 16), "m", 'm', new ItemStack(metalBlock, 1, 9)); //Steel + //Metal conversion + GameRegistry.addRecipe(new ItemStack(materials, 9, 9), "m", 'm', new ItemStack(metalBlock, 1, 3)); //Copper + GameRegistry.addRecipe(new ItemStack(materials, 9, 10), "m", 'm', new ItemStack(metalBlock, 1, 5)); //Tin + GameRegistry.addRecipe(new ItemStack(materials, 9, 12), "m", 'm', new ItemStack(metalBlock, 1, 6)); //Aluminum + GameRegistry.addRecipe(new ItemStack(materials, 9, 13), "m", 'm', new ItemStack(metalBlock, 1, 4)); //Bronze + GameRegistry.addRecipe(new ItemStack(materials, 9, 14), "m", 'm', new ItemStack(metalBlock, 1, 7)); //AluBrass + GameRegistry.addRecipe(new ItemStack(materials, 9, 3), "m", 'm', new ItemStack(metalBlock, 1, 0)); //Cobalt + GameRegistry.addRecipe(new ItemStack(materials, 9, 4), "m", 'm', new ItemStack(metalBlock, 1, 1)); //Ardite + GameRegistry.addRecipe(new ItemStack(materials, 9, 5), "m", 'm', new ItemStack(metalBlock, 1, 2)); //Manyullyn + GameRegistry.addRecipe(new ItemStack(materials, 9, 15), "m", 'm', new ItemStack(metalBlock, 1, 8)); //Alumite + GameRegistry.addRecipe(new ItemStack(materials, 9, 16), "m", 'm', new ItemStack(metalBlock, 1, 9)); //Steel - GameRegistry.addRecipe(new ItemStack(Item.ingotIron), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 19)); //Iron - GameRegistry.addRecipe(new ItemStack(materials, 1, 9), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 20)); //Copper - GameRegistry.addRecipe(new ItemStack(materials, 1, 10), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 21)); //Tin - GameRegistry.addRecipe(new ItemStack(materials, 1, 12), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 22)); //Aluminum - GameRegistry.addRecipe(new ItemStack(materials, 1, 14), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 24)); //Aluminum Brass + GameRegistry.addRecipe(new ItemStack(Item.ingotIron), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 19)); //Iron + GameRegistry.addRecipe(new ItemStack(materials, 1, 9), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 20)); //Copper + GameRegistry.addRecipe(new ItemStack(materials, 1, 10), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 21)); //Tin + GameRegistry.addRecipe(new ItemStack(materials, 1, 12), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 22)); //Aluminum + GameRegistry.addRecipe(new ItemStack(materials, 1, 14), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 24)); //Aluminum Brass - GameRegistry.addRecipe(new ItemStack(materials, 9, 24), "m", 'm', new ItemStack(materials, 1, 14)); //Aluminum Brass Nugget + GameRegistry.addRecipe(new ItemStack(materials, 9, 24), "m", 'm', new ItemStack(materials, 1, 14)); //Aluminum Brass Nugget - /*OreDictionary.registerOre("ingotAluminumBrass", new ItemStack(materials, 1, 14)); - OreDictionary.registerOre("nuggetAluminumBrass", new ItemStack(materials, 1, 24));*/ + /*OreDictionary.registerOre("ingotAluminumBrass", new ItemStack(materials, 1, 14)); + OreDictionary.registerOre("nuggetAluminumBrass", new ItemStack(materials, 1, 24));*/ - //Smeltery - ItemStack searedBrick = new ItemStack(materials, 1, 2); - GameRegistry.addRecipe(new ItemStack(smeltery, 1, 0), "bbb", "b b", "bbb", 'b', searedBrick); //Controller - GameRegistry.addRecipe(new ItemStack(smeltery, 1, 1), "b b", "b b", "b b", 'b', searedBrick); //Drain - GameRegistry.addRecipe(new ItemStack(smeltery, 1, 2), "bb", "bb", 'b', searedBrick); //Bricks + //Smeltery + ItemStack searedBrick = new ItemStack(materials, 1, 2); + GameRegistry.addRecipe(new ItemStack(smeltery, 1, 0), "bbb", "b b", "bbb", 'b', searedBrick); //Controller + GameRegistry.addRecipe(new ItemStack(smeltery, 1, 1), "b b", "b b", "b b", 'b', searedBrick); //Drain + GameRegistry.addRecipe(new ItemStack(smeltery, 1, 2), "bb", "bb", 'b', searedBrick); //Bricks - GameRegistry.addRecipe(new ItemStack(lavaTank, 1, 0), "bbb", "bgb", "bbb", 'b', searedBrick, 'g', Block.glass); //Tank - GameRegistry.addRecipe(new ItemStack(lavaTank, 1, 1), "bgb", "ggg", "bgb", 'b', searedBrick, 'g', Block.glass); //Glass - GameRegistry.addRecipe(new ItemStack(lavaTank, 1, 2), "bgb", "bgb", "bgb", 'b', searedBrick, 'g', Block.glass); //Window + GameRegistry.addRecipe(new ItemStack(lavaTank, 1, 0), "bbb", "bgb", "bbb", 'b', searedBrick, 'g', Block.glass); //Tank + GameRegistry.addRecipe(new ItemStack(lavaTank, 1, 1), "bgb", "ggg", "bgb", 'b', searedBrick, 'g', Block.glass); //Glass + GameRegistry.addRecipe(new ItemStack(lavaTank, 1, 2), "bgb", "bgb", "bgb", 'b', searedBrick, 'g', Block.glass); //Window - GameRegistry.addRecipe(new ItemStack(searedBlock, 1, 0), "bbb", "b b", "b b", 'b', searedBrick); //Table - GameRegistry.addRecipe(new ItemStack(searedBlock, 1, 1), "b b", " b ", 'b', searedBrick); //Faucet - GameRegistry.addRecipe(new ItemStack(searedBlock, 1, 2), "b b", "b b", "bbb", 'b', searedBrick); //Basin - - GameRegistry.addRecipe(new ItemStack(Block.pumpkinLantern, 1, 0), "p", "s", 'p', new ItemStack(Block.pumpkin), 'w', new ItemStack(toolRod, 1, 1)); - GameRegistry.addRecipe(new ItemStack(stoneTorch, 4), "p", "w", 'p', new ItemStack(Item.coal, 1, Short.MAX_VALUE), 'w', new ItemStack(toolRod, 1, 1)); - GameRegistry.addRecipe(new ItemStack(toolRod, 4, 1), "c", "c", 'c', new ItemStack(Block.stone)); - GameRegistry.addRecipe(new ItemStack(toolRod, 2, 1), "c", "c", 'c', new ItemStack(Block.cobblestone)); + GameRegistry.addRecipe(new ItemStack(searedBlock, 1, 0), "bbb", "b b", "b b", 'b', searedBrick); //Table + GameRegistry.addRecipe(new ItemStack(searedBlock, 1, 1), "b b", " b ", 'b', searedBrick); //Faucet + GameRegistry.addRecipe(new ItemStack(searedBlock, 1, 2), "b b", "b b", "bbb", 'b', searedBrick); //Basin - ItemStack aluBrass = new ItemStack(materials, 1, 14); - GameRegistry.addRecipe(new ItemStack(Item.pocketSundial), " i ", "iri", " i ", 'i', aluBrass, 'r', new ItemStack(Item.redstone)); - GameRegistry.addRecipe(new ItemStack(Block.pressurePlateGold), "ii", 'i', aluBrass); + GameRegistry.addRecipe(new ItemStack(Block.pumpkinLantern, 1, 0), "p", "s", 'p', new ItemStack(Block.pumpkin), 'w', new ItemStack(toolRod, 1, 1)); + GameRegistry.addRecipe(new ItemStack(stoneTorch, 4), "p", "w", 'p', new ItemStack(Item.coal, 1, Short.MAX_VALUE), 'w', new ItemStack(toolRod, 1, 1)); + GameRegistry.addRecipe(new ItemStack(toolRod, 4, 1), "c", "c", 'c', new ItemStack(Block.stone)); + GameRegistry.addRecipe(new ItemStack(toolRod, 2, 1), "c", "c", 'c', new ItemStack(Block.cobblestone)); - ItemStack necroticBone = new ItemStack(materials, 1, 8); - - //Accessories - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(heartCanister, 1, 0), "##", "##", '#', "ingotNaturalAluminum")); - GameRegistry.addRecipe(new ItemStack(diamondApple), " d ", "d#d", " d ", 'd', new ItemStack(Item.diamond), '#', new ItemStack(Item.appleRed)); - GameRegistry.addShapelessRecipe(new ItemStack(heartCanister, 1, 2), new ItemStack(diamondApple), necroticBone, new ItemStack(heartCanister, 1, 0), new ItemStack(heartCanister, 1, 1)); + ItemStack aluBrass = new ItemStack(materials, 1, 14); + GameRegistry.addRecipe(new ItemStack(Item.pocketSundial), " i ", "iri", " i ", 'i', aluBrass, 'r', new ItemStack(Item.redstone)); + GameRegistry.addRecipe(new ItemStack(Block.pressurePlateGold), "ii", 'i', aluBrass); + + ItemStack necroticBone = new ItemStack(materials, 1, 8); + + //Accessories + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(heartCanister, 1, 0), "##", "##", '#', "ingotNaturalAluminum")); + GameRegistry.addRecipe(new ItemStack(diamondApple), " d ", "d#d", " d ", 'd', new ItemStack(Item.diamond), '#', new ItemStack(Item.appleRed)); + GameRegistry.addShapelessRecipe(new ItemStack(heartCanister, 1, 2), new ItemStack(diamondApple), necroticBone, new ItemStack(heartCanister, 1, 0), new ItemStack(heartCanister, 1, 1)); GameRegistry.addRecipe(new ItemStack(knapsack, 1, 0), "###", "rmr", "###", '#', new ItemStack(Item.leather), 'r', new ItemStack(toughRod, 1, 2), 'm', new ItemStack(Item.ingotGold)); GameRegistry.addRecipe(new ItemStack(knapsack, 1, 0), "###", "rmr", "###", '#', new ItemStack(Item.leather), 'r', new ItemStack(toughRod, 1, 2), 'm', new ItemStack(materials, 1, 14)); - } + } - void setupToolTabs () - { - TConstructRegistry.materialTab.init(new ItemStack(titleIcon, 1, 255)); - TConstructRegistry.blockTab.init(new ItemStack(toolStationWood)); - ItemStack tool = new ItemStack(longsword, 1, 0); + void setupToolTabs () + { + TConstructRegistry.materialTab.init(new ItemStack(titleIcon, 1, 255)); + TConstructRegistry.blockTab.init(new ItemStack(toolStationWood)); + ItemStack tool = new ItemStack(longsword, 1, 0); - NBTTagCompound compound = new NBTTagCompound(); - compound.setCompoundTag("InfiTool", new NBTTagCompound()); - compound.getCompoundTag("InfiTool").setInteger("RenderHead", 2); - compound.getCompoundTag("InfiTool").setInteger("RenderHandle", 0); - compound.getCompoundTag("InfiTool").setInteger("RenderAccessory", 10); - tool.setTagCompound(compound); + NBTTagCompound compound = new NBTTagCompound(); + compound.setCompoundTag("InfiTool", new NBTTagCompound()); + compound.getCompoundTag("InfiTool").setInteger("RenderHead", 2); + compound.getCompoundTag("InfiTool").setInteger("RenderHandle", 0); + compound.getCompoundTag("InfiTool").setInteger("RenderAccessory", 10); + tool.setTagCompound(compound); - //TConstruct. - TConstructRegistry.toolTab.init(tool); - } + //TConstruct. + TConstructRegistry.toolTab.init(tool); + } - public void addLoot () - { - //Item, min, max, weight - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(heartCanister, 1, 1), 1, 1, 5)); - ChestGenHooks.getInfo(ChestGenHooks.PYRAMID_DESERT_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(heartCanister, 1, 1), 1, 1, 10)); - ChestGenHooks.getInfo(ChestGenHooks.PYRAMID_JUNGLE_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(heartCanister, 1, 1), 1, 1, 10)); + public void addLoot () + { + //Item, min, max, weight + ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(heartCanister, 1, 1), 1, 1, 5)); + ChestGenHooks.getInfo(ChestGenHooks.PYRAMID_DESERT_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(heartCanister, 1, 1), 1, 1, 10)); + ChestGenHooks.getInfo(ChestGenHooks.PYRAMID_JUNGLE_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(heartCanister, 1, 1), 1, 1, 10)); - tinkerHouseChest = new ChestGenHooks("TinkerHouse", new WeightedRandomChestContent[0], 3, 27); - tinkerHouseChest.addItem(new WeightedRandomChestContent(new ItemStack(heartCanister, 1, 1), 1, 1, 1)); - int[] validTypes = { 0, 1, 2, 3, 4, 5, 6, 8, 9, 13, 14, 17}; - Item[] partTypes = { pickaxeHead, shovelHead, axeHead, binding, swordBlade, wideGuard, handGuard, crossbar, knifeBlade, frypanHead, signHead, chiselHead}; - - for (int partIter = 0; partIter < partTypes.length; partIter++) - { - for (int typeIter = 0; typeIter < validTypes.length; typeIter++) - { - tinkerHouseChest.addItem(new WeightedRandomChestContent(new ItemStack(partTypes[partIter], 1, validTypes[typeIter]), 1, 1, 15)); - } - } - - tinkerHousePatterns = new ChestGenHooks("TinkerPatterns", new WeightedRandomChestContent[0], 5, 30); - for (int i = 0; i < 13; i++) - { - tinkerHousePatterns.addItem(new WeightedRandomChestContent(new ItemStack(woodPattern, 1, i+1), 1, 3, 20)); - } + tinkerHouseChest = new ChestGenHooks("TinkerHouse", new WeightedRandomChestContent[0], 3, 27); + tinkerHouseChest.addItem(new WeightedRandomChestContent(new ItemStack(heartCanister, 1, 1), 1, 1, 1)); + int[] validTypes = { 0, 1, 2, 3, 4, 5, 6, 8, 9, 13, 14, 17 }; + Item[] partTypes = { pickaxeHead, shovelHead, hatchetHead, binding, swordBlade, wideGuard, handGuard, crossbar, knifeBlade, frypanHead, signHead, chiselHead }; + + for (int partIter = 0; partIter < partTypes.length; partIter++) + { + for (int typeIter = 0; typeIter < validTypes.length; typeIter++) + { + tinkerHouseChest.addItem(new WeightedRandomChestContent(new ItemStack(partTypes[partIter], 1, validTypes[typeIter]), 1, 1, 15)); + } + } + + tinkerHousePatterns = new ChestGenHooks("TinkerPatterns", new WeightedRandomChestContent[0], 5, 30); + for (int i = 0; i < 13; i++) + { + tinkerHousePatterns.addItem(new WeightedRandomChestContent(new ItemStack(woodPattern, 1, i + 1), 1, 3, 20)); + } tinkerHousePatterns.addItem(new WeightedRandomChestContent(new ItemStack(woodPattern, 1, 22), 1, 3, 40)); - } + } - public static LiquidStack[] liquidIcons = new LiquidStack[0]; - public static String[] liquidNames; + public static LiquidStack[] liquidIcons = new LiquidStack[0]; + public static String[] liquidNames; - public void oreRegistry () - { - OreDictionary.registerOre("oreCobalt", new ItemStack(oreSlag, 1, 1)); - OreDictionary.registerOre("oreArdite", new ItemStack(oreSlag, 1, 2)); - OreDictionary.registerOre("oreCopper", new ItemStack(oreSlag, 1, 3)); - OreDictionary.registerOre("oreTin", new ItemStack(oreSlag, 1, 4)); - OreDictionary.registerOre("oreNaturalAluminum", new ItemStack(oreSlag, 1, 5)); + public void oreRegistry () + { + OreDictionary.registerOre("oreCobalt", new ItemStack(oreSlag, 1, 1)); + OreDictionary.registerOre("oreArdite", new ItemStack(oreSlag, 1, 2)); + OreDictionary.registerOre("oreCopper", new ItemStack(oreSlag, 1, 3)); + OreDictionary.registerOre("oreTin", new ItemStack(oreSlag, 1, 4)); + OreDictionary.registerOre("oreNaturalAluminum", new ItemStack(oreSlag, 1, 5)); - OreDictionary.registerOre("oreIron", new ItemStack(oreGravel, 1, 0)); - OreDictionary.registerOre("oreGold", new ItemStack(oreGravel, 1, 1)); - OreDictionary.registerOre("oreCobalt", new ItemStack(oreGravel, 1, 5)); - OreDictionary.registerOre("oreCopper", new ItemStack(oreGravel, 1, 2)); - OreDictionary.registerOre("oreTin", new ItemStack(oreGravel, 1, 3)); - OreDictionary.registerOre("oreNaturalAluminum", new ItemStack(oreGravel, 1, 4)); + OreDictionary.registerOre("oreIron", new ItemStack(oreGravel, 1, 0)); + OreDictionary.registerOre("oreGold", new ItemStack(oreGravel, 1, 1)); + OreDictionary.registerOre("oreCobalt", new ItemStack(oreGravel, 1, 5)); + OreDictionary.registerOre("oreCopper", new ItemStack(oreGravel, 1, 2)); + OreDictionary.registerOre("oreTin", new ItemStack(oreGravel, 1, 3)); + OreDictionary.registerOre("oreNaturalAluminum", new ItemStack(oreGravel, 1, 4)); - OreDictionary.registerOre("ingotCobalt", new ItemStack(materials, 1, 3)); - OreDictionary.registerOre("ingotArdite", new ItemStack(materials, 1, 4)); - OreDictionary.registerOre("ingotManyullyn", new ItemStack(materials, 1, 5)); - OreDictionary.registerOre("ingotCopper", new ItemStack(materials, 1, 9)); - OreDictionary.registerOre("ingotTin", new ItemStack(materials, 1, 10)); - OreDictionary.registerOre("ingotNaturalAluminum", new ItemStack(materials, 1, 11)); - OreDictionary.registerOre("naturalAluminum", new ItemStack(materials, 1, 12)); - OreDictionary.registerOre("ingotBronze", new ItemStack(materials, 1, 13)); - OreDictionary.registerOre("ingotAluminumBrass", new ItemStack(materials, 1, 14)); - OreDictionary.registerOre("ingotAlumite", new ItemStack(materials, 1, 15)); - OreDictionary.registerOre("ingotSteel", new ItemStack(materials, 1, 16)); + OreDictionary.registerOre("ingotCobalt", new ItemStack(materials, 1, 3)); + OreDictionary.registerOre("ingotArdite", new ItemStack(materials, 1, 4)); + OreDictionary.registerOre("ingotManyullyn", new ItemStack(materials, 1, 5)); + OreDictionary.registerOre("ingotCopper", new ItemStack(materials, 1, 9)); + OreDictionary.registerOre("ingotTin", new ItemStack(materials, 1, 10)); + OreDictionary.registerOre("ingotNaturalAluminum", new ItemStack(materials, 1, 11)); + OreDictionary.registerOre("naturalAluminum", new ItemStack(materials, 1, 12)); + OreDictionary.registerOre("ingotBronze", new ItemStack(materials, 1, 13)); + OreDictionary.registerOre("ingotAluminumBrass", new ItemStack(materials, 1, 14)); + OreDictionary.registerOre("ingotAlumite", new ItemStack(materials, 1, 15)); + OreDictionary.registerOre("ingotSteel", new ItemStack(materials, 1, 16)); - OreDictionary.registerOre("blockCobalt", new ItemStack(metalBlock, 1, 0)); - OreDictionary.registerOre("blockArdite", new ItemStack(metalBlock, 1, 1)); - OreDictionary.registerOre("blockManyullyn", new ItemStack(metalBlock, 1, 2)); - OreDictionary.registerOre("blockCopper", new ItemStack(metalBlock, 1, 3)); - OreDictionary.registerOre("blockBronze", new ItemStack(metalBlock, 1, 4)); - OreDictionary.registerOre("blockTin", new ItemStack(metalBlock, 1, 5)); - OreDictionary.registerOre("blockNaturalAluminum", new ItemStack(metalBlock, 1, 6)); - OreDictionary.registerOre("blockAluminumBrass", new ItemStack(metalBlock, 1, 7)); - OreDictionary.registerOre("blockAlumite", new ItemStack(metalBlock, 1, 8)); - OreDictionary.registerOre("blockSteel", new ItemStack(metalBlock, 1, 9)); + OreDictionary.registerOre("blockCobalt", new ItemStack(metalBlock, 1, 0)); + OreDictionary.registerOre("blockArdite", new ItemStack(metalBlock, 1, 1)); + OreDictionary.registerOre("blockManyullyn", new ItemStack(metalBlock, 1, 2)); + OreDictionary.registerOre("blockCopper", new ItemStack(metalBlock, 1, 3)); + OreDictionary.registerOre("blockBronze", new ItemStack(metalBlock, 1, 4)); + OreDictionary.registerOre("blockTin", new ItemStack(metalBlock, 1, 5)); + OreDictionary.registerOre("blockNaturalAluminum", new ItemStack(metalBlock, 1, 6)); + OreDictionary.registerOre("blockAluminumBrass", new ItemStack(metalBlock, 1, 7)); + OreDictionary.registerOre("blockAlumite", new ItemStack(metalBlock, 1, 8)); + OreDictionary.registerOre("blockSteel", new ItemStack(metalBlock, 1, 9)); - OreDictionary.registerOre("nuggetIron", new ItemStack(materials, 1, 19)); - OreDictionary.registerOre("nuggetCopper", new ItemStack(materials, 1, 20)); - OreDictionary.registerOre("nuggetTin", new ItemStack(materials, 1, 21)); - OreDictionary.registerOre("nuggetNaturalAluminum", new ItemStack(materials, 1, 22)); - OreDictionary.registerOre("nuggetSilver", new ItemStack(materials, 1, 23)); - OreDictionary.registerOre("nuggetAluminumBrass", new ItemStack(materials, 1, 24)); + OreDictionary.registerOre("nuggetIron", new ItemStack(materials, 1, 19)); + OreDictionary.registerOre("nuggetCopper", new ItemStack(materials, 1, 20)); + OreDictionary.registerOre("nuggetTin", new ItemStack(materials, 1, 21)); + OreDictionary.registerOre("nuggetNaturalAluminum", new ItemStack(materials, 1, 22)); + OreDictionary.registerOre("nuggetSilver", new ItemStack(materials, 1, 23)); + OreDictionary.registerOre("nuggetAluminumBrass", new ItemStack(materials, 1, 24)); - String[] names = new String[] { "Iron", "Gold", "Copper", "Tin", "Aluminum", "Cobalt", "Ardite", "Bronze", "Brass", "Manyullyn", "Alumite", "Obsidian", "Steel" }; - liquidIcons = new LiquidStack[names.length]; - liquidNames = new String[names.length]; - for (int iter = 0; iter < names.length; iter++) - { - LiquidStack liquidstack = new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, iter); - String name = "Molten " + names[iter]; - liquidIcons[iter] = liquidstack; - liquidNames[iter] = name; - LiquidDictionary.getOrCreateLiquid(name, liquidstack); - LiquidContainerRegistry.registerLiquid(new LiquidContainerData(liquidstack, new ItemStack(buckets, 1, iter), new ItemStack(Item.bucketEmpty))); - } + String[] names = new String[] { "Iron", "Gold", "Copper", "Tin", "Aluminum", "Cobalt", "Ardite", "Bronze", "Brass", "Manyullyn", "Alumite", "Obsidian", "Steel" }; + liquidIcons = new LiquidStack[names.length]; + liquidNames = new String[names.length]; + for (int iter = 0; iter < names.length; iter++) + { + LiquidStack liquidstack = new LiquidStack(liquidMetalStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, iter); + String name = "Molten " + names[iter]; + liquidIcons[iter] = liquidstack; + liquidNames[iter] = name; + LiquidDictionary.getOrCreateLiquid(name, liquidstack); + LiquidContainerRegistry.registerLiquid(new LiquidContainerData(liquidstack, new ItemStack(buckets, 1, iter), new ItemStack(Item.bucketEmpty))); + } - //Vanilla stuff - OreDictionary.registerOre("slimeball", new ItemStack(Item.slimeBall)); - OreDictionary.registerOre("slimeball", new ItemStack(strangeFood, 1, 0)); - RecipeRemover.removeShapedRecipe(new ItemStack(Block.pistonStickyBase)); - RecipeRemover.removeShapedRecipe(new ItemStack(Item.magmaCream)); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Block.pistonStickyBase), "slimeball", Block.pistonBase)); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Item.magmaCream), "slimeball", Item.blazePowder)); - } + //Vanilla stuff + OreDictionary.registerOre("slimeball", new ItemStack(Item.slimeBall)); + OreDictionary.registerOre("slimeball", new ItemStack(strangeFood, 1, 0)); + RecipeRemover.removeShapedRecipe(new ItemStack(Block.pistonStickyBase)); + RecipeRemover.removeShapedRecipe(new ItemStack(Item.magmaCream)); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Block.pistonStickyBase), "slimeball", Block.pistonBase)); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Item.magmaCream), "slimeball", Item.blazePowder)); + } - public void intermodCommunication () - { - FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 12)); - FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 13)); - FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 14)); - FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 15)); - FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerrySecond, 1, 12)); - FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerrySecond, 1, 13)); - } + public void intermodCommunication () + { + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 12)); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 13)); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 14)); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 15)); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerrySecond, 1, 12)); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerrySecond, 1, 13)); + } - public void modIntegration () - { - ItemStack ironpick = ToolBuilder.instance.buildTool(new ItemStack(TContent.pickaxeHead, 1, 6), new ItemStack(TContent.toolRod, 1, 2), new ItemStack(TContent.binding, 1, 6), ""); - /* IC2 */ - ItemStack reBattery = ic2.api.item.Items.getItem("reBattery"); - if (reBattery != null) - modE.batteries.add(reBattery); - ItemStack chargedReBattery = ic2.api.item.Items.getItem("chargedReBattery"); - if (chargedReBattery != null) - { - modE.batteries.add(chargedReBattery); - } - ItemStack electronicCircuit = ic2.api.item.Items.getItem("electronicCircuit"); - if (electronicCircuit != null) - modE.circuits.add(electronicCircuit); + public void modIntegration () + { + ItemStack ironpick = ToolBuilder.instance.buildTool(new ItemStack(TContent.pickaxeHead, 1, 6), new ItemStack(TContent.toolRod, 1, 2), new ItemStack(TContent.binding, 1, 6), ""); + /* IC2 */ + ItemStack reBattery = ic2.api.item.Items.getItem("reBattery"); + if (reBattery != null) + modE.batteries.add(reBattery); + ItemStack chargedReBattery = ic2.api.item.Items.getItem("chargedReBattery"); + if (chargedReBattery != null) + { + modE.batteries.add(chargedReBattery); + } + ItemStack electronicCircuit = ic2.api.item.Items.getItem("electronicCircuit"); + if (electronicCircuit != null) + modE.circuits.add(electronicCircuit); - if (chargedReBattery != null && electronicCircuit != null) - TConstructClientRegistry.registerManualModifier("electricmod", ironpick.copy(), chargedReBattery, electronicCircuit); + if (chargedReBattery != null && electronicCircuit != null) + TConstructClientRegistry.registerManualModifier("electricmod", ironpick.copy(), chargedReBattery, electronicCircuit); - /* Thaumcraft */ - //Object obj = getItem("itemResource", "thaumcraft.common.Config"); - } + /* Thaumcraft */ + //Object obj = getItem("itemResource", "thaumcraft.common.Config"); + } - public static Object getItem (String name, String classPackage) - { - try - { - Class c = Class.forName(classPackage); - Object ret = c.getField(name); - if (ret != null && (ret instanceof ItemStack || ret instanceof Item)) - return ret; - return null; - } - catch (Exception e) - { - System.out.println("[TConstruct] Could not find item for " + name); - return null; - } - } + public static Object getItem (String name, String classPackage) + { + try + { + Class c = Class.forName(classPackage); + Object ret = c.getField(name); + if (ret != null && (ret instanceof ItemStack || ret instanceof Item)) + return ret; + return null; + } + catch (Exception e) + { + System.out.println("[TConstruct] Could not find item for " + name); + return null; + } + } - @Override - public int getBurnTime (ItemStack fuel) - { - if (fuel.itemID == materials.itemID && fuel.getItemDamage() == 7) - return 26400; - return 0; - } + @Override + public int getBurnTime (ItemStack fuel) + { + if (fuel.itemID == materials.itemID && fuel.getItemDamage() == 7) + return 26400; + return 0; + } } \ No newline at end of file diff --git a/mods/tinker/tconstruct/common/TProxyCommon.java b/mods/tinker/tconstruct/common/TProxyCommon.java index f5c7cdd..a1cfd80 100644 --- a/mods/tinker/tconstruct/common/TProxyCommon.java +++ b/mods/tinker/tconstruct/common/TProxyCommon.java @@ -27,6 +27,7 @@ public class TProxyCommon implements IGuiHandler public static int frypanGuiID = 4; public static int toolForge = 5; public static int smelteryGuiID = 7; + public static int glowstoneAggregatorGui = 8; public static int inventoryGui = 100; public static int armorGuiID = 101; @@ -147,7 +148,7 @@ public class TProxyCommon implements IGuiHandler //LanguageRegistry.addName(TContent.blankPattern, "Blank Pattern"); LanguageRegistry.addName(TContent.pickaxe, "Pickaxe"); LanguageRegistry.addName(TContent.shovel, "Shovel"); - LanguageRegistry.addName(TContent.axe, "Hatchet"); + LanguageRegistry.addName(TContent.hatchet, "Hatchet"); LanguageRegistry.addName(TContent.broadsword, "Broadsword"); LanguageRegistry.addName(TContent.longsword, "Longsword"); LanguageRegistry.addName(TContent.rapier, "Rapier"); @@ -164,6 +165,8 @@ public class TProxyCommon implements IGuiHandler LanguageRegistry.addName(TContent.hammer, "Hammer"); LanguageRegistry.addName(TContent.battleaxe, "Battleaxe"); LanguageRegistry.addName(TContent.cutlass, "Cutlass"); + LanguageRegistry.addName(TContent.aggregator, "Glowstone Aggregator"); + LanguageRegistry.addName(TContent.knapsack, "Knapsack"); } diff --git a/mods/tinker/tconstruct/inventory/AggregatorContainer.java b/mods/tinker/tconstruct/inventory/AggregatorContainer.java new file mode 100644 index 0000000..8e8df41 --- /dev/null +++ b/mods/tinker/tconstruct/inventory/AggregatorContainer.java @@ -0,0 +1,82 @@ +package mods.tinker.tconstruct.inventory; + +import mods.tinker.tconstruct.blocks.logic.GlowstoneAggregator; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class AggregatorContainer extends Container +{ + public GlowstoneAggregator logic; + public int progress = 0; + public int fuel = 0; + public int fuelGague = 0; + + public AggregatorContainer(InventoryPlayer inventoryplayer, GlowstoneAggregator logic) + { + this.logic = logic; + + this.addSlotToContainer(new Slot(logic, 0, 45, 36)); + this.addSlotToContainer(new Slot(logic, 1, 80, 36)); + this.addSlotToContainer(new Slot(logic, 2, 123, 36)); + + /* Player inventory */ + for (int column = 0; column < 3; column++) + { + for (int row = 0; row < 9; row++) + { + this.addSlotToContainer(new Slot(inventoryplayer, row + column * 9 + 9, 8 + row * 18, 84 + column * 18)); + } + } + + for (int column = 0; column < 9; column++) + { + this.addSlotToContainer(new Slot(inventoryplayer, column, 8 + column * 18, 142)); + } + } + + + @Override + public boolean canInteractWith(EntityPlayer entityplayer) + { + return logic.isUseableByPlayer(entityplayer); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slotID) + { + ItemStack stack = null; + Slot slot = (Slot)this.inventorySlots.get(slotID); + + if (slot != null && slot.getHasStack()) + { + ItemStack slotStack = slot.getStack(); + stack = slotStack.copy(); + + if (slotID < logic.getSizeInventory()) + { + if (!this.mergeItemStack(slotStack, logic.getSizeInventory(), this.inventorySlots.size(), true)) + { + return null; + } + } + else if (!this.mergeItemStack(slotStack, 0, logic.getSizeInventory(), false)) + { + return null; + } + + if (slotStack.stackSize == 0) + { + slot.putStack((ItemStack)null); + } + else + { + slot.onSlotChanged(); + } + } + + return stack; + } +} diff --git a/mods/tinker/tconstruct/inventory/KnapsackContainer.java b/mods/tinker/tconstruct/inventory/KnapsackContainer.java index 1a1b313..6f9c098 100644 --- a/mods/tinker/tconstruct/inventory/KnapsackContainer.java +++ b/mods/tinker/tconstruct/inventory/KnapsackContainer.java @@ -22,7 +22,7 @@ public class KnapsackContainer extends Container { for (int row = 0; row < 9; row++) { - this.addSlotToContainer(new Slot(knapsack, row + column * 9, 8 + row * 18, 18 + column * 18)); + this.addSlotToContainer(new Slot(knapsack, row + column * 9, 8 + row * 18, 17 + column * 18)); } } @@ -83,13 +83,4 @@ public class KnapsackContainer extends Container return stack; } - - @Override - protected boolean mergeItemStack(ItemStack stack, int inventorySize, int slotSize, boolean par4) - { - if (!(stack.getItem() instanceof IPattern)) - return false; - - return super.mergeItemStack(stack, inventorySize, slotSize, par4); - } } diff --git a/mods/tinker/tconstruct/items/MetalPattern.java b/mods/tinker/tconstruct/items/MetalPattern.java index 91504fa..0dbebd4 100644 --- a/mods/tinker/tconstruct/items/MetalPattern.java +++ b/mods/tinker/tconstruct/items/MetalPattern.java @@ -15,7 +15,7 @@ public class MetalPattern extends Pattern public void getSubItems (int id, CreativeTabs tab, List list) { - for (int i = 0; i < patternName.length; i++) + for (int i = 0; i < patternName.length-1; i++) list.add(new ItemStack(id, 1, i)); } } diff --git a/mods/tinker/tconstruct/items/armor/Knapsack.java b/mods/tinker/tconstruct/items/armor/Knapsack.java index a476b5c..b5eb53b 100644 --- a/mods/tinker/tconstruct/items/armor/Knapsack.java +++ b/mods/tinker/tconstruct/items/armor/Knapsack.java @@ -21,32 +21,6 @@ public class Knapsack extends CraftingItem this.setMaxStackSize(10); } - @Override - public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player) - { - /*if (!world.isRemote && stack.getItemDamage() == 2) - { - TPlayerStats stats = TConstruct.playerTracker.getPlayerStats(player.username); - if (stats != null) - { - ArmorExtended armor = stats.armor; - ItemStack slotStack = armor.getStackInSlot(6); - if (slotStack == null)// || slotStack.getItem() == this) - { - armor.setInventorySlotContents(6, new ItemStack(this, 1, 2)); - stack.stackSize--; - } - else if (slotStack.getItem() == this && slotStack.stackSize < this.maxStackSize) - { - slotStack.stackSize++; - stack.stackSize--; - } - armor.recalculateHealth(player, stats); - } - }*/ - return stack; - } - @Override @SideOnly(Side.CLIENT) public void addInformation (ItemStack stack, EntityPlayer player, List list, boolean par4) diff --git a/mods/tinker/tconstruct/items/blocks/MultiBrickFancyItem.java b/mods/tinker/tconstruct/items/blocks/MultiBrickFancyItem.java new file mode 100644 index 0000000..c19354d --- /dev/null +++ b/mods/tinker/tconstruct/items/blocks/MultiBrickFancyItem.java @@ -0,0 +1,58 @@ +package mods.tinker.tconstruct.items.blocks; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; + +public class MultiBrickFancyItem extends ItemBlock +{ + static String blockType[] = { "obsidian", "sandstone", "netherrack", "stone.refined", "iron", "gold", "lapis", "diamond", + "redstone", "bone", "slime", "blueslime", "endstone", "obsidian.ingot", "stone", "stone.road" }; + + public MultiBrickFancyItem(int id) + { + super(id); + setMaxDamage(0); + setHasSubtypes(true); + } + + public int getMetadata(int meta) + { + return meta; + } + + public String getUnlocalizedName(ItemStack itemstack) + { + int pos = MathHelper.clamp_int(itemstack.getItemDamage(), 0, blockType.length-1); + return (new StringBuilder()).append("block.fancybrick.").append(blockType[pos]).toString(); + } + + @Override + @SideOnly(Side.CLIENT) + public void addInformation (ItemStack stack, EntityPlayer player, List list, boolean par4) + { + switch (stack.getItemDamage()) + { + case 5: + case 6: + list.add("Somewhat expensive"); + break; + case 7: + list.add("Quite expensive"); + break; + case 8: + list.add("Emits Redstone signal up to"); + list.add("4 blocks away"); + break; + case 10: + case 11: + list.add("Bouncy!"); + break; + } + } +} diff --git a/mods/tinker/tconstruct/items/blocks/MultiBrickItem.java b/mods/tinker/tconstruct/items/blocks/MultiBrickItem.java index 9489517..263769b 100644 --- a/mods/tinker/tconstruct/items/blocks/MultiBrickItem.java +++ b/mods/tinker/tconstruct/items/blocks/MultiBrickItem.java @@ -12,7 +12,7 @@ import net.minecraft.util.MathHelper; public class MultiBrickItem extends ItemBlock { static String blockType[] = { "obsidian", "sandstone", "netherrack", "stone.refined", "iron", "gold", "lapis", "diamond", - "redstone", "bone", "slime", "blueslime", "endstone", "obsidian.ingot" }; + "redstone", "bone", "slime", "blueslime", "endstone", "obsidian.ingot", "stone.road", "stone.refined.road" }; public MultiBrickItem(int id) { diff --git a/mods/tinker/tconstruct/items/tools/Battleaxe.java b/mods/tinker/tconstruct/items/tools/Battleaxe.java index 28a68ca..68f3dda 100644 --- a/mods/tinker/tconstruct/items/tools/Battleaxe.java +++ b/mods/tinker/tconstruct/items/tools/Battleaxe.java @@ -78,6 +78,18 @@ public class Battleaxe extends HarvestTool return TContent.toughBinding; } + @Override + public int durabilityTypeAccessory () + { + return 2; + } + + @Override + public int durabilityTypeExtra () + { + return 1; + } + @Override public float getRepairCost () { diff --git a/mods/tinker/tconstruct/items/tools/Chisel.java b/mods/tinker/tconstruct/items/tools/Chisel.java index 350fb37..40b70be 100644 --- a/mods/tinker/tconstruct/items/tools/Chisel.java +++ b/mods/tinker/tconstruct/items/tools/Chisel.java @@ -28,7 +28,18 @@ public class Chisel extends ToolCore @Override public ItemStack getContainerItemStack (ItemStack itemStack) { - AbilityHelper.damageTool(itemStack, 1, null, false); + //AbilityHelper.damageTool(itemStack, 1, null, false); + + int reinforced = 0; + NBTTagCompound tags = itemStack.getTagCompound(); + + if (tags.getCompoundTag("InfiTool").hasKey("Unbreaking")) + reinforced = tags.getCompoundTag("InfiTool").getInteger("Unbreaking"); + + if (random.nextInt(10) < 10 - reinforced) + { + AbilityHelper.damageTool(itemStack, 1, null, false); + } return itemStack; } @@ -43,7 +54,7 @@ public class Chisel extends ToolCore boolean detailed = false; return detailed; } - + public boolean onItemUse (ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float clickX, float clickY, float clickZ) { return false; @@ -88,7 +99,18 @@ public class Chisel extends ToolCore { world.setBlock(x, y, z, details.outputID, details.outputMeta, 3); if (!(entityplayer.capabilities.isCreativeMode)) - AbilityHelper.damageTool(itemstack, 1, entityplayer, false); + { + int reinforced = 0; + NBTTagCompound tags = itemstack.getTagCompound(); + + if (tags.getCompoundTag("InfiTool").hasKey("Unbreaking")) + reinforced = tags.getCompoundTag("InfiTool").getInteger("Unbreaking"); + + if (random.nextInt(10) < 10 - reinforced) + { + AbilityHelper.damageTool(itemstack, 1, null, false); + } + } world.playAuxSFX(2001, x, y, z, blockID + (meta << 12)); entityplayer.swingItem(); } @@ -101,13 +123,20 @@ public class Chisel extends ToolCore @Override public int getMaxItemUseDuration (ItemStack itemstack) { - return 15; + if (!itemstack.hasTagCompound()) + return 20; + + int speed = itemstack.getTagCompound().getCompoundTag("InfiTool").getInteger("MiningSpeed") / 100; + int truespeed = 20 - speed; + if (truespeed < 0) + truespeed = 0; + return truespeed; } @Override public EnumAction getItemUseAction (ItemStack itemstack) { - return EnumAction.bow; + return EnumAction.eat; } @Override diff --git a/mods/tinker/tconstruct/items/tools/Hatchet.java b/mods/tinker/tconstruct/items/tools/Hatchet.java index c99e197..4e57e59 100644 --- a/mods/tinker/tconstruct/items/tools/Hatchet.java +++ b/mods/tinker/tconstruct/items/tools/Hatchet.java @@ -53,7 +53,7 @@ public class Hatchet extends HarvestTool @Override public Item getHeadItem () { - return TContent.axeHead; + return TContent.hatchetHead; } @Override diff --git a/mods/tinker/tconstruct/items/tools/Mattock.java b/mods/tinker/tconstruct/items/tools/Mattock.java index 291b488..0b0851c 100644 --- a/mods/tinker/tconstruct/items/tools/Mattock.java +++ b/mods/tinker/tconstruct/items/tools/Mattock.java @@ -48,7 +48,7 @@ public class Mattock extends DualHarvestTool @Override public Item getHeadItem () { - return TContent.axeHead; + return TContent.hatchetHead; } @Override diff --git a/mods/tinker/tconstruct/library/TConstructRegistry.java b/mods/tinker/tconstruct/library/TConstructRegistry.java index 08e111f..a945e3f 100644 --- a/mods/tinker/tconstruct/library/TConstructRegistry.java +++ b/mods/tinker/tconstruct/library/TConstructRegistry.java @@ -3,14 +3,12 @@ package mods.tinker.tconstruct.library; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; -import java.util.LinkedList; -import mods.tinker.tconstruct.library.crafting.Detailing; -import mods.tinker.tconstruct.library.crafting.LiquidCasting; -import mods.tinker.tconstruct.library.tools.ToolCore; -import mods.tinker.tconstruct.library.tools.ToolMaterial; -import mods.tinker.tconstruct.library.util.TabTools; +import mods.tinker.tconstruct.library.crafting.*; +import mods.tinker.tconstruct.library.tools.*; +import mods.tinker.tconstruct.library.util.*; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; /** A registry to store any relevant API work * @@ -20,54 +18,210 @@ import net.minecraft.item.Item; public class TConstructRegistry { public static TConstructRegistry instance = new TConstructRegistry(); - public static ArrayList tools = new ArrayList(20); - public static HashMap toolMaterials = new HashMap(40); - public static HashMap toolMaterialStrings = new HashMap(40); - public static LinkedList activeModifiers = new LinkedList(); - + /* Creative tabs */ public static TabTools toolTab; public static TabTools materialTab; public static TabTools blockTab; - @Deprecated - public static Item toolRod; - + + /* Items */ + + /** A directory of crafting items and tools used by the mod. + * + * Tools: + * pickaxe, shovel, hatchet, broadsword, longsword, rapier, dagger, cutlass + * frypan, battlesign, mattock, chisel + * lumberaxe, cleaver, scythe, excavator, hammer, battleaxe + * + * Tool crafting parts: + * toolRod, toolShard, binding, toughBinding, toughRod, heavyPlate + * pickaxeHead, shovelhead, hatchetHead, swordBlade, wideguard, handGuard, crossbar, knifeBlade, + * fullGuard, frypanHead, signHead, chiselHead + * scytheBlade, broadAxeHead, excavatorHead, largeSwordBlade, hammerHead + */ + public static HashMap itemDirectory = new HashMap(); + + /** Adds an item to the directory + * + * @param name Associates the name with the stack + * @param itemstack The stack to add to the directory + */ + + public static void addItemToDirectory(String name, Item itemstack) + { + Item add = itemDirectory.get(name); + if (add == null) + System.out.println("[TCon API] "+name+" is already present in the Item directory"); + + itemDirectory.put(name, itemstack); + } + + /** Retrieves an itemstack from the directory + * + * @param name The name of the item to get + * @return Item associated with the name, or null if not present. + */ + + public static Item getItem(String name) + { + Item ret = itemDirectory.get(name); + if (ret == null) + System.out.println("[TCon API] Could not find "+name+" in the Item directory"); + + return ret; + } + + /** A directory of ItemStacks. Contains mostly crafting items + * + * Materials: + * paperStack, greenSlimeCrystal, blueSlimeCrystal, searedBrick, mossBall, lavaCrystal, necroticBone, silkyCloth, silkyJewel + * ingotCobalt, ingotArdite, ingotManyullyn, ingotCopper, ingotTin, ingotAluminum, rawAluminum, + * ingotBronze, ingotAluminumBrass, ingotAlumite, ingotSteel, ingotObsidian + * nuggetIron, nuggetCopper, nuggetTin, nuggetAluminum, nuggetSilver, nuggetAluminumBrass + * oreberryIron, oreberryGold, oreberryCopper, oreberryTin, oreberryTin, oreberrySilver, + * diamondApple, blueSlimeFood, canisterEmpty, miniRedHeart, canisterRedHeart + * + */ + static HashMap itemstackDirectory = new HashMap(); + + /** Adds an itemstack to the directory + * + * @param name Associates the name with the stack + * @param itemstack The stack to add to the directory + */ + + public static void addItemStackToDirectory(String name, ItemStack itemstack) + { + ItemStack add = itemstackDirectory.get(name); + if (add == null) + System.out.println("[TCon API] "+name+" is already present in the ItemStack directory"); + + itemstackDirectory.put(name, itemstack); + } + + /** Retrieves an itemstack from the directory + * + * @param name The name of the item to get + * @return Item associated with the name, or null if not present. + */ + + public static ItemStack getItemStack(String name) + { + ItemStack ret = itemstackDirectory.get(name); + if (ret == null) + System.out.println("[TCon API] Could not find "+name+" in the ItemStack directory"); + + return ret; + } + public static ArrayList tools = new ArrayList(20); + //Tools + + /** Internal tool mapping, used for adding textures + * + * @param tool + */ + public static void addToolMapping (ToolCore tool) { tools.add(tool); } + + /** Internal tool mapping, used for adding textures + * + * @return List of tools + */ public static ArrayList getToolMapping () { return tools; } - - //Materials - public static void addToolMaterial (int materialID, String materialName, int craftingTier, int harvestLevel, int durability, int miningspeed, int attack, float handleModifier, int reinforced, - float shoddy) + + /** Registers a tool to its crafting parts. + * If an output is registered multiple times the parts are added to the recipe's input list + * Valid part amounts are 1, 2, and 4. Part counts of 1 and 2 assume a Tool Rod as a handle. + * Null items are valid as placeholders. ex: Hatchet + * + * @see ToolBuidler + * @param output The ToolCore to craft + * @param parts Pieces to make the tool with + */ + public static void addToolRecipe(ToolCore output, Item... parts) { - addToolMaterial(materialID, materialName, craftingTier, harvestLevel, durability, miningspeed, attack, handleModifier, reinforced, shoddy, "", ""); + ToolBuilder tb = ToolBuilder.instance; + if (parts.length < 1 || parts.length > 4 || parts.length == 3) + System.out.println("[TCon API] Wrong amount of items to craft into a tool"); + + tb.addToolRecipe(output, parts); } - public static void addToolMaterial (int materialID, String materialName, int craftingTier, int harvestLevel, int durability, int miningspeed, int attack, float handleModifier, int reinforced, - float shoddy, String style, String ability) + //Materials + public static HashMap toolMaterials = new HashMap(40); + public static HashMap toolMaterialStrings = new HashMap(40); + + /** Adds a tool material to the registry + * + * @param materialID Unique ID, stored for each part + * @exception materialID must be unique + * @param materialName Unique name for data lookup purposes + * @param harvestLevel The materials which the tool can harvest. Pickaxe levels - 0: Wood, 1: Stone, 2: Redstone/Diamond, 3: Obsidian, 4: Cobalt/Ardite, 5: Manyullyn + * @param durability Base durability of the tool, affects tool heads. + * @param miningspeed Base mining speed, divided by 100 in use + * @param attack Base attack + * @param handleModifier Durability multiplier on the tool + * @param reinforced Reinforced level + * @param unbreaking Amount of Stonebound to put on the tool. Negative numbers are Spiny. + */ + + public static void addToolMaterial (int materialID, String materialName, int harvestLevel, int durability, int miningspeed, int attack, float handleModifier, int reinforced, + float unbreaking, String style, String ability) { ToolMaterial mat = toolMaterials.get(materialID); if (mat == null) { - mat = new ToolMaterial(materialName, craftingTier, harvestLevel, durability, miningspeed, attack, handleModifier, reinforced, shoddy, style, ability); + mat = new ToolMaterial(materialName, harvestLevel, durability, miningspeed, attack, handleModifier, reinforced, unbreaking, style, ability); toolMaterials.put(materialID, mat); toolMaterialStrings.put(materialName, mat); } else - throw new RuntimeException("[TConstruct] Material ID " + materialID + " is already occupied by " + mat.materialName); + throw new IllegalArgumentException("[TCon API] Material ID " + materialID + " is already occupied by " + mat.materialName); } + + /** Adds a tool material to the registry + * + * @param materialID Unique ID, stored for each part + * @exception materialID must be unique + * @param material Complete tool material to add. Uses the name in the material for lookup purposes. + */ + + public static void addtoolMaterial(int materialID, ToolMaterial material) + { + ToolMaterial mat = toolMaterials.get(materialID); + if (mat == null) + { + toolMaterials.put(materialID, mat); + toolMaterialStrings.put(material.name(), mat); + } + else + throw new IllegalArgumentException("[TCon API] Material ID " + materialID + " is already occupied by " + mat.materialName); + } + + /** Looks up a tool material by ID + * + * @param key The ID to look up + * @return Tool Material + */ public static ToolMaterial getMaterial (int key) { return (toolMaterials.get(key)); } + + /** Looks up a tool material by name + * + * @param key the name to look up + * @return Tool Material + */ public static ToolMaterial getMaterial (String key) { @@ -136,9 +290,31 @@ public class TConstructRegistry return null; } } - + + public static ArrayList activeModifiers = new ArrayList(); public static void registerActiveToolMod(ActiveToolMod mod) { activeModifiers.add(mod); } + + /** Default Material Index + * 0: Wood + * 1: Stone + * 2: Iron + * 3: Flint + * 4: Cactus + * 5: Bone + * 6: Obsidian + * 7: Netherrack + * 8: Green Slime + * 9: Paper + * 10: Cobalt + * 11: Ardite + * 12: Manyullyn + * 13: Copper + * 14: Bronze + * 15: Alumite + * 16: Steel + * 17: Blue Slime + */ } diff --git a/mods/tinker/tconstruct/library/crafting/ShapelessToolRecipe.java b/mods/tinker/tconstruct/library/crafting/ShapelessToolRecipe.java index 5fc818a..ab45ab3 100644 --- a/mods/tinker/tconstruct/library/crafting/ShapelessToolRecipe.java +++ b/mods/tinker/tconstruct/library/crafting/ShapelessToolRecipe.java @@ -39,7 +39,8 @@ public class ShapelessToolRecipe extends ShapelessRecipes { ItemStack itemstack1 = (ItemStack)iterator.next(); - if (itemstack.itemID == itemstack1.itemID && (itemstack1.getItemDamage() == 32767 || itemstack.getItemDamage() == itemstack1.getItemDamage())) + //System.out.println("Rawr! "+itemstack1.getItemDamage()); + if (itemstack.itemID == itemstack1.itemID && (itemstack1.getItemDamage() == Short.MAX_VALUE || itemstack.getItemDamage() == itemstack1.getItemDamage())) { if (itemstack.getItem() instanceof ToolCore) { diff --git a/mods/tinker/tconstruct/library/crafting/ToolBuilder.java b/mods/tinker/tconstruct/library/crafting/ToolBuilder.java index 9f8047d..dbd58c2 100644 --- a/mods/tinker/tconstruct/library/crafting/ToolBuilder.java +++ b/mods/tinker/tconstruct/library/crafting/ToolBuilder.java @@ -26,7 +26,7 @@ public class ToolBuilder public List toolMods = new ArrayList(); /* Build tools */ - public static void addToolRecipe (ToolCore output, Item head) + public static void addNormalToolRecipe (ToolCore output, Item head) { ToolRecipe recipe = instance.recipeList.get(output.getToolName()); if (recipe != null) @@ -41,7 +41,7 @@ public class ToolBuilder } } - public static void addToolRecipe (ToolCore output, Item head, Item accessory) + public static void addNormalToolRecipe (ToolCore output, Item head, Item accessory) { //instance.combos.add(new ToolRecipe(head, accessory, output)); ToolRecipe recipe = instance.recipeList.get(output.getToolName()); @@ -57,26 +57,8 @@ public class ToolBuilder instance.recipeList.put(output.getToolName(), recipe); } } - - public static void addToolRecipe (ToolCore output, Item head, Item accessory, Item extra) - { - //instance.combos.add(new ToolRecipe(head, accessory, extra, output)); - ToolRecipe recipe = instance.recipeList.get(output.getToolName()); - if (recipe != null) - { - recipe.addHeadItem(head); - recipe.addAccessoryItem(accessory); - recipe.addExtraItem(accessory); - } - else - { - recipe = new ToolRecipe(head, accessory, extra, output); - instance.combos.add(recipe); - instance.recipeList.put(output.getToolName(), recipe); - } - } - public static void addCustomToolRecipe (ToolCore output, Item head, Item handle, Item accessory, Item extra) + public static void addNormalToolRecipe (ToolCore output, Item head, Item handle, Item accessory, Item extra) { ToolRecipe recipe = instance.recipeList.get(output.getToolName()); if (recipe != null) @@ -93,6 +75,23 @@ public class ToolBuilder instance.recipeList.put(output.getToolName(), recipe); } } + + public static void addCustomToolRecipe(ToolRecipe recipe) + { + instance.combos.add(recipe); + } + + public static void addToolRecipe (ToolCore output, Item... items) + { + if (items.length == 1) + addNormalToolRecipe(output, items[0]); + if (items.length == 2) + addNormalToolRecipe(output, items[0], items[1]); + if (items.length == 3) + addToolRecipe(output, items[0], items[1], items[2]); + if (items.length == 4) + addNormalToolRecipe(output, items[0], items[1], items[2], items[3]); + } public ToolCore getMatchingRecipe (Item head, Item handle, Item accessory, Item extra) { diff --git a/mods/tinker/tconstruct/library/crafting/ToolRecipe.java b/mods/tinker/tconstruct/library/crafting/ToolRecipe.java index 09043c1..060d2a5 100644 --- a/mods/tinker/tconstruct/library/crafting/ToolRecipe.java +++ b/mods/tinker/tconstruct/library/crafting/ToolRecipe.java @@ -21,17 +21,17 @@ public class ToolRecipe public ToolRecipe(Item head, ToolCore tool) { - this(head, TConstructRegistry.toolRod, null, null, tool); + this(head, TContent.toolRod, null, null, tool); } public ToolRecipe(Item head, Item accessory, ToolCore tool) { - this(head, TConstructRegistry.toolRod, accessory, null, tool); + this(head, TContent.toolRod, accessory, null, tool); } public ToolRecipe(Item head, Item accessory, Item extra, ToolCore tool) { - this(head, TConstructRegistry.toolRod, accessory, extra, tool); + this(head, TContent.toolRod, accessory, extra, tool); } public ToolRecipe(Item head, Item handle, Item accessory, Item extra, ToolCore tool) diff --git a/mods/tinker/tconstruct/library/tools/AbilityHelper.java b/mods/tinker/tconstruct/library/tools/AbilityHelper.java index d34e496..980547c 100644 --- a/mods/tinker/tconstruct/library/tools/AbilityHelper.java +++ b/mods/tinker/tconstruct/library/tools/AbilityHelper.java @@ -48,13 +48,13 @@ public class AbilityHelper if (!stack.hasTagCompound()) return false; - int durability = 0; + int reinforced = 0; NBTTagCompound tags = stack.getTagCompound(); if (tags.getCompoundTag("InfiTool").hasKey("Unbreaking")) - durability = tags.getCompoundTag("InfiTool").getInteger("Unbreaking"); + reinforced = tags.getCompoundTag("InfiTool").getInteger("Unbreaking"); - if (random.nextInt(10) < 10 - durability) + if (random.nextInt(10) < 10 - reinforced) { damageTool(stack, 1, tags, player, false); } diff --git a/mods/tinker/tconstruct/library/tools/ToolCore.java b/mods/tinker/tconstruct/library/tools/ToolCore.java index 79df01f..a1b1e0f 100644 --- a/mods/tinker/tconstruct/library/tools/ToolCore.java +++ b/mods/tinker/tconstruct/library/tools/ToolCore.java @@ -228,8 +228,16 @@ public abstract class ToolCore extends Item implements ICustomElectricItem, IBox emptyIcon = iconRegister.registerIcon("tinker:blankface"); } + + @Override + @SideOnly(Side.CLIENT) + public Icon getIconFromDamage(int meta) + { + return blankSprite; + } @Override + @SideOnly(Side.CLIENT) public Icon getIcon (ItemStack stack, int renderPass) { NBTTagCompound tags = stack.getTagCompound(); @@ -535,7 +543,7 @@ public abstract class ToolCore extends Item implements ICustomElectricItem, IBox public Item getHandleItem () { - return TConstructRegistry.toolRod; + return TConstructRegistry.getItem("toolRod");//TContent.toolRod; } /* Updating */ @@ -630,15 +638,8 @@ public abstract class ToolCore extends Item implements ICustomElectricItem, IBox //Right-click public boolean onItemUse (ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float clickX, float clickY, float clickZ) { - //Workaround for impossible crash? - if (!player.isSneaking()) - { - Block block = Block.blocksList[world.getBlockId(x, y, z)]; - if (block.hasTileEntity(world.getBlockMetadata(x, y, z))) - { - return false; - } - } + /*if (world.isRemote) + return true;*/ int posX = x; int posY = y; @@ -682,26 +683,28 @@ public abstract class ToolCore extends Item implements ICustomElectricItem, IBox boolean used = false; int hotbarSlot = player.inventory.currentItem; - if (hotbarSlot == 0) + int itemSlot = hotbarSlot == 0 ? 8 : hotbarSlot + 1; + ItemStack nearbyStack = null; + + if (hotbarSlot < 8) { - ItemStack nearbyStack = player.inventory.getStackInSlot(8); + nearbyStack = player.inventory.getStackInSlot(itemSlot); if (nearbyStack != null && nearbyStack.getItem() instanceof ItemBlock) { used = nearbyStack.getItem().onItemUse(nearbyStack, player, world, x, y, z, side, clickX, clickY, clickZ); if (nearbyStack.stackSize < 1) - player.inventory.setInventorySlotContents(8, null); + { + nearbyStack = null; + player.inventory.setInventorySlotContents(itemSlot, null); + } } } - else if (hotbarSlot < 8) + + /*if (used) //Update client { - ItemStack nearbyStack = player.inventory.getStackInSlot(hotbarSlot + 1); - if (nearbyStack != null && nearbyStack.getItem() instanceof ItemBlock) - { - used = nearbyStack.getItem().onItemUse(nearbyStack, player, world, x, y, z, side, clickX, clickY, clickZ); - if (nearbyStack.stackSize < 1) - player.inventory.setInventorySlotContents(hotbarSlot + 1, null); - } - } + Packet103SetSlot packet = new Packet103SetSlot(player.openContainer.windowId, itemSlot, nearbyStack); + ((EntityPlayerMP)player).playerNetServerHandler.sendPacketToPlayer(packet); + }*/ return used; } @@ -876,6 +879,8 @@ public abstract class ToolCore extends Item implements ICustomElectricItem, IBox /* Proper stack damage */ public int getItemDamageFromStack (ItemStack stack) { + if (stack.itemDamage == Short.MAX_VALUE ) + return Short.MAX_VALUE; NBTTagCompound tags = stack.getTagCompound(); if (tags == null) { diff --git a/mods/tinker/tconstruct/library/tools/ToolMaterial.java b/mods/tinker/tconstruct/library/tools/ToolMaterial.java index 28ab7c7..5e21387 100644 --- a/mods/tinker/tconstruct/library/tools/ToolMaterial.java +++ b/mods/tinker/tconstruct/library/tools/ToolMaterial.java @@ -1,39 +1,32 @@ package mods.tinker.tconstruct.library.tools; -/** - * This class is temporary. A full material registry is planned +/* + * Dynamic substitute for an enum. It carries a lot of information */ public class ToolMaterial { //mining level, durability, mining speed, baseDamage, handle modifier, Reinforced level, shoddy/spiny level, color/style on name public final String materialName; - public final int craftingTier; //Not used public final int harvestLevel; public final int durability; public final int miningspeed; // <-- divided by 100 public final int attack; public final float handleModifier; public final int reinforced; - public final float shoddy; + public final float stonebound; public final String tipStyle; public final String ability; - - public ToolMaterial(String name, int tier, int level, int durability, int speed, int damage, float handle, int reinforced, float shoddy) - { - this(name, reinforced, reinforced, reinforced, reinforced, reinforced, shoddy, reinforced, shoddy, "", ""); - } - public ToolMaterial(String name, int tier, int level, int durability, int speed, int damage, float handle, int reinforced, float shoddy, String style, String ability) + public ToolMaterial(String name, int level, int durability, int speed, int damage, float handle, int reinforced, float stonebound, String style, String ability) { this.materialName = name; - this.craftingTier = tier; this.harvestLevel = level; this.durability = durability; this.miningspeed = speed; this.attack = damage; this.handleModifier = handle; this.reinforced = reinforced; - this.shoddy = shoddy; + this.stonebound = stonebound; this.tipStyle = style; this.ability = ability; } @@ -43,11 +36,6 @@ public class ToolMaterial return materialName; } - public int tier() - { - return craftingTier; - } - public int durability() { return this.durability; @@ -80,7 +68,7 @@ public class ToolMaterial public float shoddy() { - return this.shoddy; + return this.stonebound; } public String style() diff --git a/mods/tinker/tconstruct/library/util/IToolPart.java b/mods/tinker/tconstruct/library/util/IToolPart.java index 0ff2f1e..1c13f93 100644 --- a/mods/tinker/tconstruct/library/util/IToolPart.java +++ b/mods/tinker/tconstruct/library/util/IToolPart.java @@ -4,5 +4,10 @@ import net.minecraft.item.ItemStack; public interface IToolPart { + /** Parts to build tools from. ex: Pickaxe Head + * + * @param stack This item + * @return Proper material ID. -1 for invalid + */ public int getMaterialID(ItemStack stack); } diff --git a/mods/tinker/tconstruct/modifiers/ModAttack.java b/mods/tinker/tconstruct/modifiers/ModAttack.java index 77f37c0..2b7e8e1 100644 --- a/mods/tinker/tconstruct/modifiers/ModAttack.java +++ b/mods/tinker/tconstruct/modifiers/ModAttack.java @@ -26,8 +26,11 @@ public class ModAttack extends ToolMod @Override protected boolean canModify (ItemStack tool, ItemStack[] input) { - - NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); + ToolCore toolItem = (ToolCore) tool.getItem(); + if (!validType(toolItem)) + return false; + + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); if (!tags.hasKey(key)) return tags.getInteger("Modifiers") > 0; @@ -51,7 +54,7 @@ public class ModAttack extends ToolMod { int amount = 24; ToolCore toolItem = (ToolCore) tool.getItem(); - if (toolItem.pierceArmor() || !validType(toolItem)) + if (toolItem.pierceArmor() || !nerfType(toolItem)) amount = 36; int[] keyPair = tags.getIntArray(key); @@ -107,7 +110,13 @@ public class ModAttack extends ToolMod tags.setString(tip, modName); } - public boolean validType(ToolCore tool) + public boolean validType(ToolCore tool) + { + List list = Arrays.asList(tool.toolCategories()); + return list.contains("melee") || list.contains("harvest"); + } + + public boolean nerfType(ToolCore tool) { List list = Arrays.asList(tool.toolCategories()); return list.contains("throwing"); diff --git a/mods/tinker/tconstruct/modifiers/ModRedstone.java b/mods/tinker/tconstruct/modifiers/ModRedstone.java index bba9f03..f8af183 100644 --- a/mods/tinker/tconstruct/modifiers/ModRedstone.java +++ b/mods/tinker/tconstruct/modifiers/ModRedstone.java @@ -103,6 +103,6 @@ public class ModRedstone extends ToolMod public boolean validType(ToolCore tool) { List list = Arrays.asList(tool.toolCategories()); - return list.contains("harvest"); + return list.contains("harvest") || list.contains("utility"); } } diff --git a/mods/tinker/tconstruct/util/PHConstruct.java b/mods/tinker/tconstruct/util/PHConstruct.java index 37813eb..e9ee675 100644 --- a/mods/tinker/tconstruct/util/PHConstruct.java +++ b/mods/tinker/tconstruct/util/PHConstruct.java @@ -85,6 +85,9 @@ public class PHConstruct landmine = config.getBlock("Landmine", 1470).getInt(1470); barricade = config.getBlock("Barricade", 1469).getInt(1469); toolForge = config.getBlock("Tool Forge", 1468).getInt(1468); + multiBrickFancy = config.getBlock("Multi Brick Fancy", 1467).getInt(1467); + + aggregator = config.getBlock("Aggregator", 3221).getInt(3221); /*golemCore = config.getBlock("Golem Core", 1481).getInt(1481); golemHead = config.getBlock("Golem Head", 1482).getInt(1482);*/ @@ -280,6 +283,8 @@ public class PHConstruct //InfiBlocks public static int speedBlock; + + public static int aggregator; //Liquids public static int metalFlowing; @@ -288,6 +293,7 @@ public class PHConstruct //Decoration public static int stoneTorch; public static int multiBrick; + public static int multiBrickFancy; public static int redstoneBallRepeater; //Patterns and misc diff --git a/mods/tinker/textures/blocks/bricks/fancybrick_blueslime.png b/mods/tinker/textures/blocks/bricks/fancybrick_blueslime.png new file mode 100644 index 0000000000000000000000000000000000000000..6aa7a4a029cdc774957b96778fbd8d77c60d7b7d GIT binary patch literal 614 zcmV-s0-61ZP)j zK~y-)U6bu=6G0Hhf3w+KuXjz-5(oufK!p0m4^ry?k5q(U1(AX_5>T{Ai|D0!;a+$A zFn4L}!m=~dwl|~0f5l6(=`wR`tc`n`jl?z)h!-h!Jon+ zd1=X;3i8@wvA5*K8j{Fjejl7evn6hu6nkVe*rIcAVB5#wV`Mx=Z~ofd-5vbS3`;M* zp-qDv4$z`N-+YER+TzIGo=s2`5J%|MEoiWb057M{5rE*(4_|O+FClFn@b4k6Ax!7U zi-`e;9^w2F4;91%SmlTa>{n3st+?atob7IHDxgA+$9U+&Dz`CJ5&95<6|8ayWh-2a z9PVgTgJw%i;t=i=yN+-ltATulW=n(#42Mt#!!?eTsoil-_FJTuLK)DT8?(7^|^rlYJsezou5(|3y%1>_|< zyS7&tdlS()bh$+^tDd2Hqxnxk{Y7COI&W@R0hIn zQ|K6y8Cvx@dHgM%t*>Y{O2Y7r^T*#Kk}PGp_!m`lsLB-78ai1pOImb|31N1Dl&fS> zh-vi@<8yNKxYk5JeHw^CLd~`~e8Q6vq7SL68DWU-8y zJlUfRVj|T;B=J6;n4_~gk?L_U*~9fmAi6~JKk-!KsZqG3-KseJ>lLg^l61<>a0jgm%9TxQT+Yp3S%38lvb@A=q_k@HDdam?0e!`%N7(`#;GR0Wpn zVd|1Jim2i>l2l+?Jr>It*R2uG57BBs;_s5gE=7Do!*(!dflY!!Vm-r>;t@@!Kx;_+ zT{7P%PZfzDVjB_20JHHXQPIb^dGjOv{CW2L*sT5N1=N(0OKXI$7gC XYf+BV=k~!B00000NkvXXu0mjf_JN7@ literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/bricks/fancybrick_endstone.png b/mods/tinker/textures/blocks/bricks/fancybrick_endstone.png new file mode 100644 index 0000000000000000000000000000000000000000..d941ac559a7d44039e54a871044151c5858eeda1 GIT binary patch literal 631 zcmV--0*L*IP)L|QmKCfAt43^2BZ!w9aC!+b32}0hw$8Pc*p3+@U&ZYJXFEFQ>b%c6@2v!bPk9`Nxb6yRmLO#p&$~+; zO-Sc4%kl2b3)a`4Q1tJ-dW@0HQ+mB0x+xfRn1q))|8;&sqv-=+*@ET%JWDX7>=Fz* z`hnkCBN%jWgaDw?^r^cZVI%=q?l)}{V}Ea}B=h^pS3Rv(t!a!jT}*VH6{b@~qv?~T zU@S9jZ$B(CUf;>0GKGn&-Ur!&X!3sOITgKMa#QG99>~l9l}Ubsnr0e z93F4w=bclgQ$_pi8~+N^HcLCJ$kCVl@aR2t*TZrgyvA)T+d;}M`+Hj@=0J9D)D1aq z>puWcsJXlxmzWDHpLb46J}```^IyzGI6_c&Jw34UeDhvjFfB*ny6eo>^S^nPX*oT1 R!Z`o{002ovPDHLkV1n&g7o`9I literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/bricks/fancybrick_obsidian_ingot.png b/mods/tinker/textures/blocks/bricks/fancybrick_obsidian_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..9186e3c556f8780a6386e8b93af1f17b9525162c GIT binary patch literal 579 zcmV-J0=)f+P)CmRBB3M zdt8zkkAK3#*o{+lfw;Tz+_`hUGsoia*{hASYg80bmo-_QaBFfK=PYGav0dN3zvJNX z5nccL53liP8h#}SBnbdoYgTL9A4=0XQ8)oW2%p`4FUu3O*8PDvj?r49qy!)eCrG7m z#sIL}?@dpR2QpWy8AA9N;{&kSl#pHSkHaxdV~N5E>os`0OivD8aGfV#zP_cbDn_Fa z<6NttV{)gbJ>zsXLrKZX=0xFybeZzoXm(2opHauuP0aFyIF9?ZaSo{zdwT%@MPXVb|B44?RrR+^rFs=r)qXpC`W$N=4HX|hy&2{} zh}L-}CC0h_xjM;0_$-rzEYHz8MF_vmfis4c&3ne|V&2O0Bvs|`eMJ!LW6T`i^ZsUH z)DC_4;N|A*d_mJ#tX=T0<=wq=51r*m6{CXt+=y->Wk{AMOizvn%vqXV+4q)P|3FLJ zswqn|VD6%PcD@+q!1p||i#bJ+Qr9brA_X7__5rq-=?#wK_;N@XKHBgf^#@WMIfC`$ RdrJTS002ovPDHLkV1oS||Iz>e literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/glass_clear.png b/mods/tinker/textures/blocks/glass/glass_clear.png new file mode 100644 index 0000000000000000000000000000000000000000..580e2cee2d9c4b5d2310726db566023b6046eb0a GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=qS%3CFG-_kcn+o-U3d7N?W{e1Ctxp3Ugs!uLEp zJX0h#{Jiz{zYmW{Qy{Y&uY?Ml%rC!%oKsSkF~|S^n{N3gTe~DWM4fV&OMc literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/glass_clear_side.png b/mods/tinker/textures/blocks/glass/glass_clear_side.png new file mode 100644 index 0000000000000000000000000000000000000000..55e3d96acdd93daecd9aa1f491015636143d8982 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=qR!*OoPb20$SjPZ!4!i_^&o2bll;{r&y_{r&a- zKdwwnQefb#J+AM6fx#((L*m2Fhj$mgVRZ_$2wGIwA?=_cYGhyl)V--+;OT}r{rNz1 O7(8A5T-G@yGywpm%QyM} literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/soulglass.png b/mods/tinker/textures/blocks/glass/soulglass.png new file mode 100644 index 0000000000000000000000000000000000000000..6dc0e13fbe293f4b88c0d53fb46d1f09f3979bf9 GIT binary patch literal 473 zcmV;~0Ve*5P)ilRINgNvc+e+C>N(9RI290LObgRiy0e}?p6H@G4rMKL(rLQNX4 zW;lSkpfWL-I1NzXZ>|4-VrABUh9Fy`|L!Ilcr_;nIRD3HX}pj9e+ELDtu^IP#jMteVjwU3<4%R3}2gvD#A;i%btD+=tTY};~=GqW;QIt1P&diJU zLs1uGXZWANQBR2|&5c=680uUNRsS;t*%^@?NOfu9|5=Rnbr{$=*#8Uia4~Rja4@`l z{gy#RQGuax)(S>gruzBoH^cb{uNZx;4gNoU_Ke~Ge+Gs?FINT*4h{wYlfZvlZKfHeL&*$_k+_YP%bX~rc!jTdchHP%E69i-IoK3M*!pdauo;*|-dWDP7k+JG`ngYq@q@<>h4iWAw2I{8|YlN5i8Qs2DTC3}X>7{h4Y5mT4kioLowNBE`qZlxZo7AkCm{g8vl)B4JH%1M`(VId3Z08{ bY&*w4Wb{_OFUEjX00000NkvXXu0mjfURs{L literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/soulglass_clear_side.png b/mods/tinker/textures/blocks/glass/soulglass_clear_side.png new file mode 100644 index 0000000000000000000000000000000000000000..d9ff3d50056093eed123a5eb22b136bcf1b127d2 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=qT4L1gc3N1%|kr;B5V#p&dP1I){wxc`|yN&ch! zd?__HrU!SA`}2rMI&knXGSAyzXFX-Fg9ewomkD1XGsjXVHXvXyl;r=cpIF5VG={;` L)z4*}Q$iB}?A9)a literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/soulglass_side.png b/mods/tinker/textures/blocks/glass/soulglass_side.png new file mode 100644 index 0000000000000000000000000000000000000000..1467c2e4c11000c0e29e37d34998242893e34230 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=qT4M2I59+Zed^uRFqV?zMiQXXg-6dtDnm{r-UW|7Surx literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_black.png b/mods/tinker/textures/blocks/glass/stainedglass_black.png new file mode 100644 index 0000000000000000000000000000000000000000..be84ebb4a95b0dc070c08a54c3ae15fc3067fdb2 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=l)Tu=nwR7eFBsPZ!4!i_^(-EDDo^nP)24+u!eQ zZES3O_~2l3+!LuoM;sI-OcSm&1Trf$Oauz^r~<9kJj?F3llxyiP(OpGtDnm{r-UW| D8*ed4 literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_black_side.png b/mods/tinker/textures/blocks/glass/stainedglass_black_side.png new file mode 100644 index 0000000000000000000000000000000000000000..b1005af4a18b925164bb9f849e62a9351d629fdc GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=qS%a(AY!Bv44-)5S5w;&gJt0p_NrrgJQ;taA@8 zZ|iJih}fPd%k0V~z_ggHN6H|Jq3{8Z$YU0UW5w*wb7Q8+0JSoBy85}Sb4q9e0BAWY A761SM literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_blue.png b/mods/tinker/textures/blocks/glass/stainedglass_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..1a1696c3e535533f00d20d559e2a5092559f370b GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=l(A<5AA5Pk}m`$!6qO5v0q^ z&CJYvc%pay_KBHo;=;_W30E2dnca9B7~J&Ut}>n?!N72copTl+^T}mE0~kDA{an^L HB{Ts5$9yg! literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_blue_side.png b/mods/tinker/textures/blocks/glass/stainedglass_blue_side.png new file mode 100644 index 0000000000000000000000000000000000000000..5e3ed001d812c106d67e1f801260f8587bc325f0 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=qS*zFwA{9Z<;F)5S5w;&gJt0p?Tb`>lfQeqWWW z$(kX-(Qr~&%^)C!LD3-VzzW92Yyyc43+J3TaNqy~!vYpgQQzcyAAs5!JYD@<);T3K F0RU#HF8Kfe literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_brown_side.png b/mods/tinker/textures/blocks/glass/stainedglass_brown_side.png new file mode 100644 index 0000000000000000000000000000000000000000..46d156c043c193d743e82db359854fe768fb3c44 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=qT0kc)}HTA+}Tr;B5V#p&dP1I$u)M9-V-(4Kd2 zd0S^A!;a7I#F<^$1eg}H^+*|HF$l5=oa*EO0tS;RPX3&~$9@BKGkCiCxvXPZ!4!i_^(ptp7aaVV?Qm)~Ay^ zIy^w2zi$40w`G!XK0G2#fy{2a5~d7H5$km4pE+>gzysHHj0}CpxZZB-+;kdf2!p4q KpUXO@geCwaDl}aH literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_cyan_side.png b/mods/tinker/textures/blocks/glass/stainedglass_cyan_side.png new file mode 100644 index 0000000000000000000000000000000000000000..40f46490bde42004f1075e149d0e60d16f2646a4 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=qT8>gE&5sX!rPPZ!4!i_^&o2bj;K$=W5Gz5XCs zlQlzvqoG{9&mbU$LD3-VzzW92Yyyc43+J3TaNqy~LscH*7dO+zopr E0G4$xj{pDw literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_gray.png b/mods/tinker/textures/blocks/glass/stainedglass_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..30508ffceaff9549276a94b48c8aa63ef5c903a1 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=q@Dz(n6AWk4ZQPZ!4!i_^(_3LhVnWHWLM3ln4J zW@ctSym9gI?GrQG#D$q#6RtD_GQ06MFu19!FE^ed!N8EUkaK$PpBXVg0~kDA{an^L HB{Ts5ve+(s literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_gray_side.png b/mods/tinker/textures/blocks/glass/stainedglass_gray_side.png new file mode 100644 index 0000000000000000000000000000000000000000..60df141cc6a0fb736096edf4d1f17d5cdc3bb746 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=qSz=Hk>iexQ)Cr;B5V#p&dP1I*9P&aF?ocjssN zhn0y*3JlY9V$V2CWNbOGf^jihkCa0TV@r_|GY~N3m2f(j#Y_|eYG?3t^>bP0l+XkK D;eIbQ literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_green.png b/mods/tinker/textures/blocks/glass/stainedglass_green.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2f2f68c79d0e732d070a1e6970dd399f86d89c GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=l)*T$TB*NkAb}PZ!4!i_^(_K2^SyWHV~qU(CeJ z&CJZ~eE-V2+>}`lj~;PQlrT-W(h$h3&=7dD=PQpY&|aT~97@dZ%{~GRVDNPHb6Mw< G&;$SuoiIWG literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_green_side.png b/mods/tinker/textures/blocks/glass/stainedglass_green_side.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2e10e20a97ca11336a08f664d224f597baa534 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=qRMhx*kckw76MPZ!4!i_^&o2bd>WeL1gE`eOdU zG`yNin;!2{0{Y>ya|ZVi05#IMvAm1Pm9iaulE9+^7uH&EV0ay zhX)9zzx#XFZJA`8506MwAhR2fwaw&i(=wNQ3uG~Py85}Sb4q9e E0QhPy#sB~S literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_lightblue_side.png b/mods/tinker/textures/blocks/glass/stainedglass_lightblue_side.png new file mode 100644 index 0000000000000000000000000000000000000000..301684b98ed85caf816cd46a57c364ea846edbe5 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=l(MZvxk~LqH*8PZ!4!i_^&o2bjg){wz+rIL|)) z!^*@Y1%_|$?jClS$k=jV1><729w~;#aZx$_ z!^*@Y1%`9+J5D%EWNbOGf^jihkCa0TV@r_|GY~NRkLNahv1N}iP&oYJ* literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_lime.png b/mods/tinker/textures/blocks/glass/stainedglass_lime.png new file mode 100644 index 0000000000000000000000000000000000000000..1b9e7666700926fa13f47dcec14b4135e2f1ba63 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=q@T;_H3i`+-8Ho-U3d7N?VIzSQ5AWHWM1F6C$D zW@ctSysg=L+r-Q^abf1xgewh!%x=6549A{mEjOMb!N9=b%q8@%dy72K00vK2KbLh* G2~7YEMK2!! literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_lime_side.png b/mods/tinker/textures/blocks/glass/stainedglass_lime_side.png new file mode 100644 index 0000000000000000000000000000000000000000..1af9cff1aa81ab9e885f27f8f61b137f61c52bfc GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=l){@#NT*uYp3wo-U3d7N?UF4lt+5bXXZbcDN#0 zlQlzvqv7)IID>!`21SFc11lI8vk4?JESz)Vz<~omOQ&*v{W4v;AE=$d)78&qol`;+ E0LlC?+yDRo literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_magenta.png b/mods/tinker/textures/blocks/glass/stainedglass_magenta.png new file mode 100644 index 0000000000000000000000000000000000000000..3651ba19c66a31be7ac57f865b5eb639b7011cfd GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=q@H*p=CS{y-s9PZ!4!i_^(9JOBTeWHUOrX`d{Q z4i6CMe>cogzRaVq#>RDU1><729w`RKp1=EUpASf4V92UajHW)nzcSUBgzfddB^7=rD&?yloInhn&>;OXk;vd$@? F2>|hdF*5)F literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_orange.png b/mods/tinker/textures/blocks/glass/stainedglass_orange.png new file mode 100644 index 0000000000000000000000000000000000000000..e18f092e006f064180d293ed1a3f6a4f1a3df6f8 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=q@XVbq=#&w)awo-U3d7N?W{{7-o;$!2u$$&vy# zF*Y`~w)M|gTe~ HDWM4fjhixz literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_orange_side.png b/mods/tinker/textures/blocks/glass/stainedglass_orange_side.png new file mode 100644 index 0000000000000000000000000000000000000000..2f94ca0c7c3621f61522db090c67b1b7e010a9cb GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=l)@UvKbw`*%!&9 z!vh58^X}brTP7Lj!z0oZ$n3@|VamWHalU2x{Dnst7@lc!cl6n>kpvpR;OXk;vd$@? F2>=&CFR%ar literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_pink_side.png b/mods/tinker/textures/blocks/glass/stainedglass_pink_side.png new file mode 100644 index 0000000000000000000000000000000000000000..88120bc99113099b58a95cc3154e616ab07fc5ed GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=qRId;R9%13)2TPZ!4!i_^&o2bkxryHWYzn1O)7FO%zax6-C%K zCToTSM?>rFbi;rY21SFc11lI8vk4?JESz)Vz<~n{3_=e%i$!e%F95YOc)I$ztaD0e F0syseFZ}=j literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_red.png b/mods/tinker/textures/blocks/glass/stainedglass_red.png new file mode 100644 index 0000000000000000000000000000000000000000..65c7fb05e5638e4f797de56036b130edff69aca1 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=l)*!LourFfd?XX#2-;Tz9{o98f!hr>mdKI;Vst E0F1URfB*mh literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_white.png b/mods/tinker/textures/blocks/glass/stainedglass_white.png new file mode 100644 index 0000000000000000000000000000000000000000..c1aa068358ef595aa246d63e9506d8e52553dd18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=q@Xh~SQz1wbJ)PZ!4!i_^(}zQ4aO$!2u$nsm8j zgai=e?XTS5>tnoUhJ*&oVzwSBgDeIXgS>rZzj;)F7EdnVHP literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/glass/stainedglass_white_side.png b/mods/tinker/textures/blocks/glass/stainedglass_white_side.png new file mode 100644 index 0000000000000000000000000000000000000000..a47b320fe82317bb796fdce9be3af3f0eca05d8c GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DkBL6|Xgws$vBkiEpy*OmP)n=l)jm9_IKkO9V?E{-789LJAzopr E0Q%lBF#rGn literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/liquid_glass.png b/mods/tinker/textures/blocks/liquid_glass.png new file mode 100644 index 0000000000000000000000000000000000000000..50859c4f693064bf0f59585f5cdd0e154fd88a3c GIT binary patch literal 10198 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 literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/liquid_glass.txt b/mods/tinker/textures/blocks/liquid_glass.txt new file mode 100644 index 0000000..d8fe765 --- /dev/null +++ b/mods/tinker/textures/blocks/liquid_glass.txt @@ -0,0 +1,32 @@ +0*2 +1*2 +2*2 +3*2 +4*2 +5*2 +6*2 +7*2 +8*2 +9*2 +10*2 +11*2 +12*2 +13*2 +14*2 +15*2 +16*2 +17*2 +18*2 +19*2 +20*2 +21*2 +22*2 +23*2 +24*2 +25*2 +26*2 +27*2 +28*2 +29*2 +30*2 +31*2 diff --git a/mods/tinker/textures/blocks/liquid_glass_flow.png b/mods/tinker/textures/blocks/liquid_glass_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..db4150980ec951acecbaa90fccecc6e9644dff8f GIT binary patch literal 6070 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 literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/liquid_glass_flow.txt b/mods/tinker/textures/blocks/liquid_glass_flow.txt new file mode 100644 index 0000000..e69de29 diff --git a/mods/tinker/textures/blocks/machines/aggregator_glowstone_bottom.png b/mods/tinker/textures/blocks/machines/aggregator_glowstone_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..4bb12be42455f79aae58e075bc9d876ab5fca4ef GIT binary patch literal 475 zcmV<10VMv3P)e*y>3)N4293}on<9R z15_kZkPrx3UVxWDbi4^26$KryLpr1ck%mY>MJlIc@LW-TRLolm2r0W4V|rO0pc=nFet9?1jzqU*8)5 z(h+Sj&7$2iM8G{A(WC)@@7_E)c(}Ap()NxNW2mPyU7WVp-L3w+u`*;-?&ek%BpHN2 z!0msGQrFx9H@(VfQ?RF}U~0>gavv^?3QK4cNHzeaF4iD=`sP-fVhPnNf<4`;U#4rm z_3$np$&`8;K-mW1YL!DXiS3ctkkkpHKF=?DyI5r|LqY^3)P7~8=9=Kv-f7WR>#QrY zQMxI%>RNQBgJ3Y_R@(rO0DwN+F{kH^<$OO#r_7U2Pao_bMzr@IzZUxRPg>|HFDAZy z{ahNqf1U*ZoAWy%YxFAUY1{Q?rC}35yS%!-JUs^R=bAFSquySHarW(`{J*T@MdG8Q RVLSi;002ovPDHLkV1m<0(^LQe literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/blocks/machines/aggregator_glowstone_side.png b/mods/tinker/textures/blocks/machines/aggregator_glowstone_side.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2a310468144e8e430d415af1688263217a67a7 GIT binary patch literal 628 zcmV-)0*n2LP)cU zc4xfUoRg#nmNPp$AMd;~W8!ajl>?uMfI8e>3xMcQq3=D_OYDdMZ2kxU&mO++Gc?9z zvZ~^J$aUl1MF70p$BGEK!cksKuQHG`eJ8SHCk>W(W#;~SyxS+zfEPtonY>lPrts4L=va}_u_8_&KQv5!XqaYOC|^3sc=;3n z)^rg?2MH`3KhX*Hhoz-;yeQW6>VJ31HbUf*n8YhNYw)5hFMi4lu2o9_Jf2-+cIE@3 zX_p|%fmItyNS(`-5z3Vj5*K8N9TGck-#iaMZK6bNqJ$Sk6xzGnp#(31p!V)I0RQ%U zCik{9)g@j@IxRIjYZZOIu#S^pm@@1wh>&bon@M;T>#+0qmP+BaiJ@w6D5*%8{fg? zfv3y$EMPAWPhQotQ5FTfA|ja0)pI&{_!z2&>A4@M2FSS{oYn*Qb(tA<$-1rdj8&m_jpu%3Tg4pGnp&V8${u<`wCcK;9j(L*9Jq(G1W O0000%xTvapS@kY85S| zHkGD%lQ@&fJTr6ebupoORv$mUb2#Vlq1M(N_^&9Xz#PZW0f6`V_PI-F%i#e4i(M{# z_2{iD5JIkCj1j`F&dzWiKL8NN!jw|Z7vy}wg(r(14ryX&&r&@Jp~9(Vysz020)Q6} z7KvjK$7;!cu%jyg@cRC|-`ipNJbejkWMYU9=%Z%_Z=MUpla`f?$(r+YZrOEW*9`#i zfv!u}rf1HNjUFJ~J^bWRp`bP*afIw#;BX2fc>e55y8!@Hf=4GZT)dwPABd;Z-9cYj zGLj=x7BiwTPfs5|ek=|E6j7e{`fS3gW+S(=lJ2M>Y-6J$H+2Bmc>g9Cjd(+-S&*pL z<lDV*ubVN}U*9%NEvue8WcNBlBVPU zfTNpODemYkI`?ov3=gzy)ESNd!0MhUH}zs&FaKQL$*W3(G>RHV002CtU^}c!5R_k4 zIj;_%OrISRfuk!dQqEU2g>7s~NK8Am9Kr|yFg49vmxl;tjiOn~+0`mH|8DEkYHd7o zkqU|R?{yoe>}-WHxP9dyrIee!5W#|Q>UhuR)fzL=@6C!Y+P|AE1oh(bhwYXfRk9_A zkb5@{F-9A;63Q=SgwA#F|Ur1A796jH6=e*m( z{F713KpZQ|9%LnYpL(iZvV7>F7b`5JB0@2OP>ATE2OAS9p@Jlcz+O^=AcaVw#zeHR z2`%p`yloS=w7Fe(cklha9zLn)_weIzIQ%&0@FT_8W&AUYF>uS;&;dAH?mxU>SkZC- zpmLdDpANhbfDj@8=iIjWxvrB^i3fmf8I&<5xwlI0t;6?6N+gou*kHl6SX#gU`zGndS`h%h2>05XDovEqT-Z5X35>+){lM-yHmeWgxZM)wuWEe*wpQZq8 z#^tmoL_I^Z!lY1(7-}S3sH)Kowi!CVVP9-NtwzHC9TqW;9`XW^Yy*I$7aZ9{TraY| zfk9zc?CzH{r~^~ literal 0 HcmV?d00001 diff --git a/mods/tinker/textures/gui/aggregator.png b/mods/tinker/textures/gui/aggregator.png new file mode 100644 index 0000000000000000000000000000000000000000..7abfcf16a3ee7cdd7965c84e8f75466759ce933f GIT binary patch literal 1529 zcmcIkZ8X$r6uY@T4OO{N91K@c6!_GLm&3bKIc5=-t#;6-rv2y^W5hIlR+oo ziFg1YI62a`0U&A@0UTCsSO>1}Q=7SLN6$zAO`Ufafs2>))Sw2($;Doy8>=(tYoiNU z;_m@40w>yLx0o(jcNK%|u7`aQzHALd%*p!hM;6>!Q-)uF>27JYOEe2>&24QlNl9PH zvc*@3JdE9pt*f!y&gvgOpuy-}>ic$!;48tH^=ZE#MSZ|)Q)xzIa#P~+k%y=*Lr*2S zS>8!eE#RrfRG-(Z7jp(jVPvyh=!WS+`$0PAL=DSPu?24q0VOOfNW( zPus%7#Yyl9fv+g0o#;l8NaY`f-=_NVbJnpEj zKx2hAz1p)t5yw*s<7J(c$_?fotkH^2>?) z=KKmvRcJ$9nK>Y}6wlQYhqo+QA}dgG-_|xN5_z-vkI^t>K3kKN?!z-lxFg%+x30YM z`3eNZFV$DlS%-UkR)g5CcjlJmY{{WcuIcFRl_UtPntEn4vwL)4BByyKCpcDRF-C{N zgJJU~-N{GVTa-PnN@degc@wWS5XFy*h{lh~L^H+1X>{_jne7-ftS%>ZJy$J!@zf`W zQA1p0GQzXoF;GTup{BcRkPBEWT7zUoSnNo|8!o=k!hWjTZS0s4LLJ&@p2d@uSvT(u z4}aZ$(?_E4ioXV&SbR}=009#C0EQ%>;PS>d;9$ z1;TnVg1}Y_OUt0Pp&P5v&d5MWKviWWx2$JuETT`D8Re{jhCFxwfV^Mj?uTFHQ`8~C zUb>QEXAjhq6duiuf?9{6N(+kQHKjK|z(nqf z#aL667L$k|Ejt`Qfa0<>^iMaHZj!{x@bTJ^Jc|QP99sQOP>_-NW}h}wn!T)|qT*_B zRuD11jtW9~x$7dI`MOYG#y;=wt;sQkX+_-L^*@KG8!9iv;ZU#+;~VOcNd=DJ&0J^X z-BJP-00mk=dcUF|Bww0~TNKpyr^Er6XX|{moKjM&{|Vv)pg%=^%zF>9rHu*@i^bpC zY`%ESbjj&FvCJLkc@Vw1alMU=tH+sQT&`|$s=exV=<%n%$1b=reyX z2yZj?YD%Vdd>H5RCP|+`Xugqpc+MGvBW*!kgTcLYQWVigown2rCZs< zPGM7bOT3~UbQD>H{x=nd)#-gh%%v5mCzOMj^_chi4?G*q+#f=tr7XX1(j1wjX<&dX vSAScnhN;8P9au_Vd&rft3T2*wENXRSiN^ literal 0 HcmV?d00001