diff options
Diffstat (limited to 'kekztech/src/main/java/common/blocks/BaseGTUpdateableBlock.java')
-rw-r--r-- | kekztech/src/main/java/common/blocks/BaseGTUpdateableBlock.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/kekztech/src/main/java/common/blocks/BaseGTUpdateableBlock.java b/kekztech/src/main/java/common/blocks/BaseGTUpdateableBlock.java new file mode 100644 index 0000000000..ef61327dd7 --- /dev/null +++ b/kekztech/src/main/java/common/blocks/BaseGTUpdateableBlock.java @@ -0,0 +1,57 @@ +package common.blocks; + +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; + +import gregtech.api.GregTech_API; + +/** + * 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); + } + } +} |