From 115fad9b0971aff6bb300df51e2992f9a4bd651e Mon Sep 17 00:00:00 2001 From: Zerokyuuni Date: Sat, 26 Jul 2014 13:28:50 -0400 Subject: [PATCH 01/27] No more NBT Localization for modifiers --- src/main/java/tconstruct/tools/TinkerTools.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/tconstruct/tools/TinkerTools.java b/src/main/java/tconstruct/tools/TinkerTools.java index 79575a9c..6a3acfd2 100644 --- a/src/main/java/tconstruct/tools/TinkerTools.java +++ b/src/main/java/tconstruct/tools/TinkerTools.java @@ -477,9 +477,9 @@ public class TinkerTools ItemStack diamond = new ItemStack(Items.diamond); ModifyBuilder.registerModifier(new ModToolRepair()); - ModifyBuilder.registerModifier(new ModDurability(new ItemStack[] { diamond }, 0, 500, 0f, 3, StatCollector.translateToLocal("gui.modifier.diamond"), "\u00a7b" + ModifyBuilder.registerModifier(new ModDurability(new ItemStack[] { diamond }, 0, 500, 0f, 3, "Diamond", "\u00a7b" + StatCollector.translateToLocal("modifier.tool.diamond"), "\u00a7b")); - ModifyBuilder.registerModifier(new ModDurability(new ItemStack[] { new ItemStack(Items.emerald) }, 1, 0, 0.5f, 2, StatCollector.translateToLocal("gui.modifier.emerald"), "\u00a72" + ModifyBuilder.registerModifier(new ModDurability(new ItemStack[] { new ItemStack(Items.emerald) }, 1, 0, 0.5f, 2, "Emerald", "\u00a72" + StatCollector.translateToLocal("modifier.tool.emerald"), "\u00a72")); TinkerTools.modFlux = new ModFlux(); @@ -494,13 +494,13 @@ public class TinkerTools TinkerTools.modLapis = new ModLapis(10, new ItemStack[] { lapisItem, lapisBlock }, new int[] { 1, 9 }); ModifyBuilder.registerModifier(TinkerTools.modLapis); - ModifyBuilder.registerModifier(new ModInteger(new ItemStack[] { new ItemStack(TinkerTools.materials, 1, 6) }, 4, StatCollector.translateToLocal("gui.modifier.moss"), 3, "\u00a72", StatCollector + ModifyBuilder.registerModifier(new ModInteger(new ItemStack[] { new ItemStack(TinkerTools.materials, 1, 6) }, 4, "Moss", 3, "\u00a72", StatCollector .translateToLocal("modifier.tool.moss"))); ItemStack blazePowder = new ItemStack(Items.blaze_powder); ModifyBuilder.registerModifier(new ModBlaze(7, new ItemStack[] { blazePowder }, new int[] { 1 })); - ModifyBuilder.registerModifier(new ModAutoSmelt(new ItemStack[] { new ItemStack(TinkerTools.materials, 1, 7) }, 6, StatCollector.translateToLocal("gui.modifier.lava"), "\u00a74", StatCollector + ModifyBuilder.registerModifier(new ModAutoSmelt(new ItemStack[] { new ItemStack(TinkerTools.materials, 1, 7) }, 6, "Lava", "\u00a74", StatCollector .translateToLocal("modifier.tool.lava"))); - ModifyBuilder.registerModifier(new ModInteger(new ItemStack[] { new ItemStack(TinkerTools.materials, 1, 8) }, 8, StatCollector.translateToLocal("gui.modifier.necro"), 1, "\u00a78", StatCollector + ModifyBuilder.registerModifier(new ModInteger(new ItemStack[] { new ItemStack(TinkerTools.materials, 1, 8) }, 8, "Necrotic", 1, "\u00a78", StatCollector .translateToLocal("modifier.tool.necro"))); TinkerTools.modAttack = new ModAttack(StatCollector.translateToLocal("gui.modifier.quartz"), 11, new ItemStack[] { new ItemStack(Items.quartz), @@ -518,7 +518,7 @@ public class TinkerTools ItemStack piston = new ItemStack(Blocks.piston); ModifyBuilder.registerModifier(new ModPiston(3, new ItemStack[] { piston }, new int[] { 1 })); - ModifyBuilder.registerModifier(new ModInteger(new ItemStack[] { new ItemStack(Blocks.obsidian), new ItemStack(Items.ender_pearl) }, 13, StatCollector.translateToLocal("modifier.tool.beheading"), 1, + ModifyBuilder.registerModifier(new ModInteger(new ItemStack[] { new ItemStack(Blocks.obsidian), new ItemStack(Items.ender_pearl) }, 13, "Beheading", 1, "\u00a7d", StatCollector.translateToLocal("modifier.tool.beheading"))); ItemStack holySoil = new ItemStack(TinkerTools.craftedSoil, 1, 4); From b4c649c2e6a9f32677b6c5e111908b076be4083e Mon Sep 17 00:00:00 2001 From: Glassmaker Date: Sat, 26 Jul 2014 21:00:43 +0300 Subject: [PATCH 02/27] Enabled armour modifiers --- src/main/java/tconstruct/armor/TinkerArmor.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/tconstruct/armor/TinkerArmor.java b/src/main/java/tconstruct/armor/TinkerArmor.java index 24f38c31..b589f59a 100644 --- a/src/main/java/tconstruct/armor/TinkerArmor.java +++ b/src/main/java/tconstruct/armor/TinkerArmor.java @@ -160,6 +160,7 @@ public class TinkerArmor public void init (FMLInitializationEvent event) { craftingTableRecipes(); + registerModifiers(); addRecipesForDryingRack(); TConstructRegistry.equipableTab.init(travelGoggles.getDefaultItem()); proxy.initialize(); From f9f3259ab2612c9c698a2146b496ec92f2203bc6 Mon Sep 17 00:00:00 2001 From: Zerokyuuni Date: Sat, 26 Jul 2014 14:48:23 -0400 Subject: [PATCH 03/27] Let's fry us up some Enderballs, y'all Tasty :V --- src/main/java/tconstruct/smeltery/TinkerSmeltery.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/tconstruct/smeltery/TinkerSmeltery.java b/src/main/java/tconstruct/smeltery/TinkerSmeltery.java index 7639391f..a2e50176 100644 --- a/src/main/java/tconstruct/smeltery/TinkerSmeltery.java +++ b/src/main/java/tconstruct/smeltery/TinkerSmeltery.java @@ -786,6 +786,8 @@ public class TinkerSmeltery } } } + + tableCasting.addCastingRecipe(new ItemStack(Items.ender_pearl), new FluidStack(TinkerSmeltery.moltenEnderFluid, 250), new ItemStack(TinkerSmeltery.metalPattern, 1, 11), 50); ItemStack[] ingotShapes = { new ItemStack(Items.brick), new ItemStack(Items.netherbrick), new ItemStack(TinkerTools.materials, 1, 2), new ItemStack(TinkerTools.materials, 1, 37) }; for (int i = 0; i < ingotShapes.length; i++) From bc169265ffb7ce463219263e88dc0df7545e6767 Mon Sep 17 00:00:00 2001 From: Zerokyuuni Date: Sat, 26 Jul 2014 15:01:56 -0400 Subject: [PATCH 04/27] And the gemcast because pearl hurr hurr And metafix because counting is hard --- src/main/java/tconstruct/smeltery/TinkerSmeltery.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/tconstruct/smeltery/TinkerSmeltery.java b/src/main/java/tconstruct/smeltery/TinkerSmeltery.java index a2e50176..90bf54e1 100644 --- a/src/main/java/tconstruct/smeltery/TinkerSmeltery.java +++ b/src/main/java/tconstruct/smeltery/TinkerSmeltery.java @@ -787,7 +787,8 @@ public class TinkerSmeltery } } - tableCasting.addCastingRecipe(new ItemStack(Items.ender_pearl), new FluidStack(TinkerSmeltery.moltenEnderFluid, 250), new ItemStack(TinkerSmeltery.metalPattern, 1, 11), 50); + tableCasting.addCastingRecipe(new ItemStack(Items.ender_pearl), new FluidStack(TinkerSmeltery.moltenEnderFluid, 250), new ItemStack(TinkerSmeltery.metalPattern, 1, 10), 50); + tableCasting.addCastingRecipe(new ItemStack(Items.ender_pearl), new FluidStack(TinkerSmeltery.moltenEnderFluid, 250), new ItemStack(TinkerSmeltery.metalPattern, 1, 26), 50); ItemStack[] ingotShapes = { new ItemStack(Items.brick), new ItemStack(Items.netherbrick), new ItemStack(TinkerTools.materials, 1, 2), new ItemStack(TinkerTools.materials, 1, 37) }; for (int i = 0; i < ingotShapes.length; i++) From 498e0d8be7775ac4e70c345a1d65aa66ffd7c1cf Mon Sep 17 00:00:00 2001 From: Glassmaker Date: Sat, 26 Jul 2014 22:57:54 +0300 Subject: [PATCH 05/27] Moved steping to server side, and fixed high step effect after removing the boots --- .../java/tconstruct/armor/ArmorAbilities.java | 31 +++++++++++++++++++ .../armor/ArmorAbilitiesClient.java | 6 ++-- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/main/java/tconstruct/armor/ArmorAbilities.java b/src/main/java/tconstruct/armor/ArmorAbilities.java index 58ad71a5..419932a8 100644 --- a/src/main/java/tconstruct/armor/ArmorAbilities.java +++ b/src/main/java/tconstruct/armor/ArmorAbilities.java @@ -3,6 +3,7 @@ package tconstruct.armor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import tconstruct.armor.items.TravelGear; import tconstruct.armor.player.TPlayerStats; import tconstruct.library.modifier.IModifyable; import cpw.mods.fml.common.Loader; @@ -15,11 +16,16 @@ public class ArmorAbilities boolean morphed; boolean morphLoaded = Loader.isModLoaded("Morph"); + ItemStack prevFeet; + double prevMotionY; + @SubscribeEvent public void playerTick (TickEvent.PlayerTickEvent event) { EntityPlayer player = event.player; TPlayerStats stats = TPlayerStats.get(player); + + // Wall climb if (stats.climbWalls) { double motionX = player.posX - player.lastTickPosX; @@ -30,6 +36,31 @@ public class ArmorAbilities player.fallDistance = 0.0F; } } + + //Feet changes + ItemStack feet = player.getCurrentArmor(0); + if (feet != null) + { + if (feet.getItem() instanceof IModifyable && !player.isSneaking()) + { + NBTTagCompound tag = feet.getTagCompound().getCompoundTag(((IModifyable) feet.getItem()).getBaseTagName()); + int sole = tag.getInteger("Slimy Soles"); + if (sole > 0) + { + if (!player.isSneaking() && player.onGround && prevMotionY < -0.4) + player.motionY = -prevMotionY * (Math.min(0.99, sole * 0.2)); + } + } + prevMotionY = player.motionY; + } + if (feet != prevFeet) + { + if (prevFeet != null && prevFeet.getItem() instanceof TravelGear) + player.stepHeight -= 0.6f; + if (feet != null && feet.getItem() instanceof TravelGear) + player.stepHeight += 0.6f; + prevFeet = feet; + } //TODO: Proper minimap support /*ItemStack stack = player.inventory.getStackInSlot(8); if (stack != null && stack.getItem() instanceof ItemMap) diff --git a/src/main/java/tconstruct/armor/ArmorAbilitiesClient.java b/src/main/java/tconstruct/armor/ArmorAbilitiesClient.java index 53e9bbb0..22fcab05 100644 --- a/src/main/java/tconstruct/armor/ArmorAbilitiesClient.java +++ b/src/main/java/tconstruct/armor/ArmorAbilitiesClient.java @@ -43,8 +43,8 @@ public class ArmorAbilitiesClient player.fallDistance = 0.0f; } - //Feet changes - ItemStack feet = player.getCurrentArmor(0); + //Feet changes - moved to server side + /*ItemStack feet = player.getCurrentArmor(0); if (feet != null) { if (feet.getItem() instanceof TravelGear && player.stepHeight < 1.0f) @@ -70,7 +70,7 @@ public class ArmorAbilitiesClient if (feet != null && feet.getItem() instanceof TravelGear) player.stepHeight += 0.6f; prevFeet = feet; - } + }*/ //Legs or wing changes /*ItemStack legs = player.getCurrentArmor(1); From 47726d1923317d30ef4c80a4d984092c1ce4cdc2 Mon Sep 17 00:00:00 2001 From: Glassmaker Date: Sun, 27 Jul 2014 03:06:30 +0300 Subject: [PATCH 06/27] Fixed the clever's mining fatigue still active after throwing the cleaver, closes #731 --- src/main/java/tconstruct/items/tools/Cleaver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/tconstruct/items/tools/Cleaver.java b/src/main/java/tconstruct/items/tools/Cleaver.java index 1967890e..b1e23563 100644 --- a/src/main/java/tconstruct/items/tools/Cleaver.java +++ b/src/main/java/tconstruct/items/tools/Cleaver.java @@ -150,7 +150,7 @@ public class Cleaver extends Weapon ItemStack equipped = player.getCurrentEquippedItem(); if (equipped == stack) { - player.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 1, 2)); + player.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 2, 2, true)); } } } From efc9208abf423802b4d5f86499adb8ccf30147e3 Mon Sep 17 00:00:00 2001 From: Glassmaker Date: Sun, 27 Jul 2014 03:23:40 +0300 Subject: [PATCH 07/27] Fixed melting glueballs into gold --- src/main/java/tconstruct/smeltery/TinkerSmeltery.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/tconstruct/smeltery/TinkerSmeltery.java b/src/main/java/tconstruct/smeltery/TinkerSmeltery.java index 90bf54e1..ae32dd2e 100644 --- a/src/main/java/tconstruct/smeltery/TinkerSmeltery.java +++ b/src/main/java/tconstruct/smeltery/TinkerSmeltery.java @@ -918,7 +918,7 @@ public class TinkerSmeltery // Items Smeltery.addMelting(FluidType.getFluidType("AluminumBrass"), new ItemStack(TinkerTools.blankPattern, 4, 1), -50, TConstruct.ingotLiquidValue); Smeltery.addMelting(gold, new ItemStack(TinkerTools.blankPattern, 4, 2), -50, TConstruct.ingotLiquidValue * 2); - Smeltery.addMelting(FluidType.getFluidType("Gold"), new ItemStack(TinkerTools.materials, 1, 36), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Glue"), new ItemStack(TinkerTools.materials, 1, 36), 0, TConstruct.ingotLiquidValue); Smeltery.addMelting(FluidType.getFluidType("Ender"), new ItemStack(Items.ender_pearl, 4), 0, 250); Smeltery.addMelting(TinkerWorld.metalBlock, 10, 50, new FluidStack(moltenEnderFluid, 1000)); From 4de655f53377117b8fa3929bfa4c91949bd8e9fa Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Sun, 27 Jul 2014 19:58:07 +0200 Subject: [PATCH 08/27] Fix bug that ALWAYS added null to the ToolMaterials when using addtoolMaterial(int, ToolMaterial) --- src/main/java/tconstruct/library/TConstructRegistry.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/tconstruct/library/TConstructRegistry.java b/src/main/java/tconstruct/library/TConstructRegistry.java index f371013d..205fc8fc 100644 --- a/src/main/java/tconstruct/library/TConstructRegistry.java +++ b/src/main/java/tconstruct/library/TConstructRegistry.java @@ -340,8 +340,8 @@ public class TConstructRegistry ToolMaterial mat = toolMaterials.get(materialID); if (mat == null) { - toolMaterials.put(materialID, mat); - toolMaterialStrings.put(material.name(), mat); + toolMaterials.put(materialID, material); + toolMaterialStrings.put(material.name(), material); } else throw new IllegalArgumentException("[TCon API] Material ID " + materialID + " is already occupied by " + mat.materialName); From d76117d559c43a6f55c0d4f648443f4f500b408f Mon Sep 17 00:00:00 2001 From: Glassmaker Date: Mon, 28 Jul 2014 00:39:37 +0300 Subject: [PATCH 09/27] Adds dropping experiance when breaking blocks, example Coal and Lappis --- .../tconstruct/items/tools/Battleaxe.java | 7 +++++++ .../tconstruct/items/tools/Excavator.java | 7 +++++++ .../java/tconstruct/items/tools/Hammer.java | 7 +++++++ .../tconstruct/items/tools/LumberAxe.java | 16 ++++++++++++++- .../library/tools/DualHarvestTool.java | 8 ++++++++ .../tconstruct/library/tools/HarvestTool.java | 20 +++++++++++++++++++ 6 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/main/java/tconstruct/items/tools/Battleaxe.java b/src/main/java/tconstruct/items/tools/Battleaxe.java index 203c8b30..ca1afb74 100644 --- a/src/main/java/tconstruct/items/tools/Battleaxe.java +++ b/src/main/java/tconstruct/items/tools/Battleaxe.java @@ -4,6 +4,7 @@ import mantle.world.WorldHelper; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -251,6 +252,7 @@ public class Battleaxe extends HarvestTool final Block wood = world.getBlock(x, y, z); NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); final int meta = world.getBlockMetadata(x, y, z); + final int fortune = EnchantmentHelper.getFortuneModifier(player); for (int yPos = y + 1; yPos < y + 9; yPos++) { Block block = world.getBlock(x, yPos, z); @@ -280,6 +282,11 @@ public class Battleaxe extends HarvestTool { block.onBlockDestroyedByPlayer(world, x, yPos, z, localMeta); } + + // Workaround for dropping experience + int exp = block.getExpDrop(world, localMeta, fortune); + block.dropXpOnBlockBreak(world, x, y, z, exp); + block.harvestBlock(world, player, x, yPos, z, localMeta); block.onBlockHarvested(world, x, yPos, z, localMeta, player); onBlockDestroyed(stack, world, block, x, yPos, z, player); diff --git a/src/main/java/tconstruct/items/tools/Excavator.java b/src/main/java/tconstruct/items/tools/Excavator.java index 35a7961f..b3992cdf 100644 --- a/src/main/java/tconstruct/items/tools/Excavator.java +++ b/src/main/java/tconstruct/items/tools/Excavator.java @@ -3,6 +3,7 @@ package tconstruct.items.tools; import mantle.world.WorldHelper; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -184,6 +185,7 @@ public class Excavator extends HarvestTool break; } NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); + int fortune = EnchantmentHelper.getFortuneModifier(player); for (int xPos = x - xRange; xPos <= x + xRange; xPos++) { for (int yPos = y - yRange; yPos <= y + yRange; yPos++) @@ -221,6 +223,11 @@ public class Excavator extends HarvestTool { block.onBlockDestroyedByPlayer(world, xPos, yPos, zPos, localMeta); } + + // Workaround for dropping experience + int exp = block.getExpDrop(world, localMeta, fortune); + block.dropXpOnBlockBreak(world, xPos, yPos, zPos, exp); + block.harvestBlock(world, player, xPos, yPos, zPos, localMeta); block.onBlockHarvested(world, xPos, yPos, zPos, localMeta, player); if (blockHardness > 0f) diff --git a/src/main/java/tconstruct/items/tools/Hammer.java b/src/main/java/tconstruct/items/tools/Hammer.java index a7317f07..45a9b43d 100644 --- a/src/main/java/tconstruct/items/tools/Hammer.java +++ b/src/main/java/tconstruct/items/tools/Hammer.java @@ -6,6 +6,7 @@ import mantle.world.WorldHelper; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; @@ -283,6 +284,7 @@ public class Hammer extends HarvestTool NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); int toolLevel = tags.getInteger("HarvestLevel"); + int fortune = EnchantmentHelper.getFortuneModifier(player); for (int xPos = x - xRange; xPos <= x + xRange; xPos++) { for (int yPos = y - yRange; yPos <= y + yRange; yPos++) @@ -321,6 +323,11 @@ public class Hammer extends HarvestTool { localBlock.onBlockDestroyedByPlayer(world, xPos, yPos, zPos, localMeta); } + + // Workaround for dropping experience + int exp = localBlock.getExpDrop(world, localMeta, fortune); + localBlock.dropXpOnBlockBreak(world, xPos, yPos, zPos, exp); + localBlock.harvestBlock(world, player, xPos, yPos, zPos, localMeta); localBlock.onBlockHarvested(world, xPos, yPos, zPos, localMeta, player); if (blockHardness > 0f) diff --git a/src/main/java/tconstruct/items/tools/LumberAxe.java b/src/main/java/tconstruct/items/tools/LumberAxe.java index 92cc6b3d..0c7cfb95 100644 --- a/src/main/java/tconstruct/items/tools/LumberAxe.java +++ b/src/main/java/tconstruct/items/tools/LumberAxe.java @@ -3,6 +3,7 @@ package tconstruct.items.tools; import mantle.world.WorldHelper; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -198,6 +199,8 @@ public class LumberAxe extends HarvestTool void breakTree (World world, int x, int y, int z, ItemStack stack, NBTTagCompound tags, Block bID, int meta, EntityPlayer player) { Block block; + final int fortune = EnchantmentHelper.getFortuneModifier(player); + for (int xPos = x - 1; xPos <= x + 1; xPos++) { for (int yPos = y; yPos <= y + 1; yPos++) @@ -246,6 +249,11 @@ public class LumberAxe extends HarvestTool { block.onBlockDestroyedByPlayer(world, xPos, yPos, zPos, meta); } + + // Workaround for dropping experience + int exp = localblock.getExpDrop(world, meta, fortune); + localblock.dropXpOnBlockBreak(world, xPos, yPos, zPos, exp); + block.harvestBlock(world, player, xPos, yPos, zPos, meta); block.onBlockHarvested(world, xPos, yPos, zPos, meta, player); onBlockDestroyed(stack, world, localblock, xPos, yPos, zPos, player); @@ -280,6 +288,8 @@ public class LumberAxe extends HarvestTool void destroyWood (World world, int x, int y, int z, ItemStack stack, NBTTagCompound tags, EntityPlayer player) { + final int fortune = EnchantmentHelper.getFortuneModifier(player); + for (int xPos = x - 1; xPos <= x + 1; xPos++) { for (int yPos = y - 1; yPos <= y + 1; yPos++) @@ -305,13 +315,17 @@ public class LumberAxe extends HarvestTool if (!cancelHarvest) { - WorldHelper.setBlockToAir(world, xPos, yPos, zPos); if (!player.capabilities.isCreativeMode) { // TODO harvestBlock + int exp = block.getExpDrop(world, meta, fortune); + block.dropXpOnBlockBreak(world, xPos, yPos, zPos, exp); + block.harvestBlock(world, player, xPos, yPos, zPos, meta); onBlockDestroyed(stack, world, block, xPos, yPos, zPos, player); } + WorldHelper.setBlockToAir(world, xPos, yPos, zPos); + world.func_147479_m(xPos, yPos, zPos); } } } diff --git a/src/main/java/tconstruct/library/tools/DualHarvestTool.java b/src/main/java/tconstruct/library/tools/DualHarvestTool.java index 5294aae9..e7d95632 100644 --- a/src/main/java/tconstruct/library/tools/DualHarvestTool.java +++ b/src/main/java/tconstruct/library/tools/DualHarvestTool.java @@ -3,6 +3,7 @@ package tconstruct.library.tools; import mantle.world.WorldHelper; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -50,7 +51,14 @@ public abstract class DualHarvestTool extends HarvestTool else { if (!player.capabilities.isCreativeMode) + { + // Workaround for dropping experience + int fortune = EnchantmentHelper.getFortuneModifier(player); + int exp = block.getExpDrop(world, meta, fortune); + block.dropXpOnBlockBreak(world, x, y, z, exp); + onBlockDestroyed(stack, world, block, x, y, z, player); + } WorldHelper.setBlockToAir(world, x, y, z); if (!world.isRemote) world.playAuxSFX(2001, x, y, z, Block.getIdFromBlock(block) + (meta << 12)); diff --git a/src/main/java/tconstruct/library/tools/HarvestTool.java b/src/main/java/tconstruct/library/tools/HarvestTool.java index 14a61f53..5246d0e0 100644 --- a/src/main/java/tconstruct/library/tools/HarvestTool.java +++ b/src/main/java/tconstruct/library/tools/HarvestTool.java @@ -3,6 +3,7 @@ package tconstruct.library.tools; import mantle.world.WorldHelper; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; @@ -84,6 +85,12 @@ public abstract class HarvestTool extends ToolCore { localBlock.onBlockDestroyedByPlayer(world, x, y, z, localMeta); } + + // Workaround for dropping experience + int fortune = EnchantmentHelper.getFortuneModifier(player); + int exp = localBlock.getExpDrop(world, localMeta, fortune); + localBlock.dropXpOnBlockBreak(world, x, y, z, exp); + localBlock.harvestBlock(world, player, x, y, z, localMeta); localBlock.onBlockHarvested(world, x, y, z, localMeta, player); if (blockHardness > 0f) @@ -288,4 +295,17 @@ public abstract class HarvestTool extends ToolCore return used; } + + @Override + public int getHarvestLevel (ItemStack stack, String toolClass) + { + if (!(stack.getItem() instanceof HarvestTool) || !getHarvestType().equals(toolClass)) + { + return -1; + } + + NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); + int harvestLvl = tags.getInteger("HarvestLevel"); + return harvestLvl; + } } From 3d537b0801c7c9f698e679dd270cb18578964dd2 Mon Sep 17 00:00:00 2001 From: Gyro Date: Sun, 27 Jul 2014 22:38:18 -0400 Subject: [PATCH 10/27] en_PT.lang --- resources/assets/tinker/lang/en_PT.lang | 826 ++++++++++++++++++++++++ 1 file changed, 826 insertions(+) create mode 100644 resources/assets/tinker/lang/en_PT.lang diff --git a/resources/assets/tinker/lang/en_PT.lang b/resources/assets/tinker/lang/en_PT.lang new file mode 100644 index 00000000..9a930851 --- /dev/null +++ b/resources/assets/tinker/lang/en_PT.lang @@ -0,0 +1,826 @@ +itemGroup.TConstructTools=Ye Tinker Tooles +itemGroup.TConstructMaterials=Te Tinker Loot +itemGroup.TConstructBlocks=Te Tinker Blocks +itemGroup.TConstructParts=Te Tinker Toole Parts +itemGroup.TConstructEquipables=Te Tinker Cutlery + +crafters.ToolStation=Toole Station +crafters.ToolForge=Toole Forge +crafters.TinkerTable=Tinker Table +crafters.PartBuilder=Part Builder +crafters.PatternShaper=Scrimshaw Table +crafters.CraftingStation=Crafting Station +inventory.PatternChest=Scrimshaw Chest +crafters.Smeltery=Smeltery +crafters.Frypan=Crab Sizzler +inventory.knapsack=Knapsack + +ToolStation.Crafter.name=Toole Station +ToolStation.Parts.name=PARRt Builder +ToolStation.PatternChest.name=Scrimshaw Chest +ToolStation.PatternShaper.name=Scrimshaw Table +ToolStation.CastingTable.name=Casting Table +tile.FurnaceSlab.name=Slab Inferno + +tile.ToolForge.name=Blacksmithee Anvilstool +tile.TinkerTable.name=TinkARR Table +tile.Armor.DryingRack.name=Drying Rack +CraftedSoil.Slime.name=Bilge Muck +CraftedSoil.Grout.name=Grout +CraftedSoil.BlueSlime.name=Bilge Muck +CraftedSoil.GraveyardSoil.name=Buried Rot +CraftedSoil.ConsecratedSoil.name=Church-goer's Soil +tile.CastingChannel.name=Casting Channel +tile.slime.channel.name=Bilge Channel +tile.slime.pad.name=Sharkfood Tosser +tile.blood.channel.name=Blood Channel + +MetalOre.NetherSlag.name=Slaggy Netherack +MetalOre.Cobalt.name=Cobalt Ore +MetalOre.Ardite.name=ARRdite Ore +MetalOre.Copper.name=Copper Ore +MetalOre.Tin.name=Tin Ore +MetalOre.Aluminum.name=Privateer's Ore +MetalOre.Slag.name=Slaggy Stone + +block.oreberry.iron.name=Iron Oreberry Bush +block.oreberry.gold.name=Gold Oreberry Bush +block.oreberry.copper.name=Copper Oreberry Bush +block.oreberry.tin.name=Tin Oreberry Bush +block.oreberry.aluminum.name=Privateer's Oreberry Bush +block.oreberry.essence.name=Essence Berry Bush + +block.ore.gravel.iron.name=Iron Gravel Ore +block.ore.gravel.gold.name=Gold Gravel Ore +block.ore.gravel.copper.name=Copper Gravel Ore +block.ore.gravel.tin.name=Tin Gravel Ore +block.ore.gravel.aluminum.name=Privateer's Gravel Ore +block.ore.gravel.cobalt.name=Cobalt Gravel Ore + +block.brownstone.rough.name=Rough Brownstone +block.brownstone.rough.road.name=Brownstone Road +block.brownstone.smooth.name=Brownstone +block.brownstone.smooth.brick.name=Brownstone Brick +block.brownstone.smooth.road.name=Brownstone Road +block.brownstone.smooth.fancy.name=Fancy Brownstone +block.brownstone.smooth.chiseled.name=Chiseled Brownstone + +block.brownstone.rough.slab.name=Rough Brownstone Slab +block.brownstone.rough.road.slab.name=Brownstone Road Slab +block.brownstone.smooth.slab.name=Brownstone Slab +block.brownstone.smooth.brick.slab.name=Brownstone Brick Slab +block.brownstone.smooth.road.slab.name=Brownstone Road Slab +block.brownstone.smooth.fancy.slab.name=Fancy Brownstone Slab +block.brownstone.smooth.chiseled.slab.name=Chiseled Brownstone Slab + +block.brick.obsidian.name=Obsidian Brick +block.brick.sandstone.name=Sandstone Brick +block.brick.netherrack.name=NethARRack Brick +block.brick.iron.name=Iron Brick +block.brick.gold.name=Gold Brick +block.brick.diamond.name=Ye Loot Brick +block.brick.lapis.name=Lapis Brick +block.brick.stone.refined.name=Shiny Stone Brick +block.brick.redstone.name=Redstone Brick +block.brick.bone.name=Davy Jones' Brick +block.brick.slime.name=Bilge Brick +block.brick.blueslime.name=Bilge Brick +block.brick.endstone.name=Endstone Brick +block.brick.obsidian.ingot.name=Obsidian Brick + +block.fancybrick.obsidian.name=Fancy Obsidian Brick +block.fancybrick.sandstone.name=Fancy Sandstone Brick +block.fancybrick.netherrack.name=Fancy Netherrack Brick +block.fancybrick.iron.name=Fancy Iron Brick +block.fancybrick.gold.name=Fancy Gold Brick +block.fancybrick.diamond.name=Fancy Diamond Brick +block.fancybrick.lapis.name=Fancy Lapis Brick +block.fancybrick.stone.refined.name=Fancy Polished Stone Brick +block.fancybrick.redstone.name=Fancy Redstone Brick +block.fancybrick.bone.name=Fancy Bones +block.fancybrick.slime.name=Fancy Bilge Brick +block.fancybrick.blueslime.name=Fancy Bilge Brick +block.fancybrick.endstone.name=Fancy Endstone Brick +block.fancybrick.obsidian.ingot.name=Fancy Obsidian Brick +block.fancybrick.stone.road.name=Stone Road +block.fancybrick.stone.name=Fancy Stone Brick + +tile.rail.wood.name=Timbers Ta Shiver + +tile.cloth.white.slab.name=Wool Slab +tile.cloth.orange.slab.name=Orange Wool Slab +tile.cloth.magenta.slab.name=Magenta Wool Slab +tile.cloth.lightBlue.slab.name=Light Blue Wool Slab +tile.cloth.yellow.slab.name=Yellow Wool Slab +tile.cloth.lime.slab.name=Lime Wool Slab +tile.cloth.pink.slab.name=Pink Wool Slab +tile.cloth.gray.slab.name=Gray Wool Slab +tile.cloth.silver.slab.name=Light Gray Wool Slab +tile.cloth.cyan.slab.name=Cyan Wool Slab +tile.cloth.purple.slab.name=Purple Wool Slab +tile.cloth.blue.slab.name=Blue Wool Slab +tile.cloth.brown.slab.name=Brown Wool Slab +tile.cloth.green.slab.name=Green Wool Slab +tile.cloth.red.slab.name=Red Wool Slab +tile.cloth.black.slab.name=Black Wool Slab + +tile.GlueBlock.name=Processed Dead Harse +tile.liquid.glue.name=Melted Harse + +tile.Frypan.name=Crab Sizzler + +item.oreberry.iron.name=Iron Oreberry +item.oreberry.gold.name=Gold Oreberry +item.oreberry.copper.name=Copper Oreberry +item.oreberry.tin.name=Tin Oreberry +item.oreberry.aluminum.name=Privateer's Oreberry +item.oreberry.essence.name=Concentrated Essence Berry + +item.goldenhead.name=Golden Skull of Tripoli +item.tconstruct.titleicon.name=Spawn + +tile.tconstruct.meatblock.name=Hambone + +item.InfiTool.Pickaxe.name=Pickaxe +item.InfiTool.Shovel.name=Treasure Burier +item.InfiTool.Axe.name=Hatchet +item.InfiTool.Broadsword.name=Broad Cutlass +item.InfiTool.Longsword.name=Long Cutlass +item.InfiTool.Rapier.name=Thin Cutlass +item.InfiTool.FryPan.name=Crab Sizzler +item.InfiTool.Battlesign.name=Messenger Wot Kills +item.InfiTool.Dagger.name=Small Cutlass +item.InfiTool.Chisel.name=Chisel +item.InfiTool.Scythe.name=Scythe +item.InfiTool.LumberAxe.name=Timber Shiverer +item.InfiTool.Cleaver.name=Huge Cutlass +item.InfiTool.Excavator.name=Excavator +item.InfiTool.Hammer.name=Hammer +item.InfiTool.Battleaxe.name=Battleaxe +item.InfiTool.Cutlass.name=A Real Man's Cutlass +item.InfiTool.Shortbow.name=Shortbow +item.InfiTool.Arrow.name=Arrow +item.InfiTool.PotionLauncher.name=Potion Launcher +item.InfiTool.Mattock.name=Mattock + +item.tool.randomarrow=Random Streamer + +item.tconstruct.Pattern.blank_pattern.name=Blank Pattern +item.tconstruct.Pattern.rod.name=Tool Rod Pattern +item.tconstruct.Pattern.pickaxe.name=Pickaxe Head Pattern +item.tconstruct.Pattern.shovel.name=Shovel Head Pattern +item.tconstruct.Pattern.axe.name=Axe Head Pattern +item.tconstruct.Pattern.swordblade.name=Sword Blade Pattern +item.tconstruct.Pattern.largeguard.name=Wide Guard Pattern +item.tconstruct.Pattern.mediumguard.name=Hand Guard Pattern +item.tconstruct.Pattern.crossbar.name=Crossbar Pattern +item.tconstruct.Pattern.binding.name=Tool Binding Pattern +item.tconstruct.Pattern.frypan.name=Pan Pattern +item.tconstruct.Pattern.sign.name=Wide Board Pattern +item.tconstruct.Pattern.knifeblade.name=Knife Blade Pattern +item.tconstruct.Pattern.chisel.name=Chisel Head Pattern +item.tconstruct.Pattern.largerod.name=Tough Rod Pattern +item.tconstruct.Pattern.toughbinding.name=Tough Binding Pattern +item.tconstruct.Pattern.largeplate.name=Large Plate Pattern +item.tconstruct.Pattern.broadaxe.name=Broadaxe Head Pattern +item.tconstruct.Pattern.scythe.name=Scythe Head Pattern +item.tconstruct.Pattern.excavator.name=Excavator Head Pattern +item.tconstruct.Pattern.largeblade.name=Large Blade Pattern +item.tconstruct.Pattern.hammerhead.name=Hammer Head Pattern +item.tconstruct.Pattern.fullguard.name=Full Guard Pattern +item.tconstruct.Pattern.bowstring.name=Bowstring Pattern +item.tconstruct.Pattern.fletching.name=Fletching Pattern +item.tconstruct.Pattern.arrowhead.name=Arrowhead Pattern + +item.tconstruct.Pattern.blank_cast.name=Blank Cast +item.tconstruct.MetalPattern.rod.name=Tool Rod Cast +item.tconstruct.MetalPattern.pickaxe.name=Pickaxe Head Cast +item.tconstruct.MetalPattern.shovel.name=Shovel Head Cast +item.tconstruct.MetalPattern.axe.name=Axe Head Cast +item.tconstruct.MetalPattern.swordblade.name=Sword Blade Cast +item.tconstruct.MetalPattern.largeguard.name=Wide Guard Cast +item.tconstruct.MetalPattern.mediumguard.name=Hand Guard Cast +item.tconstruct.MetalPattern.crossbar.name=Crossbar Cast +item.tconstruct.MetalPattern.binding.name=Tool Binding Cast +item.tconstruct.MetalPattern.frypan.name=Pan Cast +item.tconstruct.MetalPattern.sign.name=Wide Board Cast +item.tconstruct.MetalPattern.knifeblade.name=Knife Blade Cast +item.tconstruct.MetalPattern.chisel.name=Chisel Head Cast +item.tconstruct.MetalPattern.largerod.name=Tough Rod Cast +item.tconstruct.MetalPattern.toughbinding.name=Tough Binding Cast +item.tconstruct.MetalPattern.largeplate.name=Large Plate Cast +item.tconstruct.MetalPattern.broadaxe.name=Broadaxe Head Cast +item.tconstruct.MetalPattern.scythe.name=Scythe Head Cast +item.tconstruct.MetalPattern.excavator.name=Excavator Head Cast +item.tconstruct.MetalPattern.largeblade.name=Large Blade Cast +item.tconstruct.MetalPattern.hammerhead.name=Hammer Head Cast +item.tconstruct.MetalPattern.fullguard.name=Full Guard Cast +item.tconstruct.MetalPattern.bowstring.name=Bowstring Cast +item.tconstruct.MetalPattern.fletching.name=Fletching Cast +item.tconstruct.MetalPattern.arrowhead.name=Arrowhead Cast +item.tconstruct.MetalPattern.ingot.name=Ingot Cast +item.tconstruct.MetalPattern.gem.name=Gem Cast + +item.tconstruct.Materials.PaperStack.name=Paper Stack +item.tconstruct.Materials.SlimeCrystal.name=Bilge Wart +item.tconstruct.Materials.SearedBrick.name=Seared Brick +item.tconstruct.Materials.CobaltIngot.name=Cobalt Ingot +item.tconstruct.Materials.ArditeIngot.name=ARRdite Ingot +item.tconstruct.Materials.ManyullynIngot.name=Manyullyn Ingot +item.tconstruct.Materials.Mossball.name=Ball of Moss +item.tconstruct.Materials.LavaCrystal.name=Lava Crystal +item.tconstruct.Materials.NecroticBone.name=Necrotic Bone +item.tconstruct.Materials.CopperIngot.name=Copper Ingot +item.tconstruct.Materials.TinIngot.name=Tin Ingot +item.tconstruct.Materials.AluminumIngot.name=Privateer's Ingot +item.tconstruct.Materials.RawAluminum.name=Raw Privateer's Metal +item.tconstruct.Materials.BronzeIngot.name=Bronze Ingot +item.tconstruct.Materials.AluBrassIngot.name=Privateer's Brass Ingot +item.tconstruct.Materials.AlumiteIngot.name=Alumite Ingot +item.tconstruct.Materials.SteelIngot.name=Steel Ingot +item.tconstruct.Materials.BlueSlimeCrystal.name=Bilge Wart +item.tconstruct.Materials.ObsidianIngot.name=Obsidian Ingot +item.tconstruct.Materials.IronNugget.name=Iron Nugget +item.tconstruct.Materials.CopperNugget.name=Copper Nugget +item.tconstruct.Materials.TinNugget.name=Tin Nugget +item.tconstruct.Materials.AluminumNugget.name=Privateer's Nugget +item.tconstruct.Materials.EssenceCrystal.name=Fake Essence Crystal +item.tconstruct.Materials.AluBrassNugget.name=Privateer's Brass Nugget +item.tconstruct.Materials.SilkyCloth.name=Silky Cloth +item.tconstruct.Materials.SilkyJewel.name=Silky Jewel +item.tconstruct.Materials.ObsidianNugget.name=Obsidian Nugget +item.tconstruct.Materials.CobaltNugget.name=Cobalt Nugget +item.tconstruct.Materials.ArditeNugget.name=ARRdite Nugget +item.tconstruct.Materials.ManyullynNugget.name=Manyullyn Nugget +item.tconstruct.Materials.BronzeNugget.name=Bronze Nugget +item.tconstruct.Materials.AlumiteNugget.name=Alumite Nugget +item.tconstruct.Materials.SteelNugget.name=Steel Nugget +item.tconstruct.Materials.PigIronIngot.name=Pig Iron Ingot +item.tconstruct.Materials.PigIronNugget.name=Pig Iron Platter +item.tconstruct.Materials.GlueBall.name=Ball of Glue +item.tconstruct.Materials.ArditeDust.name=ARRdite Dust +item.tconstruct.Materials.CobaltDust.name=Cobalt Dust +item.tconstruct.Materials.AluminumDust.name=Privateer's Dust +item.tconstruct.Materials.ManyullynDust.name=Manyullyn Dust +item.tconstruct.Materials.AluBrassDust.name=Privateer's Brass Dust + +item.tconstruct.ArmorPattern.helmet.name=Helmet Cast +item.tconstruct.ArmorPattern.chestplate.name=Chestplate Cast +item.tconstruct.ArmorPattern.leggings.name=Leggings Cast +item.tconstruct.ArmorPattern.boots.name=Boots Cast + +item.tconstruct.helmetWood.name=Wooden Helmet +item.tconstruct.chestplateWood.name=Wooden Chestplate +item.tconstruct.leggingsWood.name=Wooden Leggings +item.tconstruct.bootsWood.name=Wooden Boots + +item.tconstruct.travelgoggles.name=Traveller's Goggles +item.tconstruct.travelvest.name=Traveller's Vest +item.tconstruct.travelwings.name=Traveller's Wings +item.tconstruct.travelboots.name=Traveller's Boots +item.tconstruct.travelgloves.name=Traveller's Gloves +item.tconstruct.travelbelt.name=Traveller's Belt + +item.tconstruct.jerky.beef.name=Beef Jerky +item.tconstruct.jerky.pig.name=Bacon Jerky +item.tconstruct.jerky.chicken.name=Chicken Jerky +item.tconstruct.jerky.sheep.name=Mutton Jerky +item.tconstruct.jerky.fish.name=Fish Jerky +item.tconstruct.jerky.zombie.name=Flesh of the Dead +item.tconstruct.jerky.blueslime.name=Gelatinous Bilge Drop +item.tconstruct.jerky.blood.name=Coagulated Blood Drop + +beginnertool.pickaxe=Swabby's Pickaxe +beginnertool.hatchet=Swabby's Hatchet + +Smeltery.Controller.name=Smeltery Controller +Smeltery.Drain.name=Smeltery Drain +Smeltery.Brick.name=Seared Bricks +Smeltery.Stone.name=Seared Stone +Smeltery.Cobblestone.name=Seared Cobblestone +Smeltery.Paver.name=Seared Paver +Smeltery.Brick.Cracked.name=Cracked Seared Bricks +Smeltery.Road.name=Seared Road +Smeltery.Brick.Fancy.name=Fancy Seared Bricks +Smeltery.Brick.Square.name=Chiseled Seared Bricks +Smeltery.Brick.Creeper.name=Chiseled Seared Bricks +Smeltery.Channel.name=Casting Channel +block.slime.soil.dirt.name=Slime Soil + +LavaTank.Tank.name=Seared Tank +LavaTank.Gague.name=Seared Glass +LavaTank.Window.name=Seared Window + +tile.landmine.name=Landmine + +tile.trap.punji.name=Punji Stick +tile.trap.barricade.oak.name=Oak Barricade +tile.trap.barricade.spruce.name=Spruce Barricade +tile.trap.barricade.birch.name=Birch Barricade +tile.trap.barricade.jungle.name=Jungle Barricade +tile.explosive.slime.name=SDX + +StorageMetals.Cobalt.name=Block of Cobalt +StorageMetals.Ardite.name=Block of ARRdite +StorageMetals.Manyullyn.name=Block of Manyullyn +StorageMetals.Copper.name=Block of Copper +StorageMetals.Bronze.name=Block of Bronze +StorageMetals.Tin.name=Block of Tin +StorageMetals.Aluminum.name=Block of Privateer's Metal +StorageMetals.AlBrass.name=Block of Privateer's Brass +StorageMetals.Alumite.name=Block of Alumite +StorageMetals.Steel.name=Block of Steel +StorageMetals.Ender.name=Block of Ghosts + +tile.decoration.stonetorch.name=Torch +tile.decoration.stoneladder.name=Ladder +tile.CraftingStation.name=Crafting Station + +block.glass.pure.name=Clear Glass +block.glass.soul.name=Soul Glass +block.glass.soul.pure.name=Clear Soul Glass + +block.glass.pure.pane.name=Clear Glass Pane +block.glass.soul.pane.name=Soul Pane +block.glass.soul.pane.pure.name=Clear Soul Pane + +block.stainedglass.white.name=White Stained Glass +block.stainedglass.orange.name=Orange Stained Glass +block.stainedglass.magenta.name=Magenta Stained Glass +block.stainedglass.lightblue.name=Light Blue Stained Glass +block.stainedglass.yellow.name=Yellow Stained Glass +block.stainedglass.lime.name=Lime Stained Glass +block.stainedglass.pink.name=Pink Stained Glass +block.stainedglass.gray.name=Gray Stained Glass +block.stainedglass.lightgray.name=Light Gray Stained Glass +block.stainedglass.cyan.name=Cyan Stained Glass +block.stainedglass.purple.name=Purple Stained Glass +block.stainedglass.blue.name=Blue Stained Glass +block.stainedglass.brown.name=Brown Stained Glass +block.stainedglass.green.name=Green Stained Glass +block.stainedglass.red.name=Blood-Stained Glass +block.stainedglass.black.name=Black Stained Glass + +block.stainedglass.white.pane.name=White Stained Pane +block.stainedglass.orange.pane.name=Orange Stained Pane +block.stainedglass.magenta.pane.name=Magenta Stained Pane +block.stainedglass.lightblue.pane.name=Light Blue Stained Pane +block.stainedglass.yellow.pane.name=Yellow Stained Pane +block.stainedglass.lime.pane.name=Lime Stained Pane +block.stainedglass.pink.pane.name=Pink Stained Pane +block.stainedglass.gray.pane.name=Gray Stained Pane +block.stainedglass.lightgray.pane.name=Light Gray Stained Pane +block.stainedglass.cyan.pane.name=Cyan Stained Pane +block.stainedglass.purple.pane.name=Purple Stained Pane +block.stainedglass.blue.pane.name=Blue Stained Pane +block.stainedglass.brown.pane.name=Brown Stained Pane +block.stainedglass.green.pane.name=Green Stained Pane +block.stainedglass.red.pane.name=Red Stained Pane +block.stainedglass.black.pane.name=Black Stained Pane + +block.searedstone.slab.brick.name=Seared Brick Slab +block.searedstone.slab.stone.name=Seared Stone Slab +block.searedstone.slab.cobble.name=Seared Cobblestone Slab +block.searedstone.slab.paver.name=Seared Paver Slab +block.searedstone.slab.road.name=Seared Road Slab +block.searedstone.slab.fancy.name=Fancy Seared Slab +block.searedstone.slab.square.name=Chiseled Seared Slab +block.searedstone.slab.creeper.name=Chiseled Seared Slab + +block.soil.slab.dirt.name=Dirt Slab +block.soil.slab.mycelium.name=Full Mycelium Slab +block.soil.slab.slime.name=Festering Mud Slab +block.soil.slab.grout.name=Grout Slab +block.soil.slab.blueslime.name=Festering Mud Slab +block.soil.slab.graveyardsoil.name=Graveyard Soil Slab +block.soil.slab.consecratedsoil.name=Consecrated Soil Slab + +block.slime.soil.blue.name=Blue Slimedirt +block.slime.leaves.blue.name=Festering Leaves +block.slime.sapling.bluegreen.name=Bilious Sapling +block.slime.grass.blue.name=Festering Grass +block.slime.grass.dirt.name=Festering Grass +block.slime.tallgrass.name=Festering Grass +block.slime.congealed.blue.name=Congealed Blue Bilge +block.slime.congealed.green.name=Congealed Green Bilge +block.slime.congealed.purple.name=Congealed Purple Bilge + +item.tconstruct.storage.knapsack.name=Booty Bag +item.tconstruct.blankpattern.pattern.name=Blank Scrimshaw Wood +item.tconstruct.blankpattern.cast.name=Blank Cast + +item.tconstruct.Bowstring.string.name=Bowstring +item.tconstruct.Bowstring.enchantedfabric.name=Enchanted Bowstring +item.tconstruct.Bowstring.flamestring.name=Fiery Bowstring +item.tconstruct.Fletching.feather.name=Feather Fletching +item.tconstruct.Fletching.leaf.name=Leaf Fletching +item.tconstruct.Fletching.slime.name=Festering Fletching +item.tconstruct.Fletching.blueslime.name=Festering Fletching + +item.tconstruct.manual.beginner.name=Ye Jury-rigging +item.tconstruct.manual.toolstation.name=Ye Jury-rigging +item.tconstruct.manual.smeltery.name=Ye Searing Inferno +item.tconstruct.manual.diary.name=Captain's Log + +item.tconstruct.bucket.Iron.name=Molten Iron Bucket +item.tconstruct.bucket.Gold.name=Molten Gold Bucket +item.tconstruct.bucket.Copper.name=Molten Copper Bucket +item.tconstruct.bucket.Tin.name=Molten Tin Bucket +item.tconstruct.bucket.Aluminum.name=Molten Privateer's Metal Bucket +item.tconstruct.bucket.Cobalt.name=Molten Cobalt Bucket +item.tconstruct.bucket.Ardite.name=Molten ARRdite Bucket +item.tconstruct.bucket.Bronze.name=Molten Bronze Bucket +item.tconstruct.bucket.AluBrass.name=Molten Privateer's Brass Bucket +item.tconstruct.bucket.Manyullyn.name=Molten Manyullyn Bucket +item.tconstruct.bucket.Alumite.name=Molten Alumite Bucket +item.tconstruct.bucket.Obsidian.name=Molten Obsidian Bucket +item.tconstruct.bucket.Steel.name=Molten Steel Bucket +item.tconstruct.bucket.Glass.name=Molten Glass Bucket +item.tconstruct.bucket.Stone.name=Seared Stone Bucket +item.tconstruct.bucket.Villager.name=Liquified Emerald Bucket +item.tconstruct.bucket.Cow.name=Bucket o' Blood +item.tconstruct.bucket.Nickel.name=Molten Nickel Bucket +item.tconstruct.bucket.Lead.name=Molten Lead Bucket +item.tconstruct.bucket.Silver.name=Molten Silver Bucket +item.tconstruct.bucket.Shiny.name=Molten Shiny Bucket +item.tconstruct.bucket.Invar.name=Molten Invar Bucket +item.tconstruct.bucket.Electrum.name=Molten Electrum Bucket +item.tconstruct.bucket.Ender.name=Liquified Ghost Bucket +item.tconstruct.bucket.Slime.name=Liquid Slime Bucket +item.tconstruct.bucket.PigIron.name=Molten Pig Iron Bucket +item.tconstruct.bucket.Glue.name=Sticky Glue Bucket + +item.tconstruct.bowstring.string.name=Bowstring +item.tconstruct.bowstring.enchantedfabriI donc.name=Enchanted Bowstring + +tile.fluid.molten.iron.name=Molten Iron +tile.fluid.molten.gold.name=Molten Gold +tile.fluid.molten.copper.name=Molten Copper +tile.fluid.molten.tin.name=Liquid Tin +tile.fluid.molten.aluminum.name=Molten Privateer's Metal +tile.fluid.molten.cobalt.name=Molten Cobalt +tile.fluid.molten.ardite.name=Molten ARRdite +tile.fluid.molten.bronze.name=Molten Bronze +tile.fluid.molten.alubrass.name=Molten Privateer's Brass +tile.fluid.molten.manyullyn.name=Molten Manyullyn +tile.fluid.molten.alumite.name=Molten Alumite +tile.fluid.molten.obsidian.name=Molten Obsidian +tile.fluid.molten.steel.name=Molten Steel +tile.fluid.molten.glass.name=Molten Glass +tile.molten.stone.name=Seared Stone +tile.molten.emerald.name=Liquified Emerald +tile.liquid.blood.name=Blood +tile.fluid.molten.nickel.name=Molten Nickel +tile.fluid.molten.silver.name=Molten Silver +tile.fluid.molten.lead.name=Molten Lead +tile.fluid.molten.shiny.name=Molten Shiny +tile.fluid.molten.invar.name=Molten Invar +tile.fluid.molten.electrum.name=Molten Electrum +tile.fluid.ender.name=Liquified Ghost +tile.liquid.slime.name=Liquified Slime + +LiquidMetal.Iron.name=Molten Iron +LiquidMetal.Gold.name=Molten Gold +LiquidMetal.Copper.name=Molten Copper +LiquidMetal.Tin.name=Liquid Tin +LiquidMetal.Aluminum.name=Molten Privateer's Metal +LiquidMetal.Cobalt.name=Molten Cobalt +LiquidMetal.Ardite.name=Molten ARRdite +LiquidMetal.Bronze.name=Molten Bronze +LiquidMetal.AluBrass.name=Molten Privateer's Brass +LiquidMetal.Manyullyn.name=Molten Manyullyn +LiquidMetal.Alumite.name=Molten Alumite +LiquidMetal.Obsidian.name=Molten Obsidian +LiquidMetal.Steel.name=Molten Steel +LiquidMetal.Glass.name=Molten Glass +LiquidMetal.Stone.name=Seared Stone +LiquidMetal.Villager.name=Liquified Emerald +LiquidMetal.Cow.name=Blo +LiquidMetal.Nickel.name=Molten Nickel +LiquidMetal.Silver.name=Molten Silver +LiquidMetal.Lead.name=Molten Lead +LiquidMetal.Shiny.name=Molten Shiny +LiquidMetal.Invar.name=Molten Invar +LiquidMetal.Electrum.name=Molten Electrum +LiquidMetal.Ender.name=Liquified Ghost + +item.food.apple.diamond.name=Devil's Apple of Lucre +item.tconstruct.strangefood.edibleslime.name=Vile Bilge Treat +item.tconstruct.strangefood.edibleblood.name=Coagulated Blood +item.tconstruct.strangefood.bacon.name=Bacon +item.tconstruct.canister.empty.name=Ye Canister Wots Missing Hearts +item.tconstruct.canister.miniheart.red.name=Tiny Bloody Heart +item.tconstruct.canister.red.name=Bloody Heart Canister +item.tconstruct.canister.miniheart.yellow.name=Tiny Bile Heart +item.tconstruct.canister.yellow.name=Bile Heart Canister +item.tconstruct.canister.miniheart.green.name=Tiny Dead Heart +item.tconstruct.canister.green.name=Dead Heart Canister +item.tconstruct.glove.name=Ye Duell Gloves +item.tconstruct.modifier.creative.name=Cheatarr's Handyman + +SearedBlock.Table.name=Casting Table +SearedBlock.Faucet.name=Seared Faucet +SearedBlock.Basin.name=Casting Basin + +entity.TConstruct.EdibleSlime.name=Blue Slime +entity.TConstruct.KingSlime.name=King Slime +entity.TConstruct.Gardeslime.name=Gardeslime +entity.TConstruct.MiniGardy.name=Gardeslime + +tconstruct.keybindings=Tinkers Construct +key.tarmor=Armor Gui +key.tcapes.reload=Reload Capes +key.tbelt=Belt +key.tgoggles=Goggles +key.tzoom=Zoom + +death.one.smeltery=%1$s has be rendarred down and boiled +death.two.smeltery=%1$s be swimmin with the Davy Jones of the molten metal sea +death.three.smeltery=%1$s rests in ye great big kettle +death.four.smeltery=%1$s will never rig another sail - alas and goddamn + +death.attack.Landmine=%1$s will need a wooden leg in ye afterlife +death.attack.FireworkExplode=%1$s watched ye fireworke and feeds the sharks + +parttype.wood=Wooden +parttype.stone=Stone +parttype.iron=Iron +parttype.flint=Flint +parttype.cactus=Cactus +parttype.bone=Bone +parttype.obsidian=Obsidian +parttype.slime=Bilge +parttype.paper=Paper +parttype.netherrack=Netherrack +parttype.cobalt=Cobalt +parttype.ardite=ARRdite +parttype.manyullyn=Manyullyn +parttype.copper=Copper +parttype.bronze=Bronze +parttype.alumite=Privateer's Metal +parttype.steel=Steel +parttype.blueslime=Slime +parttype.thaumium=Thaumium +parttype.pigiron=Pig Iron + +toolpart.ToolRod=%%material Tool Rod +toolpart.PickHead=%%material Pickaxe Head +toolpart.ShovelHead=%%material Shovel Head +toolpart.AxeHead=%%material Axe Head +toolpart.Binding=%%material Binding +toolpart.ToughBind=%%material Tough Binding +toolpart.ToughRod=%%material Tough Rod +toolpart.LargePlate=%%material Large Plate +toolpart.SwordBlade=%%material Sword Blade +toolpart.LargeGuard=%%material Wide Guard +toolpart.MediumGuard=%%material Hand Guard +toolpart.Crossbar=%%material Crossbar +toolpart.KnifeBlade=%%material Knife Blade +toolpart.FullGuard=%%material Full Guard +toolpart.FrypanHead=%%material Pan +toolpart.SignHead=%%material Sign Head +toolpart.ChiselHead=%%material Chisel Head +toolpart.ScytheHead=%%material Scythe Head +toolpart.LumberHead=%%material Broad Axe Head +toolpart.ExcavatorHead=%%material Excavator Head +toolpart.ToolShard=%%material Shard +toolpart.LargeSwordBlade=%%material Large Sword Blade +toolpart.HammerHead=%%material Hammer Head +toolpart.Bowstring=%%material Bowstring +toolpart.ArrowHead=%%material Arrowhead +toolpart.Fletching=%%material Fletching + +fluid.iron.molten=Molten Iron +fluid.gold.molten=Molten Gold +fluid.copper.molten=Molten Copper +fluid.tin.molten=Molten Tin +fluid.aluminum.molten=Molten Privateer's Metal +fluid.cobalt.molten=Molten Cobalt +fluid.ardite.molten=Molten ARRdite +fluid.bronze.molten=Molten Bronze +fluid.aluminumbrass.molten=Molten Privateer's Brass +fluid.manyullyn.molten=Molten Manyullyn +fluid.alumite.molten=Molten Alumite +fluid.obsidian.molten=Molten Obsidian +fluid.steel.molten=Molten Steel +fluid.glass.molten=Molten Glass +fluid.stone.seared=Seared Stone +fluid.emerald.liquid=Liquified Emerald +fluid.blood=Blood +fluid.nickel.molten=Molten Nickel +fluid.lead.molten=Molten Lead +fluid.silver.molten=Molten Silver +fluid.shiny.molten=Molten Shiny +fluid.invar.molten=Molten Invar +fluid.electrum.molten=Molten Electrum +fluid.ender=Liquid Ghost +fluid.slime.blue=Liquid Blue Bilge +fluid.pigiron.molten=Pig Iron +fluid.glue=Glue + +tconstruct.achievementPage.name=TConstruct +achievement.tconstruct.beginner=Ye Green Swabby +achievement.tconstruct.pattern=Scrimshaw +achievement.tconstruct.tinkerer=Tinkerer +achievement.tconstruct.proTinkerer=Ye Old Tinker Hand +achievement.tconstruct.smelteryMaker=Metal Melter +achievement.tconstruct.preparedFight=Prepare to Board +achievement.tconstruct.enemySlayer=Brutal Cutthroat +achievement.tconstruct.dualConvenience=Dual Convenience +achievement.tconstruct.doingItWrong=Fools be +achievement.tconstruct.betterCrafting=Better Crafting + +achievement.tconstruct.beginner.desc=Open "Ye Jury-rigging" tome +achievement.tconstruct.pattern.desc=Craft ye first blank pattern +achievement.tconstruct.tinkerer.desc=Create ye first tool +achievement.tconstruct.proTinkerer.desc=Craft ye first tier 2 tool +achievement.tconstruct.smelteryMaker.desc=Craft a smelteree component +achievement.tconstruct.preparedFight.desc=Rig up ye first weapon +achievement.tconstruct.enemySlayer.desc=Slay a mob +achievement.tconstruct.dualConvenience.desc=Kill a mob with a crab sizzler, and then cook their meat in it +achievement.tconstruct.doingItWrong.desc=You are doing it wrong! +achievement.tconstruct.betterCrafting.desc=Craft a Crafting Station by placing a Crafting Table by itself into the crafting grid + +knapsack.tooltip=A Booty Bag to hold ye loot. +strangefood1.tooltip=It smells terrible, but if you +strangefood2.tooltip=have nothing else to eat... +strangefood3.tooltip=It seems edible, but somehow +strangefood4.tooltip=it's just not appealing. +strangefood5.tooltip=Stretchy food! +strangefood6.tooltip=One vampiric appetizer +strangefood7.tooltip=The mysterious appearing snack +hambone1.tooltip=Hambone! +hambone2.tooltip=Usable for Bacon bases +metalblock.tooltip=Usable for Beacon bases +craftedsoil1.tooltip=Heals ye Dead +craftedsoil2.tooltip=Bloodies ye Dead +fancybrick1.tooltip=Somewhat expensive +fancybrick2.tooltip=Very expensive +fancybrick3.tooltip=Emits Redstone signal up to +fancybrick4.tooltip=4 blocks away +fancybrick5.tooltip=Bouncy! +brick1.tooltip=Somewhat expensive +brick2.tooltip=Very expensive +brick3.tooltip=Emits Redstone signal up to +brick4.tooltip=4 blocks away +brick5.tooltip=Bouncy! +craftedsoil.slab1.tooltip=Heals ye Dead +craftedsoil.slab2.tooltip=Bloodies ye Dead +speedblock1.tooltip=You run pretty fast on it +speedblock2.tooltip=You run a bit faster on it +speedblock.slab1.tooltip=You run pretty fast on it +speedblock.slab2.tooltip=You run a bit faster on it +manual1.tooltip=By: Skyla +manual2.tooltip=By: Skyla +manual3.tooltip=By: Thruul M'gon +searedtank1.tooltip=Contains +searedtank2.tooltip=Keeps any fluids it has when harvested +oreberries1.tooltip=Sweet Irony +oreberries2.tooltip=Pure Luster +oreberries3.tooltip=Tastes like metal +oreberries4.tooltip=Tin Man +oreberries5.tooltip=White Chocolate +oreberries6.tooltip=Tastes like Creeper +item.crafting.tooltip=Crafting Item +item.accessory.tooltip=Accessory +canister.tooltip=Permanent health increase +canister.red.tooltip1=Part of low-level Heart Canisters +canister.red.tooltip2=Can be eaten to restore 10 hearts +canister.yellow.tooltip1=Part of mid-level Heart Canisters +canister.yellow.tooltip2=Can be eaten to restore 20 hearts +canister.green.tooltip1=Part of high-level Heart Canisters +canister.green.tooltip2=Can be eaten to restore 30 hearts +landmine1.tooltip=everything +landmine2.tooltip=mobs, players and redstone +landmine3.tooltip=players and redstone +landmine4.tooltip=redstone only +landmine5.tooltip=Interacts with: +goldenhead1.tooltip=Some say consuming the head of a +goldenhead2.tooltip=fallen foe strengthens the blood +oreberrybush1.tooltip=Sweet Irony +oreberrybush2.tooltip=Pure Luster +oreberrybush3.tooltip=Tastes like metal +oreberrybush4.tooltip=Tin Man +oreberrybush5.tooltip=White Chocolate +oreberrybush6.tooltip=Tastes like Creeper +barricade.tooltip=Stacks up to 4 times +pattern1.tooltip=Material Cost: +pattern2.tooltip=Material Cost: +potionlauncher.tooltip=Bloody test item +smeltery.controller.tooltip=Brain of ye Smelteree +smeltery.drain.tooltip1=Works both as input and output for +smeltery.drain.tooltip2=fluids in the Smelteree +smeltery.brick.tooltip1=Smelteree structure block +smeltery.brick.tooltip2=(Safe for decoration) + +gui.smeltery.fuel=Fuel +gui.smeltery.emerald=Emeralds: +gui.smeltery.glass.block=Blocks: +gui.smeltery.glass.pannel=Pannels: +gui.smeltery.metal.ingot=Ingots: +gui.smeltery.metal.nugget=Nuggets: +gui.smeltery.molten.check=Molten +gui.landmine=Landmine +gui.partcrafter1=Tool Part Crafting +gui.partcrafter2=Tool Part Building +gui.partcrafter3=Place a pattern and a material on the left to get started. +gui.partcrafter4=Base Durability: +gui.partcrafter5=Handle Modifier: +gui.partcrafter6=Mining Speed: +gui.partcrafter7=Mining Level: +gui.partcrafter8= Heart +gui.partcrafter9= Hearts +gui.partcrafter10=Attack: +gui.partcrafter.mining1=Stone +gui.partcrafter.mining2=Iron +gui.partcrafter.mining3=Redstone +gui.partcrafter.mining4=Obsidian +gui.partcrafter.mining5=Cobalt +gui.partcrafter.mining6=Manyullyn +gui.stenciltable1=Next Pattern +gui.stenciltable2=Previous Pattern +gui.toolforge1=Repair and Modification +gui.toolforge2=The main way to repair or change your tools. Place a tool and a material on the left to get started. +gui.toolstation1=Durability: +gui.toolstation2=Durability: +gui.toolstation3=Attack: +gui.toolstation4=Bonus: +gui.toolstation5=Loss: +gui.toolstation6=Draw Speed: +gui.toolstation7=Arrow Speed: +gui.toolstation8=Weight: +gui.toolstation9=Accuracy: +gui.toolstation10=Base Attack: +gui.toolstation11=Shortbow Attack: +gui.toolstation12=Mining Speeds: +gui.toolstation13=Harvest Levels: +gui.toolstation14=Mining Speed: +gui.toolstation15=Mining Level: +gui.toolstation16=Usage Speed: +gui.toolstation17=Modifiers +gui.toolstation18=Modifiers remaining: + +gui.partbuilder.material.wood=Wood +gui.partbuilder.material.stone=Stone +gui.partbuilder.material.iron=Iron +gui.partbuilder.material.flint=Flint +gui.partbuilder.material.cactus=Cactus +gui.partbuilder.material.bone=Bone +gui.partbuilder.material.obsidian=Obsidian +gui.partbuilder.material.netherrack=Netherrack +gui.partbuilder.material.slime=Slime +gui.partbuilder.material.paper=Paper +gui.partbuilder.material.blueslime=BlueSlime +gui.partbuilder.material.cobalt=Cobalt +gui.partbuilder.material.ardite=ARRdite +gui.partbuilder.material.manyullyn=Manyullyn +gui.partbuilder.material.copper=Copper +gui.partbuilder.material.bronze=Bronze +gui.partbuilder.material.alumite=Alumite +gui.partbuilder.material.steel=Steel +gui.partbuilder.material.pigiron=Pigiron +gui.partbuilder.material.thaumium=Thaumium + +gui.modifier.blaze=Blaze +gui.modifier.silk=Silk Touch +gui.modifier.lapis=Lapis +gui.modifier.redstone=Redstone +gui.modifier.diamond=Diamond +gui.modifier.emerald=Emerald +gui.modifier.moss=Moss +gui.modifier.lava=Lava +gui.modifier.necro=Necrotic +gui.modifier.spider=Anti-Spider +gui.modifier.quartz=Quartz + +modifier.armour.jump.double=Double-Jump +modifier.armour.jump.triple=Triple-Jump +modifier.armour.jump.quad=Quadruple-Jump +modifier.armour.protection= +modifier.tool.spider=Bane of Arthropods +modifier.tool.quartz=Sharpness +modifier.tool.blaze=Fiery +modifier.tool.silk=Silky +modifier.tool.flux=Flux +modifier.tool.lapis=Luck +modifier.tool.piston=Knockback +modifier.tool.redstone=Haste +modifier.tool.reinforced=Reinforced +modifier.tool.unbreaking= +modifier.tool.smite=Smite +modifier.tool.diamond=Durability +500 +modifier.tool.emerald=Durability +50% +modifier.tool.moss=Auto-Repair +modifier.tool.lava=Auto-Smelt +modifier.tool.necro=Life Steal +modifier.tool.beheading=Beheading + +materialtraits.stonebound=Stonebound +materialtraits.jagged=Jagged +materialtraits.writable=Writable +materialtraits.tasty=Tasty +materialtraits.thaumic=Thaumic + +creativeModLock.tooltip=Target Lock: + +attribute.name.ammo.attackDamage=Average Shot Damage From bb70b06b98d536c579e3182f448e1165267f5f63 Mon Sep 17 00:00:00 2001 From: mDiyo Date: Tue, 29 Jul 2014 08:00:18 -0800 Subject: [PATCH 11/27] Add comment for magic number in HarvestTool --- src/main/java/tconstruct/library/tools/HarvestTool.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/tconstruct/library/tools/HarvestTool.java b/src/main/java/tconstruct/library/tools/HarvestTool.java index 5246d0e0..6aa91f94 100644 --- a/src/main/java/tconstruct/library/tools/HarvestTool.java +++ b/src/main/java/tconstruct/library/tools/HarvestTool.java @@ -47,6 +47,7 @@ public abstract class HarvestTool extends ToolCore float blockHardness = block.getBlockHardness(world, x, y, z); float localHardness = localBlock == null ? Float.MAX_VALUE : localBlock.getBlockHardness(world, x, y, z); + //Choose blocks that aren't too much harder than the first block. Stone: 2.0, Ores: 3.0 if (hlvl <= toolLevel && localHardness - 1.5 <= blockHardness) { boolean cancelHarvest = false; From f1ba2b2c50d6eaa9fcfdaede6a6542536cd6b1c6 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Wed, 30 Jul 2014 10:52:17 +0200 Subject: [PATCH 12/27] ModIntegration: Fix CertusQuartz not being registered correctly as Attack Modifier --- src/main/java/tconstruct/tools/TinkerToolEvents.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/tconstruct/tools/TinkerToolEvents.java b/src/main/java/tconstruct/tools/TinkerToolEvents.java index a39932b6..fc3a08e1 100644 --- a/src/main/java/tconstruct/tools/TinkerToolEvents.java +++ b/src/main/java/tconstruct/tools/TinkerToolEvents.java @@ -423,7 +423,7 @@ public class TinkerToolEvents TinkerTools.modAttack.addStackToMatchList(evt.Ore, 2); } - else if (evt.Name == "crystalCerusQuartz") + else if (evt.Name == "crystalCertusQuartz") { TinkerTools.modAttack.addStackToMatchList(evt.Ore, 24); } From f6877b55cbbcc0a845612e465a1f45369d758f59 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Wed, 30 Jul 2014 12:54:16 +0200 Subject: [PATCH 13/27] Bugfix: Blaze modifier didn't stack its levels properly. Broke after 1st level because it only checked for it's first maximum. --- src/main/java/tconstruct/modifiers/tools/ModBlaze.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/tconstruct/modifiers/tools/ModBlaze.java b/src/main/java/tconstruct/modifiers/tools/ModBlaze.java index 78025567..03f1d09a 100644 --- a/src/main/java/tconstruct/modifiers/tools/ModBlaze.java +++ b/src/main/java/tconstruct/modifiers/tools/ModBlaze.java @@ -51,7 +51,7 @@ public class ModBlaze extends ItemModTypeFilter if (tags.hasKey(key)) { int[] keyPair = tags.getIntArray(key); - if (keyPair[0] == max) + if (keyPair[0] % max == 0) { keyPair[0] += increase; keyPair[1] += max; From 527934d277cceab18fac3483f658fd3e8a92fbc8 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Wed, 30 Jul 2014 13:31:13 +0200 Subject: [PATCH 14/27] Bugfix: It was possible to add more than to redstone/lapis/... modifiers if they were exactly at a lvlup threshold --- src/main/java/tconstruct/modifiers/tools/ModAntiSpider.java | 3 +++ src/main/java/tconstruct/modifiers/tools/ModAttack.java | 3 +++ src/main/java/tconstruct/modifiers/tools/ModBlaze.java | 3 +++ src/main/java/tconstruct/modifiers/tools/ModLapis.java | 3 +++ src/main/java/tconstruct/modifiers/tools/ModPiston.java | 3 +++ src/main/java/tconstruct/modifiers/tools/ModRedstone.java | 5 ++++- src/main/java/tconstruct/modifiers/tools/ModSmite.java | 3 +++ 7 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/tconstruct/modifiers/tools/ModAntiSpider.java b/src/main/java/tconstruct/modifiers/tools/ModAntiSpider.java index b1108a79..7e1e0c79 100644 --- a/src/main/java/tconstruct/modifiers/tools/ModAntiSpider.java +++ b/src/main/java/tconstruct/modifiers/tools/ModAntiSpider.java @@ -24,6 +24,9 @@ public class ModAntiSpider extends ItemModTypeFilter if (!tags.hasKey(key)) return tags.getInteger("Modifiers") > 0 && matchingAmount(input) <= max; + if(matchingAmount(input) > max) + return false; + int keyPair[] = tags.getIntArray(key); if (keyPair[0] + matchingAmount(input) <= keyPair[1]) return true; diff --git a/src/main/java/tconstruct/modifiers/tools/ModAttack.java b/src/main/java/tconstruct/modifiers/tools/ModAttack.java index d3751d94..b2caff6e 100644 --- a/src/main/java/tconstruct/modifiers/tools/ModAttack.java +++ b/src/main/java/tconstruct/modifiers/tools/ModAttack.java @@ -45,6 +45,9 @@ public class ModAttack extends ItemModTypeFilter if (!validType(toolItem)) return false; + if(matchingAmount(input) > max) + return false; + NBTTagCompound tags = tool.getTagCompound().getCompoundTag(toolItem.getBaseTagName()); if (!tags.hasKey(key)) return tags.getInteger("Modifiers") > 0 && matchingAmount(input) <= max; diff --git a/src/main/java/tconstruct/modifiers/tools/ModBlaze.java b/src/main/java/tconstruct/modifiers/tools/ModBlaze.java index 03f1d09a..b1b390a1 100644 --- a/src/main/java/tconstruct/modifiers/tools/ModBlaze.java +++ b/src/main/java/tconstruct/modifiers/tools/ModBlaze.java @@ -28,6 +28,9 @@ public class ModBlaze extends ItemModTypeFilter if (!validType(toolItem)) return false; + if(matchingAmount(input) > max) + return false; + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); if (!tags.hasKey(key)) return tags.getInteger("Modifiers") > 0 && matchingAmount(input) <= max; diff --git a/src/main/java/tconstruct/modifiers/tools/ModLapis.java b/src/main/java/tconstruct/modifiers/tools/ModLapis.java index 175a2cd4..a959907a 100644 --- a/src/main/java/tconstruct/modifiers/tools/ModLapis.java +++ b/src/main/java/tconstruct/modifiers/tools/ModLapis.java @@ -33,6 +33,9 @@ public class ModLapis extends ItemModTypeFilter if (!validType(toolItem)) return false; + if(matchingAmount(input) > max) + return false; + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); if (tags.getBoolean("Silk Touch")) diff --git a/src/main/java/tconstruct/modifiers/tools/ModPiston.java b/src/main/java/tconstruct/modifiers/tools/ModPiston.java index 799b88be..ce4adcf7 100644 --- a/src/main/java/tconstruct/modifiers/tools/ModPiston.java +++ b/src/main/java/tconstruct/modifiers/tools/ModPiston.java @@ -29,6 +29,9 @@ public class ModPiston extends ItemModTypeFilter if (!validType(toolItem)) return false; + if(matchingAmount(input) > max) + return false; + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); if (!tags.hasKey(key)) return tags.getInteger("Modifiers") > 0 && matchingAmount(input) <= max; diff --git a/src/main/java/tconstruct/modifiers/tools/ModRedstone.java b/src/main/java/tconstruct/modifiers/tools/ModRedstone.java index 0abdc614..481bb570 100644 --- a/src/main/java/tconstruct/modifiers/tools/ModRedstone.java +++ b/src/main/java/tconstruct/modifiers/tools/ModRedstone.java @@ -28,14 +28,17 @@ public class ModRedstone extends ItemModTypeFilter if (!validType(toolItem)) return false; + if(matchingAmount(input) > max) + return false; + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); if (!tags.hasKey(key)) return tags.getInteger("Modifiers") > 0 && matchingAmount(input) <= max; int keyPair[] = tags.getIntArray(key); + if (keyPair[0] + matchingAmount(input) <= keyPair[1]) return true; - else if (keyPair[0] == keyPair[1]) return tags.getInteger("Modifiers") > 0; } diff --git a/src/main/java/tconstruct/modifiers/tools/ModSmite.java b/src/main/java/tconstruct/modifiers/tools/ModSmite.java index aa733b24..9d6c829f 100644 --- a/src/main/java/tconstruct/modifiers/tools/ModSmite.java +++ b/src/main/java/tconstruct/modifiers/tools/ModSmite.java @@ -19,6 +19,9 @@ public class ModSmite extends ItemModTypeFilter @Override protected boolean canModify (ItemStack tool, ItemStack[] input) { + if(matchingAmount(input) > max) + return false; + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); if (!tags.hasKey(key)) return tags.getInteger("Modifiers") > 0 && matchingAmount(input) <= max; From 2f5910c08eec6dce70fa9b8dacce716500acf69f Mon Sep 17 00:00:00 2001 From: jodamm Date: Wed, 30 Jul 2014 21:33:42 +0200 Subject: [PATCH 15/27] removed localBlock and localMeta in HarvestTool.java because block and localBlock is always the same. moved the block harvesting in own method fixes some blocks not droping or not breaking at all. fixes exp drop with silktouch --- .../library/tools/DualHarvestTool.java | 7 +-- .../tconstruct/library/tools/HarvestTool.java | 54 +++++++++++-------- 2 files changed, 34 insertions(+), 27 deletions(-) diff --git a/src/main/java/tconstruct/library/tools/DualHarvestTool.java b/src/main/java/tconstruct/library/tools/DualHarvestTool.java index e7d95632..9fe792ca 100644 --- a/src/main/java/tconstruct/library/tools/DualHarvestTool.java +++ b/src/main/java/tconstruct/library/tools/DualHarvestTool.java @@ -52,12 +52,7 @@ public abstract class DualHarvestTool extends HarvestTool { if (!player.capabilities.isCreativeMode) { - // Workaround for dropping experience - int fortune = EnchantmentHelper.getFortuneModifier(player); - int exp = block.getExpDrop(world, meta, fortune); - block.dropXpOnBlockBreak(world, x, y, z, exp); - - onBlockDestroyed(stack, world, block, x, y, z, player); + mineBlock(world, x, y, z, meta, player, block); } WorldHelper.setBlockToAir(world, x, y, z); if (!world.isRemote) diff --git a/src/main/java/tconstruct/library/tools/HarvestTool.java b/src/main/java/tconstruct/library/tools/HarvestTool.java index 6aa91f94..40128b8f 100644 --- a/src/main/java/tconstruct/library/tools/HarvestTool.java +++ b/src/main/java/tconstruct/library/tools/HarvestTool.java @@ -39,16 +39,12 @@ public abstract class HarvestTool extends ToolCore int hlvl = -1; if (!(tags.getBoolean("Broken"))) { - Block localBlock = world.getBlock(x, y, z); - int localMeta = world.getBlockMetadata(x, y, z); if (block.getHarvestTool(meta) != null && block.getHarvestTool(meta).equals(this.getHarvestType())) hlvl = block.getHarvestLevel(meta); int toolLevel = tags.getInteger("HarvestLevel"); float blockHardness = block.getBlockHardness(world, x, y, z); - float localHardness = localBlock == null ? Float.MAX_VALUE : localBlock.getBlockHardness(world, x, y, z); - //Choose blocks that aren't too much harder than the first block. Stone: 2.0, Ores: 3.0 - if (hlvl <= toolLevel && localHardness - 1.5 <= blockHardness) + if (hlvl <= toolLevel) { boolean cancelHarvest = false; for (ActiveToolMod mod : TConstructRegistry.activeModifiers) @@ -59,21 +55,22 @@ public abstract class HarvestTool extends ToolCore if (!cancelHarvest) { - if (localBlock != null && !(localHardness < 0)) + if (block != null) { boolean isEffective = false; for (int iter = 0; iter < getEffectiveMaterials().length; iter++) { - if (getEffectiveMaterials()[iter] == localBlock.getMaterial() || localBlock == Blocks.monster_egg) + if (getEffectiveMaterials()[iter] == block.getMaterial() || block == Blocks.monster_egg) { isEffective = true; break; } } - if (localBlock.getMaterial().isToolNotRequired()) + // Microblocks are registered as rock but no HarvestTool is set + if (block.getMaterial().isToolNotRequired() || block.getHarvestTool(meta) == null) { isEffective = true; } @@ -82,20 +79,9 @@ public abstract class HarvestTool extends ToolCore { if (isEffective) { - if (localBlock.removedByPlayer(world, player, x, y, z)) - { - localBlock.onBlockDestroyedByPlayer(world, x, y, z, localMeta); - } - - // Workaround for dropping experience - int fortune = EnchantmentHelper.getFortuneModifier(player); - int exp = localBlock.getExpDrop(world, localMeta, fortune); - localBlock.dropXpOnBlockBreak(world, x, y, z, exp); - - localBlock.harvestBlock(world, player, x, y, z, localMeta); - localBlock.onBlockHarvested(world, x, y, z, localMeta, player); + mineBlock(world, x, y, z, meta, player, block); if (blockHardness > 0f) - onBlockDestroyed(stack, world, localBlock, x, y, z, player); + onBlockDestroyed(stack, world, block, x, y, z, player); world.func_147479_m(x, y, z); } else @@ -309,4 +295,30 @@ public abstract class HarvestTool extends ToolCore int harvestLvl = tags.getInteger("HarvestLevel"); return harvestLvl; } + + // The Scythe is not a HarvestTool and can't call this method, if you change something here you might change it there too. + public void mineBlock(World world, int x, int y, int z, int meta, EntityPlayer player, Block block) + { + if (!world.isRemote) + { + // Workaround for dropping experience + boolean silktouch = EnchantmentHelper.getSilkTouchModifier(player); + int fortune = EnchantmentHelper.getFortuneModifier(player); + int exp = block.getExpDrop(world, meta, fortune); + + block.onBlockHarvested(world, x, y, z, meta, player); + if (block.removedByPlayer(world, player, x, y, z, true)) + { + block.onBlockDestroyedByPlayer(world, x, y, z, meta); + block.harvestBlock(world, player, x, y, z, meta); + // Workaround for dropping experience + if (!silktouch) + block.dropXpOnBlockBreak(world, x, y, z, exp); + } + } + else + { + block.onBlockDestroyedByPlayer(world, x, y, z, meta); + } + } } From 4aaf16c28832f51741195f170e208dcd4422b131 Mon Sep 17 00:00:00 2001 From: Mrkwtkr <1069894992@qq.com> Date: Thu, 31 Jul 2014 13:58:27 +0800 Subject: [PATCH 16/27] Update zh_CN.lang --- resources/assets/tinker/lang/zh_CN.lang | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/resources/assets/tinker/lang/zh_CN.lang b/resources/assets/tinker/lang/zh_CN.lang index 27c4ab14..dbab4c1b 100644 --- a/resources/assets/tinker/lang/zh_CN.lang +++ b/resources/assets/tinker/lang/zh_CN.lang @@ -127,6 +127,8 @@ tile.cloth.black.slab.name=黑色羊毛台阶 tile.GlueBlock.name=凝胶方块 tile.liquid.glue.name=凝胶 +tile.Frypan.name=煎锅 + item.oreberry.iron.name=铁矿莓 item.oreberry.gold.name=金矿莓 item.oreberry.copper.name=锡矿莓 @@ -528,6 +530,9 @@ entity.TConstruct.MiniGardy.name=迷你史莱姆护卫 key.tconstruct.category=匠魂 key.tarmor=装备界面 key.tcapes.reload=重载披风 +key.tbelt=腰带 +key.tgoggles=护目镜 +key.tzoom=放大 death.one.smeltery=%1$s被加工成了"绿色食品"! death.two.smeltery=%1$s被冶炼炉融化了! @@ -714,6 +719,7 @@ gui.smeltery.glass.block=方块: gui.smeltery.glass.pannel=板: gui.smeltery.metal.ingot=锭: gui.smeltery.metal.nugget=粒: +gui.smeltery.molten.check=熔融 gui.landmine=地雷 gui.partcrafter1=合成工具部件 gui.partcrafter2=锻造工具 From bb77a11227dd6a648e8aaf53b9b7520addc03c48 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Thu, 31 Jul 2014 16:38:47 +0200 Subject: [PATCH 17/27] Fix buckets not picking up molten metals --- src/main/java/tconstruct/smeltery/TinkerSmelteryEvents.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/tconstruct/smeltery/TinkerSmelteryEvents.java b/src/main/java/tconstruct/smeltery/TinkerSmelteryEvents.java index 8df83270..60b1e870 100644 --- a/src/main/java/tconstruct/smeltery/TinkerSmelteryEvents.java +++ b/src/main/java/tconstruct/smeltery/TinkerSmelteryEvents.java @@ -41,7 +41,7 @@ public class TinkerSmelteryEvents @SubscribeEvent public void bucketFill (FillBucketEvent evt) { - if (evt.current.getItem() == Items.bucket && evt.target.typeOfHit == MovingObjectType.ENTITY) + if (evt.current.getItem() == Items.bucket && evt.target.typeOfHit == MovingObjectType.BLOCK) { int hitX = evt.target.blockX; int hitY = evt.target.blockY; From 0ecf98a80b90a3aa868729b86725879022185232 Mon Sep 17 00:00:00 2001 From: Tonius Date: Thu, 31 Jul 2014 17:23:44 +0200 Subject: [PATCH 18/27] Fixed mod sounds not playing --- resources/{ => assets/tinker}/sounds.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename resources/{ => assets/tinker}/sounds.json (92%) diff --git a/resources/sounds.json b/resources/assets/tinker/sounds.json similarity index 92% rename from resources/sounds.json rename to resources/assets/tinker/sounds.json index fba310c2..4374951c 100644 --- a/resources/sounds.json +++ b/resources/assets/tinker/sounds.json @@ -11,7 +11,7 @@ "little_saw" ] }, - "frypan_hit": { + "launcher_clank": { "category": "neutral", "sounds": [ "launcher_clank" From 0160d7c889e31003280bc30ae2395a9303f79036 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Thu, 31 Jul 2014 18:09:19 +0200 Subject: [PATCH 19/27] Oh god how did I not notice this when I fixed the mistyped string. --- src/main/java/tconstruct/tools/TinkerToolEvents.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/tconstruct/tools/TinkerToolEvents.java b/src/main/java/tconstruct/tools/TinkerToolEvents.java index fc3a08e1..67196bb1 100644 --- a/src/main/java/tconstruct/tools/TinkerToolEvents.java +++ b/src/main/java/tconstruct/tools/TinkerToolEvents.java @@ -418,12 +418,12 @@ public class TinkerToolEvents public void registerOre (OreRegisterEvent evt) { - if (evt.Name == "crystalQuartz") + if (evt.Name.equals("crystalQuartz")) { TinkerTools.modAttack.addStackToMatchList(evt.Ore, 2); } - else if (evt.Name == "crystalCertusQuartz") + else if (evt.Name.equals("crystalCertusQuartz")) { TinkerTools.modAttack.addStackToMatchList(evt.Ore, 24); } From d05bbf107f99a825df06c88f17d18fc0c474f078 Mon Sep 17 00:00:00 2001 From: Tonius Date: Thu, 31 Jul 2014 19:18:25 +0200 Subject: [PATCH 20/27] Gave the two materials books distinct item names --- resources/assets/tinker/lang/en_US.lang | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/assets/tinker/lang/en_US.lang b/resources/assets/tinker/lang/en_US.lang index 88c1b996..f3f6f89c 100644 --- a/resources/assets/tinker/lang/en_US.lang +++ b/resources/assets/tinker/lang/en_US.lang @@ -417,8 +417,8 @@ item.tconstruct.Fletching.leaf.name=Leaf Fletching item.tconstruct.Fletching.slime.name=Slime Fletching item.tconstruct.Fletching.blueslime.name=Slime Fletching -item.tconstruct.manual.beginner.name=Materials and You -item.tconstruct.manual.toolstation.name=Materials and You +item.tconstruct.manual.beginner.name=Materials and You: Volume 1 +item.tconstruct.manual.toolstation.name=Materials and You: Volume 2 item.tconstruct.manual.smeltery.name=Mighty Smelting item.tconstruct.manual.diary.name=Diary of a Tinker From e9822db594ab58b831ccfa775d524493a3ae7f5b Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 31 Jul 2014 21:32:12 +0200 Subject: [PATCH 21/27] unified use of block / localBlock like it is in Hammer. block harvesting is in own method in HarvestTool except the scythe. fix for some blocks drop nothing or not breaking at all. fix for dropping exp with silktouch. --- .../tconstruct/items/tools/Battleaxe.java | 29 +++-------- .../tconstruct/items/tools/Excavator.java | 28 +++-------- .../java/tconstruct/items/tools/Hammer.java | 13 +---- .../tconstruct/items/tools/LumberAxe.java | 49 ++++++------------- .../java/tconstruct/items/tools/Scythe.java | 21 ++++++-- 5 files changed, 51 insertions(+), 89 deletions(-) diff --git a/src/main/java/tconstruct/items/tools/Battleaxe.java b/src/main/java/tconstruct/items/tools/Battleaxe.java index ca1afb74..6ee743e1 100644 --- a/src/main/java/tconstruct/items/tools/Battleaxe.java +++ b/src/main/java/tconstruct/items/tools/Battleaxe.java @@ -249,18 +249,16 @@ public class Battleaxe extends HarvestTool return false; World world = player.worldObj; - final Block wood = world.getBlock(x, y, z); + final Block block = world.getBlock(x, y, z); NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); final int meta = world.getBlockMetadata(x, y, z); - final int fortune = EnchantmentHelper.getFortuneModifier(player); for (int yPos = y + 1; yPos < y + 9; yPos++) { - Block block = world.getBlock(x, yPos, z); - if (!(tags.getBoolean("Broken")) && block != null && block.getMaterial() == Material.wood) + Block localBlock = world.getBlock(x, yPos, z); + if (!(tags.getBoolean("Broken")) && localBlock != null && localBlock.getMaterial() == Material.wood) { - Block localblock = world.getBlock(x, yPos, z); int localMeta = world.getBlockMetadata(x, yPos, z); - int hlvl = block.getHarvestLevel(meta); + int hlvl = localBlock.getHarvestLevel(localMeta); if (hlvl <= tags.getInteger("HarvestLevel")) { @@ -273,23 +271,12 @@ public class Battleaxe extends HarvestTool if (!cancelHarvest) { - if (block != null && block.getMaterial() == Material.wood) + if (localBlock != null && localBlock.getMaterial() == Material.wood) { - localMeta = world.getBlockMetadata(x, yPos, z); if (!player.capabilities.isCreativeMode) { - if (block.removedByPlayer(world, player, x, yPos, z)) - { - block.onBlockDestroyedByPlayer(world, x, yPos, z, localMeta); - } - - // Workaround for dropping experience - int exp = block.getExpDrop(world, localMeta, fortune); - block.dropXpOnBlockBreak(world, x, y, z, exp); - - block.harvestBlock(world, player, x, yPos, z, localMeta); - block.onBlockHarvested(world, x, yPos, z, localMeta, player); - onBlockDestroyed(stack, world, block, x, yPos, z, player); + mineBlock(world, x, yPos, z, localMeta, player, localBlock); + onBlockDestroyed(stack, world, localBlock, x, yPos, z, player); } else { @@ -303,7 +290,7 @@ public class Battleaxe extends HarvestTool break; } if (!world.isRemote) - world.playAuxSFX(2001, x, y, z, Block.getIdFromBlock(wood) + (meta << 12)); + world.playAuxSFX(2001, x, y, z, Block.getIdFromBlock(block) + (meta << 12)); return super.onBlockStartBreak(stack, x, y, z, player); } } diff --git a/src/main/java/tconstruct/items/tools/Excavator.java b/src/main/java/tconstruct/items/tools/Excavator.java index b3992cdf..569eaa7f 100644 --- a/src/main/java/tconstruct/items/tools/Excavator.java +++ b/src/main/java/tconstruct/items/tools/Excavator.java @@ -185,7 +185,6 @@ public class Excavator extends HarvestTool break; } NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); - int fortune = EnchantmentHelper.getFortuneModifier(player); for (int xPos = x - xRange; xPos <= x + xRange; xPos++) { for (int yPos = y - yRange; yPos <= y + yRange; yPos++) @@ -194,11 +193,10 @@ public class Excavator extends HarvestTool { if (!(tags.getBoolean("Broken"))) { - Block localblock = world.getBlock(xPos, yPos, zPos); - block = localblock; + Block localBlock = world.getBlock(xPos, yPos, zPos); int localMeta = world.getBlockMetadata(xPos, yPos, zPos); - int hlvl = block.getHarvestLevel(meta); - float localHardness = block == null ? Float.MAX_VALUE : block.getBlockHardness(world, xPos, yPos, zPos); + int hlvl = localBlock.getHarvestLevel(localMeta); + float localHardness = localBlock == null ? Float.MAX_VALUE : localBlock.getBlockHardness(world, xPos, yPos, zPos); if (hlvl <= tags.getInteger("HarvestLevel") && localHardness - 1.5 <= blockHardness) { @@ -211,27 +209,17 @@ public class Excavator extends HarvestTool if (!cancelHarvest) { - if (block != null && !(localHardness < 0)) + if (localBlock != null && !(localHardness < 0)) { for (int iter = 0; iter < materials.length; iter++) { - if (materials[iter] == block.getMaterial()) + if (materials[iter] == localBlock.getMaterial()) { if (!player.capabilities.isCreativeMode) { - if (block.removedByPlayer(world, player, xPos, yPos, zPos)) - { - block.onBlockDestroyedByPlayer(world, xPos, yPos, zPos, localMeta); - } - - // Workaround for dropping experience - int exp = block.getExpDrop(world, localMeta, fortune); - block.dropXpOnBlockBreak(world, xPos, yPos, zPos, exp); - - block.harvestBlock(world, player, xPos, yPos, zPos, localMeta); - block.onBlockHarvested(world, xPos, yPos, zPos, localMeta, player); - if (blockHardness > 0f) - onBlockDestroyed(stack, world, localblock, xPos, yPos, zPos, player); + mineBlock(world, xPos, yPos, zPos, localMeta, player, localBlock); + if (localHardness > 0f) + onBlockDestroyed(stack, world, localBlock, xPos, yPos, zPos, player); } else { diff --git a/src/main/java/tconstruct/items/tools/Hammer.java b/src/main/java/tconstruct/items/tools/Hammer.java index 45a9b43d..4b203ae0 100644 --- a/src/main/java/tconstruct/items/tools/Hammer.java +++ b/src/main/java/tconstruct/items/tools/Hammer.java @@ -284,7 +284,6 @@ public class Hammer extends HarvestTool NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); int toolLevel = tags.getInteger("HarvestLevel"); - int fortune = EnchantmentHelper.getFortuneModifier(player); for (int xPos = x - xRange; xPos <= x + xRange; xPos++) { for (int yPos = y - yRange; yPos <= y + yRange; yPos++) @@ -300,6 +299,7 @@ public class Hammer extends HarvestTool hlvl = localBlock.getHarvestLevel(localMeta); float localHardness = localBlock == null ? Float.MAX_VALUE : localBlock.getBlockHardness(world, xPos, yPos, zPos); + //Choose blocks that aren't too much harder than the first block. Stone: 2.0, Ores: 3.0 if (hlvl <= toolLevel && localHardness - 1.5 <= blockHardness) { boolean cancelHarvest = false; @@ -319,17 +319,8 @@ public class Hammer extends HarvestTool { if (!player.capabilities.isCreativeMode) { - if (localBlock.removedByPlayer(world, player, xPos, yPos, zPos)) - { - localBlock.onBlockDestroyedByPlayer(world, xPos, yPos, zPos, localMeta); - } + mineBlock(world, xPos, yPos, zPos, localMeta, player, localBlock); - // Workaround for dropping experience - int exp = localBlock.getExpDrop(world, localMeta, fortune); - localBlock.dropXpOnBlockBreak(world, xPos, yPos, zPos, exp); - - localBlock.harvestBlock(world, player, xPos, yPos, zPos, localMeta); - localBlock.onBlockHarvested(world, xPos, yPos, zPos, localMeta, player); if (blockHardness > 0f) onBlockDestroyed(stack, world, localBlock, xPos, yPos, zPos, player); world.func_147479_m(x, y, z); diff --git a/src/main/java/tconstruct/items/tools/LumberAxe.java b/src/main/java/tconstruct/items/tools/LumberAxe.java index 0c7cfb95..3d3b687a 100644 --- a/src/main/java/tconstruct/items/tools/LumberAxe.java +++ b/src/main/java/tconstruct/items/tools/LumberAxe.java @@ -198,9 +198,6 @@ public class LumberAxe extends HarvestTool void breakTree (World world, int x, int y, int z, ItemStack stack, NBTTagCompound tags, Block bID, int meta, EntityPlayer player) { - Block block; - final int fortune = EnchantmentHelper.getFortuneModifier(player); - for (int xPos = x - 1; xPos <= x + 1; xPos++) { for (int yPos = y; yPos <= y + 1; yPos++) @@ -209,12 +206,11 @@ public class LumberAxe extends HarvestTool { if (!(tags.getBoolean("Broken"))) { - Block localblock = world.getBlock(xPos, yPos, zPos); - if (bID == localblock) + Block localBlock = world.getBlock(xPos, yPos, zPos); + if (bID == localBlock) { - block = localblock; - meta = world.getBlockMetadata(xPos, yPos, zPos); - int hlvl = block.getHarvestLevel(meta); + int localMeta = world.getBlockMetadata(xPos, yPos, zPos); + int hlvl = localBlock.getHarvestLevel(localMeta); if (hlvl <= tags.getInteger("HarvestLevel")) { @@ -231,7 +227,7 @@ public class LumberAxe extends HarvestTool } else { - if (localblock == bID && world.getBlockMetadata(xPos, yPos, zPos) % 4 == meta % 4) + if (localBlock == bID && localMeta % 4 == meta % 4) { /* * world.setBlock(xPos, yPos, zPos, 0, @@ -245,24 +241,15 @@ public class LumberAxe extends HarvestTool */ if (!player.capabilities.isCreativeMode) { - if (block.removedByPlayer(world, player, xPos, yPos, zPos)) - { - block.onBlockDestroyedByPlayer(world, xPos, yPos, zPos, meta); - } - - // Workaround for dropping experience - int exp = localblock.getExpDrop(world, meta, fortune); - localblock.dropXpOnBlockBreak(world, xPos, yPos, zPos, exp); - - block.harvestBlock(world, player, xPos, yPos, zPos, meta); - block.onBlockHarvested(world, xPos, yPos, zPos, meta, player); - onBlockDestroyed(stack, world, localblock, xPos, yPos, zPos, player); + mineBlock(world, xPos, yPos, zPos, localMeta, player, localBlock); + onBlockDestroyed(stack, world, localBlock, xPos, yPos, zPos, player); } else { WorldHelper.setBlockToAir(world, xPos, yPos, zPos); } - breakTree(world, xPos, yPos, zPos, stack, tags, bID, meta, player); + if (!world.isRemote) + breakTree(world, xPos, yPos, zPos, stack, tags, bID, meta, player); } /* * else { Block leaves = @@ -288,8 +275,6 @@ public class LumberAxe extends HarvestTool void destroyWood (World world, int x, int y, int z, ItemStack stack, NBTTagCompound tags, EntityPlayer player) { - final int fortune = EnchantmentHelper.getFortuneModifier(player); - for (int xPos = x - 1; xPos <= x + 1; xPos++) { for (int yPos = y - 1; yPos <= y + 1; yPos++) @@ -298,11 +283,11 @@ public class LumberAxe extends HarvestTool { if (!(tags.getBoolean("Broken"))) { - Block block = world.getBlock(xPos, yPos, zPos); - int meta = world.getBlockMetadata(xPos, yPos, zPos); - int hlvl = block.getHarvestLevel(meta); + Block localBlock = world.getBlock(xPos, yPos, zPos); + int localMeta = world.getBlockMetadata(xPos, yPos, zPos); + int hlvl = localBlock.getHarvestLevel(localMeta); - if (block != null && block.getMaterial() == Material.wood) + if (localBlock != null && localBlock.getMaterial() == Material.wood) { if (hlvl <= tags.getInteger("HarvestLevel")) { @@ -317,12 +302,8 @@ public class LumberAxe extends HarvestTool { if (!player.capabilities.isCreativeMode) { - // TODO harvestBlock - int exp = block.getExpDrop(world, meta, fortune); - block.dropXpOnBlockBreak(world, xPos, yPos, zPos, exp); - - block.harvestBlock(world, player, xPos, yPos, zPos, meta); - onBlockDestroyed(stack, world, block, xPos, yPos, zPos, player); + mineBlock(world, xPos, yPos, zPos, localMeta, player, localBlock); + onBlockDestroyed(stack, world, localBlock, xPos, yPos, zPos, player); } WorldHelper.setBlockToAir(world, xPos, yPos, zPos); world.func_147479_m(xPos, yPos, zPos); diff --git a/src/main/java/tconstruct/items/tools/Scythe.java b/src/main/java/tconstruct/items/tools/Scythe.java index 4ede6ec1..a8e5271b 100644 --- a/src/main/java/tconstruct/items/tools/Scythe.java +++ b/src/main/java/tconstruct/items/tools/Scythe.java @@ -169,6 +169,7 @@ public class Scythe extends Weapon return false; NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); boolean butter = EnchantmentHelper.getEnchantmentLevel(Enchantment.silkTouch.effectId, stack) > 0; + int fortune = EnchantmentHelper.getFortuneModifier(player); for (int xPos = x - 1; xPos <= x + 1; xPos++) { for (int yPos = y - 1; yPos <= y + 1; yPos++) @@ -222,12 +223,26 @@ public class Scythe extends Weapon } else { - if (localBlock.removedByPlayer(world, player, xPos, yPos, zPos)) + if (!world.isRemote) + { + // Workaround for dropping experience + int exp = localBlock.getExpDrop(world, localMeta, fortune); + + localBlock.onBlockHarvested(world, xPos, yPos, zPos, localMeta, player); + if (localBlock.removedByPlayer(world, player, xPos, yPos, zPos, true)) + { + localBlock.onBlockDestroyedByPlayer(world, xPos, yPos, zPos, localMeta); + localBlock.harvestBlock(world, player, xPos, yPos, zPos, localMeta); + // Workaround for dropping experience + if (!butter) + localBlock.dropXpOnBlockBreak(world, xPos, yPos, zPos, exp); + } + } + else { localBlock.onBlockDestroyedByPlayer(world, xPos, yPos, zPos, localMeta); } - localBlock.harvestBlock(world, player, xPos, yPos, zPos, localMeta); - localBlock.onBlockHarvested(world, xPos, yPos, zPos, localMeta, player); + if (localHardness > 0f) onBlockDestroyed(stack, world, localBlock, xPos, yPos, zPos, player); } From 316dddbaa827c55a255043a3963adcd7e9bb51d6 Mon Sep 17 00:00:00 2001 From: Alexander Behrhof Date: Fri, 1 Aug 2014 22:48:20 -0400 Subject: [PATCH 22/27] Removing anything to do with capes, adding back the NEI, and IMC plugins --- src/main/java/tconstruct/TConstruct.java | 6 + .../java/tconstruct/client/TControls.java | 8 +- .../client/event/EventCloakRender.java | 175 ------------------ .../plugins/imc/TinkerBuildcraft.java | 37 ++++ .../plugins/imc/TinkerThaumcraft.java | 30 +++ .../tconstruct/plugins/nei/TinkerNEI.java | 28 +++ 6 files changed, 102 insertions(+), 182 deletions(-) delete mode 100644 src/main/java/tconstruct/client/event/EventCloakRender.java create mode 100644 src/main/java/tconstruct/plugins/imc/TinkerBuildcraft.java create mode 100644 src/main/java/tconstruct/plugins/imc/TinkerThaumcraft.java create mode 100644 src/main/java/tconstruct/plugins/nei/TinkerNEI.java diff --git a/src/main/java/tconstruct/TConstruct.java b/src/main/java/tconstruct/TConstruct.java index 7a7fad1c..88e97d05 100644 --- a/src/main/java/tconstruct/TConstruct.java +++ b/src/main/java/tconstruct/TConstruct.java @@ -21,6 +21,9 @@ import tconstruct.library.crafting.LiquidCasting; import tconstruct.mechworks.TinkerMechworks; import tconstruct.mechworks.landmine.behavior.Behavior; import tconstruct.mechworks.landmine.behavior.stackCombo.SpecialStackHandler; +import tconstruct.plugins.imc.TinkerBuildcraft; +import tconstruct.plugins.imc.TinkerThaumcraft; +import tconstruct.plugins.nei.TinkerNEI; import tconstruct.smeltery.TinkerSmeltery; import tconstruct.tools.TinkerTools; import tconstruct.util.EnvironmentChecks; @@ -107,6 +110,9 @@ public class TConstruct pulsar.registerPulse(new TinkerSmeltery()); pulsar.registerPulse(new TinkerMechworks()); pulsar.registerPulse(new TinkerArmor()); + pulsar.registerPulse(new TinkerNEI()); + pulsar.registerPulse(new TinkerThaumcraft()); + pulsar.registerPulse(new TinkerBuildcraft()); /*pulsar.registerPulse(new TinkerPrayers()); pulsar.registerPulse(new TinkerCropify());*/ diff --git a/src/main/java/tconstruct/client/TControls.java b/src/main/java/tconstruct/client/TControls.java index 8668ce91..6e038b7f 100644 --- a/src/main/java/tconstruct/client/TControls.java +++ b/src/main/java/tconstruct/client/TControls.java @@ -13,7 +13,6 @@ import tconstruct.armor.ArmorProxyClient; import tconstruct.armor.ArmorProxyCommon; import tconstruct.armor.PlayerAbilityHelper; import tconstruct.armor.items.TravelGear; -import tconstruct.client.event.EventCloakRender; import tconstruct.client.tabs.TabRegistry; import tconstruct.util.network.AccessoryInventoryPacket; import tconstruct.util.network.BeltPacket; @@ -25,7 +24,6 @@ public class TControls extends TKeyHandler { public static final String keybindCategory = "tconstruct.keybindings"; public static KeyBinding armorKey = new KeyBinding("key.tarmor", 24, keybindCategory); - public static KeyBinding refreshCapes = new KeyBinding("key.tcapes.reload", 88, keybindCategory); public static KeyBinding toggleGoggles = new KeyBinding("key.tgoggles", 34, keybindCategory); public static KeyBinding beltSwap = new KeyBinding("key.tbelt", 48, keybindCategory); public static KeyBinding zoomKey = new KeyBinding("key.tzoom", 44, keybindCategory); //TODO: Make this hold, not toggle @@ -46,7 +44,7 @@ public class TControls extends TKeyHandler public TControls() { - super(new KeyBinding[] { armorKey, refreshCapes, toggleGoggles, beltSwap, zoomKey }, new boolean[] { false, false, false, false, false }, getVanillaKeyBindings(), new boolean[] { false, false }); + super(new KeyBinding[] { armorKey, toggleGoggles, beltSwap, zoomKey }, new boolean[] { false, false, false, false }, getVanillaKeyBindings(), new boolean[] { false, false }); /*ClientRegistry.registerKeyBinding(armorKey); ClientRegistry.registerKeyBinding(refreshCapes); ClientRegistry.registerKeyBinding(toggleGoggles); @@ -76,10 +74,6 @@ public class TControls extends TKeyHandler { TabRegistry.addTabsToInventory((GuiContainer) mc.currentScreen); } - if (kb == refreshCapes && mc.currentScreen == null) - { - EventCloakRender.instance.refreshCapes(); - } if (kb == jumpKey) // Double jump { if (mc.thePlayer.capabilities.isCreativeMode) diff --git a/src/main/java/tconstruct/client/event/EventCloakRender.java b/src/main/java/tconstruct/client/event/EventCloakRender.java deleted file mode 100644 index 2507d365..00000000 --- a/src/main/java/tconstruct/client/event/EventCloakRender.java +++ /dev/null @@ -1,175 +0,0 @@ -package tconstruct.client.event; - -import java.awt.Graphics; -import java.awt.Image; -import java.awt.image.BufferedImage; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLConnection; -import java.util.ArrayList; -import java.util.HashMap; - -import javax.swing.ImageIcon; - -import mantle.lib.environment.EnvironmentChecks; -import net.minecraft.client.entity.AbstractClientPlayer; -import net.minecraftforge.client.event.RenderPlayerEvent; -import tconstruct.TConstruct; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; - -public class EventCloakRender -{ - - private final String serverLocation = "https://raw.github.com/SlimeKnights/TinkersConstruct/master/capes.txt"; - private final int timeout = 1000; - - private static final Graphics TEST_GRAPHICS = new BufferedImage(128, 128, BufferedImage.TYPE_INT_RGB).getGraphics(); - private HashMap cloaks = new HashMap(); - private ArrayList capePlayers = new ArrayList(); - - public static EventCloakRender instance; - - public EventCloakRender() - { - buildCloakURLDatabase(); - instance = this; - } - - @SubscribeEvent - public void onPreRenderSpecials (RenderPlayerEvent.Specials.Pre event) - { - if (Loader.isModLoaded("shadersmod") || EnvironmentChecks.hasOptifine) - { - return; - } - if (event.entityPlayer instanceof AbstractClientPlayer) - { - AbstractClientPlayer abstractClientPlayer = (AbstractClientPlayer) event.entityPlayer; - - if (!capePlayers.contains(abstractClientPlayer)) - { - String cloakURL = cloaks.get(event.entityPlayer.getDisplayName()); - - if (cloakURL == null) - { - return; - } - - capePlayers.add(abstractClientPlayer); - - //abstractClientPlayer.getTextureCape().textureUploaded = false; - //new Thread(new CloakThread(abstractClientPlayer, cloakURL)).start(); - //event.renderCape = true; - } - } - } - - public void buildCloakURLDatabase () - { - URL url; - try - { - url = new URL(serverLocation); - URLConnection con = url.openConnection(); - con.setConnectTimeout(timeout); - con.setReadTimeout(timeout); - InputStream io = con.getInputStream(); - BufferedReader br = new BufferedReader(new InputStreamReader(io)); - - String str; - int linetracker = 1; - while ((str = br.readLine()) != null) - { - if (!str.startsWith("--")) - { - if (str.contains(":")) - { - String nick = str.substring(0, str.indexOf(":")); - String link = str.substring(str.indexOf(":") + 1); - new Thread(new CloakPreload(link)).start(); - cloaks.put(nick, link); - } - else - { - TConstruct.logger.error("[SkinLoader] Syntax error on line " + linetracker + ": " + str); - } - } - linetracker++; - } - - br.close(); - } - catch (MalformedURLException e) - { - e.printStackTrace(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - private class CloakThread implements Runnable - { - - AbstractClientPlayer abstractClientPlayer; - String cloakURL; - - public CloakThread(AbstractClientPlayer player, String cloak) - { - abstractClientPlayer = player; - cloakURL = cloak; - } - - @Override - public void run () - { - try - { - Image cape = new ImageIcon(new URL(cloakURL)).getImage(); - //BufferedImage bo = new BufferedImage(cape.getWidth(null), cape.getHeight(null), BufferedImage.TYPE_INT_ARGB); - //bo.getGraphics().drawImage(cape, 0, 0, null); - //abstractClientPlayer.getTextureCape().setBufferedImage(bo); - } - catch (MalformedURLException e) - { - e.printStackTrace(); - } - } - } - - private class CloakPreload implements Runnable - { - String cloakURL; - - public CloakPreload(String link) - { - cloakURL = link; - } - - @Override - public void run () - { - try - { - TEST_GRAPHICS.drawImage(new ImageIcon(new URL(cloakURL)).getImage(), 0, 0, null); - } - catch (MalformedURLException e) - { - e.printStackTrace(); - } - } - } - - public void refreshCapes () - { - cloaks.clear(); - capePlayers.clear(); - buildCloakURLDatabase(); - } -} diff --git a/src/main/java/tconstruct/plugins/imc/TinkerBuildcraft.java b/src/main/java/tconstruct/plugins/imc/TinkerBuildcraft.java new file mode 100644 index 00000000..112581a3 --- /dev/null +++ b/src/main/java/tconstruct/plugins/imc/TinkerBuildcraft.java @@ -0,0 +1,37 @@ +package tconstruct.plugins.imc; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import mantle.pulsar.pulse.Handler; +import mantle.pulsar.pulse.Pulse; +import tconstruct.TConstruct; +import tconstruct.smeltery.TinkerSmeltery; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLInterModComms; +import cpw.mods.fml.common.registry.GameRegistry.ObjectHolder; + +@ObjectHolder(TConstruct.modID) +@Pulse(id = "Tinkers Buildcraft addon", description = "The Builcraft addon for Tinkers.", modsRequired = "BuildCraft|Transport", forced = true) +public class TinkerBuildcraft { + + @Handler + public void init (FMLInitializationEvent event) + { + TConstruct.logger.info("[BC|Transport] Registering facades."); + // Smeltery Blocks + addFacade(TinkerSmeltery.smeltery, 2); + for (int sc = 4; sc < 11; sc++) + { + addFacade(TinkerSmeltery.smeltery, sc); + } + + addFacade(TinkerSmeltery.searedBlock, 0); + addFacade(TinkerSmeltery.searedBlockNether, 0); + } + + private void addFacade (Block b, int meta) + { + FMLInterModComms.sendMessage("BuildCraft|Transport", "add-facade", new ItemStack(b, 1, meta)); + } + +} diff --git a/src/main/java/tconstruct/plugins/imc/TinkerThaumcraft.java b/src/main/java/tconstruct/plugins/imc/TinkerThaumcraft.java new file mode 100644 index 00000000..efa6a81c --- /dev/null +++ b/src/main/java/tconstruct/plugins/imc/TinkerThaumcraft.java @@ -0,0 +1,30 @@ +package tconstruct.plugins.imc; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import mantle.pulsar.pulse.Handler; +import mantle.pulsar.pulse.Pulse; +import tconstruct.TConstruct; +import tconstruct.smeltery.TinkerSmeltery; +import tconstruct.world.TinkerWorld; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLInterModComms; +import cpw.mods.fml.common.registry.GameRegistry.ObjectHolder; + +@ObjectHolder(TConstruct.modID) +@Pulse(id = "Tinkers Thaumcraft addon", description = "The Thaumcraft addon for Tinkers.", modsRequired = "Thaumcraft", forced = true) +public class TinkerThaumcraft { + + @Handler + public void init(FMLInitializationEvent event) + { + TConstruct.logger.info("[Thaumcraft] Registering harvestables."); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(TinkerWorld.oreBerry, 1, 12)); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(TinkerWorld.oreBerry, 1, 13)); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(TinkerWorld.oreBerry, 1, 14)); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(TinkerWorld.oreBerry, 1, 15)); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(TinkerWorld.oreBerrySecond, 1, 12)); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(TinkerWorld.oreBerrySecond, 1, 13)); + } + +} diff --git a/src/main/java/tconstruct/plugins/nei/TinkerNEI.java b/src/main/java/tconstruct/plugins/nei/TinkerNEI.java new file mode 100644 index 00000000..c4ed3abe --- /dev/null +++ b/src/main/java/tconstruct/plugins/nei/TinkerNEI.java @@ -0,0 +1,28 @@ +package tconstruct.plugins.nei; + +import codechicken.nei.api.API; +import codechicken.nei.recipe.DefaultOverlayHandler; +import mantle.pulsar.pulse.Handler; +import mantle.pulsar.pulse.Pulse; +import tconstruct.TConstruct; +import tconstruct.tools.gui.CraftingStationGui; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.registry.GameRegistry.ObjectHolder; +import cpw.mods.fml.relauncher.Side; + +@ObjectHolder(TConstruct.modID) +@Pulse(id = "Tinkers Not Enough Items Addon", description = "The NEI addon for Tinkers.", modsRequired = "NotEnoughItems", forced = true) +public class TinkerNEI { + + @Handler + public void init (FMLInitializationEvent event) + { + if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) + { + API.registerGuiOverlay(CraftingStationGui.class, "crafting"); + API.registerGuiOverlayHandler(CraftingStationGui.class, new DefaultOverlayHandler(), "crafting"); + } + } + +} From 050c4277e08afd4e62c2556434b8d61a0997f25d Mon Sep 17 00:00:00 2001 From: Arthur Uzulin Date: Sat, 2 Aug 2014 12:50:41 +1000 Subject: [PATCH 23/27] Update gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 475ae5f3..b3986505 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ Thumbs.db /.gradle /build/ /run/ +/ui/ #IDEA files from Gradle .idea/ /*.iml From 580f8b086ff1af1283fe53e0046d8b66464841b5 Mon Sep 17 00:00:00 2001 From: Alexander Behrhof Date: Fri, 1 Aug 2014 23:16:58 -0400 Subject: [PATCH 24/27] Changing a few things with IMC, NEI, removing buildcraft IMC --- src/main/java/tconstruct/TConstruct.java | 2 - .../plugins/imc/TinkerBuildcraft.java | 37 ------------------- .../plugins/imc/TinkerThaumcraft.java | 7 ++-- .../tconstruct/plugins/nei/NEICompat.java | 21 +++++++++++ .../tconstruct/plugins/nei/TinkerNEI.java | 19 ++++------ 5 files changed, 32 insertions(+), 54 deletions(-) delete mode 100644 src/main/java/tconstruct/plugins/imc/TinkerBuildcraft.java create mode 100644 src/main/java/tconstruct/plugins/nei/NEICompat.java diff --git a/src/main/java/tconstruct/TConstruct.java b/src/main/java/tconstruct/TConstruct.java index 88e97d05..9d209038 100644 --- a/src/main/java/tconstruct/TConstruct.java +++ b/src/main/java/tconstruct/TConstruct.java @@ -21,7 +21,6 @@ import tconstruct.library.crafting.LiquidCasting; import tconstruct.mechworks.TinkerMechworks; import tconstruct.mechworks.landmine.behavior.Behavior; import tconstruct.mechworks.landmine.behavior.stackCombo.SpecialStackHandler; -import tconstruct.plugins.imc.TinkerBuildcraft; import tconstruct.plugins.imc.TinkerThaumcraft; import tconstruct.plugins.nei.TinkerNEI; import tconstruct.smeltery.TinkerSmeltery; @@ -112,7 +111,6 @@ public class TConstruct pulsar.registerPulse(new TinkerArmor()); pulsar.registerPulse(new TinkerNEI()); pulsar.registerPulse(new TinkerThaumcraft()); - pulsar.registerPulse(new TinkerBuildcraft()); /*pulsar.registerPulse(new TinkerPrayers()); pulsar.registerPulse(new TinkerCropify());*/ diff --git a/src/main/java/tconstruct/plugins/imc/TinkerBuildcraft.java b/src/main/java/tconstruct/plugins/imc/TinkerBuildcraft.java deleted file mode 100644 index 112581a3..00000000 --- a/src/main/java/tconstruct/plugins/imc/TinkerBuildcraft.java +++ /dev/null @@ -1,37 +0,0 @@ -package tconstruct.plugins.imc; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import mantle.pulsar.pulse.Handler; -import mantle.pulsar.pulse.Pulse; -import tconstruct.TConstruct; -import tconstruct.smeltery.TinkerSmeltery; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLInterModComms; -import cpw.mods.fml.common.registry.GameRegistry.ObjectHolder; - -@ObjectHolder(TConstruct.modID) -@Pulse(id = "Tinkers Buildcraft addon", description = "The Builcraft addon for Tinkers.", modsRequired = "BuildCraft|Transport", forced = true) -public class TinkerBuildcraft { - - @Handler - public void init (FMLInitializationEvent event) - { - TConstruct.logger.info("[BC|Transport] Registering facades."); - // Smeltery Blocks - addFacade(TinkerSmeltery.smeltery, 2); - for (int sc = 4; sc < 11; sc++) - { - addFacade(TinkerSmeltery.smeltery, sc); - } - - addFacade(TinkerSmeltery.searedBlock, 0); - addFacade(TinkerSmeltery.searedBlockNether, 0); - } - - private void addFacade (Block b, int meta) - { - FMLInterModComms.sendMessage("BuildCraft|Transport", "add-facade", new ItemStack(b, 1, meta)); - } - -} diff --git a/src/main/java/tconstruct/plugins/imc/TinkerThaumcraft.java b/src/main/java/tconstruct/plugins/imc/TinkerThaumcraft.java index efa6a81c..bad0b53b 100644 --- a/src/main/java/tconstruct/plugins/imc/TinkerThaumcraft.java +++ b/src/main/java/tconstruct/plugins/imc/TinkerThaumcraft.java @@ -12,11 +12,12 @@ import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.registry.GameRegistry.ObjectHolder; @ObjectHolder(TConstruct.modID) -@Pulse(id = "Tinkers Thaumcraft addon", description = "The Thaumcraft addon for Tinkers.", modsRequired = "Thaumcraft", forced = true) -public class TinkerThaumcraft { +@Pulse(id = "Tinkers Thaumcraft Compatibility", description = "Tinkers Construct compatibility for Thaumcraft", modsRequired = "Thaumcraft") +public class TinkerThaumcraft +{ @Handler - public void init(FMLInitializationEvent event) + public void init (FMLInitializationEvent event) { TConstruct.logger.info("[Thaumcraft] Registering harvestables."); FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(TinkerWorld.oreBerry, 1, 12)); diff --git a/src/main/java/tconstruct/plugins/nei/NEICompat.java b/src/main/java/tconstruct/plugins/nei/NEICompat.java new file mode 100644 index 00000000..9417aa90 --- /dev/null +++ b/src/main/java/tconstruct/plugins/nei/NEICompat.java @@ -0,0 +1,21 @@ +package tconstruct.plugins.nei; + +import tconstruct.tools.gui.CraftingStationGui; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.common.FMLCommonHandler; +import codechicken.nei.recipe.DefaultOverlayHandler; +import codechicken.nei.api.API; + +public class NEICompat +{ + + public static void registerNEICompat () + { + if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) + { + API.registerGuiOverlay(CraftingStationGui.class, "crafting"); + API.registerGuiOverlayHandler(CraftingStationGui.class, new DefaultOverlayHandler(), "crafting"); + } + } + +} diff --git a/src/main/java/tconstruct/plugins/nei/TinkerNEI.java b/src/main/java/tconstruct/plugins/nei/TinkerNEI.java index c4ed3abe..d3326fa2 100644 --- a/src/main/java/tconstruct/plugins/nei/TinkerNEI.java +++ b/src/main/java/tconstruct/plugins/nei/TinkerNEI.java @@ -1,28 +1,23 @@ package tconstruct.plugins.nei; -import codechicken.nei.api.API; -import codechicken.nei.recipe.DefaultOverlayHandler; import mantle.pulsar.pulse.Handler; import mantle.pulsar.pulse.Pulse; import tconstruct.TConstruct; -import tconstruct.tools.gui.CraftingStationGui; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry.ObjectHolder; import cpw.mods.fml.relauncher.Side; @ObjectHolder(TConstruct.modID) -@Pulse(id = "Tinkers Not Enough Items Addon", description = "The NEI addon for Tinkers.", modsRequired = "NotEnoughItems", forced = true) -public class TinkerNEI { - +@Pulse(id = "Tinkers NEI Compatibility", description = "Tinkers Construct compatibility for NEI", modsRequired = "NotEnoughItems") +public class TinkerNEI +{ + @Handler public void init (FMLInitializationEvent event) { - if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) - { - API.registerGuiOverlay(CraftingStationGui.class, "crafting"); - API.registerGuiOverlayHandler(CraftingStationGui.class, new DefaultOverlayHandler(), "crafting"); - } + TConstruct.logger.info("NotEnoughItems detected. Registering TConstruct NEI plugin."); + NEICompat.registerNEICompat(); } - + } From f3372c1a476ba9815e5d97de3ae84cc942f9580f Mon Sep 17 00:00:00 2001 From: Arthur Uzulin Date: Sat, 2 Aug 2014 13:24:00 +1000 Subject: [PATCH 25/27] Update gitignore again --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index b3986505..b02625fb 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ Thumbs.db /build/ /run/ /ui/ +gradle-app.setting #IDEA files from Gradle .idea/ /*.iml @@ -29,6 +30,7 @@ version.properties /.classpath /.project /.settings/ +/eclipse/.metadata/ /debug/ *.lock /.metadata/ From 7e363e64a20aee18a95457287ddac3d815a42e31 Mon Sep 17 00:00:00 2001 From: mDiyo Date: Fri, 1 Aug 2014 20:44:41 -0800 Subject: [PATCH 26/27] Update build.gradle --- build.gradle | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/build.gradle b/build.gradle index e74e7d11..d3b994b4 100644 --- a/build.gradle +++ b/build.gradle @@ -178,36 +178,9 @@ if (!project.hasProperty("keystore_user_password")) // keystore user pass ext.keystore_user_password = ""; if (System.getenv().KSK_PW != null) ext.keystore_user_password =System.getenv().KSK_PW; -task("signJar", dependsOn: "build") -{ - inputs.file jar.getArchivePath() - inputs.file keystore_location - inputs.property "keystore_user_alias", keystore_user_alias - inputs.property "keystore_user_password", keystore_user_password - outputs.file jar.getArchivePath() - - // only sign if the keystore exists - onlyIf { - return keystore_location != "." - } - println "archive path >> "+jar.getArchivePath() - println jar.getArchivePath() - // the actual action.. sign the jar. - doLast { - ant.signjar( - destDir: jar.destinationDir, - jar: jar.getArchivePath(), - keystore: keystore_location, - alias: keystore_user_alias, - storepass: keystore_user_password, - keypass: keystore_user_password - ) - } -} - -task("uploadJars", dependsOn:"signJar") { +task("uploadJars", dependsOn:"build") { description = "uploads JARs" From aca6b77ce65d59dbf195f79f81660e4af1445957 Mon Sep 17 00:00:00 2001 From: Arthur Uzulin Date: Sat, 2 Aug 2014 17:57:51 +1000 Subject: [PATCH 27/27] Bump waila version to 1.5.3 --- build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.properties b/build.properties index fabda4bb..992ca889 100644 --- a/build.properties +++ b/build.properties @@ -6,4 +6,4 @@ CCLIB_version=1.1.1.93 NEI_version=1.0.2.15 ccc_version=1.0.1.8 mod_version=1.6.0 -waila_version=1.5.2a \ No newline at end of file +waila_version=1.5.3 \ No newline at end of file