From 6365280f96b947a2c4117c55cb28f6c688e4fbfc Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 31 Aug 2021 23:47:30 +0200 Subject: [PATCH] fixed graphite drilling, boron rod textures --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../machine/pile/BlockGraphiteDrilled.java | 10 +- .../pile/BlockGraphiteDrilledBase.java | 4 +- .../blocks/machine/pile/BlockGraphiteRod.java | 92 ++++++++++++------- 4 files changed, 70 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 82392466f..e6f40f4fe 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1358,7 +1358,7 @@ public class ModBlocks { block_graphite = new BlockGraphite(Material.iron, 30, 5).setBlockName("block_graphite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F); block_graphite_drilled = new BlockGraphiteDrilled(Material.iron, 30, 5).setBlockName("block_graphite_drilled").setCreativeTab(null).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F); block_graphite_fuel = new BlockGraphiteDrilled(Material.iron, 30, 5).setBlockName("block_graphite_fuel").setCreativeTab(null).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F); - block_graphite_rod = new BlockGraphiteRod(Material.iron, 30, 5).setBlockName("block_graphite_rod").setCreativeTab(null).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F); + block_graphite_rod = new BlockGraphiteRod(Material.iron, 30, 5).setBlockName("block_graphite_rod").setCreativeTab(null).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_graphite_rod_in"); block_graphite_source = new BlockGraphiteDrilled(Material.iron, 30, 5).setBlockName("block_graphite_source").setCreativeTab(null).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F); 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"); diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java index f06b3adb0..6af9701b1 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java @@ -28,10 +28,12 @@ public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase { int meta = world.getBlockMetadata(x, y, z); - if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_uranium, ModBlocks.block_graphite_fuel)) return true; - if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_source, ModBlocks.block_graphite_source)) return true; - if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_boron, ModBlocks.block_graphite_rod)) return true; - if(checkInteraction(world, x, y, z, 0, player, ModItems.ingot_graphite, ModBlocks.block_graphite)) return true; + if(side == meta * 2 || side == meta * 2 + 1) { + if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_uranium, ModBlocks.block_graphite_fuel)) return true; + if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_source, ModBlocks.block_graphite_source)) return true; + if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_boron, ModBlocks.block_graphite_rod)) return true; + if(checkInteraction(world, x, y, z, 0, player, ModItems.ingot_graphite, ModBlocks.block_graphite)) return true; + } } return false; diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java index fab045c48..c70396307 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java @@ -17,7 +17,7 @@ import net.minecraftforge.common.util.ForgeDirection; public abstract class BlockGraphiteDrilledBase extends BlockFlammable { @SideOnly(Side.CLIENT) - private IIcon sideIcon; + protected IIcon sideIcon; public BlockGraphiteDrilledBase(Material mat, int en, int flam) { super(mat, en, flam); @@ -34,7 +34,7 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable { @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { - int cfg = metadata & 4; + int cfg = metadata & 3; if(side == cfg * 2 || side == cfg * 2 + 1) return this.blockIcon; diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteRod.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteRod.java index 94c3e5075..d037d312d 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteRod.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteRod.java @@ -2,63 +2,90 @@ package com.hbm.blocks.machine.pile; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.ParticleBurstPacket; +import com.hbm.lib.RefStrings; import api.hbm.block.IToolable; -import api.hbm.block.IToolable.ToolType; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.block.Block; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; -import net.minecraft.entity.item.EntityItem; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class BlockGraphiteRod extends BlockGraphiteDrilledBase implements IToolable { + @SideOnly(Side.CLIENT) + protected IIcon outIcon; + public BlockGraphiteRod(Material mat, int en, int flam) { super(mat, en, flam); } + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.sideIcon = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite"); + this.outIcon = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite_rod_out"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + int cfg = metadata & 3; + + if(side == cfg * 2 || side == cfg * 2 + 1) + return ((metadata & 4) > 0) ? this.outIcon : this.blockIcon; + + return this.sideIcon; + } + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(player.isSneaking()) return false; - if(world.isRemote) - return true; - int oldMeta = world.getBlockMetadata(x, y, z); int newMeta = oldMeta ^ 4; //toggle bit #3 - int pureMeta = oldMeta & 4; //in case the bit was set - - world.setBlockMetadataWithNotify(x, y, z, newMeta, 3); - - ForgeDirection dir = ForgeDirection.getOrientation(pureMeta); - - if(dir == ForgeDirection.UNKNOWN) - return true; - - for(int i = -1; i <= 1; i += 1) { + int pureMeta = oldMeta & 3; //in case the bit was set + + if(side == pureMeta * 2 || side == pureMeta * 2 + 1) { - int ix = x + dir.offsetX * i; - int iy = y + dir.offsetY * i; - int iz = z + dir.offsetZ * i; + if(world.isRemote) + return true; - while(world.getBlock(ix, iy, iz) == this && world.getBlockMetadata(ix, iy, iz) == oldMeta) { + world.setBlockMetadataWithNotify(x, y, z, newMeta, 3); + + ForgeDirection dir = ForgeDirection.getOrientation(pureMeta); + + if(dir == ForgeDirection.UNKNOWN) + return true; + + for(int i = -1; i <= 1; i += 1) { - world.setBlockMetadataWithNotify(ix, iy, iz, newMeta, 3); + int ix = x + dir.offsetX * i; + int iy = y + dir.offsetY * i; + int iz = z + dir.offsetZ * i; - ix += dir.offsetX * i; - iy += dir.offsetY * i; - iz += dir.offsetZ * i; + while(world.getBlock(ix, iy, iz) == this && world.getBlockMetadata(ix, iy, iz) == oldMeta) { + + world.setBlockMetadataWithNotify(ix, iy, iz, newMeta, 3); + + ix += dir.offsetX * i; + iy += dir.offsetY * i; + iz += dir.offsetZ * i; + } } + + return true; } - return true; + return false; } @Override @@ -68,10 +95,13 @@ public class BlockGraphiteRod extends BlockGraphiteDrilledBase implements IToola return false; if(!world.isRemote) { + + int meta = world.getBlockMetadata(x, y, z) & 3; - int meta = world.getBlockMetadata(x, y, z) & 4; - world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, meta, 3); - this.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.pile_rod_boron)); + if(side == meta * 2 || side == meta * 2 + 1) { + world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, meta, 3); + this.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.pile_rod_boron)); + } } return true;