From b613b1e419e2a24e8e7c167903a57fb624324aba Mon Sep 17 00:00:00 2001 From: gigabit101 Date: Sat, 20 Feb 2016 23:04:32 +0000 Subject: [PATCH] Drills --- src/main/java/techreborn/init/ModItems.java | 14 +- .../items/tools/ItemAdvancedDrill.java | 6 +- .../items/tools/ItemDiamondDrill.java | 143 ++++++++++++++++++ .../techreborn/items/tools/ItemDrill.java | 143 ++++++++++++++++++ 4 files changed, 300 insertions(+), 6 deletions(-) create mode 100644 src/main/java/techreborn/items/tools/ItemDiamondDrill.java create mode 100644 src/main/java/techreborn/items/tools/ItemDrill.java diff --git a/src/main/java/techreborn/init/ModItems.java b/src/main/java/techreborn/init/ModItems.java index 8aa96649d..1b4af5909 100644 --- a/src/main/java/techreborn/init/ModItems.java +++ b/src/main/java/techreborn/init/ModItems.java @@ -40,7 +40,6 @@ public class ModItems { public static Item lapotronpack; public static Item lithiumBattery; public static Item omniTool; - public static Item advancedDrill; public static Item lapotronicOrb; public static Item manuel; public static Item uuMatter; @@ -74,6 +73,9 @@ public class ModItems { public static Item bucketWolframium; public static Item reBattery; public static Item treeTap; + public static Item ironDrill; + public static Item diamondDrill; + public static Item advancedDrill; public static Item upgrades; @@ -118,8 +120,7 @@ public class ModItems { GameRegistry.registerItem(lapotronicOrb, "lapotronicOrb"); omniTool = PoweredItem.createItem(ItemOmniTool.class); GameRegistry.registerItem(omniTool, "omniTool"); - advancedDrill = PoweredItem.createItem(ItemAdvancedDrill.class); - GameRegistry.registerItem(advancedDrill, "advancedDrill"); + manuel = new ItemTechPda(); GameRegistry.registerItem(manuel, "techmanuel"); uuMatter = new ItemUUmatter(); @@ -128,6 +129,13 @@ public class ModItems { GameRegistry.registerItem(reBattery, "rebattery"); treeTap = new ItemTreeTap(); GameRegistry.registerItem(treeTap, "treetap"); + + ironDrill = PoweredItem.createItem(ItemDrill.class); + GameRegistry.registerItem(ironDrill, "irondrill"); + diamondDrill = PoweredItem.createItem(ItemDiamondDrill.class); + GameRegistry.registerItem(diamondDrill, "diamonddrill"); + advancedDrill = PoweredItem.createItem(ItemAdvancedDrill.class); + GameRegistry.registerItem(advancedDrill, "advanceddrill"); // upgrades = new ItemUpgrade(); // GameRegistry.registerItem(upgrades, "upgrades"); diff --git a/src/main/java/techreborn/items/tools/ItemAdvancedDrill.java b/src/main/java/techreborn/items/tools/ItemAdvancedDrill.java index d128e6cef..db6d8ae6c 100644 --- a/src/main/java/techreborn/items/tools/ItemAdvancedDrill.java +++ b/src/main/java/techreborn/items/tools/ItemAdvancedDrill.java @@ -26,13 +26,13 @@ import java.util.List; public class ItemAdvancedDrill extends ItemPickaxe implements IEnergyItemInfo, ITexturedItem { - public static final int maxCharge = ConfigTechReborn.AdvancedDrillCharge; + public int maxCharge = 1000000; public int cost = 250; public static final int tier = ConfigTechReborn.AdvancedDrillTier; public double transferLimit = 100; public ItemAdvancedDrill() { - super(ToolMaterial.EMERALD); + super(ToolMaterial.EMERALD); efficiencyOnProperMaterial = 20F; setCreativeTab(TechRebornCreativeTab.instance); setMaxStackSize(1); @@ -133,7 +133,7 @@ public class ItemAdvancedDrill extends ItemPickaxe implements IEnergyItemInfo, I @Override public String getTextureName(int damage) { - return "techreborn:items/tool/advancedDrill"; + return "techreborn:items/tool/" + getUnlocalizedName().substring(5); } @Override diff --git a/src/main/java/techreborn/items/tools/ItemDiamondDrill.java b/src/main/java/techreborn/items/tools/ItemDiamondDrill.java new file mode 100644 index 000000000..d0f8e666d --- /dev/null +++ b/src/main/java/techreborn/items/tools/ItemDiamondDrill.java @@ -0,0 +1,143 @@ +package techreborn.items.tools; + +import me.modmuss50.jsonDestroyer.api.ITexturedItem; +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemPickaxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import reborncore.RebornCore; +import reborncore.common.util.TorchHelper; +import reborncore.api.power.IEnergyItemInfo; +import techreborn.client.TechRebornCreativeTab; +import techreborn.config.ConfigTechReborn; +import reborncore.common.powerSystem.PoweredItem; + +import java.util.List; + +public class ItemDiamondDrill extends ItemPickaxe implements IEnergyItemInfo, ITexturedItem { + + public int maxCharge = 100000; + public int cost = 250; + public static final int tier = ConfigTechReborn.AdvancedDrillTier; + public double transferLimit = 100; + + public ItemDiamondDrill() { + super(ToolMaterial.EMERALD); + efficiencyOnProperMaterial = 20F; + setCreativeTab(TechRebornCreativeTab.instance); + setMaxStackSize(1); + setMaxDamage(240); + setUnlocalizedName("techreborn.advancedDrill"); + RebornCore.jsonDestroyer.registerObject(this); + } + + @Override + public boolean onBlockDestroyed(ItemStack stack, World worldIn, Block blockIn, BlockPos pos, EntityLivingBase playerIn) { + PoweredItem.useEnergy(cost, stack); + return true; + } + + @Override + public boolean canHarvestBlock(Block block, ItemStack stack) { + return Items.diamond_pickaxe.canHarvestBlock(block, stack) || Items.diamond_shovel.canHarvestBlock(block, stack); + } + + @Override + public float getDigSpeed(ItemStack stack, IBlockState state) { + if(!PoweredItem.canUseEnergy(cost, stack)){ + return 4.0F; + } + if (Items.wooden_pickaxe.getDigSpeed(stack, state) > 1.0F || Items.wooden_shovel.getDigSpeed(stack, state) > 1.0F) { + return efficiencyOnProperMaterial; + } else { + return super.getDigSpeed(stack, state); + } + } + + + @Override + public boolean hitEntity(ItemStack itemstack, EntityLivingBase entityliving, EntityLivingBase entityliving1) { + return true; + } + + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ) { + return TorchHelper.placeTorch(stack, playerIn, worldIn, pos.getX(), pos.getY(), pos.getZ(), side.getIndex(), hitX, hitY, hitZ); + } + + @Override + public boolean isRepairable() { + return false; + } + + + @Override + public double getMaxPower(ItemStack stack) { + return maxCharge; + } + + @Override + public boolean canAcceptEnergy(ItemStack stack) { + return true; + } + + @Override + public boolean canProvideEnergy(ItemStack stack) { + return false; + } + + @Override + public double getMaxTransfer(ItemStack stack) { + return transferLimit; + } + + @Override + public int getStackTeir(ItemStack stack) { + return tier; + } + + @SuppressWarnings( + {"rawtypes", "unchecked"}) + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) { + ItemStack itemStack = new ItemStack(this, 1); + itemList.add(itemStack); + + ItemStack charged = new ItemStack(this, 1); + PoweredItem.setEnergy(getMaxPower(charged), charged); + itemList.add(charged); + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack)); + return 1 - charge; + + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return true; + } + + @Override + public String getTextureName(int damage) { + return "techreborn:items/tool/" + getUnlocalizedName().substring(5); + } + + @Override + public int getMaxMeta() { + return 1; + } +} diff --git a/src/main/java/techreborn/items/tools/ItemDrill.java b/src/main/java/techreborn/items/tools/ItemDrill.java new file mode 100644 index 000000000..63ef3fbdb --- /dev/null +++ b/src/main/java/techreborn/items/tools/ItemDrill.java @@ -0,0 +1,143 @@ +package techreborn.items.tools; + +import me.modmuss50.jsonDestroyer.api.ITexturedItem; +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemPickaxe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import reborncore.RebornCore; +import reborncore.common.util.TorchHelper; +import reborncore.api.power.IEnergyItemInfo; +import techreborn.client.TechRebornCreativeTab; +import techreborn.config.ConfigTechReborn; +import reborncore.common.powerSystem.PoweredItem; + +import java.util.List; + +public class ItemDrill extends ItemPickaxe implements IEnergyItemInfo, ITexturedItem { + + public int maxCharge = 10000; + public int cost = 250; + public static final int tier = ConfigTechReborn.AdvancedDrillTier; + public double transferLimit = 100; + + public ItemDrill() { + super(ToolMaterial.IRON); + efficiencyOnProperMaterial = 20F; + setCreativeTab(TechRebornCreativeTab.instance); + setMaxStackSize(1); + setMaxDamage(240); + setUnlocalizedName("techreborn.advancedDrill"); + RebornCore.jsonDestroyer.registerObject(this); + } + + @Override + public boolean onBlockDestroyed(ItemStack stack, World worldIn, Block blockIn, BlockPos pos, EntityLivingBase playerIn) { + PoweredItem.useEnergy(cost, stack); + return true; + } + + @Override + public boolean canHarvestBlock(Block block, ItemStack stack) { + return Items.diamond_pickaxe.canHarvestBlock(block, stack) || Items.diamond_shovel.canHarvestBlock(block, stack); + } + + @Override + public float getDigSpeed(ItemStack stack, IBlockState state) { + if(!PoweredItem.canUseEnergy(cost, stack)){ + return 4.0F; + } + if (Items.wooden_pickaxe.getDigSpeed(stack, state) > 1.0F || Items.wooden_shovel.getDigSpeed(stack, state) > 1.0F) { + return efficiencyOnProperMaterial; + } else { + return super.getDigSpeed(stack, state); + } + } + + + @Override + public boolean hitEntity(ItemStack itemstack, EntityLivingBase entityliving, EntityLivingBase entityliving1) { + return true; + } + + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ) { + return TorchHelper.placeTorch(stack, playerIn, worldIn, pos.getX(), pos.getY(), pos.getZ(), side.getIndex(), hitX, hitY, hitZ); + } + + @Override + public boolean isRepairable() { + return false; + } + + + @Override + public double getMaxPower(ItemStack stack) { + return maxCharge; + } + + @Override + public boolean canAcceptEnergy(ItemStack stack) { + return true; + } + + @Override + public boolean canProvideEnergy(ItemStack stack) { + return false; + } + + @Override + public double getMaxTransfer(ItemStack stack) { + return transferLimit; + } + + @Override + public int getStackTeir(ItemStack stack) { + return tier; + } + + @SuppressWarnings( + {"rawtypes", "unchecked"}) + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) { + ItemStack itemStack = new ItemStack(this, 1); + itemList.add(itemStack); + + ItemStack charged = new ItemStack(this, 1); + PoweredItem.setEnergy(getMaxPower(charged), charged); + itemList.add(charged); + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack)); + return 1 - charge; + + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return true; + } + + @Override + public String getTextureName(int damage) { + return "techreborn:items/tool/" + getUnlocalizedName().substring(5); + } + + @Override + public int getMaxMeta() { + return 1; + } +}