diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f8d1e7bde..29740b894 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2010,7 +2010,9 @@ public class ModBlocks { plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); icf = new MachineICF().setBlockName("icf").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + icf_controller = new MachineICFController().setBlockName("icf_controller").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":icf_casing"); icf_laser_component = new BlockICFLaserComponent().setBlockName("icf_laser_component").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab); + icf_block = new BlockICF(Material.iron).setBlockName("icf_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":icf_block"); watz_element = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_element_top").setBlockName("watz_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_element_side"); watz_control = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_control_top").setBlockName("watz_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_control_side"); @@ -3342,6 +3344,8 @@ public class ModBlocks { GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName()); register(icf_laser_component); + register(icf_controller); + register(icf_block); register(icf); GameRegistry.registerBlock(watz_element, watz_element.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockICF.java b/src/main/java/com/hbm/blocks/machine/BlockICF.java new file mode 100644 index 000000000..07bb53a6a --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockICF.java @@ -0,0 +1,72 @@ +package com.hbm.blocks.machine; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.render.block.ct.CT; +import com.hbm.render.block.ct.CTStitchReceiver; +import com.hbm.render.block.ct.IBlockCT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockICF extends BlockContainer implements IBlockCT { + + @SideOnly(Side.CLIENT) protected IIcon iconPort; + + public BlockICF(Material mat) { + super(mat); + } + + @Override + public int getRenderType() { + return CT.renderID; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @SideOnly(Side.CLIENT) public CTStitchReceiver rec; + @SideOnly(Side.CLIENT) public CTStitchReceiver recPort; + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.iconPort = reg.registerIcon(RefStrings.MODID + ":icf_casing_port"); + this.rec = IBlockCT.primeReceiver(reg, this.blockIcon.getIconName(), this.blockIcon); + this.recPort = IBlockCT.primeReceiver(reg, this.iconPort.getIconName(), this.iconPort); + } + + @Override + public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + if(meta == 1) return recPort.fragCache; + return rec.fragCache; + } + + @Override + public boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) { + return block == ModBlocks.icf_block || block == ModBlocks.icf_controller; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityBlockICF(); + } + + public static class TileEntityBlockICF extends TileEntity { + + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java b/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java index 6d37458fe..5685fee9a 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java +++ b/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java @@ -26,11 +26,12 @@ public class BlockICFLaserComponent extends BlockEnumMulti { this.iconsTop = new IIcon[enums.length]; this.icons[0] = this.iconsTop[0] = reg.registerIcon(RefStrings.MODID + ":icf_casing"); - this.icons[1] = this.iconsTop[1] = reg.registerIcon(RefStrings.MODID + ":icf_cell"); - this.icons[2] = this.iconsTop[2] = reg.registerIcon(RefStrings.MODID + ":icf_emitter"); - this.icons[3] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_side"); - this.icons[4] = reg.registerIcon(RefStrings.MODID + ":icf_turbocharger"); - this.iconsTop[3] = this.iconsTop[4] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_top"); + this.icons[1] = this.iconsTop[1] = reg.registerIcon(RefStrings.MODID + ":icf_port"); + this.icons[2] = this.iconsTop[2] = reg.registerIcon(RefStrings.MODID + ":icf_cell"); + this.icons[3] = this.iconsTop[3] = reg.registerIcon(RefStrings.MODID + ":icf_emitter"); + this.icons[4] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_side"); + this.icons[5] = reg.registerIcon(RefStrings.MODID + ":icf_turbocharger"); + this.iconsTop[4] = this.iconsTop[5] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_top"); } @Override @@ -41,11 +42,12 @@ public class BlockICFLaserComponent extends BlockEnumMulti { @Override public int getSubCount() { - return 5; + return EnumICFPart.values().length; } public static enum EnumICFPart { CASING, + PORT, CELL, EMITTER, CAPACITOR, diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFController.java b/src/main/java/com/hbm/blocks/machine/MachineICFController.java new file mode 100644 index 000000000..ba1487f40 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineICFController.java @@ -0,0 +1,53 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class MachineICFController extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + + public MachineICFController() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":icf_controller"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index a0cfd2009..6722092e2 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -15,6 +15,7 @@ import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter; +import com.hbm.blocks.machine.BlockICF.TileEntityBlockICF; import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; import com.hbm.blocks.machine.MachineCapacitor.TileEntityCapacitor; import com.hbm.blocks.machine.MachineFan.TileEntityFan; @@ -160,6 +161,7 @@ public class TileMappings { put(TileEntityMicrowave.class, "tileentity_microwave"); put(TileEntityMachineMiniRTG.class, "tileentity_mini_rtg"); put(TileEntityITER.class, "tileentity_iter"); + put(TileEntityBlockICF.class, "tileentity_block_icf"); put(TileEntityICF.class, "tileentity_icf"); put(TileEntityMachinePlasmaHeater.class, "tileentity_plasma_heater"); put(TileEntityMachineFENSU.class, "tileentity_fensu"); diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block_port.png b/src/main/resources/assets/hbm/textures/blocks/icf_block_port.png new file mode 100644 index 000000000..c7595645a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_block_port.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block_port_ct.png b/src/main/resources/assets/hbm/textures/blocks/icf_block_port_ct.png new file mode 100644 index 000000000..c877a699c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_block_port_ct.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_port.png b/src/main/resources/assets/hbm/textures/blocks/icf_port.png new file mode 100644 index 000000000..c9637ddb0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_port.png differ