From 0ddf7ae8b5def6741250a85e1dccdf18c588f4dc Mon Sep 17 00:00:00 2001 From: mDiyo Date: Thu, 24 Jan 2013 23:54:11 -0800 Subject: [PATCH] 1.0.3 --- resources/tinkertextures/gui/description.png | Bin 6821 -> 6833 bytes resources/tinkertextures/materials.png | Bin 67608 -> 67104 bytes tinker/common/InventoryBlock.java | 2 +- tinker/common/InventoryLogic.java | 5 + tinker/tconstruct/AbilityHelper.java | 262 +++++++++++++++--- tinker/tconstruct/TConstruct.java | 24 +- tinker/tconstruct/TConstructContent.java | 7 +- .../client/gui/FrypanContainer.java | 5 +- .../client/gui/PartCrafterChestContainer.java | 48 +++- .../client/gui/PartCrafterContainer.java | 40 ++- .../tconstruct/client/gui/PartCrafterGui.java | 6 +- .../client/gui/PatternChestContainer.java | 13 +- .../client/gui/ToolStationContainer.java | 91 +++++- .../tconstruct/client/gui/ToolStationGui.java | 3 +- tinker/tconstruct/crafting/ToolBuilder.java | 2 +- tinker/tconstruct/logic/FrypanLogic.java | 9 + tinker/tconstruct/logic/PartCrafterLogic.java | 12 +- .../tconstruct/logic/PatternShaperLogic.java | 29 ++ tinker/tconstruct/tools/FryingPan.java | 2 +- tinker/tconstruct/tools/Longsword.java | 13 +- tinker/tconstruct/tools/Rapier.java | 12 +- tinker/tconstruct/tools/ToolCore.java | 30 +- 22 files changed, 524 insertions(+), 91 deletions(-) diff --git a/resources/tinkertextures/gui/description.png b/resources/tinkertextures/gui/description.png index 26f5cfdac52277d0ebdb7b0a9fba4987d4de7fe5..81f654afcb17243d8645d26eb796c4a21282589b 100644 GIT binary patch literal 6833 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 Rk#xBP+||^Fm#ZT}{|mD-lP~}P literal 6821 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 diff --git a/resources/tinkertextures/materials.png b/resources/tinkertextures/materials.png index 34de8509a8b3bda11b5fedeed702532d24257928..a309fe0c2c8e7ca4fdd1659e78053545a891d2e0 100644 GIT binary patch delta 47651 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 apf^z;S>P`(ZV3hm`jeGZ`cf@!9P~eN(?G-k delta 48159 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

    %xPLxrex=Gi)CpMJj}d%*xWA-MXHTwFf0Ka`_mj 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 T^xG&9{GlwbAy*?~5&r)Gk@3H0 diff --git a/tinker/common/InventoryBlock.java b/tinker/common/InventoryBlock.java index cbb4a4c..5511d09 100644 --- a/tinker/common/InventoryBlock.java +++ b/tinker/common/InventoryBlock.java @@ -57,7 +57,7 @@ public abstract class InventoryBlock extends BlockContainer { ItemStack stack = logic.getStackInSlot(iter); - if (stack != null) + if (stack != null && logic.canDropInventorySlot(iter)) { float jumpX = TConstruct.tRand.nextFloat() * 0.8F + 0.1F; float jumpY = TConstruct.tRand.nextFloat() * 0.8F + 0.1F; diff --git a/tinker/common/InventoryLogic.java b/tinker/common/InventoryLogic.java index 60722c7..b6c51f5 100644 --- a/tinker/common/InventoryLogic.java +++ b/tinker/common/InventoryLogic.java @@ -50,6 +50,11 @@ public abstract class InventoryLogic extends TileEntity return 64; } + public boolean canDropInventorySlot(int slot) + { + return true; + } + @Override public void setInventorySlotContents(int slot, ItemStack itemstack) { diff --git a/tinker/tconstruct/AbilityHelper.java b/tinker/tconstruct/AbilityHelper.java index 8163249..fead24b 100644 --- a/tinker/tconstruct/AbilityHelper.java +++ b/tinker/tconstruct/AbilityHelper.java @@ -4,17 +4,29 @@ import ic2.api.ElectricItem; import ic2.api.ICustomElectricItem; import ic2.api.IElectricItem; +import java.util.Iterator; +import java.util.List; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.enchantment.EnchantmentThorns; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.entity.monster.EntityGhast; +import net.minecraft.entity.passive.EntityWolf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.stats.AchievementList; +import net.minecraft.stats.StatList; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.EnumMovingObjectType; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.Event.Result; @@ -25,8 +37,9 @@ import cpw.mods.fml.client.FMLClientHandler; public class AbilityHelper { static Minecraft mc; + static Random random = new Random(); - /* Blocks */ + /* Normal interactions */ public static boolean onBlockChanged (ItemStack stack, World world, int bID, int x, int y, int z, EntityLiving player, Random random) { if (!stack.hasTagCompound()) @@ -46,6 +59,216 @@ public class AbilityHelper return true; } + /*public static void hitEntity (ItemStack stack, EntityLiving mob, EntityLiving player) + { + hitEntity(stack, mob, player, 1f); + } + + public static void hitEntity (ItemStack stack, EntityLiving mob, EntityLiving player, float bonusDamage) + { + NBTTagCompound tags = stack.getTagCompound(); + if (!tags.getCompoundTag("InfiTool").getBoolean("Broken")) + { + int durability = tags.getCompoundTag("InfiTool").getInteger("Damage"); + + float shoddy = tags.getCompoundTag("InfiTool").getFloat("Shoddy"); + float damageModifier = -shoddy * durability / 100f; + + int attack = (int) ((tags.getCompoundTag("InfiTool").getInteger("Attack") + damageModifier) * bonusDamage); + + if (player instanceof EntityPlayer) + if (mob.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) player), attack)) + { + damageTool(stack, 1, tags, player, false); + if (tags.getCompoundTag("InfiTool").getBoolean("Necrotic")) + player.heal(1); + } + else + mob.attackEntityFrom(DamageSource.causeMobDamage(player), attack); + + if (tags.getCompoundTag("InfiTool").hasKey("Fiery")) + { + mob.setFire(tags.getCompoundTag("InfiTool").getInteger("Fiery")/5+1); + } + } + }*/ + + public static void onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity, ToolCore tool) + { + if (entity.canAttackWithItem()) + { + if (!entity.func_85031_j(player)) // can't attack this entity + { + NBTTagCompound tags = stack.getTagCompound(); + NBTTagCompound toolTags = stack.getTagCompound().getCompoundTag("InfiTool"); + int damage = toolTags.getInteger("Attack"); + boolean broken = toolTags.getBoolean("Broken"); + + int durability = tags.getCompoundTag("InfiTool").getInteger("Damage"); + float shoddy = tags.getCompoundTag("InfiTool").getFloat("Shoddy"); + float damageModifier = -shoddy * durability / 100f; + + if (player.isPotionActive(Potion.damageBoost)) + { + damage += 3 << player.getActivePotionEffect(Potion.damageBoost).getAmplifier(); + } + + if (player.isPotionActive(Potion.weakness)) + { + damage -= 2 << player.getActivePotionEffect(Potion.weakness).getAmplifier(); + } + + float knockback = 0; + int enchantDamage = 0; + + if (entity instanceof EntityLiving) + { + enchantDamage = EnchantmentHelper.getEnchantmentModifierLiving(player, (EntityLiving)entity); + knockback += EnchantmentHelper.getKnockbackModifier(player, (EntityLiving)entity); + } + + damage += damageModifier; + + if (player.isSprinting()) + { + knockback++; + float lunge = tool.chargeAttack(); + if (lunge > 1f) + { + knockback += lunge - 1.0f; + damage *= lunge; + } + } + + if (damage > 0 || enchantDamage > 0) + { + boolean criticalHit = player.fallDistance > 0.0F && !player.onGround && !player.isOnLadder() && !player.isInWater() && !player.isPotionActive(Potion.blindness) && player.ridingEntity == null && entity instanceof EntityLiving; + + if (criticalHit) + { + damage += random.nextInt(damage / 2 + 2); + } + + damage += enchantDamage; + boolean var6 = false; + int fireAspect = EnchantmentHelper.getFireAspectModifier(player); + + if (entity instanceof EntityLiving && fireAspect > 0 && !entity.isBurning()) + { + var6 = true; + entity.setFire(1); + } + + if (broken) + damage = 1; + boolean causedDamage = false; + if (tool.pierceArmor()) + causedDamage = entity.attackEntityFrom(causePlayerPiercingDamage(player), damage); + else + causedDamage = entity.attackEntityFrom(DamageSource.causePlayerDamage(player), damage); + + if (causedDamage) + { + damageTool(stack, 1, player, false); + int drain = toolTags.getInteger("Necrotic"); + if (drain > 0) + player.heal(drain); + + if (knockback > 0) + { + entity.addVelocity((double)(-MathHelper.sin(player.rotationYaw * (float)Math.PI / 180.0F) * (float)knockback * 0.5F), 0.1D, (double)(MathHelper.cos(player.rotationYaw * (float)Math.PI / 180.0F) * (float)knockback * 0.5F)); + player.motionX *= 0.6D; + player.motionZ *= 0.6D; + player.setSprinting(false); + } + + if (criticalHit) + { + player.onCriticalHit(entity); + } + + if (enchantDamage > 0) + { + player.onEnchantmentCritical(entity); + } + + if (damage >= 18) + { + player.triggerAchievement(AchievementList.overkill); + } + + player.setLastAttackingEntity(entity); + + if (entity instanceof EntityLiving) + { + EnchantmentThorns.func_92044_a(player, (EntityLiving)entity, random); + } + } + + if (entity instanceof EntityLiving) + { + stack.hitEntity((EntityLiving)entity, player); + if (entity.isEntityAlive()) + { + alertPlayerWolves(player, (EntityLiving)entity, true); + } + + player.addStat(StatList.damageDealtStat, damage); + + if (fireAspect > 0 && causedDamage) + { + fireAspect *= 4; + if (toolTags.hasKey("Fiery")) + { + fireAspect += toolTags.getInteger("Fiery")/5+1; + } + entity.setFire(fireAspect); + } + else if (var6) + { + entity.extinguish(); + } + } + + player.addExhaustion(0.3F); + } + } + } + } + + static void alertPlayerWolves(EntityPlayer player, EntityLiving living, boolean par2) + { + if (!(living instanceof EntityCreeper) && !(living instanceof EntityGhast)) + { + if (living instanceof EntityWolf) + { + EntityWolf var3 = (EntityWolf)living; + + if (var3.isTamed() && player.username.equals(var3.getOwnerName())) + { + return; + } + } + + if (!(living instanceof EntityPlayer))// || player.isPVPEnabled()) //TODO: Find an alterntive for this + { + List var6 = player.worldObj.getEntitiesWithinAABB(EntityWolf.class, AxisAlignedBB.getAABBPool().addOrModifyAABBInPool(player.posX, player.posY, player.posZ, player.posX + 1.0D, player.posY + 1.0D, player.posZ + 1.0D).expand(16.0D, 4.0D, 16.0D)); + Iterator var4 = var6.iterator(); + + while (var4.hasNext()) + { + EntityWolf var5 = (EntityWolf)var4.next(); + + if (var5.isTamed() && var5.getEntityToAttack() == null && player.username.equals(var5.getOwnerName()) && (!par2 || !var5.isSitting())) + { + var5.setSitting(false); + var5.setTarget(living); + } + } + } + } + } + /* Tool specific */ public static void damageTool (ItemStack stack, int dam, EntityLiving entity, boolean ignoreCharge) { @@ -220,41 +443,8 @@ public class AbilityHelper } /* Entities */ - - public static void hitEntity (ItemStack stack, EntityLiving mob, EntityLiving player) - { - hitEntity(stack, mob, player, 1f); - } - - public static void hitEntity (ItemStack stack, EntityLiving mob, EntityLiving player, float bonusDamage) - { - NBTTagCompound tags = stack.getTagCompound(); - if (!tags.getCompoundTag("InfiTool").getBoolean("Broken")) - { - int durability = tags.getCompoundTag("InfiTool").getInteger("Damage"); - - float shoddy = tags.getCompoundTag("InfiTool").getFloat("Shoddy"); - float damageModifier = -shoddy * durability / 100f; - - int attack = (int) ((tags.getCompoundTag("InfiTool").getInteger("Attack") + damageModifier) * bonusDamage); - - if (player instanceof EntityPlayer) - if (mob.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) player), attack)) - { - damageTool(stack, 1, tags, player, false); - if (tags.getCompoundTag("InfiTool").getBoolean("Necrotic")) - player.heal(1); - } - else - mob.attackEntityFrom(DamageSource.causeMobDamage(player), attack); - - if (tags.getCompoundTag("InfiTool").hasKey("Fiery")) - { - System.out.println("Fiery: "+tags.getInteger("Fiery")); - mob.setFire(tags.getCompoundTag("InfiTool").getInteger("Fiery")/5+1); - } - } - } + + public static DamageSource causePiercingDamage (EntityLiving mob) { diff --git a/tinker/tconstruct/TConstruct.java b/tinker/tconstruct/TConstruct.java index 7162e06..094e39d 100644 --- a/tinker/tconstruct/TConstruct.java +++ b/tinker/tconstruct/TConstruct.java @@ -1,20 +1,23 @@ package tinker.tconstruct; import java.util.ArrayList; -import java.util.List; import java.util.Random; +import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.ForgeSubscribe; +import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary.OreRegisterEvent; import tinker.tconstruct.client.gui.ToolGuiElement; import tinker.tconstruct.crafting.PatternBuilder; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.Init; import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.Mod.PostInit; import cpw.mods.fml.common.Mod.PreInit; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkRegistry; @@ -24,7 +27,7 @@ import cpw.mods.fml.common.network.NetworkRegistry; * @author: mDiyo */ -@Mod(modid = "TConstruct", name = "TConstruct", version = "Beta 3") +@Mod(modid = "TConstruct", name = "TConstruct", version = "mc1.4.7_1.0.3") @NetworkMod(serverSideRequired = false, clientSideRequired = true, channels={"TConstruct"}, packetHandler = tinker.tconstruct.TConstructPacketHandler.class) public class TConstruct { @@ -59,10 +62,21 @@ public class TConstruct //GameRegistry.registerWorldGenerator(new TBaseWorldGenerator()); } + @PostInit + public void postInit(FMLPostInitializationEvent evt) + { + ArrayList copperIngots = OreDictionary.getOres("ingotCopper"); + for (ItemStack copper : copperIngots) + PatternBuilder.instance.registerMaterial(copper, 2, "copper"); + + ArrayList bronzeIngots = OreDictionary.getOres("ingotBronze"); + for (ItemStack bronze : bronzeIngots) + PatternBuilder.instance.registerMaterial(bronze, 2, "bronze"); + } + @ForgeSubscribe public void registerOre(OreRegisterEvent evt) { - System.out.println("Ore event: "+evt.Name); if (evt.Name == "battery") content.modE.batteries.add(evt.Ore); @@ -130,8 +144,8 @@ public class TConstruct //"The Ice Axe is a tool for harvesting ice, mining, and attacking foes.\n\nSpecial Ability:\n- Wall Climb\nNatural Ability:\n- Ice Harvest\nDamage: Moderate\n\nRequired parts:\n- Pickaxe Head\n- Spike\n- Handle", "The Cutter Mattock is a versatile farming tool. It is effective on wood, dirt, and plants.\n\nSpecial Ability: Hoe\n\nRequired parts:\n- Axe Head\n- Shovel Head\n- Handle", "The Broadsword is a defensive weapon. Blocking cuts damage in half.\n\nSpecial Ability: Block\nDamage: Moderate\nDurability: High\n\nRequired parts:\n- Sword Blade\n- Wide Guard\n- Handle", - "The Longsword is a balanced weapon. It is useful for knocking enemies away or getting in and out of battle quickly.\n\nSpecial Ability: Lunge\nDamage: Moderate\nDurability: Moderate\n\nRequired parts:\n- Sword Blade\n- Hand Guard\n- Handle", - "The Rapier is an offensive weapon that relies on quick strikes to defeat foes.\n\nNatural Abilities:\n- Armor Pierce\n- Quick Strike\nDamage: High\nDurability: Low\n\nRequired parts:\n- Sword Blade\n- Crossbar\n- Handle", + "The Longsword is a balanced weapon. It is useful for knocking enemies away or getting in and out of battle quickly.\n\nNatural Ability:\n- Charge Boost\nDamage: Moderate\nDurability: Moderate\n\nRequired parts:\n- Sword Blade\n- Hand Guard\n- Handle", + "The Rapier is an offensive weapon that relies on quick strikes to defeat foes.\n\nNatural Abilities:\n- Armor Pierce\n- Quick Strike\n- Charge Boost\nDamage: High\nDurability: Low\n\nRequired parts:\n- Sword Blade\n- Crossbar\n- Handle", "The Frying is a heavy weapon that uses sheer weight to stun foes.\n\nSpecial Ability: Block\nNatural Ability: Bash\nShift+rClick: Place Frying Pan\nDamage: High\nDurability: High\n\nRequired parts:\n- Pan\n- Handle", //"The Battlesign is an advance in weapon technology worthy of Zombie Pigmen everywhere.\n\nSpecial Ability: Block\nShift-rClick: Place sign\nDamage: Low\nDurability: Average\n\nRequired parts:\n- Board\n- Handle" "The Battlesign is an advance in weapon technology worthy of Zombie Pigmen everywhere.\n\nSpecial Ability: Block\nDamage: Low\nDurability: Average\n\nRequired parts:\n- Sign Board\n- Handle" diff --git a/tinker/tconstruct/TConstructContent.java b/tinker/tconstruct/TConstructContent.java index a140586..a827088 100644 --- a/tinker/tconstruct/TConstructContent.java +++ b/tinker/tconstruct/TConstructContent.java @@ -186,7 +186,7 @@ public class TConstructContent pb.registerFullMaterial(Item.ingotIron, 2, "iron", 2); pb.registerFullMaterial(Item.flint, 2, "flint", 3); pb.registerFullMaterial(Block.cactus, 2, "cactus", 4); - pb.registerFullMaterial(Item.bone, 2, "bone", new ItemStack(Item.dyePowder, 1, 0), new ItemStack(Item.bone), 5); + pb.registerFullMaterial(Item.bone, 2, "bone", new ItemStack(Item.dyePowder, 1, 15), new ItemStack(Item.bone), 5); pb.registerFullMaterial(Block.obsidian, 2, "obsidian", 6); pb.registerFullMaterial(Block.netherrack, 2, "netherrack", 7); pb.registerFullMaterial(new ItemStack(materials, 1, 1), 2, "slime", new ItemStack(toolShard, 1, 8), new ItemStack(toolRod, 1, 8), 8); @@ -239,7 +239,10 @@ public class TConstructContent ItemStack reBattery = ic2.api.Items.getItem("reBattery"); if (reBattery != null) - modE.batteries.add(new ItemStack(reBattery.getItem(), 1, -1)); + modE.batteries.add(reBattery); + ItemStack chargedReBattery = ic2.api.Items.getItem("chargedReBattery"); + if (chargedReBattery != null) + modE.batteries.add(new ItemStack(chargedReBattery.getItem(), 1, -1)); ItemStack electronicCircuit = ic2.api.Items.getItem("electronicCircuit"); if (electronicCircuit != null) modE.circuits.add(electronicCircuit); diff --git a/tinker/tconstruct/client/gui/FrypanContainer.java b/tinker/tconstruct/client/gui/FrypanContainer.java index 7502507..3f1476b 100644 --- a/tinker/tconstruct/client/gui/FrypanContainer.java +++ b/tinker/tconstruct/client/gui/FrypanContainer.java @@ -1,15 +1,12 @@ package tinker.tconstruct.client.gui; -import tinker.tconstruct.logic.FrypanLogic; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; -import net.minecraft.inventory.SlotFurnace; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.tileentity.TileEntityFurnace; +import tinker.tconstruct.logic.FrypanLogic; public class FrypanContainer extends Container { diff --git a/tinker/tconstruct/client/gui/PartCrafterChestContainer.java b/tinker/tconstruct/client/gui/PartCrafterChestContainer.java index 051a84c..80730dc 100644 --- a/tinker/tconstruct/client/gui/PartCrafterChestContainer.java +++ b/tinker/tconstruct/client/gui/PartCrafterChestContainer.java @@ -1,12 +1,12 @@ package tinker.tconstruct.client.gui; -import tinker.tconstruct.logic.PartCrafterLogic; -import 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; +import tinker.common.IPattern; +import tinker.tconstruct.logic.PartCrafterLogic; +import tinker.tconstruct.logic.PatternChestLogic; public class PartCrafterChestContainer extends PartCrafterContainer { @@ -18,7 +18,7 @@ public class PartCrafterChestContainer extends PartCrafterContainer patternLogic = pLogic; largeInventory = true; - inventory = new Slot[] { new SlotPattern(partLogic, 0, 40, 27), new Slot(partLogic, 1, 58, 27), new SlotPattern(partLogic, 2, 40, 45), new Slot(partLogic, 3, 58, 45), + inventory = new Slot[] { new SlotPattern(partLogic, 0, 40, 27), new SlotPattern(partLogic, 1, 40, 45), new Slot(partLogic, 2, 58, 27), new Slot(partLogic, 3, 58, 45), new SlotOnlyTake(partLogic, 4, 102, 27), new SlotOnlyTake(partLogic, 5, 120, 27), new SlotOnlyTake(partLogic, 6, 102, 45), new SlotOnlyTake(partLogic, 7, 120, 45) }; for (int iter = 0; iter < inventory.length; iter ++) this.addSlotToContainer(inventory[iter]); @@ -49,14 +49,38 @@ public class PartCrafterChestContainer extends PartCrafterContainer } @Override - public boolean canInteractWith(EntityPlayer var1) - { - return true; - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer entityplayer, int i) + public ItemStack transferStackInSlot(EntityPlayer player, int slotID) { - return null; + 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()+patternLogic.getSizeInventory(), this.inventorySlots.size(), true)) + { + return null; + } + } + else if (!this.mergeItemStack(slotStack, 2, 4, false)) + { + return null; + } + + if (slotStack.stackSize == 0) + { + slot.putStack((ItemStack)null); + } + else + { + slot.onSlotChanged(); + } + } + + return stack; } } diff --git a/tinker/tconstruct/client/gui/PartCrafterContainer.java b/tinker/tconstruct/client/gui/PartCrafterContainer.java index e93c1a2..4ec0e0f 100644 --- a/tinker/tconstruct/client/gui/PartCrafterContainer.java +++ b/tinker/tconstruct/client/gui/PartCrafterContainer.java @@ -1,11 +1,12 @@ package tinker.tconstruct.client.gui; -import tinker.tconstruct.logic.PartCrafterLogic; 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; +import tinker.common.IPattern; +import tinker.tconstruct.logic.PartCrafterLogic; public class PartCrafterContainer extends Container { @@ -21,7 +22,7 @@ public class PartCrafterContainer extends Container logic = partLogic; largeInventory = false; - inventory = new Slot[] { new SlotPattern(partLogic, 0, 40, 27), new Slot(partLogic, 1, 58, 27), new SlotPattern(partLogic, 2, 40, 45), new Slot(partLogic, 3, 58, 45), + inventory = new Slot[] { new SlotPattern(partLogic, 0, 40, 27), new SlotPattern(partLogic, 1, 40, 45), new Slot(partLogic, 2, 58, 27), new Slot(partLogic, 3, 58, 45), new SlotOnlyTake(partLogic, 4, 102, 27), new SlotOnlyTake(partLogic, 5, 120, 27), new SlotOnlyTake(partLogic, 6, 102, 45), new SlotOnlyTake(partLogic, 7, 120, 45) }; for (int iter = 0; iter < inventory.length; iter ++) this.addSlotToContainer(inventory[iter]); @@ -49,9 +50,38 @@ public class PartCrafterContainer extends Container } @Override - public ItemStack transferStackInSlot(EntityPlayer entityplayer, int i) + public ItemStack transferStackInSlot(EntityPlayer player, int slotID) { - //TODO: Shift-click override - return null; + 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, 2, 4, false)) + { + return null; + } + + if (slotStack.stackSize == 0) + { + slot.putStack((ItemStack)null); + } + else + { + slot.onSlotChanged(); + } + } + + return stack; } } diff --git a/tinker/tconstruct/client/gui/PartCrafterGui.java b/tinker/tconstruct/client/gui/PartCrafterGui.java index 7e6daec..06652f8 100644 --- a/tinker/tconstruct/client/gui/PartCrafterGui.java +++ b/tinker/tconstruct/client/gui/PartCrafterGui.java @@ -49,7 +49,7 @@ public class PartCrafterGui extends GuiContainer void drawMaterialInformation () { - ItemStack top = logic.getStackInSlot(1); + ItemStack top = logic.getStackInSlot(2); ItemStack bottom = logic.getStackInSlot(3); if (topMaterial != top) { @@ -144,11 +144,11 @@ public class PartCrafterGui extends GuiContainer { this.drawTexturedModalRect(cornerX + 39, cornerY + 26, 176, 0, 18, 18); } - if (!logic.isStackInSlot(1)) + if (!logic.isStackInSlot(2)) { this.drawTexturedModalRect(cornerX + 57, cornerY + 26, 176, 18, 18, 18); } - if (!logic.isStackInSlot(2)) + if (!logic.isStackInSlot(1)) { this.drawTexturedModalRect(cornerX + 39, cornerY + 44, 176, 0, 18, 18); } diff --git a/tinker/tconstruct/client/gui/PatternChestContainer.java b/tinker/tconstruct/client/gui/PatternChestContainer.java index 1e309b5..db0e38c 100644 --- a/tinker/tconstruct/client/gui/PatternChestContainer.java +++ b/tinker/tconstruct/client/gui/PatternChestContainer.java @@ -1,5 +1,6 @@ package tinker.tconstruct.client.gui; +import tinker.common.IPattern; import tinker.tconstruct.logic.PatternChestLogic; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -51,9 +52,10 @@ public class PatternChestContainer extends Container return logic.isUseableByPlayer(entityplayer); } + @Override public ItemStack transferStackInSlot(EntityPlayer player, int slotID) { - ItemStack stack = null; + ItemStack stack = null; Slot slot = (Slot)this.inventorySlots.get(slotID); if (slot != null && slot.getHasStack()) @@ -85,4 +87,13 @@ public class PatternChestContainer 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/tinker/tconstruct/client/gui/ToolStationContainer.java b/tinker/tconstruct/client/gui/ToolStationContainer.java index 11387fe..5fbea25 100644 --- a/tinker/tconstruct/client/gui/ToolStationContainer.java +++ b/tinker/tconstruct/client/gui/ToolStationContainer.java @@ -78,9 +78,94 @@ public class ToolStationContainer extends Container return true; } - @Override - public ItemStack transferStackInSlot(EntityPlayer entityplayer, int i) + public ItemStack transferStackInSlot(EntityPlayer player, int slotID) { - return null; + 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()) + { + System.out.println("Merging itemstack, true"); + if (!this.mergeItemStack(slotStack, logic.getSizeInventory(), this.inventorySlots.size(), true)) + { + return null; + } + } + else if (!this.mergeItemStack(slotStack, 1, logic.getSizeInventory() - 1, false)) + { + return null; + } + + if (slotStack.stackSize == 0) + { + slot.putStack((ItemStack)null); + } + else + { + slot.onSlotChanged(); + } + } + + return stack; } + + /*@Override + public ItemStack transferStackInSlot(EntityPlayer player, int slotID) + { + //this.mergeItemStack(slotStack, logic.getSizeInventory(), this.inventorySlots.size(), true) + ItemStack itemstack = null; + Slot slot = (Slot)inventorySlots.get(slotID); + if (slot != null && slot.getHasStack()) + { + ItemStack slotStack = slot.getStack(); + itemstack = slotStack.copy(); + if (slotID == 0) + { + if (!mergeItemStack(slotStack, 4, 40, true)) //10 = size of crafting grid, 46 = total, 0 == output slot + { + return null; + } + } + else if (slotID >= 4 && slotID < 37) + { + if (!mergeItemStack(slotStack, 37, 40, false)) + { + return null; + } + } + else if (slotID >= 37 && slotID < 40) + { + if (!mergeItemStack(slotStack, 4, 37, false)) + { + return null; + } + } + else if (!mergeItemStack(slotStack, 4, 40, false)) + { + return null; + } + if (slotStack.stackSize == 0) + { + slot.putStack(null); + } + else + { + slot.onSlotChanged(); + } + if (slotStack.stackSize != itemstack.stackSize) + { + slot.onPickupFromSlot(player, slotStack); + } + else + { + return null; + } + } + return itemstack; + }*/ } diff --git a/tinker/tconstruct/client/gui/ToolStationGui.java b/tinker/tconstruct/client/gui/ToolStationGui.java index f65cc92..ac3c814 100644 --- a/tinker/tconstruct/client/gui/ToolStationGui.java +++ b/tinker/tconstruct/client/gui/ToolStationGui.java @@ -315,13 +315,14 @@ public class ToolStationGui extends GuiContainer this.mc.renderEngine.bindTexture(texID); cornerX = (this.width + this.xSize) / 2; cornerY = (this.height - this.ySize) / 2; - this.drawTexturedModalRect(cornerX, cornerY, 0, 0, 126, this.ySize); + this.drawTexturedModalRect(cornerX, cornerY, 0, 0, 126, this.ySize + 30); } protected void keyTyped (char par1, int keyCode) { if (keyCode == 1) { + logic.setToolname(""); updateServer(""); Keyboard.enableRepeatEvents(false); this.mc.thePlayer.closeScreen(); diff --git a/tinker/tconstruct/crafting/ToolBuilder.java b/tinker/tconstruct/crafting/ToolBuilder.java index cb60439..140560b 100644 --- a/tinker/tconstruct/crafting/ToolBuilder.java +++ b/tinker/tconstruct/crafting/ToolBuilder.java @@ -121,7 +121,7 @@ public class ToolBuilder modifiers += (head == 9 ? 1 : 0) + (handle == 9 ? 1 : 0) + (accessory == 9 ? 1 : 0); compound.getCompoundTag("InfiTool").setInteger("Modifiers", modifiers); - if (name != "" && name != null) + if (name != null && !name.equals("")) { compound.setCompoundTag("display", new NBTTagCompound()); compound.getCompoundTag("display").setString("Name", "\u00A7f" + name); diff --git a/tinker/tconstruct/logic/FrypanLogic.java b/tinker/tconstruct/logic/FrypanLogic.java index 34c6bc4..4261981 100644 --- a/tinker/tconstruct/logic/FrypanLogic.java +++ b/tinker/tconstruct/logic/FrypanLogic.java @@ -293,4 +293,13 @@ public class FrypanLogic extends EquipLogic { return new FrypanContainer(inventoryplayer, this); } + + /*@Override + public boolean canDropInventorySlot(int slot) + { + if (slot == 0) + return false; + else + return true; + }*/ } diff --git a/tinker/tconstruct/logic/PartCrafterLogic.java b/tinker/tconstruct/logic/PartCrafterLogic.java index b652efa..f0e0a35 100644 --- a/tinker/tconstruct/logic/PartCrafterLogic.java +++ b/tinker/tconstruct/logic/PartCrafterLogic.java @@ -57,7 +57,7 @@ public class PartCrafterLogic extends InventoryLogic { if (!craftedTop) { - int value = PatternBuilder.instance.getPartValue(inventory[1]); + int value = PatternBuilder.instance.getPartValue(inventory[2]); int cost = ((Pattern)inventory[0].getItem()).getPatternCost(inventory[0].getItemDamage()); if (value > 0) { @@ -82,7 +82,7 @@ public class PartCrafterLogic extends InventoryLogic if (!craftedBottom) { int value = PatternBuilder.instance.getPartValue(inventory[3]); - int cost = ((Pattern)inventory[2].getItem()).getPatternCost(inventory[2].getItemDamage()); + int cost = ((Pattern)inventory[1].getItem()).getPatternCost(inventory[1].getItemDamage()); if (value > 0) { int decrease = cost / value; @@ -108,15 +108,15 @@ public class PartCrafterLogic extends InventoryLogic public void setInventorySlotContents (int slot, ItemStack itemstack) { super.setInventorySlotContents(slot, itemstack); - if ((slot == 0 || slot == 1) && !craftedTop) + if ((slot == 0 || slot == 2) && !craftedTop) buildTopPart(); - if ((slot == 2 || slot == 3) && !craftedBottom) + if ((slot == 1 || slot == 3) && !craftedBottom) buildBottomPart(); } void buildTopPart () { - ItemStack[] parts = PatternBuilder.instance.getToolPart(inventory[1], inventory[0], inventory[2]); + ItemStack[] parts = PatternBuilder.instance.getToolPart(inventory[2], inventory[0], inventory[2]); if (parts != null) { inventory[4] = parts[0]; @@ -130,7 +130,7 @@ public class PartCrafterLogic extends InventoryLogic void buildBottomPart () { - ItemStack[] parts = PatternBuilder.instance.getToolPart(inventory[3], inventory[2], inventory[0]); + ItemStack[] parts = PatternBuilder.instance.getToolPart(inventory[3], inventory[1], inventory[0]); if (parts != null) { inventory[6] = parts[0]; diff --git a/tinker/tconstruct/logic/PatternShaperLogic.java b/tinker/tconstruct/logic/PatternShaperLogic.java index 3be988a..d1d77cf 100644 --- a/tinker/tconstruct/logic/PatternShaperLogic.java +++ b/tinker/tconstruct/logic/PatternShaperLogic.java @@ -5,6 +5,7 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import tinker.common.InventoryLogic; +import tinker.tconstruct.TConstructContent; import tinker.tconstruct.client.gui.PatternShaperContainer; public class PatternShaperLogic extends InventoryLogic @@ -26,11 +27,39 @@ public class PatternShaperLogic extends InventoryLogic return new PatternShaperContainer(inventoryplayer, this); } + @Override + public void setInventorySlotContents(int slot, ItemStack itemstack) + { + super.setInventorySlotContents(slot, itemstack); + if (slot == 0) + setInventorySlotContents(1, new ItemStack(TConstructContent.woodPattern, 1, 1)); + } + @Override public ItemStack decrStackSize(int slot, int quantity) { if (slot == 1) + { super.decrStackSize(0, 1); + if (getStackInSlot(0) != null) + return super.decrStackSize(slot, 0); + } + else if (slot == 0) + { + ItemStack ret = super.decrStackSize(slot, quantity); + if (getStackInSlot(0) == null) + decrStackSize(1, 1); + return ret; + } return super.decrStackSize(slot, quantity); } + + @Override + public boolean canDropInventorySlot(int slot) + { + if (slot == 0) + return true; + else + return false; + } } diff --git a/tinker/tconstruct/tools/FryingPan.java b/tinker/tconstruct/tools/FryingPan.java index c5d8d48..54ebc3d 100644 --- a/tinker/tconstruct/tools/FryingPan.java +++ b/tinker/tconstruct/tools/FryingPan.java @@ -22,7 +22,7 @@ public class FryingPan extends Weapon @Override public boolean hitEntity(ItemStack stack, EntityLiving mob, EntityLiving player) { - AbilityHelper.hitEntity(stack, mob, player, damageVsEntity); + //AbilityHelper.hitEntity(stack, mob, player, damageVsEntity); AbilityHelper.knockbackEntity(mob, 1.7f); mob.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 0)); //5 seconds of stun //Play "thunk" sfx diff --git a/tinker/tconstruct/tools/Longsword.java b/tinker/tconstruct/tools/Longsword.java index 7f27930..6829d91 100644 --- a/tinker/tconstruct/tools/Longsword.java +++ b/tinker/tconstruct/tools/Longsword.java @@ -20,10 +20,10 @@ public class Longsword extends Weapon this.setItemName("InfiTool.Longsword"); } - public EnumAction getItemUseAction(ItemStack par1ItemStack) + /*public EnumAction getItemUseAction(ItemStack par1ItemStack) { return EnumAction.bow; - } + }*/ /*public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { @@ -33,12 +33,17 @@ public class Longsword extends Weapon return stack; }*/ - public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int time) + public float chargeAttack() + { + return 1.2f; + } + + /*public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int time) { if (time > 5) AbilityHelper.thrust(stack, world, player); player.swingItem(); - } + }*/ @Override protected Item getHeadItem () diff --git a/tinker/tconstruct/tools/Rapier.java b/tinker/tconstruct/tools/Rapier.java index 5f8261e..347affd 100644 --- a/tinker/tconstruct/tools/Rapier.java +++ b/tinker/tconstruct/tools/Rapier.java @@ -33,7 +33,7 @@ public class Rapier extends Weapon @Override public boolean hitEntity(ItemStack stack, EntityLiving mob, EntityLiving player) { - AbilityHelper.hitEntity(stack, mob, player, damageVsEntity); + //AbilityHelper.hitEntity(stack, mob, player, damageVsEntity); AbilityHelper.knockbackEntity(mob, 0.8f); mob.motionY *= 0.5; if (mob.hurtResistantTime > 16) @@ -45,6 +45,16 @@ public class Rapier extends Weapon { return 0.7f; } + + public float chargeAttack() + { + return 2f; + } + + public boolean pierceArmor() + { + return true; + } @Override protected Item getHeadItem () diff --git a/tinker/tconstruct/tools/ToolCore.java b/tinker/tconstruct/tools/ToolCore.java index 096055c..87e7a27 100644 --- a/tinker/tconstruct/tools/ToolCore.java +++ b/tinker/tconstruct/tools/ToolCore.java @@ -8,6 +8,8 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.enchantment.EnchantmentThorns; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.item.EntityItem; @@ -17,6 +19,11 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.stats.AchievementList; +import net.minecraft.stats.StatList; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import tinker.tconstruct.AbilityHelper; @@ -413,7 +420,8 @@ public abstract class ToolCore extends Item @Override public boolean hitEntity (ItemStack stack, EntityLiving mob, EntityLiving player) { - AbilityHelper.hitEntity(stack, mob, player); + //AbilityHelper.hitEntity(stack, mob, player); + //AbilityHelper.damageTool(stack, 1, player, false); return true; } @@ -438,13 +446,25 @@ public abstract class ToolCore extends Item return false; } - //Complete override of attacking - /*public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) + /* Attacking */ + @Override + public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) { + AbilityHelper.onLeftClickEntity(stack, player, entity, this); return true; - }*/ + } - public int getDamageVsEntity(Entity par1Entity) + public boolean pierceArmor() + { + return false; + } + + public float chargeAttack() + { + return 1f; + } + + public int getDamageVsEntity(Entity par1Entity) //Redundant { return this.damageVsEntity; }