From 19468ef28eabb0e53566cb2a07f468df3239ff1a Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Sun, 24 Apr 2016 11:32:09 +1000 Subject: Better handling of casing blocks. --- .../common/blocks/GregtechMetaCasingBlocks.java | 10 +- .../blocks/GregtechMetaCasingBlocksAbstract.java | 143 +++++++++++++++++++++ .../common/blocks/GregtechMetaCasingItems.java | 11 ++ 3 files changed, 159 insertions(+), 5 deletions(-) create mode 100644 src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingBlocksAbstract.java create mode 100644 src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingItems.java (limited to 'src') diff --git a/src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingBlocks.java b/src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingBlocks.java index 113c64a0c1..8c7fee4d3b 100644 --- a/src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingBlocks.java +++ b/src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingBlocks.java @@ -3,8 +3,6 @@ package miscutil.gregtech.common.blocks; import gregtech.api.enums.Textures; import gregtech.api.objects.GT_CopiedBlockTexture; import gregtech.api.util.GT_LanguageManager; -import gregtech.common.blocks.GT_Block_Casings_Abstract; -import gregtech.common.blocks.GT_Item_Casings1; import gregtech.common.blocks.GT_Material_Casings; import miscutil.gregtech.api.enums.GregtechItemList; import miscutil.gregtech.api.enums.GregtechTextures; @@ -13,9 +11,9 @@ import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; public class GregtechMetaCasingBlocks -extends GT_Block_Casings_Abstract { +extends GregtechMetaCasingBlocksAbstract { public GregtechMetaCasingBlocks() { - super(GT_Item_Casings1.class, "miscutils.blockcasings", GT_Material_Casings.INSTANCE); + super(GregtechMetaCasingItems.class, "miscutils.blockcasings", GT_Material_Casings.INSTANCE); for (byte i = 0; i < 16; i = (byte) (i + 1)) { GregtechTextures.BlockIcons.GT_CASING_BLOCKS[i] = new GT_CopiedBlockTexture(this, 6, i); } @@ -53,11 +51,12 @@ extends GT_Block_Casings_Abstract { ItemList.Casing_Coil_Superconductor.set(new ItemStack(this, 1, 15));*/ } + @Override public IIcon getIcon(int aSide, int aMeta) { if ((aMeta >= 0) && (aMeta < 16)) { switch (aMeta) { case 0: - return Textures.BlockIcons.MACHINE_CASING_TURBINE.getIcon(); + return Textures.BlockIcons.MACHINE_CASING_FROST_PROOF.getIcon(); case 1: return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); case 10: @@ -76,6 +75,7 @@ extends GT_Block_Casings_Abstract { return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); } + @Override public int colorMultiplier(IBlockAccess aWorld, int aX, int aY, int aZ) { return aWorld.getBlockMetadata(aX, aY, aZ) > 9 ? super.colorMultiplier(aWorld, aX, aY, aZ) : gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[0] << 16 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[1] << 8 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[2]; } diff --git a/src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingBlocksAbstract.java b/src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingBlocksAbstract.java new file mode 100644 index 0000000000..8d028dc064 --- /dev/null +++ b/src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingBlocksAbstract.java @@ -0,0 +1,143 @@ +package miscutil.gregtech.common.blocks; + +import gregtech.api.GregTech_API; +import gregtech.api.util.GT_LanguageManager; +import gregtech.common.blocks.GT_Block_Casings_Abstract; + +import java.util.List; +import java.util.Random; + +import miscutil.core.creative.AddToCreativeTab; +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.entity.Entity; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public abstract class GregtechMetaCasingBlocksAbstract + extends GT_Block_Casings_Abstract { + public GregtechMetaCasingBlocksAbstract(Class aItemClass, String aName, Material aMaterial) { + super(aItemClass, aName, aMaterial); + setStepSound(soundTypeMetal); + setCreativeTab(AddToCreativeTab.tabMachines); + GregTech_API.registerMachineBlock(this, -1); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + 32767 + ".name", "Any Sub Block of this"); + } + + @Override + public String getHarvestTool(int aMeta) { + return "wrench"; + } + + @Override + public int getHarvestLevel(int aMeta) { + return 2; + } + + @Override + public float getBlockHardness(World aWorld, int aX, int aY, int aZ) { + return Blocks.iron_block.getBlockHardness(aWorld, aX, aY, aZ); + } + + @Override + public float getExplosionResistance(Entity aTNT) { + return Blocks.iron_block.getExplosionResistance(aTNT); + } + + @Override + protected boolean canSilkHarvest() { + 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 String getUnlocalizedName() { + return this.mUnlocalizedName; + } + + @Override + public String getLocalizedName() { + return StatCollector.translateToLocal(this.mUnlocalizedName + ".name"); + } + + @Override + public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) { + return false; + } + + @Override + public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) { + return true; + } + + @Override + public boolean renderAsNormalBlock() { + return true; + } + + @Override + public boolean isOpaqueCube() { + return true; + } + + @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); + } + } + + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return false; + } + + @Override + public int damageDropped(int par1) { + return par1; + } + + @Override + public int getDamageValue(World par1World, int par2, int par3, int par4) { + return par1World.getBlockMetadata(par2, par3, par4); + } + + @Override + public int quantityDropped(Random par1Random) { + return 1; + } + + @Override + public Item getItemDropped(int par1, Random par2Random, int par3) { + return Item.getItemFromBlock(this); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister aIconRegister) { + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item aItem, CreativeTabs par2CreativeTabs, List aList) { + for (int i = 0; i < 16; i++) { + aList.add(new ItemStack(aItem, 1, i)); + } + } +} diff --git a/src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingItems.java b/src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingItems.java new file mode 100644 index 0000000000..c549ebcc31 --- /dev/null +++ b/src/Java/miscutil/gregtech/common/blocks/GregtechMetaCasingItems.java @@ -0,0 +1,11 @@ +package miscutil.gregtech.common.blocks; + +import gregtech.common.blocks.GT_Item_Casings_Abstract; +import net.minecraft.block.Block; + +public class GregtechMetaCasingItems + extends GT_Item_Casings_Abstract { + public GregtechMetaCasingItems(Block par1) { + super(par1); + } +} -- cgit