diff --git a/Changelog.txt b/Changelog.txt index 264c0f2..11fe9c0 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,10 +1,16 @@ Changelog of the mod : Electric Magic Tools, a Thaumcraft 4/Industrial-Craft 2 addon -------------------------------------------------------------------------------------------------------------------------------------------------------- +Version 2.0.0.Alpha4: +Added some items to the vanilla module of the mod: Wooden, Stone, Iron, Golden and Diamond Drills. +Added Wooden, Stone, Iron, Golden and Diamond Chainsaws. +Added Iron, Golden and Diamond Omnitools. +Removed stuff from capes, it's not needed anymore. + Version 2.0.0Alpha3: Fixed the UU-Matter infusion research page crash. But the recipes aren't viable anymore, I'll get to fixing that ASAP. Added a few Base tools, just for later purposes. -Added a interface for using in said tools, for later purposes too +Added an interface for using in said tools, for later purposes too Version 2.0.0Aplha2: Fixed the Electric/Nano/Qunatum Boots of the Traveller not preventing fall damage. They now drain energy when doing so. diff --git a/capes.txt b/capes.txt deleted file mode 100644 index b39b751..0000000 --- a/capes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Tombenpotter:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -Kris1432:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -BradXD1995:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -MexRexWasser:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -israelim125:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -fajii:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -wasliebob:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -VMvinner:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -Drullkus:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -jztech101:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -Pixel_404:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -Speedynutty68:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png -TheDrunkMafia:https://raw.github.com/Tombenpotter/Electro-Magic-Tools/master/capes/cape.png \ No newline at end of file diff --git a/capes/cape.png b/capes/cape.png deleted file mode 100644 index 0d2eb18..0000000 Binary files a/capes/cape.png and /dev/null differ diff --git a/src/main/java/tombenpotter/emt/ModInformation.java b/src/main/java/tombenpotter/emt/ModInformation.java index 0b1b59e..8b61781 100644 --- a/src/main/java/tombenpotter/emt/ModInformation.java +++ b/src/main/java/tombenpotter/emt/ModInformation.java @@ -4,7 +4,7 @@ public class ModInformation { public static final String name = "Electro-Magic Tools"; public static final String modid = "EMT"; - public static final String version = "2.0.0Alpha3"; + public static final String version = "2.0.0Alpha4"; public static final String texturePath = "electromagictools"; public static final String guiFactory = "tombenpotter.emt.client.gui.config.EMTGuiFactory"; public static final String clientProxy = "tombenpotter.emt.proxies.ClientProxy"; diff --git a/src/main/java/tombenpotter/emt/common/module/base/items/tools/ItemBaseOmnitool.java b/src/main/java/tombenpotter/emt/common/module/base/items/tools/ItemBaseOmnitool.java index 3726daa..3fb1dfa 100644 --- a/src/main/java/tombenpotter/emt/common/module/base/items/tools/ItemBaseOmnitool.java +++ b/src/main/java/tombenpotter/emt/common/module/base/items/tools/ItemBaseOmnitool.java @@ -4,18 +4,25 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; +import net.minecraft.stats.StatList; import net.minecraft.world.World; +import net.minecraftforge.common.IShearable; import tombenpotter.emt.ElectroMagicTools; import tombenpotter.emt.ModInformation; import tombenpotter.emt.common.util.ConfigHandler; import tombenpotter.emt.common.util.RandomHelper; +import java.util.ArrayList; +import java.util.Random; + public class ItemBaseOmnitool extends ItemPickaxe { public String textureName; @@ -36,13 +43,8 @@ public class ItemBaseOmnitool extends ItemPickaxe { } @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean currentItem) { - if (stack.getItemDamage() < 1) stack.setItemDamage(1); - } - - @Override - public boolean onBlockDestroyed(ItemStack stack, World world, Block block, int par4, int par5, int par6, EntityLivingBase entityLiving) { - if (stack.getItemDamage() > 1) stack.damageItem(1, entityLiving); + public boolean onBlockDestroyed(ItemStack stack, World world, Block block, int x, int y, int z, EntityLivingBase entityLiving) { + if ((double) block.getBlockHardness(world, x, y, z) != 0.0D) stack.damageItem(1, entityLiving); return true; } @@ -53,16 +55,19 @@ public class ItemBaseOmnitool extends ItemPickaxe { @Override public float getDigSpeed(ItemStack stack, Block block, int meta) { - if (stack.getItemDamage() <= 1) return 1.0F; - else return super.getDigSpeed(stack, block, meta); + if (block.getHarvestTool(meta) == null) { + return efficiencyOnProperMaterial; + } else { + if (canHarvestBlock(block, stack) && (block.getHarvestTool(meta).equals("pickaxe") || block.getHarvestTool(meta).equals("shovel")) || block.getHarvestTool(meta).equals("axe") || Items.shears.canHarvestBlock(block, stack)) { + return efficiencyOnProperMaterial; + } + } + return super.getDigSpeed(stack, block, meta); } @Override public boolean hitEntity(ItemStack stack, EntityLivingBase entityliving, EntityLivingBase attacker) { - if (stack.getItemDamage() <= 1) { - entityliving.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) attacker), 8F); - stack.damageItem(1, attacker); - } + stack.damageItem(1, attacker); return true; } @@ -86,4 +91,32 @@ public class ItemBaseOmnitool extends ItemPickaxe { public boolean isBookEnchantable(ItemStack itemstack1, ItemStack itemstack2) { return ConfigHandler.enchanting; } + + @Override + public boolean onBlockStartBreak(ItemStack stack, int x, int y, int z, EntityPlayer player) { + if (player.worldObj.isRemote) { + return false; + } + Block block = player.worldObj.getBlock(x, y, z); + if (block instanceof IShearable) { + IShearable target = (IShearable) block; + if (target.isShearable(stack, player.worldObj, x, y, z)) { + ArrayList drops = target.onSheared(stack, player.worldObj, x, y, z, + EnchantmentHelper.getEnchantmentLevel(Enchantment.fortune.effectId, stack)); + Random rand = new Random(); + for (ItemStack drop : drops) { + float f = 0.7F; + double d = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; + double d1 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; + double d2 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; + EntityItem entityitem = new EntityItem(player.worldObj, (double) x + d, (double) y + d1, (double) z + d2, drop); + entityitem.delayBeforeCanPickup = 10; + player.worldObj.spawnEntityInWorld(entityitem); + } + stack.damageItem(1, player); + player.addStat(StatList.mineBlockStatArray[Block.getIdFromBlock(block)], 1); + } + } + return false; + } } diff --git a/src/main/java/tombenpotter/emt/common/module/vanilla/VanillaItemsRegistry.java b/src/main/java/tombenpotter/emt/common/module/vanilla/VanillaItemsRegistry.java index 5a37526..aea81f8 100644 --- a/src/main/java/tombenpotter/emt/common/module/vanilla/VanillaItemsRegistry.java +++ b/src/main/java/tombenpotter/emt/common/module/vanilla/VanillaItemsRegistry.java @@ -7,6 +7,7 @@ import net.minecraft.item.Item; import tombenpotter.emt.ModInformation; import tombenpotter.emt.common.module.vanilla.items.tools.ItemVanillaChainsaw; import tombenpotter.emt.common.module.vanilla.items.tools.ItemVanillaDrill; +import tombenpotter.emt.common.module.vanilla.items.tools.ItemVanillaOmnitool; public class VanillaItemsRegistry { @@ -20,28 +21,38 @@ public class VanillaItemsRegistry { public static Item ironChainsaw; public static Item goldenChainsaw; public static Item diamondChainsaw; + public static Item ironOmnitool; + public static Item goldenOmnitool; + public static Item diamondOmnitool; public static void registerItems() { - woodenDrill = new ItemVanillaDrill(Item.ToolMaterial.WOOD, 75, "woodendrill", Item.getItemFromBlock(Blocks.planks)).setUnlocalizedName(ModInformation.modid + "woodenDrill"); + woodenDrill = new ItemVanillaDrill(Item.ToolMaterial.WOOD, 75, ":woodendrill", Item.getItemFromBlock(Blocks.planks)).setUnlocalizedName(ModInformation.modid + ".woodenDrill"); GameRegistry.registerItem(woodenDrill, "woodenDrill"); - stoneDrill = new ItemVanillaDrill(Item.ToolMaterial.STONE, 165, "stonedrill", Item.getItemFromBlock(Blocks.cobblestone)).setUnlocalizedName(ModInformation.modid + "stoneDrill"); + stoneDrill = new ItemVanillaDrill(Item.ToolMaterial.STONE, 165, ":stonedrill", Item.getItemFromBlock(Blocks.cobblestone)).setUnlocalizedName(ModInformation.modid + ".stoneDrill"); GameRegistry.registerItem(stoneDrill, "stoneDrill"); - ironDrill = new ItemVanillaDrill(Item.ToolMaterial.IRON, 315, "irondrill", Items.iron_ingot).setUnlocalizedName(ModInformation.modid + "ironDrill"); + ironDrill = new ItemVanillaDrill(Item.ToolMaterial.IRON, 315, ":irondrill", Items.iron_ingot).setUnlocalizedName(ModInformation.modid + ".ironDrill"); GameRegistry.registerItem(ironDrill, "ironDrill"); - goldenDrill = new ItemVanillaDrill(Item.ToolMaterial.GOLD, 55, "goldendrill", Items.gold_ingot).setUnlocalizedName(ModInformation.modid + "goldenDrill"); + goldenDrill = new ItemVanillaDrill(Item.ToolMaterial.GOLD, 55, ":goldendrill", Items.gold_ingot).setUnlocalizedName(ModInformation.modid + ".goldenDrill"); GameRegistry.registerItem(goldenDrill, "goldenDrill"); - diamondDrill = new ItemVanillaDrill(Item.ToolMaterial.EMERALD, 2015, "diamondDrill", Items.diamond).setUnlocalizedName(ModInformation.modid + "diamondDrill"); + diamondDrill = new ItemVanillaDrill(Item.ToolMaterial.EMERALD, 2015, ":diamonddrill", Items.diamond).setUnlocalizedName(ModInformation.modid + ".diamondDrill"); GameRegistry.registerItem(diamondDrill, "diamondDrill"); - woodenChainsaw = new ItemVanillaChainsaw(Item.ToolMaterial.WOOD, 75, "woodenchainsaw", Item.getItemFromBlock(Blocks.planks)).setUnlocalizedName(ModInformation.modid + "woodenChainsaw"); + woodenChainsaw = new ItemVanillaChainsaw(Item.ToolMaterial.WOOD, 75, ":woodenchainsaw", Item.getItemFromBlock(Blocks.planks)).setUnlocalizedName(ModInformation.modid + ".woodenChainsaw"); GameRegistry.registerItem(woodenChainsaw, "woodenChainsaw"); - stoneChainsaw = new ItemVanillaChainsaw(Item.ToolMaterial.STONE, 165, "stonechainsaw", Item.getItemFromBlock(Blocks.cobblestone)).setUnlocalizedName(ModInformation.modid + "stoneChainsaw"); + stoneChainsaw = new ItemVanillaChainsaw(Item.ToolMaterial.STONE, 165, ":stonechainsaw", Item.getItemFromBlock(Blocks.cobblestone)).setUnlocalizedName(ModInformation.modid + ".stoneChainsaw"); GameRegistry.registerItem(stoneChainsaw, "stoneChainsaw"); - ironChainsaw = new ItemVanillaChainsaw(Item.ToolMaterial.IRON, 315, "ironchainsaw", Items.iron_ingot, 3F).setUnlocalizedName(ModInformation.modid + "ironChainsaw"); + ironChainsaw = new ItemVanillaChainsaw(Item.ToolMaterial.IRON, 315, ":ironchainsaw", Items.iron_ingot, 3F).setUnlocalizedName(ModInformation.modid + ".ironChainsaw"); GameRegistry.registerItem(ironChainsaw, "ironChainsaw"); - goldenChainsaw = new ItemVanillaChainsaw(Item.ToolMaterial.GOLD, 55, "goldenchainsaw", Items.gold_ingot).setUnlocalizedName(ModInformation.modid + "goldenChainsaw"); + goldenChainsaw = new ItemVanillaChainsaw(Item.ToolMaterial.GOLD, 55, ":goldenchainsaw", Items.gold_ingot).setUnlocalizedName(ModInformation.modid + ".goldenChainsaw"); GameRegistry.registerItem(goldenChainsaw, "goldenChainsaw"); - diamondChainsaw = new ItemVanillaChainsaw(Item.ToolMaterial.EMERALD, 2015, "diamondchainsaw", Items.diamond, 5F).setUnlocalizedName(ModInformation.modid + "diamondChainsaw"); + diamondChainsaw = new ItemVanillaChainsaw(Item.ToolMaterial.EMERALD, 2015, ":diamondchainsaw", Items.diamond, 6F).setUnlocalizedName(ModInformation.modid + ".diamondChainsaw"); GameRegistry.registerItem(diamondChainsaw, "diamondChainsaw"); + + ironOmnitool = new ItemVanillaOmnitool(Item.ToolMaterial.IRON, 500, ":ironomnitool", Items.iron_ingot).setUnlocalizedName(ModInformation.modid + ".ironOmnitool"); + GameRegistry.registerItem(ironOmnitool, "ironOmnitool"); + goldenOmnitool = new ItemVanillaOmnitool(Item.ToolMaterial.GOLD, 100, ":goldenomnitool", Items.gold_ingot).setUnlocalizedName(ModInformation.modid + ".goldenOmnitool"); + GameRegistry.registerItem(goldenOmnitool, "goldenOmnitool"); + diamondOmnitool = new ItemVanillaOmnitool(Item.ToolMaterial.EMERALD, 3900, ":diamondomnitool", Items.diamond).setUnlocalizedName(ModInformation.modid + ".diamondOmnitool"); + GameRegistry.registerItem(diamondOmnitool, "diamondOmnitool"); } } \ No newline at end of file diff --git a/src/main/java/tombenpotter/emt/common/module/vanilla/items/tools/ItemVanillaChainsaw.java b/src/main/java/tombenpotter/emt/common/module/vanilla/items/tools/ItemVanillaChainsaw.java index a46734d..6690d87 100644 --- a/src/main/java/tombenpotter/emt/common/module/vanilla/items/tools/ItemVanillaChainsaw.java +++ b/src/main/java/tombenpotter/emt/common/module/vanilla/items/tools/ItemVanillaChainsaw.java @@ -6,8 +6,9 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import tombenpotter.emt.common.module.base.items.tools.ItemBaseChainsaw; +import tombenpotter.emt.common.util.IRefillable; -public class ItemVanillaChainsaw extends ItemBaseChainsaw { +public class ItemVanillaChainsaw extends ItemBaseChainsaw implements IRefillable { public Item repairMaterial; public int repairMeta; diff --git a/src/main/java/tombenpotter/emt/common/module/vanilla/items/tools/ItemVanillaOmnitool.java b/src/main/java/tombenpotter/emt/common/module/vanilla/items/tools/ItemVanillaOmnitool.java new file mode 100644 index 0000000..8e18224 --- /dev/null +++ b/src/main/java/tombenpotter/emt/common/module/vanilla/items/tools/ItemVanillaOmnitool.java @@ -0,0 +1,65 @@ +package tombenpotter.emt.common.module.vanilla.items.tools; + +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import tombenpotter.emt.common.module.base.items.tools.ItemBaseOmnitool; + +public class ItemVanillaOmnitool extends ItemBaseOmnitool { + + public Item repairMaterial; + public int repairMeta; + public float damageAdded; + + public ItemVanillaOmnitool(Item.ToolMaterial material, int maxDamage, String textureName, Item repairMaterial) { + super(material, maxDamage, textureName); + this.repairMaterial = repairMaterial; + this.repairMeta = 0; + damageAdded = 4; + } + + public ItemVanillaOmnitool(Item.ToolMaterial material, int maxDamage, String textureName, Item repairMaterial, float damageAdded) { + super(material, maxDamage, textureName); + this.repairMaterial = repairMaterial; + this.repairMeta = 0; + this.damageAdded = damageAdded; + } + + public ItemVanillaOmnitool(Item.ToolMaterial material, int maxDamage, String textureName, Item repairMaterial, int repairMeta) { + super(material, maxDamage, textureName); + this.repairMaterial = repairMaterial; + this.repairMeta = repairMeta; + damageAdded = 4; + } + + public ItemVanillaOmnitool(Item.ToolMaterial material, int maxDamage, String textureName, Item repairMaterial, int repairMeta, float damageAdded) { + super(material, maxDamage, textureName); + this.repairMaterial = repairMaterial; + this.repairMeta = repairMeta; + this.damageAdded = damageAdded; + } + + @Override + public boolean canHarvestBlock(Block block, ItemStack stack) { + return (block.getHarvestLevel(new ItemStack(Item.getItemFromBlock(block)).getItemDamage()) <= this.toolMaterial.getHarvestLevel()); + } + + @Override + public boolean getIsRepairable(ItemStack stack1, ItemStack stack2) { + return (stack2.getItem() == repairMaterial && stack2.getItemDamage() == repairMeta) ? true : super.getIsRepairable(stack1, stack2); + } + + @Override + public boolean isRepairable() { + return true; + } + + @Override + public boolean hitEntity(ItemStack stack, EntityLivingBase entityliving, EntityLivingBase attacker) { + stack.damageItem(1, attacker); + entityliving.attackEntityFrom(DamageSource.generic, damageAdded); + return true; + } +} diff --git a/src/main/resources/assets/electromagictools/textures/items/diamonddrill.png b/src/main/resources/assets/electromagictools/textures/items/diamonddrill.png new file mode 100644 index 0000000..c68cb4d Binary files /dev/null and b/src/main/resources/assets/electromagictools/textures/items/diamonddrill.png differ diff --git a/src/main/resources/assets/electromagictools/textures/items/goldendrill.png b/src/main/resources/assets/electromagictools/textures/items/goldendrill.png new file mode 100644 index 0000000..d005b69 Binary files /dev/null and b/src/main/resources/assets/electromagictools/textures/items/goldendrill.png differ diff --git a/src/main/resources/assets/electromagictools/textures/items/irondrill.png b/src/main/resources/assets/electromagictools/textures/items/irondrill.png new file mode 100644 index 0000000..db88fa6 Binary files /dev/null and b/src/main/resources/assets/electromagictools/textures/items/irondrill.png differ diff --git a/src/main/resources/assets/electromagictools/textures/items/stonedrill.png b/src/main/resources/assets/electromagictools/textures/items/stonedrill.png new file mode 100644 index 0000000..3e49a28 Binary files /dev/null and b/src/main/resources/assets/electromagictools/textures/items/stonedrill.png differ diff --git a/src/main/resources/assets/electromagictools/textures/items/woodendrill.png b/src/main/resources/assets/electromagictools/textures/items/woodendrill.png new file mode 100644 index 0000000..b166365 Binary files /dev/null and b/src/main/resources/assets/electromagictools/textures/items/woodendrill.png differ