diff options
| author | Kiwi <42833050+Kiwi233@users.noreply.github.com> | 2020-05-22 20:23:55 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-22 20:23:55 +0800 |
| commit | 56689ec7b67c46c882d49da4742770e3397a4e9f (patch) | |
| tree | 879a3372906ec2c5f2a53a4ac46f7dde860a654f /src/main/java/common/blocks | |
| parent | bc19f3ab32c9bccbf936bbeffcc8ddad967ffffd (diff) | |
| parent | 306a0822c27c59cdbd0a61698939a2dfc02068d2 (diff) | |
| download | GT5-Unofficial-56689ec7b67c46c882d49da4742770e3397a4e9f.tar.gz GT5-Unofficial-56689ec7b67c46c882d49da4742770e3397a4e9f.tar.bz2 GT5-Unofficial-56689ec7b67c46c882d49da4742770e3397a4e9f.zip | |
Merge pull request #1 from kekzdealer/master
5/22
Diffstat (limited to 'src/main/java/common/blocks')
25 files changed, 1572 insertions, 0 deletions
diff --git a/src/main/java/common/blocks/BaseGTUpdateableBlock.java b/src/main/java/common/blocks/BaseGTUpdateableBlock.java new file mode 100644 index 0000000000..6f554101ca --- /dev/null +++ b/src/main/java/common/blocks/BaseGTUpdateableBlock.java @@ -0,0 +1,58 @@ +package common.blocks; + + +import gregtech.api.GregTech_API; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +/** + * Any blocks that are used as structure parts for GregTech multi machines + * have to inherit from this class. Otherwise the checkMachine() method + * that verifies a machine's structure won't be called correctly. + */ +public abstract class BaseGTUpdateableBlock extends Block { + + protected BaseGTUpdateableBlock(Material material) { + super(material); + GregTech_API.registerMachineBlock(this, -1); + super.setHarvestLevel("wrench", 2); + } + + @Override + public int damageDropped(int meta){ + return meta; + } + + @Override + public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) { + return false; + } + + @Override + public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) { + return false; + } + + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return false; + } + + @Override + public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } + + @Override + public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } +} diff --git a/src/main/java/common/blocks/Block_ControlRod.java b/src/main/java/common/blocks/Block_ControlRod.java new file mode 100644 index 0000000000..808881dead --- /dev/null +++ b/src/main/java/common/blocks/Block_ControlRod.java @@ -0,0 +1,28 @@ +package common.blocks; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +public class Block_ControlRod extends BaseGTUpdateableBlock { + + private static final Block_ControlRod instance = new Block_ControlRod(); + + private Block_ControlRod() { + super(Material.iron); + } + + public static Block registerBlock() { + final String blockName = "kekztech_controlrod_block"; + instance.setBlockName(blockName); + instance.setCreativeTab(CreativeTabs.tabMisc); + instance.setBlockTextureName(KekzCore.MODID + ":" + "ControlRod"); + instance.setHardness(5.0f); + instance.setResistance(6.0f); + GameRegistry.registerBlock(instance, blockName); + + return instance; + } +} diff --git a/src/main/java/common/blocks/Block_GDCUnit.java b/src/main/java/common/blocks/Block_GDCUnit.java new file mode 100644 index 0000000000..aab81e1aeb --- /dev/null +++ b/src/main/java/common/blocks/Block_GDCUnit.java @@ -0,0 +1,28 @@ +package common.blocks;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import kekztech.KekzCore;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.creativetab.CreativeTabs;
+
+public class Block_GDCUnit extends BaseGTUpdateableBlock {
+
+ private static final Block_GDCUnit instance = new Block_GDCUnit();
+
+ private Block_GDCUnit() {
+ super(Material.iron);
+ }
+
+ public static Block registerBlock() {
+ final String blockName = "kekztech_gdcceramicelectrolyteunit_block";
+ instance.setBlockName(blockName);
+ instance.setCreativeTab(CreativeTabs.tabMisc);
+ instance.setBlockTextureName(KekzCore.MODID + ":" + "GDCCeramicElectrolyteUnit");
+ instance.setHardness(5.0f);
+ instance.setResistance(6.0f);
+ GameRegistry.registerBlock(instance, blockName);
+
+ return instance;
+ }
+}
diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java new file mode 100644 index 0000000000..560fd0c37b --- /dev/null +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -0,0 +1,222 @@ +package common.blocks; + +import common.itemBlocks.IB_IchorJar; +import common.tileentities.TE_IchorJar; +import common.tileentities.TE_IchorVoidJar; +import cpw.mods.fml.common.registry.GameRegistry; +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.creativetab.CreativeTabs; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.Explosion; +import net.minecraft.world.World; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.common.blocks.BlockJar; +import thaumcraft.common.config.ConfigBlocks; +import thaumcraft.common.config.ConfigItems; +import thaumcraft.common.items.ItemEssence; +import thaumcraft.common.tiles.TileJarFillable; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class Block_IchorJar extends BlockJar { + + private static final Block_IchorJar INSTANCE = new Block_IchorJar(); + + private Block_IchorJar() { + super(); + + super.setHardness(12.0F); + super.setResistance(3.0f); + } + + public static Block registerBlock() { + final String blockName = "kekztech_ichorjar_block"; + INSTANCE.setBlockName(blockName); + GameRegistry.registerBlock(INSTANCE, IB_IchorJar.class, blockName); + + return INSTANCE; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister ir) { + super.iconLiquid = ir.registerIcon("thaumcraft:animatedglow"); + super.iconJarSide = ir.registerIcon("kekztech:ichor_jar_side"); + super.iconJarTop = ir.registerIcon("kekztech:ichor_jar_top"); + super.iconJarTopVoid = ir.registerIcon("kekztech:ichor_jar_top_void"); + super.iconJarSideVoid = ir.registerIcon("kekztech:ichor_jar_side_void"); + super.iconJarBottom = ir.registerIcon("kekztech:ichor_jar_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + @SuppressWarnings({"unchecked"}) + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { + par3List.add(new ItemStack(par1, 1, 0)); // Normal jar + par3List.add(new ItemStack(par1, 1, 3)); // Void jar + } + + @Override + public TileEntity createTileEntity(World world, int meta) { + if(meta == 3) { + return new TE_IchorVoidJar(); + } else { + return new TE_IchorJar(); + } + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float f1, float f2, float f3) { + // Call parent method to handle jar emptying, labels stuff etc + super.onBlockActivated(world, x, y, z, player, side, f1, f2, f3); + // Interact with Essentia Phials if the player holds one + final ItemStack heldItem = player.getHeldItem(); + if(heldItem != null && heldItem.getItem() == ConfigItems.itemEssence) { + final TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TE_IchorJar) { + return dealWithPhial(world, player, x, y, z); + } else if(te instanceof TE_IchorVoidJar) { + return dealWithPhial(world, player, x, y, z); + } + } + + return true; + } + + /** + * Handle compatibility with Essentia Phials + * @param world + * Pass through from onBlockActivated() + * @param player + * Pass through from onBlockActivated() + * @param x + * Pass through from onBlockActivated() + * @param y + * Pass through from onBlockActivated() + * @param z + * Pass through from onBlockActivated() + * @return Not sure tbh + */ + private boolean dealWithPhial(World world, EntityPlayer player, int x, int y, int z) { + final TileJarFillable jarTE = (TileJarFillable) world.getTileEntity(x, y, z); + final ItemStack heldItem = player.getHeldItem(); + // Check whether to fill or to drain the phial + if(heldItem.getItemDamage() == 0) { + if(jarTE.amount >= 8){ + if (world.isRemote) { + player.swingItem(); + return false; + } + + final Aspect jarAspect = Aspect.getAspect(jarTE.aspect.getTag()); + if(jarTE.takeFromContainer(jarAspect, 8)) { + // Take an empty phial from the player's inventory + heldItem.stackSize--; + // Fill a new phial + final ItemStack filledPhial = new ItemStack(ConfigItems.itemEssence, 1, 1); + final AspectList phialContent = new AspectList().add(jarAspect, 8); + ((ItemEssence) ConfigItems.itemEssence).setAspects(filledPhial, phialContent); + // Drop on ground if there's no inventory space + if (!player.inventory.addItemStackToInventory(filledPhial)) { + world.spawnEntityInWorld(new EntityItem(world, (float)x + 0.5F, (float)y + 0.5F, (float)z + 0.5F, filledPhial)); + } + + world.playSoundAtEntity(player, "game.neutral.swim", 0.25F, 1.0F); + player.inventoryContainer.detectAndSendChanges(); + return true; + } + } + } else { + final AspectList phialContent = ((ItemEssence) ConfigItems.itemEssence).getAspects(heldItem); + if(phialContent != null && phialContent.size() == 1) { + final Aspect phialAspect = phialContent.getAspects()[0]; + if(jarTE.amount + 8 <= jarTE.maxAmount && jarTE.doesContainerAccept(phialAspect)) { + if (world.isRemote) { + player.swingItem(); + return false; + } + + if(jarTE.addToContainer(phialAspect, 8) == 0) { + world.markBlockForUpdate(x, y, z); + jarTE.markDirty(); + heldItem.stackSize--; + // Drop on ground if there's no inventory space + if (!player.inventory.addItemStackToInventory(new ItemStack(ConfigItems.itemEssence, 1, 0))) { + world.spawnEntityInWorld(new EntityItem(world, (float)x + 0.5F, (float)y + 0.5F, (float)z + 0.5F, new ItemStack(ConfigItems.itemEssence, 1, 0))); + } + + world.playSoundAtEntity(player, "game.neutral.swim", 0.25F, 1.0F); + player.inventoryContainer.detectAndSendChanges(); + return true; + } + } + } + } + + return true; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block par5, int par6) { + final TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TE_IchorJar) { + final TE_IchorJar ite = (TE_IchorJar) te; + breakBlockWarpy(world, x, y, z, ite.amount, 200, 6.0F); + } else if(te instanceof TE_IchorVoidJar) { + final TE_IchorVoidJar ite = (TE_IchorVoidJar) te; + breakBlockWarpy(world, x, y, z, ite.amount, 200, 6.0F); + } + super.breakBlock(world, x, y, z, par5, par6); + } + + private void breakBlockWarpy(World world, int x, int y, int z, int fillAmount, int iterations, float explosionStrength){ + if(fillAmount > 0) { + // Create a decent explosion in the center of the block (TNT has strength 4.0F) + world.createExplosion(null, x + 0.5D, y + 0.5D, z + 0.5D, explosionStrength, false); + + // Place a lot of Flux in the area + final int limit = fillAmount / 16; + int created = 0; + for(int i = 0; i < iterations; i++) { + final int xf = x + world.rand.nextInt(7) - world.rand.nextInt(7); + final int yf = x + world.rand.nextInt(7) - world.rand.nextInt(7); + final int zf = x + world.rand.nextInt(7) - world.rand.nextInt(7); + if(world.isAirBlock(xf, yf, zf)) { + if(yf > y) { + world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGas, 8, 3); + } else { + world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGoo, 8, 3); + } + + if(created++ > limit) { + break; + } + } + } + } + } + + @Override + public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) { + return new ArrayList<>(Collections.singleton(new ItemStack(this, 1, (meta == 3) ? 3 : 0))); + } + + @Override + public void onBlockHarvested(World par1World, int par2, int par3, int par4, int par5, EntityPlayer par6EntityPlayer) { + } + + @Override + public boolean canDropFromExplosion(Explosion e) { + return false; + } +} diff --git a/src/main/java/common/blocks/Block_ItemProxyCable.java b/src/main/java/common/blocks/Block_ItemProxyCable.java new file mode 100644 index 0000000000..ce2f1e9820 --- /dev/null +++ b/src/main/java/common/blocks/Block_ItemProxyCable.java @@ -0,0 +1,66 @@ +package common.blocks; + +import common.itemBlocks.IB_ItemProxyCable; +import common.tileentities.TE_ItemProxyCable; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import client.renderer.ConduitRenderer; + +public class Block_ItemProxyCable extends Block { + + private static Block_ItemProxyCable instance = new Block_ItemProxyCable(); + + private Block_ItemProxyCable() { + super(Material.glass); + } + + public static Block registerBlock() { + final String blockName = "kekztech_itemproxycable_block"; + instance.setBlockName(blockName); + instance.setCreativeTab(CreativeTabs.tabMisc); + instance.setBlockTextureName(KekzCore.MODID + ":" + "TFFTCasing"); + instance.setHardness(3.0f); + instance.setResistance(2.0f); + GameRegistry.registerBlock(instance, IB_ItemProxyCable.class, blockName); + + return instance; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public TileEntity createTileEntity(World world, int p_149915_2_) { + return new TE_ItemProxyCable(); + } + + @Override + public boolean hasTileEntity(int metadata) { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return 1; + } + + @Override + public int getRenderType() { + return ConduitRenderer.RID; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } +} diff --git a/src/main/java/common/blocks/Block_ItemProxyEndpoint.java b/src/main/java/common/blocks/Block_ItemProxyEndpoint.java new file mode 100644 index 0000000000..00e0426250 --- /dev/null +++ b/src/main/java/common/blocks/Block_ItemProxyEndpoint.java @@ -0,0 +1,61 @@ +package common.blocks; + +import common.itemBlocks.IB_ItemProxyEndpoint; +import common.tileentities.TE_ItemProxyEndpoint; +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.GuiHandler; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class Block_ItemProxyEndpoint extends Block { + + private static final Block_ItemProxyEndpoint instance = new Block_ItemProxyEndpoint(); + + private Block_ItemProxyEndpoint() { + super(Material.glass); + } + + public static Block registerBlock() { + final String blockName = "kekztech_itemproxyendpoint_block"; + instance.setBlockName(blockName); + instance.setCreativeTab(CreativeTabs.tabMisc); + instance.setBlockTextureName(KekzCore.MODID + ":" + "ItemProxyEndpoint"); + instance.setHardness(3.0f); + instance.setResistance(2.0f); + instance.setHarvestLevel("wrench", 2); + GameRegistry.registerBlock(instance, IB_ItemProxyEndpoint.class, blockName); + + return instance; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float lx, float ly, float lz) { + if(world.isRemote) { + return true; + } + + final TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TE_ItemProxyEndpoint) { + player.openGui(KekzCore.instance, GuiHandler.ITEM_PROXY_ENDPOINT, world, x, y, z); + return true; + } else { + return false; + } + } + + @Override + public TileEntity createTileEntity(World world, int p_149915_2_) { + return new TE_ItemProxyEndpoint(); + } + + @Override + public boolean hasTileEntity(int metadata) { + return true; + } + +}
\ No newline at end of file diff --git a/src/main/java/common/blocks/Block_ItemProxySource.java b/src/main/java/common/blocks/Block_ItemProxySource.java new file mode 100644 index 0000000000..7291c15e6f --- /dev/null +++ b/src/main/java/common/blocks/Block_ItemProxySource.java @@ -0,0 +1,61 @@ +package common.blocks; + +import common.itemBlocks.IB_ItemProxySource; +import common.tileentities.TE_ItemProxySource; +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.GuiHandler; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class Block_ItemProxySource extends Block { + + private static final Block_ItemProxySource instance = new Block_ItemProxySource(); + + private Block_ItemProxySource() { + super(Material.glass); + } + + public static Block registerBlock() { + final String blockName = "kekztech_itemproxysource_block"; + instance.setBlockName(blockName); + instance.setCreativeTab(CreativeTabs.tabMisc); + instance.setBlockTextureName(KekzCore.MODID + ":" + "ItemProxySource"); + instance.setHardness(3.0f); + instance.setResistance(2.0f); + instance.setHarvestLevel("wrench", 2); + GameRegistry.registerBlock(instance, IB_ItemProxySource.class, blockName); + + return instance; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float lx, float ly, float lz) { + if(world.isRemote) { + return true; + } + + final TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TE_ItemProxySource) { + player.openGui(KekzCore.instance, GuiHandler.ITEM_PROXY_SOURCE, world, x, y, z); + return true; + } else { + return false; + } + } + + @Override + public TileEntity createTileEntity(World world, int p_149915_2_) { + return new TE_ItemProxySource(); + } + + @Override + public boolean hasTileEntity(int metadata) { + return true; + } + +} diff --git a/src/main/java/common/blocks/Block_ItemServerDrive.java b/src/main/java/common/blocks/Block_ItemServerDrive.java new file mode 100644 index 0000000000..63747a8598 --- /dev/null +++ b/src/main/java/common/blocks/Block_ItemServerDrive.java @@ -0,0 +1,57 @@ +package common.blocks; + +import common.itemBlocks.IB_ItemServerDrive; +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.IIcon; + +public class Block_ItemServerDrive extends BaseGTUpdateableBlock{ + + private static Block_ItemServerDrive instance = new Block_ItemServerDrive(); + + private IIcon[] faces = new IIcon[6]; + + private Block_ItemServerDrive() { + super(Material.iron); + } + + public static Block registerBlock() { + final String blockName = "kekztech_itemserverdrive_block"; + instance.setBlockName(blockName); + instance.setCreativeTab(CreativeTabs.tabMisc); + instance.setHardness(5.0f); + instance.setResistance(6.0f); + GameRegistry.registerBlock(instance, IB_ItemServerDrive.class, blockName); + + return instance; + } + + @Override + public void registerBlockIcons(IIconRegister reg) { + for(int i = 0; i < 6; i++) { + if(i == 0) { + faces[i] = reg.registerIcon(KekzCore.MODID + ":" + "ItemServerDrive_BOTTOM"); + } else if(i == 1) { + faces[i] = reg.registerIcon(KekzCore.MODID + ":" + "ItemServerDrive_TOP"); + } else { + faces[i] = reg.registerIcon(KekzCore.MODID + ":" + "ItemServerDrive"); + } + + } + } + + @Override + public IIcon getIcon(int side, int meta) { + return faces[side]; + } + + @Override + public int getLightValue() { + return 7; + } + +} diff --git a/src/main/java/common/blocks/Block_ItemServerIOPort.java b/src/main/java/common/blocks/Block_ItemServerIOPort.java new file mode 100644 index 0000000000..6af90b6e42 --- /dev/null +++ b/src/main/java/common/blocks/Block_ItemServerIOPort.java @@ -0,0 +1,43 @@ +package common.blocks; + +import common.itemBlocks.IB_ItemServerIOPort; +import common.tileentities.TE_ItemServerIOPort; +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class Block_ItemServerIOPort extends BaseGTUpdateableBlock { + + private static Block_ItemServerIOPort instance = new Block_ItemServerIOPort(); + + private Block_ItemServerIOPort() { + super(Material.iron); + } + + public static Block registerBlock() { + final String blockName = "kekztech_itemserverioport_block"; + instance.setBlockName(blockName); + instance.setCreativeTab(CreativeTabs.tabMisc); + instance.setBlockTextureName(KekzCore.MODID + ":" + "ItemServerIOPort"); + instance.setHardness(5.0f); + instance.setResistance(6.0f); + GameRegistry.registerBlock(instance, IB_ItemServerIOPort.class, blockName); + + return instance; + } + + @Override + public boolean hasTileEntity(int metadata) { + return true; + } + + @Override + public TileEntity createTileEntity(World world, int metadata) { + return new TE_ItemServerIOPort(); + } + +} diff --git a/src/main/java/common/blocks/Block_ItemServerRackCasing.java b/src/main/java/common/blocks/Block_ItemServerRackCasing.java new file mode 100644 index 0000000000..db0ec9c3e6 --- /dev/null +++ b/src/main/java/common/blocks/Block_ItemServerRackCasing.java @@ -0,0 +1,30 @@ +package common.blocks; + +import common.itemBlocks.IB_ItemServerRackCasing; +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +public class Block_ItemServerRackCasing extends BaseGTUpdateableBlock { + + private static Block_ItemServerRackCasing instance = new Block_ItemServerRackCasing(); + + private Block_ItemServerRackCasing() { + super(Material.iron); + } + + public static Block registerBlock() { + final String blockName = "kekztech_itemserverrackcasing_block"; + instance.setBlockName(blockName); + instance.setCreativeTab(CreativeTabs.tabMisc); + instance.setBlockTextureName(KekzCore.MODID + ":" + "ItemServerRackCasing"); + instance.setHardness(5.0f); + instance.setResistance(6.0f); + GameRegistry.registerBlock(instance, IB_ItemServerRackCasing.class, blockName); + + return instance; + } + +} diff --git a/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java b/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java new file mode 100644 index 0000000000..9a6aad0b5b --- /dev/null +++ b/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java @@ -0,0 +1,93 @@ +package common.blocks; + +import java.util.List; + +import common.itemBlocks.IB_LapotronicEnergyUnit; +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class Block_LapotronicEnergyUnit extends BaseGTUpdateableBlock { + + private static final Block_LapotronicEnergyUnit instance = new Block_LapotronicEnergyUnit(); + + private IIcon iconBaseSide; + private IIcon iconBaseTop; + + private IIcon iconLapoIVSide; + private IIcon iconLapoIVTop; + private IIcon iconLapoLuVSide; + private IIcon iconLapoLuVTop; + private IIcon iconLapoZPMSide; + private IIcon iconLapoZPMTop; + private IIcon iconLapoUVSide; + private IIcon iconLapoUVTop; + private IIcon iconUltimateSide; + private IIcon iconUltimateTop; + + private Block_LapotronicEnergyUnit() { + super(Material.iron); + } + + public static Block registerBlock() { + final String blockName = "kekztech_lapotronicenergyunit_block"; + instance.setBlockName(blockName); + instance.setCreativeTab(CreativeTabs.tabMisc); + instance.setHardness(5.0f); + instance.setResistance(6.0f); + GameRegistry.registerBlock(instance, IB_LapotronicEnergyUnit.class, blockName); + + return instance; + } + + @Override + public void registerBlockIcons(IIconRegister ir) { + iconBaseSide = ir.registerIcon("kekztech:LSCBase_side"); + iconBaseTop = ir.registerIcon("kekztech:LSCBase_top"); + + iconLapoIVSide = ir.registerIcon("kekztech:LapotronicEnergyUnit1_side"); + iconLapoIVTop = ir.registerIcon("kekztech:LapotronicEnergyUnit1_top"); + iconLapoLuVSide = ir.registerIcon("kekztech:LapotronicEnergyUnit2_side"); + iconLapoLuVTop = ir.registerIcon("kekztech:LapotronicEnergyUnit2_top"); + iconLapoZPMSide = ir.registerIcon("kekztech:LapotronicEnergyUnit3_side"); + iconLapoZPMTop = ir.registerIcon("kekztech:LapotronicEnergyUnit3_top"); + iconLapoUVSide = ir.registerIcon("kekztech:LapotronicEnergyUnit4_side"); + iconLapoUVTop = ir.registerIcon("kekztech:LapotronicEnergyUnit4_top"); + + iconUltimateSide = ir.registerIcon("kekztech:UltimateEnergyUnit_side"); + iconUltimateTop = ir.registerIcon("kekztech:UltimateEnergyUnit_top"); + } + + @Override + @SuppressWarnings({"unchecked" }) + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { + // Multi casing + par3List.add(new ItemStack(par1, 1, 0)); + // Lapo units IV - UV + par3List.add(new ItemStack(par1, 1, 1)); + par3List.add(new ItemStack(par1, 1, 2)); + par3List.add(new ItemStack(par1, 1, 3)); + par3List.add(new ItemStack(par1, 1, 4)); + // Ultimate battery + par3List.add(new ItemStack(par1, 1, 5)); + } + + @Override + public IIcon getIcon(int side, int meta) { + switch(meta) { + case 0: return (side < 2) ? iconBaseTop : iconBaseSide; + case 1: return (side < 2) ? iconLapoIVTop : iconLapoIVSide; + case 2: return (side < 2) ? iconLapoLuVTop : iconLapoLuVSide; + case 3: return (side < 2) ? iconLapoZPMTop : iconLapoZPMSide; + case 4: return (side < 2) ? iconLapoUVTop : iconLapoUVSide; + case 5: return (side < 2) ? icon |
