diff --git a/src/main/java/api/hbm/block/IScrewable.java b/src/main/java/api/hbm/block/IToolable.java similarity index 51% rename from src/main/java/api/hbm/block/IScrewable.java rename to src/main/java/api/hbm/block/IToolable.java index 16dd8b872..3961d1900 100644 --- a/src/main/java/api/hbm/block/IScrewable.java +++ b/src/main/java/api/hbm/block/IToolable.java @@ -3,7 +3,12 @@ package api.hbm.block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; -public interface IScrewable { +public interface IToolable { - public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ); + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool); + + public static enum ToolType { + SCREWDRIVER, + HAND_DRILL + } } diff --git a/src/main/java/com/hbm/blocks/BlockBase.java b/src/main/java/com/hbm/blocks/BlockBase.java new file mode 100644 index 000000000..002362f79 --- /dev/null +++ b/src/main/java/com/hbm/blocks/BlockBase.java @@ -0,0 +1,24 @@ +package com.hbm.blocks; + +import com.hbm.lib.RefStrings; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class BlockBase extends Block { + + public BlockBase() { + super(Material.rock); + } + + public BlockBase(Material material) { + super(material); + } + + @Override + public Block setBlockName(String name) { + super.setBlockName(name); + this.setBlockTextureName(RefStrings.MODID + ":" + name); + return this; + } +} diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7a38763bb..9a9604b95 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -223,6 +223,7 @@ public class ModBlocks { public static Block block_fallout; public static Block block_foam; public static Block block_graphite; + public static Block block_graphite_drilled; public static Block block_boron; public static Block block_lanthanium; public static Block block_actinium; @@ -1348,7 +1349,8 @@ public class ModBlocks { block_red_phosphorus = new BlockHazardFalling().makeBeaconable().addFire(15).toBlock().setStepSound(Block.soundTypeSand).setBlockName("block_red_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_phosphorus"); block_fallout = new BlockHazardFalling().addRadiation(ItemHazard.fo * ItemHazard.block).toBlock().setStepSound(Block.soundTypeGravel).setBlockName("block_fallout").setCreativeTab(MainRegistry.blockTab).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":ash"); block_foam = new BlockGeneric(Material.craftedSnow).setBlockName("block_foam").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSnow).setHardness(0.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":foam"); - block_graphite = new BlockFlammable(Material.iron, 30, 5).setBlockName("block_graphite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_graphite"); + block_graphite = new BlockGraphite(Material.iron, 30, 5).setBlockName("block_graphite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_graphite"); + block_graphite_drilled = new BlockFlammable(Material.iron, 30, 5).setBlockName("block_graphite_drilled").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_graphite_drilled"); block_boron = new BlockBeaconable(Material.iron).setBlockName("block_boron").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_boron"); block_lanthanium = new BlockBeaconable(Material.iron).setBlockName("block_lanthanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lanthanium"); block_actinium = new BlockBeaconable(Material.iron).setBlockName("block_actinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_actinium"); @@ -2269,6 +2271,7 @@ public class ModBlocks { GameRegistry.registerBlock(block_fallout, ItemBlockHazard.class, block_fallout.getUnlocalizedName()); GameRegistry.registerBlock(block_foam, block_foam.getUnlocalizedName()); GameRegistry.registerBlock(block_graphite, block_graphite.getUnlocalizedName()); + GameRegistry.registerBlock(block_graphite_drilled, block_graphite_drilled.getUnlocalizedName()); GameRegistry.registerBlock(block_boron, block_boron.getUnlocalizedName()); GameRegistry.registerBlock(block_insulator, block_insulator.getUnlocalizedName()); GameRegistry.registerBlock(block_fiberglass, block_fiberglass.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockGraphite.java b/src/main/java/com/hbm/blocks/machine/BlockGraphite.java new file mode 100644 index 000000000..f9a6faa18 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockGraphite.java @@ -0,0 +1,30 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockFlammable; + +import api.hbm.block.IToolable; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public class BlockGraphite extends BlockFlammable implements IToolable { + + public BlockGraphite(Material mat, int en, int flam) { + super(mat, en, flam); + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool != ToolType.HAND_DRILL) + return false; + + if(!world.isRemote) { + world.setBlock(x, y, z, ModBlocks.block_graphite_drilled); + } + + return true; + } + +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronDiode.java b/src/main/java/com/hbm/blocks/machine/BlockHadronDiode.java index 65504bbb9..30d59b14a 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronDiode.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronDiode.java @@ -5,7 +5,7 @@ import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityHadronDiode; import com.hbm.tileentity.machine.TileEntityHadronDiode.DiodeConfig; -import api.hbm.block.IScrewable; +import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; @@ -17,7 +17,7 @@ import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class BlockHadronDiode extends BlockContainer implements IScrewable { +public class BlockHadronDiode extends BlockContainer implements IToolable { @SideOnly(Side.CLIENT) private IIcon iconIn; @@ -60,7 +60,10 @@ public class BlockHadronDiode extends BlockContainer implements IScrewable { } @Override - public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ) { + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool != ToolType.SCREWDRIVER) + return false; if(!world.isRemote) { TileEntityHadronDiode diode = (TileEntityHadronDiode) world.getTileEntity(x, y, z); diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java index b48a37de5..5b37a9b95 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java @@ -9,7 +9,8 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; -import api.hbm.block.IScrewable; +import api.hbm.block.IToolable; +import api.hbm.block.IToolable.ToolType; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; @@ -23,7 +24,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public abstract class RBMKBase extends BlockDummyable implements IScrewable { +public abstract class RBMKBase extends BlockDummyable implements IToolable { public static boolean dropLids = true; public static boolean digamma = false; @@ -150,7 +151,10 @@ public abstract class RBMKBase extends BlockDummyable implements IScrewable { } @Override - public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ) { + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool != ToolType.SCREWDRIVER) + return false; int[] pos = this.findCore(world, x, y, z); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 582e6e42b..8b419a859 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -23,6 +23,7 @@ import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; import com.hbm.tileentity.machine.rbmk.IRBMKFluxReceiver.NType; +import api.hbm.block.IToolable.ToolType; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Items; @@ -1792,6 +1793,7 @@ public class ModItems { public static Item redcoil_capacitor; public static Item titanium_filter; public static Item screwdriver; + public static Item hand_drill; public static Item overfuse; public static Item arc_electrode; public static Item arc_electrode_burnt; @@ -4326,7 +4328,8 @@ public class ModItems { fuse = new ItemCustomLore().setUnlocalizedName("fuse").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse"); redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor"); titanium_filter = new ItemCapacitor(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter"); - screwdriver = new ItemScrewdriver().setUnlocalizedName("screwdriver").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":screwdriver"); + screwdriver = new ItemTooling(ToolType.SCREWDRIVER).setUnlocalizedName("screwdriver").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":screwdriver"); + hand_drill = new ItemTooling(ToolType.HAND_DRILL).setUnlocalizedName("hand_drill").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":hand_drill"); overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse"); arc_electrode = new ItemCustomLore().setUnlocalizedName("arc_electrode").setMaxDamage(250).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode"); arc_electrode_burnt = new Item().setUnlocalizedName("arc_electrode_burnt").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_burnt"); @@ -6158,6 +6161,7 @@ public class ModItems { GameRegistry.registerItem(redcoil_capacitor, redcoil_capacitor.getUnlocalizedName()); GameRegistry.registerItem(titanium_filter, titanium_filter.getUnlocalizedName()); GameRegistry.registerItem(screwdriver, screwdriver.getUnlocalizedName()); + GameRegistry.registerItem(hand_drill, hand_drill.getUnlocalizedName()); GameRegistry.registerItem(overfuse, overfuse.getUnlocalizedName()); GameRegistry.registerItem(arc_electrode, arc_electrode.getUnlocalizedName()); GameRegistry.registerItem(arc_electrode_burnt, arc_electrode_burnt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemScrewdriver.java b/src/main/java/com/hbm/items/tool/ItemTooling.java similarity index 58% rename from src/main/java/com/hbm/items/tool/ItemScrewdriver.java rename to src/main/java/com/hbm/items/tool/ItemTooling.java index b3f65a73f..6520cec18 100644 --- a/src/main/java/com/hbm/items/tool/ItemScrewdriver.java +++ b/src/main/java/com/hbm/items/tool/ItemTooling.java @@ -1,21 +1,28 @@ package com.hbm.items.tool; -import api.hbm.block.IScrewable; +import api.hbm.block.IToolable; +import api.hbm.block.IToolable.ToolType; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -public class ItemScrewdriver extends Item { +public class ItemTooling extends Item { + + ToolType type; + + public ItemTooling(ToolType type) { + this.type = type; + } @Override public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { Block b = world.getBlock(x, y, z); - if(b instanceof IScrewable) { - return ((IScrewable)b).onScrew(world, player, x, y, z, side, fX, fY, fZ); + if(b instanceof IToolable) { + return ((IToolable)b).onScrew(world, player, x, y, z, side, fX, fY, fZ, this.type); } return false; diff --git a/src/main/resources/assets/hbm/textures/blocks/block_graphite_drilled.png b/src/main/resources/assets/hbm/textures/blocks/block_graphite_drilled.png new file mode 100644 index 000000000..32f150828 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_graphite_drilled.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_graphite_fuel.png b/src/main/resources/assets/hbm/textures/blocks/block_graphite_fuel.png new file mode 100644 index 000000000..4a0fc7691 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_graphite_fuel.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_graphite_rod_in.png b/src/main/resources/assets/hbm/textures/blocks/block_graphite_rod_in.png new file mode 100644 index 000000000..2b7e564b9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_graphite_rod_in.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_graphite_rod_out.png b/src/main/resources/assets/hbm/textures/blocks/block_graphite_rod_out.png new file mode 100644 index 000000000..1306266d6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_graphite_rod_out.png differ diff --git a/src/main/resources/assets/hbm/textures/items/hand_drill.png b/src/main/resources/assets/hbm/textures/items/hand_drill.png new file mode 100644 index 000000000..1db4de307 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/hand_drill.png differ