diff --git a/mods/tinker/resources/lang/en_US.xml b/mods/tinker/resources/lang/en_US.xml index f14e7bd..499b809 100644 --- a/mods/tinker/resources/lang/en_US.xml +++ b/mods/tinker/resources/lang/en_US.xml @@ -48,6 +48,8 @@ Block of Alumite Block of Steel + Torch + Blank Pattern Blank Cast diff --git a/mods/tinker/resources/manuals/materials.xml b/mods/tinker/resources/manuals/materials.xml index c27b0c4..03b4555 100644 --- a/mods/tinker/resources/manuals/materials.xml +++ b/mods/tinker/resources/manuals/materials.xml @@ -231,8 +231,8 @@ Class: Lethal Joke Weapon Some materials have abilities that augment their natural uses. - Reinforced: 10% chance per level of not using durability -- Shoddy: Mines faster and does less damage as the tool breaks -- Spiny: Opposite of Shoddy +- Stonebound: The tool mines faster as it wears out, but does less damage +- Spiny: The tool mines does more damage as it wears out, but mines slower - Writable: One extra modifier per piece - Awareness: Unknown @@ -380,7 +380,7 @@ Class: Lethal Joke Weapon Ardite arditelongsword -One of the nether materials. It's rustic red. +One of the nether materials. It seems to mine faster as it wears out.
arditeingot
diff --git a/mods/tinker/tconstruct/TConstruct.java b/mods/tinker/tconstruct/TConstruct.java index 2f9dfc5..ae337c8 100644 --- a/mods/tinker/tconstruct/TConstruct.java +++ b/mods/tinker/tconstruct/TConstruct.java @@ -21,9 +21,10 @@ import cpw.mods.fml.common.registry.LanguageRegistry; /** TConstruct, the tool mod. * Craft your tools with style, then modify until the original is gone! * @author: mDiyo + * @dependencies: IC2 API, EBXL API */ -@Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.2.29.1") +@Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.2.29.4") @NetworkMod(serverSideRequired = false, clientSideRequired = true, channels = { "TConstruct" }, packetHandler = mods.tinker.tconstruct.TPacketHandler.class) public class TConstruct { diff --git a/mods/tinker/tconstruct/TContent.java b/mods/tinker/tconstruct/TContent.java index 50b121f..6150c4a 100644 --- a/mods/tinker/tconstruct/TContent.java +++ b/mods/tinker/tconstruct/TContent.java @@ -1,8 +1,5 @@ package mods.tinker.tconstruct; -import java.util.ArrayList; -import java.util.List; - import mods.tinker.common.IPattern; import mods.tinker.common.RecipeRemover; import mods.tinker.common.fancyitem.FancyEntityItem; @@ -24,6 +21,7 @@ import mods.tinker.tconstruct.entity.BlueSlime; import mods.tinker.tconstruct.entity.Crystal; import mods.tinker.tconstruct.entity.LaunchedPotion; import mods.tinker.tconstruct.entity.NitroCreeper; +import mods.tinker.tconstruct.entity.Skyla; import mods.tinker.tconstruct.items.CraftedSoilItemBlock; import mods.tinker.tconstruct.items.CraftingItem; import mods.tinker.tconstruct.items.FilledBucket; @@ -211,7 +209,7 @@ public class TContent implements IFuelHandler //EntityRegistry.registerModEntity(Crystal.class, "Crystal", 2, TConstruct.instance, 32, 5, true); EntityRegistry.registerModEntity(Crystal.class, "Crystal", 2, TConstruct.instance, 32, 5, true); - //EntityRegistry.registerModEntity(Skyla.class, "Skyla", 10, TConstruct.instance, 32, 5, true); + EntityRegistry.registerModEntity(Skyla.class, "Skyla", 10, TConstruct.instance, 32, 5, true); EntityRegistry.registerModEntity(NitroCreeper.class, "UnstableCreeper", 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); @@ -371,18 +369,18 @@ public class TContent implements IFuelHandler 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, "", "Shoddy"); + 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", "Shoddy"); + 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", "Shoddy"); + TConstructRegistry.addToolMaterial(7, "Netherrack", 1, 2, 131, 400, 1, 1.2F, 0, 1f, "\u00A74", "Stonebound"); TConstructRegistry.addToolMaterial(8, "Slime", 1, 3, 1500, 150, 0, 5.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, 800, 3, 1.75F, 2, 0f, "\u00A73", ""); - TConstructRegistry.addToolMaterial(11, "Ardite", 2, 4, 600, 800, 3, 2.0F, 0, 0f, "\u00A74", ""); - TConstructRegistry.addToolMaterial(12, "Manyullyn", 2, 5, 1200, 1000, 4, 2.5F, 0, 0f, "\u00A75", "Awareness"); + 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, 3f, "\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", ""); @@ -657,8 +655,12 @@ public class TContent implements IFuelHandler GameRegistry.addRecipe(new ItemStack(manualBook), "wp", 'w', new ItemStack(blankPattern, 1, 0), 'p', Item.paper); GameRegistry.addRecipe(new ItemStack(materials, 1, 0), "pp", "pp", 'p', Item.paper); //Paper stack - GameRegistry.addRecipe(new ItemStack(materials, 1, 6), "ppp", "ppp", "ppp", 'p', Block.cobblestoneMossy); //Moss ball - GameRegistry.addRecipe(new ItemStack(materials, 1, 7), "xcx", "cbc", "xcx", 'b', Item.bucketLava, 'c', Item.coal, 'x', Block.netherrack); //Auto-smelt + 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(materials, 1, 8), Item.bone, Item.rottenFlesh, Item.chickenRaw, Item.beefRaw, Item.porkRaw, Item.fishRaw); //Necrotic bone 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 diff --git a/mods/tinker/tconstruct/TGuiHandler.java b/mods/tinker/tconstruct/TGuiHandler.java index ab975df..5f521fd 100644 --- a/mods/tinker/tconstruct/TGuiHandler.java +++ b/mods/tinker/tconstruct/TGuiHandler.java @@ -1,25 +1,10 @@ package mods.tinker.tconstruct; -import java.util.WeakHashMap; - import mods.tinker.common.InventoryLogic; -import mods.tinker.tconstruct.client.TProxyClient; -import mods.tinker.tconstruct.client.gui.FrypanGui; -import mods.tinker.tconstruct.client.gui.GuiManual; -import mods.tinker.tconstruct.client.gui.PartCrafterGui; -import mods.tinker.tconstruct.client.gui.PatternChestGui; -import mods.tinker.tconstruct.client.gui.PatternShaperGui; -import mods.tinker.tconstruct.client.gui.SmelteryGui; -import mods.tinker.tconstruct.client.gui.ToolStationGui; -import mods.tinker.tconstruct.container.SmelteryContainer; -import mods.tinker.tconstruct.logic.FrypanLogic; -import mods.tinker.tconstruct.logic.PartCrafterLogic; -import mods.tinker.tconstruct.logic.PatternChestLogic; -import mods.tinker.tconstruct.logic.PatternShaperLogic; -import mods.tinker.tconstruct.logic.SmelteryLogic; -import mods.tinker.tconstruct.logic.ToolStationLogic; +import mods.tinker.tconstruct.client.*; +import mods.tinker.tconstruct.client.gui.*; +import mods.tinker.tconstruct.logic.*; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -27,57 +12,50 @@ import cpw.mods.fml.common.network.IGuiHandler; public class TGuiHandler implements IGuiHandler { - public static int stationID = 0; - public static int partID = 1; - public static int pchestID = 2; - public static int pshaperID = 3; - public static int frypanID = 4; + public static int stationID = 0; + public static int partID = 1; + public static int pchestID = 2; + public static int pshaperID = 3; + public static int frypanID = 4; - public static int smeltery = 7; - public static int manualGui = -1; - - public static WeakHashMap openContainers = new WeakHashMap(); + public static int smeltery = 7; + public static int manualGui = -1; - @Override - public Object getServerGuiElement (int ID, EntityPlayer player, World world, int x, int y, int z) - { - if (ID < 0) - return null; - - TileEntity tile = world.getBlockTileEntity(x, y, z); - if (tile != null && tile instanceof InventoryLogic) - { - Object o = ((InventoryLogic) tile).getGuiContainer(player.inventory, world, x, y, z); - if (o instanceof SmelteryContainer) - { - openContainers.put(player.username, (Container) o); - } - return o; - } - return null; - } + @Override + public Object getServerGuiElement (int ID, EntityPlayer player, World world, int x, int y, int z) + { + if (ID < 0) + return null; - @Override - public Object getClientGuiElement (int ID, EntityPlayer player, World world, int x, int y, int z) - { - if (ID == stationID) - return new ToolStationGui(player.inventory, (ToolStationLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); - if (ID == partID) - return new PartCrafterGui(player.inventory, (PartCrafterLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); - if (ID == pchestID) - return new PatternChestGui(player.inventory, (PatternChestLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); - if (ID == frypanID) - return new FrypanGui(player.inventory, (FrypanLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); - if (ID == smeltery) - return new SmelteryGui(player.inventory, (SmelteryLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); - if (ID == pshaperID) - return new PatternShaperGui(player.inventory, (PatternShaperLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); - if (ID == manualGui) - { - ItemStack stack = player.getCurrentEquippedItem(); - return new GuiManual(stack, TProxyClient.getManualFromStack(stack)); - } - return null; - } + TileEntity tile = world.getBlockTileEntity(x, y, z); + if (tile != null && tile instanceof InventoryLogic) + { + return ((InventoryLogic) tile).getGuiContainer(player.inventory, world, x, y, z); + } + return null; + } + + @Override + public Object getClientGuiElement (int ID, EntityPlayer player, World world, int x, int y, int z) + { + if (ID == stationID) + return new ToolStationGui(player.inventory, (ToolStationLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); + if (ID == partID) + return new PartCrafterGui(player.inventory, (PartCrafterLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); + if (ID == pchestID) + return new PatternChestGui(player.inventory, (PatternChestLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); + if (ID == frypanID) + return new FrypanGui(player.inventory, (FrypanLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); + if (ID == smeltery) + return new SmelteryGui(player.inventory, (SmelteryLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); + if (ID == pshaperID) + return new PatternShaperGui(player.inventory, (PatternShaperLogic) world.getBlockTileEntity(x, y, z), world, x, y, z); + if (ID == manualGui) + { + ItemStack stack = player.getCurrentEquippedItem(); + return new GuiManual(stack, TProxyClient.getManualFromStack(stack)); + } + return null; + } } diff --git a/mods/tinker/tconstruct/TPacketHandler.java b/mods/tinker/tconstruct/TPacketHandler.java index b665516..3901d85 100644 --- a/mods/tinker/tconstruct/TPacketHandler.java +++ b/mods/tinker/tconstruct/TPacketHandler.java @@ -29,7 +29,6 @@ public class TPacketHandler implements IPacketHandler if (packet.channel.equals("TConstruct")) { - //System.out.println("Recieved a packet for TConstruct"); if (side == Side.SERVER) handleServerPacket(packet); else @@ -39,7 +38,6 @@ public class TPacketHandler implements IPacketHandler void handleClientPacket (Packet250CustomPayload packet) { - //System.out.println("Handling client packet"); DataInputStream inputStream = new DataInputStream(new ByteArrayInputStream(packet.data)); byte packetType; @@ -63,11 +61,8 @@ public class TPacketHandler implements IPacketHandler void handleServerPacket (Packet250CustomPayload packet) { - //System.out.println("Handling server packet"); DataInputStream inputStream = new DataInputStream(new ByteArrayInputStream(packet.data)); - //byte packetType; - //int dimension; byte packetID; try @@ -105,19 +100,10 @@ public class TPacketHandler implements IPacketHandler ((InventoryLogic) te).setInventorySlotContents(1, new ItemStack(itemID, 1, itemDamage)); } } - else if (packetID == 3) //Smeltery - { - int rowPos = inputStream.readInt(); - String user = inputStream.readUTF(); - SmelteryContainer container = (SmelteryContainer) TGuiHandler.openContainers.get(user); - //System.out.println("Recieved a scroll packet for row "+rowPos); - container.updateRows(rowPos); - } else if (packetID == 10) //Double jump { String user = inputStream.readUTF(); - //EntityPlayer player = FMLCommonHandler.instance().getSidedDelegate().getServer().getConfigurationManager().getPlayerForUsername(user); EntityPlayer player = TConstruct.playerTracker.getEntityPlayer(user); player.fallDistance = 0; } diff --git a/mods/tinker/tconstruct/blocks/LavaTankBlock.java b/mods/tinker/tconstruct/blocks/LavaTankBlock.java index de8cbc3..f3d3c46 100644 --- a/mods/tinker/tconstruct/blocks/LavaTankBlock.java +++ b/mods/tinker/tconstruct/blocks/LavaTankBlock.java @@ -24,215 +24,215 @@ import net.minecraftforge.liquids.LiquidStack; public class LavaTankBlock extends BlockContainer { - public Icon[] icons; + public Icon[] icons; - public LavaTankBlock(int id) - { - super(id, Material.rock); - setHardness(12); - setCreativeTab(TConstructRegistry.blockTab); - setUnlocalizedName("TConstruct.LavaTank"); - setStepSound(Block.soundGlassFootstep); - } + public LavaTankBlock(int id) + { + super(id, Material.rock); + setHardness(12); + setCreativeTab(TConstructRegistry.blockTab); + setUnlocalizedName("TConstruct.LavaTank"); + setStepSound(Block.soundGlassFootstep); + } - public String[] getTextureNames () - { - String[] textureNames = { "lavatank_side", "lavatank_top", "searedgague_top", "searedgague_side", "searedgague_bottom", "searedwindow_top", "searedwindow_side", "searedwindow_bottom" }; + public String[] getTextureNames () + { + String[] textureNames = { "lavatank_side", "lavatank_top", "searedgague_top", "searedgague_side", "searedgague_bottom", "searedwindow_top", "searedwindow_side", "searedwindow_bottom" }; - return textureNames; - } + return textureNames; + } - public void registerIcons (IconRegister iconRegister) - { - String[] textureNames = getTextureNames(); - this.icons = new Icon[textureNames.length]; + public void registerIcons (IconRegister iconRegister) + { + String[] textureNames = getTextureNames(); + this.icons = new Icon[textureNames.length]; - for (int i = 0; i < this.icons.length; ++i) - { - this.icons[i] = iconRegister.registerIcon("tinker:" + textureNames[i]); - } - } + for (int i = 0; i < this.icons.length; ++i) + { + this.icons[i] = iconRegister.registerIcon("tinker:" + textureNames[i]); + } + } - @Override - public boolean isOpaqueCube () - { - return false; - } + @Override + public boolean isOpaqueCube () + { + return false; + } - @Override - public boolean renderAsNormalBlock () - { - return false; - } + @Override + public boolean renderAsNormalBlock () + { + return false; + } - @Override - public boolean shouldSideBeRendered (IBlockAccess world, int x, int y, int z, int side) - { - //if (side == 0 && world.getBlockMetadata(x, y, z) == 0) - //return super.shouldSideBeRendered(world, x, y, z, side); - int bID = world.getBlockId(x, y, z); - return bID == this.blockID ? false : super.shouldSideBeRendered(world, x, y, z, side); - //return true; - } + @Override + public boolean shouldSideBeRendered (IBlockAccess world, int x, int y, int z, int side) + { + //if (side == 0 && world.getBlockMetadata(x, y, z) == 0) + //return super.shouldSideBeRendered(world, x, y, z, side); + int bID = world.getBlockId(x, y, z); + return bID == this.blockID ? false : super.shouldSideBeRendered(world, x, y, z, side); + //return true; + } - @Override - public int getLightValue (IBlockAccess world, int x, int y, int z) - { - TileEntity logic = world.getBlockTileEntity(x, y, z); - if (logic != null && logic instanceof LavaTankLogic) - return ((LavaTankLogic) logic).getBrightness(); - return 0; - } + @Override + public int getLightValue (IBlockAccess world, int x, int y, int z) + { + TileEntity logic = world.getBlockTileEntity(x, y, z); + if (logic != null && logic instanceof LavaTankLogic) + return ((LavaTankLogic) logic).getBrightness(); + return 0; + } - /*@Override - public int getRenderBlockPass() - { - return 1; - }*/ + /*@Override + public int getRenderBlockPass() + { + return 1; + }*/ - @Override - public int getRenderType () - { - return TankRender.tankModelID; - } + @Override + public int getRenderType () + { + return TankRender.tankModelID; + } - public Icon getBlockTextureFromSideAndMetadata (int side, int meta) - { - if (meta == 0) - { - if (side == 0 || side == 1) - { - return icons[1]; - } - else - { - return icons[0]; - } - } - else - { - return icons[meta * 3 + getTextureIndex(side) - 1]; - } - } + public Icon getBlockTextureFromSideAndMetadata (int side, int meta) + { + if (meta == 0) + { + if (side == 0 || side == 1) + { + return icons[1]; + } + else + { + return icons[0]; + } + } + else + { + return icons[meta * 3 + getTextureIndex(side) - 1]; + } + } - public int getTextureIndex (int side) - { - if (side == 0) - return 2; - if (side == 1) - return 0; + public int getTextureIndex (int side) + { + if (side == 0) + return 2; + if (side == 1) + return 0; - return 1; - } + return 1; + } - @Override - public TileEntity createTileEntity (World world, int metadata) - { - return new LavaTankLogic(); - } + @Override + public TileEntity createTileEntity (World world, int metadata) + { + return new LavaTankLogic(); + } - @Override - public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int side, float clickX, float clickY, float clickZ) - { - ItemStack heldItem = player.inventory.getCurrentItem(); - if (heldItem != null) - { - LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(player.getCurrentEquippedItem()); - LavaTankLogic logic = (LavaTankLogic) world.getBlockTileEntity(x, y, z); - if (liquid != null) - { - int amount = logic.fill(0, liquid, false); - if (amount == liquid.amount) - { - logic.fill(ForgeDirection.UNKNOWN, liquid, true); - if (!player.capabilities.isCreativeMode) - player.inventory.setInventorySlotContents(player.inventory.currentItem, consumeItem(heldItem)); - return true; - } - else - return true; - } - else if (LiquidContainerRegistry.isBucket(heldItem)) - { - ILiquidTank[] tanks = logic.getTanks(ForgeDirection.UNKNOWN); - LiquidStack fillLiquid = tanks[0].getLiquid(); - ItemStack fillStack = LiquidContainerRegistry.fillLiquidContainer(fillLiquid, heldItem); - if (fillStack != null) - { - logic.drain(ForgeDirection.UNKNOWN, LiquidContainerRegistry.getLiquidForFilledItem(fillStack).amount, true); - if (!player.capabilities.isCreativeMode) - { - if (heldItem.stackSize == 1) - { - player.inventory.setInventorySlotContents(player.inventory.currentItem, fillStack); - } - else - { - player.inventory.setInventorySlotContents(player.inventory.currentItem, consumeItem(heldItem)); + @Override + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int side, float clickX, float clickY, float clickZ) + { + ItemStack heldItem = player.inventory.getCurrentItem(); + if (heldItem != null) + { + LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(player.getCurrentEquippedItem()); + LavaTankLogic logic = (LavaTankLogic) world.getBlockTileEntity(x, y, z); + if (liquid != null) + { + int amount = logic.fill(0, liquid, false); + if (amount == liquid.amount) + { + logic.fill(ForgeDirection.UNKNOWN, liquid, true); + if (!player.capabilities.isCreativeMode) + player.inventory.setInventorySlotContents(player.inventory.currentItem, consumeItem(heldItem)); + return true; + } + else + return true; + } + else if (LiquidContainerRegistry.isBucket(heldItem)) + { + ILiquidTank[] tanks = logic.getTanks(ForgeDirection.UNKNOWN); + LiquidStack fillLiquid = tanks[0].getLiquid(); + ItemStack fillStack = LiquidContainerRegistry.fillLiquidContainer(fillLiquid, heldItem); + if (fillStack != null) + { + logic.drain(ForgeDirection.UNKNOWN, LiquidContainerRegistry.getLiquidForFilledItem(fillStack).amount, true); + if (!player.capabilities.isCreativeMode) + { + if (heldItem.stackSize == 1) + { + player.inventory.setInventorySlotContents(player.inventory.currentItem, fillStack); + } + else + { + player.inventory.setInventorySlotContents(player.inventory.currentItem, consumeItem(heldItem)); - if (!player.inventory.addItemStackToInventory(fillStack)) - { - player.dropPlayerItem(fillStack); - } - } - } - return true; - } - else - { - return true; - } - } - } + if (!player.inventory.addItemStackToInventory(fillStack)) + { + player.dropPlayerItem(fillStack); + } + } + } + return true; + } + else + { + return true; + } + } + } - return true; - } + return true; + } - public static ItemStack consumeItem (ItemStack stack) - { - if (stack.stackSize == 1) - { - if (stack.getItem().hasContainerItem()) - return stack.getItem().getContainerItemStack(stack); - else - return null; - } - else - { - stack.splitStack(1); + public static ItemStack consumeItem (ItemStack stack) + { + if (stack.stackSize == 1) + { + if (stack.getItem().hasContainerItem()) + return stack.getItem().getContainerItemStack(stack); + else + return null; + } + else + { + stack.splitStack(1); - return stack; - } - } + return stack; + } + } - @Override - public TileEntity createNewTileEntity (World world) - { - return createTileEntity(world, 0); - } + @Override + public TileEntity createNewTileEntity (World world) + { + return createTileEntity(world, 0); + } - @Override - public void getSubBlocks (int id, CreativeTabs tab, List list) - { - for (int iter = 0; iter < 3; iter++) - { - list.add(new ItemStack(id, 1, iter)); - } - } + @Override + public void getSubBlocks (int id, CreativeTabs tab, List list) + { + for (int iter = 0; iter < 3; iter++) + { + list.add(new ItemStack(id, 1, iter)); + } + } - /* Data */ - public int damageDropped (int meta) - { - return meta; - } + /* Data */ + public int damageDropped (int meta) + { + return meta; + } - /* Updates */ - public void onNeighborBlockChange (World world, int x, int y, int z, int nBlockID) - { - TileEntity logic = world.getBlockTileEntity(x, y, z); - if (logic instanceof IServantLogic) - { - ((IServantLogic) logic).notifyMasterOfChange(); - } - } + /* Updates */ + public void onNeighborBlockChange (World world, int x, int y, int z, int nBlockID) + { + TileEntity logic = world.getBlockTileEntity(x, y, z); + if (logic instanceof IServantLogic) + { + ((IServantLogic) logic).notifyMasterOfChange(); + } + } } diff --git a/mods/tinker/tconstruct/client/TProxyClient.java b/mods/tinker/tconstruct/client/TProxyClient.java index 4a87783..1d3bc0c 100644 --- a/mods/tinker/tconstruct/client/TProxyClient.java +++ b/mods/tinker/tconstruct/client/TProxyClient.java @@ -93,6 +93,7 @@ public class TProxyClient extends TProxyCommon /* Registers any rendering code. */ public void registerRenderer () { + //TickRegistry.registerTickHandler(new TTickHandler(), Side.CLIENT); Minecraft mc = Minecraft.getMinecraft(); smallFontRenderer = new SmallFontRenderer(mc.gameSettings, "/font/default.png", mc.renderEngine, false); RenderingRegistry.registerBlockHandler(new TableRender()); @@ -264,19 +265,21 @@ public class TProxyClient extends TProxyCommon ItemStack paper = new ItemStack(Item.paper); ItemStack slimeball = new ItemStack(Item.slimeBall); ItemStack slimyMud = new ItemStack(TContent.craftedSoil); + ItemStack blazerod = new ItemStack(Item.blazeRod); + ItemStack firecharge = new ItemStack(Item.fireballCharge); //TConstruct recipes TConstructClientRegistry.registerManualSmallRecipe("blankpattern", pattern, plank, stick, stick, plank); TConstructClientRegistry.registerManualSmallRecipe("toolstation", new ItemStack(TContent.toolStationWood, 1, 0), null, pattern, null, workbench); - TConstructClientRegistry.registerManualSmallRecipe("partcrafter", new ItemStack(TContent.toolStationWood, 1, 1), null, pattern, null, plank); + TConstructClientRegistry.registerManualSmallRecipe("partcrafter", new ItemStack(TContent.toolStationWood, 1, 1), null, pattern, null, log); TConstructClientRegistry.registerManualSmallRecipe("patternchest", new ItemStack(TContent.toolStationWood, 1, 5), null, pattern, null, chest); - TConstructClientRegistry.registerManualSmallRecipe("stenciltable", new ItemStack(TContent.toolStationWood, 1, 10), null, pattern, null, log); + TConstructClientRegistry.registerManualSmallRecipe("stenciltable", new ItemStack(TContent.toolStationWood, 1, 10), null, pattern, null, plank); TConstructClientRegistry.registerManualLargeRecipe("slimymud", slimyMud, null, slimeball, slimeball, null, slimeball, slimeball, null, dirt, sand); TConstructClientRegistry.registerManualFurnaceRecipe("slimecrystal", new ItemStack(TContent.materials, 1, 1), slimyMud); TConstructClientRegistry.registerManualSmallRecipe("paperstack", new ItemStack(TContent.materials, 1, 0), paper, paper, paper, paper); TConstructClientRegistry.registerManualLargeRecipe("mossball", new ItemStack(TContent.materials, 1, 6), mossycobble, mossycobble, mossycobble, mossycobble, mossycobble, mossycobble, mossycobble, mossycobble, mossycobble); - TConstructClientRegistry.registerManualLargeRecipe("lavacrystal", new ItemStack(TContent.materials, 1, 7), netherrack, coal, netherrack, coal, new ItemStack(Item.bucketLava), coal, netherrack, coal, netherrack); + TConstructClientRegistry.registerManualLargeRecipe("lavacrystal", new ItemStack(TContent.materials, 1, 7), blazerod, firecharge, blazerod, firecharge, new ItemStack(Item.bucketLava), firecharge, blazerod, firecharge, blazerod); TConstructClientRegistry.registerManualSmallRecipe("grout", grout, sand, gravel, null, clay); TConstructClientRegistry.registerManualFurnaceRecipe("searedbrick", searedbrick, grout); diff --git a/mods/tinker/tconstruct/client/TTickHandler.java b/mods/tinker/tconstruct/client/TTickHandler.java new file mode 100644 index 0000000..d61bdce --- /dev/null +++ b/mods/tinker/tconstruct/client/TTickHandler.java @@ -0,0 +1,102 @@ +package mods.tinker.tconstruct.client; + +import java.util.EnumSet; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.player.EntityPlayer; +import cpw.mods.fml.common.ITickHandler; +import cpw.mods.fml.common.TickType; + +public class TTickHandler implements ITickHandler +{ + Minecraft mc = Minecraft.getMinecraft(); + EntityPlayer player; + int zLevel = 0; + @Override + public void tickStart (EnumSet type, Object... tickData) { } + + @Override + public void tickEnd (EnumSet type, Object... tickData) + { + player = mc.thePlayer; + if (player == null || player.capabilities.isCreativeMode) + return; + + this.mc.renderEngine.bindTexture("/mods/tinker/textures/gui/newhearts.png"); + + int hp = player.getHealth(); + for (int iter = 0; iter < hp / 20; iter++) + { + int renderHearts = (hp - 20*(iter+1)) / 2; + if (renderHearts > 10) + renderHearts = 10; + for (int i = 0; i < renderHearts; i++) + { + this.drawTexturedModalRect(122 + 8*i, 201, 0 + 18*iter, 0, 8, 8); + } + if (hp % 2 == 1 && renderHearts < 10) + { + this.drawTexturedModalRect(122 + 8*renderHearts, 201, 9 + 18*iter, 0, 8, 8); + } + } + /*int renderHearts = (hp - 20) / 2; + if (renderHearts > 10) + renderHearts = 10; + for (int i = 0; i < renderHearts; i++) + { + this.drawTexturedModalRect(122 + 8*i, 201, 0, 0, 8, 8); + } + + renderHearts = (hp - 40) / 2; + if (renderHearts > 10) + renderHearts = 10; + for (int i = 0; i < renderHearts; i++) + { + this.drawTexturedModalRect(122 + 8*i, 201, 18, 0, 8, 8); + } + + renderHearts = (hp - 60) / 2; + if (renderHearts > 10) + renderHearts = 10; + for (int i = 0; i < renderHearts; i++) + { + this.drawTexturedModalRect(122 + 8*i, 201, 36, 0, 8, 8); + } + + renderHearts = (hp - 80) / 2; + if (renderHearts > 10) + renderHearts = 10; + for (int i = 0; i < renderHearts; i++) + { + this.drawTexturedModalRect(122 + 8*i, 201, 54, 0, 8, 8); + }*/ + //this.drawTexturedModalRect(178, 201, 9, 0, 8, 8); + } + + @Override + public EnumSet ticks () + { + return EnumSet.of(TickType.RENDER); + //return EnumSet.of(TickType.PLAYER); + } + + @Override + public String getLabel () + { + return "Gui Overlay"; + } + + public void drawTexturedModalRect(int par1, int par2, int par3, int par4, int par5, int par6) + { + float f = 0.00390625F; + float f1 = 0.00390625F; + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV((double)(par1 + 0), (double)(par2 + par6), (double)this.zLevel, (double)((float)(par3 + 0) * f), (double)((float)(par4 + par6) * f1)); + tessellator.addVertexWithUV((double)(par1 + par5), (double)(par2 + par6), (double)this.zLevel, (double)((float)(par3 + par5) * f), (double)((float)(par4 + par6) * f1)); + tessellator.addVertexWithUV((double)(par1 + par5), (double)(par2 + 0), (double)this.zLevel, (double)((float)(par3 + par5) * f), (double)((float)(par4 + 0) * f1)); + tessellator.addVertexWithUV((double)(par1 + 0), (double)(par2 + 0), (double)this.zLevel, (double)((float)(par3 + 0) * f), (double)((float)(par4 + 0) * f1)); + tessellator.draw(); + } +} diff --git a/mods/tinker/tconstruct/client/gui/GuiManual.java b/mods/tinker/tconstruct/client/gui/GuiManual.java index a3e4321..e9c5e3d 100644 --- a/mods/tinker/tconstruct/client/gui/GuiManual.java +++ b/mods/tinker/tconstruct/client/gui/GuiManual.java @@ -98,8 +98,17 @@ public class GuiManual extends GuiScreen void updateText () //TODO: OOP this, see BookPage { - if (currentPage >= maxPages) - currentPage = maxPages - 2; + System.out.println("maxPages: "+maxPages); + if (maxPages % 2 == 1) + { + if (currentPage > maxPages) + currentPage = maxPages; + } + else + { + if (currentPage >= maxPages) + currentPage = maxPages - 2; + } if (currentPage % 2 == 1) currentPage--; if (currentPage < 0) @@ -628,6 +637,7 @@ public class GuiManual extends GuiScreen this.fontRenderer.drawString("\u00a7n" + info, localWidth + 25 + fontRenderer.getStringWidth(info) / 2, localHeight + 4, 0); GL11.glEnable(GL12.GL_RESCALE_NORMAL); RenderHelper.enableGUIStandardItemLighting(); + renderitem.zLevel = 100; for (int i = 0; i < icons.length; i++) { renderitem.renderItemIntoGUI(fontRenderer, mc.renderEngine, icons[i], localWidth + 16, localHeight + 18 * i + 18); @@ -636,6 +646,7 @@ public class GuiManual extends GuiScreen yOffset = 13; this.fontRenderer.drawString(multiText[i], localWidth + 38, localHeight + 18 * i + yOffset, 0); } + renderitem.zLevel = 0; RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); } @@ -645,6 +656,7 @@ public class GuiManual extends GuiScreen this.fontRenderer.drawSplitString(info, localWidth, localHeight, 178, 0); GL11.glEnable(GL12.GL_RESCALE_NORMAL); RenderHelper.enableGUIStandardItemLighting(); + renderitem.zLevel = 100; for (int i = 0; i < icons.length; i++) { renderitem.renderItemIntoGUI(fontRenderer, mc.renderEngine, icons[i], localWidth + 8, localHeight + 18 * i + 36); @@ -653,6 +665,7 @@ public class GuiManual extends GuiScreen yOffset = 34; this.fontRenderer.drawSplitString(multiText[i], localWidth + 30, localHeight + 18 * i + yOffset, 140, 0); } + renderitem.zLevel = 0; RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); } @@ -685,6 +698,7 @@ public class GuiManual extends GuiScreen GL11.glScalef(2f, 2f, 2f); GL11.glEnable(GL12.GL_RESCALE_NORMAL); RenderHelper.enableGUIStandardItemLighting(); + renderitem.zLevel = 100; if (recipeSize == 2) { @@ -710,6 +724,7 @@ public class GuiManual extends GuiScreen } } + renderitem.zLevel = 0; GL11.glScalef(0.5F, 0.5F, 0.5F); RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); @@ -729,6 +744,7 @@ public class GuiManual extends GuiScreen GL11.glScalef(2f, 2f, 2f); GL11.glEnable(GL12.GL_RESCALE_NORMAL); RenderHelper.enableGUIStandardItemLighting(); + renderitem.zLevel = 100; renderitem.renderItemAndEffectIntoGUI(fontRenderer, mc.renderEngine, TConstructClientRegistry.getManualIcon("coal"), (localWidth + 38) / 2, (localHeight + 110) / 2); renderitem.renderItemAndEffectIntoGUI(fontRenderer, mc.renderEngine, icons[0], (localWidth + 106) / 2, (localHeight + 74) / 2); @@ -737,6 +753,7 @@ public class GuiManual extends GuiScreen if (icons[0].stackSize > 1) renderitem.renderItemStack(fontRenderer, mc.renderEngine, icons[0], (localWidth + 106) / 2, (localHeight + 74) / 2, String.valueOf(icons[0].stackSize)); + renderitem.zLevel = 0; GL11.glScalef(0.5F, 0.5F, 0.5F); RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); @@ -759,12 +776,14 @@ public class GuiManual extends GuiScreen if (type.equals("weapon")) toolstack = TConstructClientRegistry.getManualIcon("ironlongsword"); + renderitem.zLevel = 100; renderitem.renderItemAndEffectIntoGUI(fontRenderer, mc.renderEngine, toolstack, (localWidth + 54) / 2, (localHeight + 54) / 2); renderitem.renderItemAndEffectIntoGUI(fontRenderer, mc.renderEngine, icons[0], (localWidth + 130) / 2, (localHeight + 54) / 2); renderitem.renderItemAndEffectIntoGUI(fontRenderer, mc.renderEngine, icons[1], (localWidth + 18) / 2, (localHeight + 36) / 2); if (icons[2] != null) renderitem.renderItemAndEffectIntoGUI(fontRenderer, 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); @@ -781,10 +800,12 @@ public class GuiManual extends GuiScreen GL11.glEnable(GL12.GL_RESCALE_NORMAL); RenderHelper.enableGUIStandardItemLighting(); + renderitem.zLevel = 100; //renderitem.renderItemAndEffectIntoGUI(fontRenderer, mc.renderEngine, icons[0], localWidth + 50, localHeight + 0); renderitem.renderItemAndEffectIntoGUI(fontRenderer, mc.renderEngine, icons[1], localWidth + 108, localHeight + 50); renderitem.renderItemAndEffectIntoGUI(fontRenderer, mc.renderEngine, icons[2], localWidth + 108, localHeight + 82); renderitem.renderItemAndEffectIntoGUI(fontRenderer, mc.renderEngine, icons[3], localWidth + 108, localHeight + 114); + renderitem.zLevel = 0; RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); @@ -825,12 +846,12 @@ public class GuiManual extends GuiScreen if (material.shoddy() > 0) { - this.fontRenderer.drawString("Shoddy level: " + material.shoddy(), localWidth, localHeight + 120 + 10 * offset, 0); + this.fontRenderer.drawString("Mining Aspect level: " + material.shoddy(), localWidth, localHeight + 120 + 10 * offset, 0); offset++; } else if (material.shoddy() < 0) { - this.fontRenderer.drawString("Spiny level: " + -material.shoddy(), localWidth, localHeight + 120 + 10 * offset, 0); + this.fontRenderer.drawString("Splintering level: " + -material.shoddy(), localWidth, localHeight + 120 + 10 * offset, 0); offset++; } } @@ -846,12 +867,14 @@ public class GuiManual extends GuiScreen GL11.glEnable(GL12.GL_RESCALE_NORMAL); RenderHelper.enableGUIStandardItemLighting(); + renderitem.zLevel = 100; renderitem.renderItemAndEffectIntoGUI(fontRenderer, mc.renderEngine, icons[0], localWidth + 50, localHeight + 0); for (int i = 1; i < icons.length; i++) { renderitem.renderItemAndEffectIntoGUI(fontRenderer, mc.renderEngine, icons[i], localWidth + 120, localHeight + 20 + 10 * size + 18 * i); this.fontRenderer.drawSplitString(multiText[i + 1], localWidth + 140, localHeight + 24 + 10 * size + 18 * i, 42, 0); } + renderitem.zLevel = 0; RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); } diff --git a/mods/tinker/tconstruct/client/gui/PartCrafterGui.java b/mods/tinker/tconstruct/client/gui/PartCrafterGui.java index 8965ba7..91bf928 100644 --- a/mods/tinker/tconstruct/client/gui/PartCrafterGui.java +++ b/mods/tinker/tconstruct/client/gui/PartCrafterGui.java @@ -1,179 +1,285 @@ package mods.tinker.tconstruct.client.gui; +import mods.tinker.tconstruct.container.ActiveContainer; import mods.tinker.tconstruct.container.PartCrafterChestContainer; import mods.tinker.tconstruct.crafting.PatternBuilder; import mods.tinker.tconstruct.library.TConstructRegistry; import mods.tinker.tconstruct.library.ToolMaterial; import mods.tinker.tconstruct.logic.PartCrafterLogic; -import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; import net.minecraft.world.World; +import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; -public class PartCrafterGui extends GuiContainer +public class PartCrafterGui extends NewContainerGui { - PartCrafterLogic logic; - String title, otherTitle = ""; - boolean drawChestPart; - boolean hasTop, hasBottom; - ItemStack topMaterial, bottomMaterial; - ToolMaterial topEnum, bottomEnum; - - public PartCrafterGui(InventoryPlayer inventoryplayer, PartCrafterLogic partlogic, World world, int x, int y, int z) - { - super(partlogic.getGuiContainer(inventoryplayer, world, x, y, z)); - logic = partlogic; - drawChestPart = inventorySlots instanceof PartCrafterChestContainer; - - title = "\u00A7nTool Part Crafting"; - } + PartCrafterLogic logic; + String title, otherTitle = ""; + boolean drawChestPart; + boolean hasTop, hasBottom; + ItemStack topMaterial, bottomMaterial; + ToolMaterial topEnum, bottomEnum; - protected void drawGuiContainerForegroundLayer (int par1, int par2) - { - this.fontRenderer.drawString(StatCollector.translateToLocal("crafters.PartBuilder"), 6, 6, 4210752); - this.fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - if (drawChestPart) - this.fontRenderer.drawString(StatCollector.translateToLocal("inventory.PatternChest"), -108, this.ySize - 148, 4210752); - - drawMaterialInformation(); - } - - void drawDefaultInformation() - { - title = "\u00A7nTool Part Building"; - this.drawCenteredString(fontRenderer, title, xSize + 63, 8, 16777215); - fontRenderer.drawSplitString("Place a pattern and a material on the left to get started.", xSize + 8, 24, 115, 16777215); - } - - void drawMaterialInformation () - { - ItemStack top = logic.getStackInSlot(2); - ItemStack bottom = logic.getStackInSlot(3); - if (topMaterial != top) - { - topMaterial = top; - int topID = PatternBuilder.instance.getPartID(top); - - if (topID != Short.MAX_VALUE) - { - topEnum = TConstructRegistry.getMaterial(topID); - hasTop = true; - title = "\u00A7n"+topEnum.name(); - } - else - hasTop = false; - } - - if (bottomMaterial != bottom) - { - bottomMaterial = bottom; - int bottomID = PatternBuilder.instance.getPartID(bottom); - - if (bottomID != Short.MAX_VALUE) - { - bottomEnum = TConstructRegistry.getMaterial(bottomID); - hasBottom = true; - otherTitle = "\u00A7n"+bottomEnum.name(); - } - else - hasBottom = false; - } - - int offset = 8; - if (hasTop) - { - this.drawCenteredString(fontRenderer, title, xSize + 63, offset, 16777215); - this.fontRenderer.drawString("Base Durability: "+topEnum.durability(), xSize + 8, offset+16, 16777215); - this.fontRenderer.drawString("Handle Modifier: "+topEnum.handleDurability()+"x", xSize + 8, offset+27, 16777215); - this.fontRenderer.drawString("Mining Speed: "+topEnum.toolSpeed()/100f, xSize + 8, offset+38, 16777215); - this.fontRenderer.drawString("Mining Level: "+getHarvestLevelName(topEnum.harvestLevel()), xSize + 8, offset+49, 16777215); - this.fontRenderer.drawString("Base Attack: "+topEnum.attack(), xSize + 8, offset+60, 16777215); - } - - offset = 90; - if (hasBottom) - { - this.drawCenteredString(fontRenderer, otherTitle, xSize + 63, offset, 16777215); - this.fontRenderer.drawString("Base Durability: "+bottomEnum.durability(), xSize + 8, offset+16, 16777215); - this.fontRenderer.drawString("Handle Modifier: "+bottomEnum.handleDurability()+"x", xSize + 8, offset+27, 16777215); - this.fontRenderer.drawString("Mining Speed: "+bottomEnum.toolSpeed()/100f, xSize + 8, offset+38, 16777215); - this.fontRenderer.drawString("Mining Level: "+getHarvestLevelName(bottomEnum.harvestLevel()), xSize + 8, offset+49, 16777215); - this.fontRenderer.drawString("Base Attack: "+bottomEnum.attack(), xSize + 8, offset+60, 16777215); - } - - if (!hasTop && !hasBottom) - drawDefaultInformation(); - } - - public static String getHarvestLevelName (int num) - { - switch (num) - { - case 0: - return "Stone"; - case 1: - return "Iron"; - case 2: - return "Redstone"; - case 3: - return "Obsidian"; - case 4: - return "Cobalt"; - case 5: - return "Manyullyn"; - default: - return String.valueOf(num); - } - } + public PartCrafterGui(InventoryPlayer inventoryplayer, PartCrafterLogic partlogic, World world, int x, int y, int z) + { + super((ActiveContainer) partlogic.getGuiContainer(inventoryplayer, world, x, y, z)); + logic = partlogic; + drawChestPart = container instanceof PartCrafterChestContainer; - protected void drawGuiContainerBackgroundLayer (float par1, int par2, int par3) - { - // Draw the background - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.renderEngine.bindTexture("/mods/tinker/textures/gui/toolparts.png"); - int cornerX = (this.width - this.xSize) / 2; - int cornerY = (this.height - this.ySize) / 2; - this.drawTexturedModalRect(cornerX, cornerY, 0, 0, this.xSize, this.ySize); + title = "\u00A7nTool Part Crafting"; + } - // Draw Slots - this.drawTexturedModalRect(cornerX + 39, cornerY + 26, 0, 166, 98, 36); - if (!logic.isStackInSlot(0)) - { - this.drawTexturedModalRect(cornerX + 39, cornerY + 26, 176, 0, 18, 18); - } - if (!logic.isStackInSlot(2)) - { - this.drawTexturedModalRect(cornerX + 57, cornerY + 26, 176, 18, 18, 18); - } - if (!logic.isStackInSlot(1)) - { - this.drawTexturedModalRect(cornerX + 39, cornerY + 44, 176, 0, 18, 18); - } - if (!logic.isStackInSlot(3)) - { - this.drawTexturedModalRect(cornerX + 57, cornerY + 44, 176, 36, 18, 18); - } - - // Draw chest - if (drawChestPart) - { - //texID = this.mc.renderEngine.getTexture("/mods/tinker/textures/gui/patternchestmini.png"); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - //his.mc.renderEngine.bindTexture(texID); - this.mc.renderEngine.bindTexture("/mods/tinker/textures/gui/patternchestmini.png"); - this.drawTexturedModalRect(cornerX-116, cornerY+11, 0, 0, this.xSize, this.ySize); - } + protected void drawGuiContainerForegroundLayer (int par1, int par2) + { + this.fontRenderer.drawString(StatCollector.translateToLocal("crafters.PartBuilder"), 6, 6, 4210752); + this.fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + if (drawChestPart) + this.fontRenderer.drawString(StatCollector.translateToLocal("inventory.PatternChest"), -108, this.ySize - 148, 4210752); - // Draw description - //texID = this.mc.renderEngine.getTexture("/mods/tinker/textures/gui/description.png"); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - //this.mc.renderEngine.bindTexture(texID); - this.mc.renderEngine.bindTexture("/mods/tinker/textures/gui/description.png"); - cornerX = (this.width + this.xSize) / 2; - cornerY = (this.height - this.ySize) / 2; - this.drawTexturedModalRect(cornerX, cornerY, 126, 0, 126, this.ySize); - } + drawMaterialInformation(); + } + + void drawDefaultInformation () + { + title = "\u00A7nTool Part Building"; + this.drawCenteredString(fontRenderer, title, xSize + 63, 8, 16777215); + fontRenderer.drawSplitString("Place a pattern and a material on the left to get started.", xSize + 8, 24, 115, 16777215); + } + + void drawMaterialInformation () + { + ItemStack top = logic.getStackInSlot(2); + ItemStack bottom = logic.getStackInSlot(3); + if (topMaterial != top) + { + topMaterial = top; + int topID = PatternBuilder.instance.getPartID(top); + + if (topID != Short.MAX_VALUE) + { + topEnum = TConstructRegistry.getMaterial(topID); + hasTop = true; + title = "\u00A7n" + topEnum.name(); + } + else + hasTop = false; + } + + if (bottomMaterial != bottom) + { + bottomMaterial = bottom; + int bottomID = PatternBuilder.instance.getPartID(bottom); + + if (bottomID != Short.MAX_VALUE) + { + bottomEnum = TConstructRegistry.getMaterial(bottomID); + hasBottom = true; + otherTitle = "\u00A7n" + bottomEnum.name(); + } + else + hasBottom = false; + } + + int offset = 8; + if (hasTop) + { + this.drawCenteredString(fontRenderer, title, xSize + 63, offset, 16777215); + this.fontRenderer.drawString("Base Durability: " + topEnum.durability(), xSize + 8, offset + 16, 16777215); + this.fontRenderer.drawString("Handle Modifier: " + topEnum.handleDurability() + "x", xSize + 8, offset + 27, 16777215); + this.fontRenderer.drawString("Mining Speed: " + topEnum.toolSpeed() / 100f, xSize + 8, offset + 38, 16777215); + this.fontRenderer.drawString("Mining Level: " + getHarvestLevelName(topEnum.harvestLevel()), xSize + 8, offset + 49, 16777215); + this.fontRenderer.drawString("Base Attack: " + topEnum.attack(), xSize + 8, offset + 60, 16777215); + } + + offset = 90; + if (hasBottom) + { + this.drawCenteredString(fontRenderer, otherTitle, xSize + 63, offset, 16777215); + this.fontRenderer.drawString("Base Durability: " + bottomEnum.durability(), xSize + 8, offset + 16, 16777215); + this.fontRenderer.drawString("Handle Modifier: " + bottomEnum.handleDurability() + "x", xSize + 8, offset + 27, 16777215); + this.fontRenderer.drawString("Mining Speed: " + bottomEnum.toolSpeed() / 100f, xSize + 8, offset + 38, 16777215); + this.fontRenderer.drawString("Mining Level: " + getHarvestLevelName(bottomEnum.harvestLevel()), xSize + 8, offset + 49, 16777215); + this.fontRenderer.drawString("Base Attack: " + bottomEnum.attack(), xSize + 8, offset + 60, 16777215); + } + + if (!hasTop && !hasBottom) + drawDefaultInformation(); + } + + public static String getHarvestLevelName (int num) + { + switch (num) + { + case 0: + return "Stone"; + case 1: + return "Iron"; + case 2: + return "Redstone"; + case 3: + return "Obsidian"; + case 4: + return "Cobalt"; + case 5: + return "Manyullyn"; + default: + return String.valueOf(num); + } + } + + protected void drawGuiContainerBackgroundLayer (float par1, int par2, int par3) + { + // Draw the background + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.renderEngine.bindTexture("/mods/tinker/textures/gui/toolparts.png"); + int cornerX = (this.width - this.xSize) / 2; + int cornerY = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(cornerX, cornerY, 0, 0, this.xSize, this.ySize); + + // Draw Slots + this.drawTexturedModalRect(cornerX + 39, cornerY + 26, 0, 166, 98, 36); + if (!logic.isStackInSlot(0)) + { + this.drawTexturedModalRect(cornerX + 39, cornerY + 26, 176, 0, 18, 18); + } + if (!logic.isStackInSlot(2)) + { + this.drawTexturedModalRect(cornerX + 57, cornerY + 26, 176, 18, 18, 18); + } + if (!logic.isStackInSlot(1)) + { + this.drawTexturedModalRect(cornerX + 39, cornerY + 44, 176, 0, 18, 18); + } + if (!logic.isStackInSlot(3)) + { + this.drawTexturedModalRect(cornerX + 57, cornerY + 44, 176, 36, 18, 18); + } + + // Draw chest + if (drawChestPart) + { + //texID = this.mc.renderEngine.getTexture("/mods/tinker/textures/gui/patternchestmini.png"); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + //his.mc.renderEngine.bindTexture(texID); + this.mc.renderEngine.bindTexture("/mods/tinker/textures/gui/patternchestmini.png"); + this.drawTexturedModalRect(cornerX - 116, cornerY + 11, 0, 0, this.xSize, this.ySize); + } + + // Draw description + //texID = this.mc.renderEngine.getTexture("/mods/tinker/textures/gui/description.png"); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + //this.mc.renderEngine.bindTexture(texID); + this.mc.renderEngine.bindTexture("/mods/tinker/textures/gui/description.png"); + cornerX = (this.width + this.xSize) / 2; + cornerY = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(cornerX, cornerY, 126, 0, 126, this.ySize); + } + + @Override + protected void mouseClicked (int mouseX, int mouseY, int clickNum) + { + boolean flag = clickNum == this.mc.gameSettings.keyBindPickBlock.keyCode + 100; + Slot slot = this.getSlotAtPosition(mouseX, mouseY); + long l = Minecraft.getSystemTime(); + this.field_94074_J = this.field_94072_H == slot && l - this.field_94070_G < 250L && this.field_94073_I == clickNum; + this.field_94068_E = false; + + int offsetLeft = drawChestPart ? 108 : 0; + + if (clickNum == 0 || clickNum == 1 || flag) + { + int i1 = this.guiLeft; + int j1 = this.guiTop; + boolean flag1 = mouseX < i1 - offsetLeft || mouseY < j1 || mouseX >= i1 + this.xSize || mouseY >= j1 + this.ySize; + int k1 = -1; + + if (slot != null) + { + k1 = slot.slotNumber; + } + + if (flag1) + { + k1 = -999; + } + + if (this.mc.gameSettings.touchscreen && flag1 && this.mc.thePlayer.inventory.getItemStack() == null) + { + this.mc.displayGuiScreen((GuiScreen) null); + return; + } + + if (k1 != -1) + { + if (this.mc.gameSettings.touchscreen) + { + if (slot != null && slot.getHasStack()) + { + this.clickedSlot = slot; + this.draggedStack = null; + this.isRightMouseClick = clickNum == 1; + } + else + { + this.clickedSlot = null; + } + } + else if (!this.field_94076_q) + { + if (this.mc.thePlayer.inventory.getItemStack() == null) + { + if (clickNum == this.mc.gameSettings.keyBindPickBlock.keyCode + 100) + { + this.handleMouseClick(slot, k1, clickNum, 3); + } + else + { + boolean flag2 = k1 != -999 && (Keyboard.isKeyDown(42) || Keyboard.isKeyDown(54)); + byte b0 = 0; + + if (flag2) + { + this.field_94075_K = slot != null && slot.getHasStack() ? slot.getStack() : null; + b0 = 1; + } + else if (k1 == -999) + { + b0 = 4; + } + + this.handleMouseClick(slot, k1, clickNum, b0); + } + + this.field_94068_E = true; + } + else + { + this.field_94076_q = true; + this.field_94067_D = clickNum; + this.field_94077_p.clear(); + + if (clickNum == 0) + { + this.field_94071_C = 0; + } + else if (clickNum == 1) + { + this.field_94071_C = 1; + } + } + } + } + } + + this.field_94072_H = slot; + this.field_94070_G = l; + this.field_94073_I = clickNum; + } } diff --git a/mods/tinker/tconstruct/client/gui/SmelteryGui.java b/mods/tinker/tconstruct/client/gui/SmelteryGui.java index 91746a0..1689af8 100644 --- a/mods/tinker/tconstruct/client/gui/SmelteryGui.java +++ b/mods/tinker/tconstruct/client/gui/SmelteryGui.java @@ -11,6 +11,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.Item; @@ -39,21 +40,9 @@ public class SmelteryGui extends NewContainerGui int slotPos = 0; int prevSlotPos = 0; - /*private Slot theSlot; - private Slot clickedSlot = null; - private ItemStack draggedStack = null; - private boolean isRightMouseClick = false; - private int field_94069_F; - private long returningStackTime = 0L; - private ItemStack returningStack = null; - private Slot returningStackDestSlot = null; - private int field_85049_r = 0; - private int field_85048_s = 0;*/ - public SmelteryGui(InventoryPlayer inventoryplayer, SmelteryLogic smeltery, World world, int x, int y, int z) { super((ActiveContainer) smeltery.getGuiContainer(inventoryplayer, world, x, y, z)); - //container = (SmelteryContainer) inventorySlots; logic = smeltery; username = inventoryplayer.player.username; xSize = 248; @@ -224,8 +213,19 @@ public class SmelteryGui extends NewContainerGui } } - //fontRenderer.drawString("Time: "+logic.useTime, 140, 2, 0xFFFFFF); + //fontRenderer.drawString("slotPos: "+slotPos, 140, 2, 0xFFFFFF); /*fontRenderer.drawString("Scrolling: "+isScrolling, 140, 12, 0xFFFFFF); fontRenderer.drawString("Scroll: "+currentScroll, 140, 22, 0xFFFFFF);*/ } + + public void drawLiquidRect(int par1, int par2, Icon par3Icon, int par4, int par5) + { + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV((double)(par1 + 0), (double)(par2 + par5), (double)this.zLevel, (double)par3Icon.getMinU(), (double)par3Icon.getMaxV()); + tessellator.addVertexWithUV((double)(par1 + par4), (double)(par2 + par5), (double)this.zLevel, (double)par3Icon.getMaxU(), (double)par3Icon.getMaxV()); + tessellator.addVertexWithUV((double)(par1 + par4), (double)(par2 + 0), (double)this.zLevel, (double)par3Icon.getMaxU(), (double)par3Icon.getMinV()); + tessellator.addVertexWithUV((double)(par1 + 0), (double)(par2 + 0), (double)this.zLevel, (double)par3Icon.getMinU(), (double)par3Icon.getMinV()); + tessellator.draw(); + } } diff --git a/mods/tinker/tconstruct/container/PartCrafterChestContainer.java b/mods/tinker/tconstruct/container/PartCrafterChestContainer.java index e68a20c..011c62a 100644 --- a/mods/tinker/tconstruct/container/PartCrafterChestContainer.java +++ b/mods/tinker/tconstruct/container/PartCrafterChestContainer.java @@ -1,14 +1,14 @@ package mods.tinker.tconstruct.container; +import mods.tinker.common.IPattern; import mods.tinker.tconstruct.logic.PartCrafterLogic; import mods.tinker.tconstruct.logic.PatternChestLogic; 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 PartCrafterChestContainer extends Container +public class PartCrafterChestContainer extends ActiveContainer { protected PatternChestLogic patternLogic; protected InventoryPlayer invPlayer; @@ -77,9 +77,15 @@ public class PartCrafterChestContainer extends Container return null; } } - else if (!this.mergeItemStack(slotStack, 2, 4, false)) + else { - return null; + if (slotStack.getItem() instanceof IPattern) + { + if (!this.mergeItemStack(slotStack, 0, 2, false) && ! this.mergeItemStack(slotStack, 8, 38, false)) + return null; + } + else if (!this.mergeItemStack(slotStack, 2, 4, false)) + return null; } if (slotStack.stackSize == 0) diff --git a/mods/tinker/tconstruct/container/PartCrafterContainer.java b/mods/tinker/tconstruct/container/PartCrafterContainer.java index 67d9c5e..bf410ce 100644 --- a/mods/tinker/tconstruct/container/PartCrafterContainer.java +++ b/mods/tinker/tconstruct/container/PartCrafterContainer.java @@ -1,5 +1,6 @@ package mods.tinker.tconstruct.container; +import mods.tinker.common.IPattern; import mods.tinker.tconstruct.logic.PartCrafterLogic; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -7,7 +8,7 @@ import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -public class PartCrafterContainer extends Container +public class PartCrafterContainer extends ActiveContainer { protected InventoryPlayer invPlayer; protected PartCrafterLogic logic; @@ -66,9 +67,15 @@ public class PartCrafterContainer extends Container return null; } } - else if (!this.mergeItemStack(slotStack, 2, 4, false)) + else { - return null; + if (slotStack.getItem() instanceof IPattern) + { + if (!this.mergeItemStack(slotStack, 0, 2, false)) + return null; + } + else if (!this.mergeItemStack(slotStack, 2, 4, false)) + return null; } if (slotStack.stackSize == 0) diff --git a/mods/tinker/tconstruct/container/SmelteryContainer.java b/mods/tinker/tconstruct/container/SmelteryContainer.java index 984a175..9819578 100644 --- a/mods/tinker/tconstruct/container/SmelteryContainer.java +++ b/mods/tinker/tconstruct/container/SmelteryContainer.java @@ -71,6 +71,7 @@ public class SmelteryContainer extends ActiveContainer slot.xDisplayPosition = 2 + 22 * xPos; slot.yDisplayPosition = 8 + 18 * yPos; } + return slotRow; } return -1; } @@ -181,8 +182,9 @@ public class SmelteryContainer extends ActiveContainer Slot slot; ItemStack slotStack; - if (inputStack.isStackable()) + /*if (inputStack.isStackable() && startSlot >= logic.getSizeInventory()) { + System.out.println("Rawr!"); while (inputStack.stackSize > 0 && (!flag && slotPos < endSlot || flag && slotPos >= startSlot)) { slot = (Slot) this.inventorySlots.get(slotPos); @@ -208,6 +210,44 @@ public class SmelteryContainer extends ActiveContainer } } + if (flag) + { + --slotPos; + } + else + { + ++slotPos; + } + } + }*/ + + if (inputStack.isStackable() && startSlot >= logic.getSizeInventory()) + { + while (inputStack.stackSize > 0 && (!flag && slotPos < endSlot || flag && slotPos >= startSlot)) + { + slot = (Slot)this.inventorySlots.get(slotPos); + slotStack = slot.getStack(); + + if (slotStack != null && slotStack.itemID == inputStack.itemID && (!inputStack.getHasSubtypes() || inputStack.getItemDamage() == slotStack.getItemDamage()) && ItemStack.areItemStackTagsEqual(inputStack, slotStack)) + { + int l = slotStack.stackSize + inputStack.stackSize; + + if (l <= inputStack.getMaxStackSize()) + { + inputStack.stackSize = 0; + slotStack.stackSize = l; + slot.onSlotChanged(); + merged = true; + } + else if (slotStack.stackSize < inputStack.getMaxStackSize()) + { + inputStack.stackSize -= inputStack.getMaxStackSize() - slotStack.stackSize; + slotStack.stackSize = inputStack.getMaxStackSize(); + slot.onSlotChanged(); + merged = true; + } + } + if (flag) { --slotPos; diff --git a/mods/tinker/tconstruct/entity/Skyla.java b/mods/tinker/tconstruct/entity/Skyla.java index 8fca2e1..7a12c1f 100644 --- a/mods/tinker/tconstruct/entity/Skyla.java +++ b/mods/tinker/tconstruct/entity/Skyla.java @@ -1,20 +1,20 @@ package mods.tinker.tconstruct.entity; -import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; -public class Skyla extends EntityPlayer +public class Skyla extends EntityCreeper { public Skyla(World par1World) { super(par1World); - username = "Skyla"; - texture = "/tinkertextures/mob/skyla.png"; + //username = "Skyla"; + texture = "/mods/tinker/textures/mob/skyla.png"; } - @Override + /*@Override public void sendChatToPlayer (String var1) {} @Override @@ -27,6 +27,6 @@ public class Skyla extends EntityPlayer public ChunkCoordinates getPlayerCoordinates () { return null; - } + }*/ } diff --git a/mods/tinker/tconstruct/library/ToolCore.java b/mods/tinker/tconstruct/library/ToolCore.java index 2f2d6d5..836a003 100644 --- a/mods/tinker/tconstruct/library/ToolCore.java +++ b/mods/tinker/tconstruct/library/ToolCore.java @@ -189,10 +189,11 @@ public abstract class ToolCore extends Item implements ICustomElectricItem, IBox @Override public Icon getIcon (ItemStack stack, int renderPass) { - NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); + NBTTagCompound tags = stack.getTagCompound(); if (tags != null) { + tags = stack.getTagCompound().getCompoundTag("InfiTool"); if (renderPass < getPartAmount()) { if (renderPass == 0) // Handle diff --git a/mods/tinker/tconstruct/logic/ToolStationLogic.java b/mods/tinker/tconstruct/logic/ToolStationLogic.java index a52b660..e746642 100644 --- a/mods/tinker/tconstruct/logic/ToolStationLogic.java +++ b/mods/tinker/tconstruct/logic/ToolStationLogic.java @@ -22,6 +22,13 @@ public class ToolStationLogic extends InventoryLogic super(5); toolName = ""; } + + public boolean canDropInventorySlot(int slot) + { + if (slot == 0) + return false; + return true; + } @Override public ItemStack getStackInSlotOnClosing (int var1) diff --git a/mods/tinker/textures/gui/newhearts.png b/mods/tinker/textures/gui/newhearts.png new file mode 100644 index 0000000..6239a2d Binary files /dev/null and b/mods/tinker/textures/gui/newhearts.png differ diff --git a/test/XinStick.java b/test/XinStick.java index 982981e..e53c00c 100644 --- a/test/XinStick.java +++ b/test/XinStick.java @@ -1,7 +1,6 @@ package test; import mods.tinker.tconstruct.entity.BlueSlime; -import mods.tinker.tconstruct.entity.NitroCreeper; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; @@ -9,6 +8,7 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.Icon; import net.minecraft.world.World; /* @@ -23,34 +23,31 @@ public class XinStick extends Item super(id); setCreativeTab(CreativeTabs.tabMisc); } + + public Icon getIconFromDamage(int par1) + { + return Item.arrow.getIconFromDamage(par1); + } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - //spawnItem(player.posX, player.posY, player.posZ, tool, world); - //CartEntity cart = new CartEntity(world, 1); - //cart.cartType = 1; - spawnEntity(player.posX, player.posY+1, player.posZ, new NitroCreeper(world), world, player); + spawnEntity(player.posX, player.posY+1, player.posZ, new BlueSlime(world), world, player); + System.out.println("Health! "+player.getHealth()); + //healPlayer(player); return stack; } - - /*public boolean onItemUse (ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + + public static void healPlayer(EntityPlayer player) { - if (!par3World.isRemote) - { - par3World.spawnEntityInWorld(new CartEntity(par3World, (double) ((float) par4 + 0.5F), (double) ((float) par5 + 1.5F), (double) ((float) par6 + 0.5F), 0)); - } - - //--par1ItemStack.stackSize; - return true; - }*/ + player.setEntityHealth(200); + } public static void spawnItem (double x, double y, double z, ItemStack stack, World world) { if (!world.isRemote) { EntityItem entityitem = new EntityItem(world, x + 0.5D, y + 0.5D, z + 0.5D, stack); - //entityitem.delayBeforeCanPickup = 10; world.spawnEntityInWorld(entityitem); } }