assemblyline/src/main/java/assemblyline/common/machine/armbot/BlockArmbot.java
2022-10-26 19:42:44 +02:00

80 lines
2.5 KiB
Java

package assemblyline.common.machine.armbot;
import assemblyline.client.render.BlockRenderingHandler;
import assemblyline.common.TabAssemblyLine;
import assemblyline.common.block.BlockALMachine;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.multiblock.IMultiBlock;
public class BlockArmbot
extends BlockALMachine {
public BlockArmbot() {
super(UniversalElectricity.machine);
this.setBlockName("armbot");
this.setCreativeTab(TabAssemblyLine.INSTANCE);
}
@Override
public void onBlockAdded(World world, int x, int y, int z) {
TileEntity tileEntity = world.getTileEntity(x, y, z);
if (tileEntity != null && tileEntity instanceof IMultiBlock) {
((IMultiBlock)tileEntity).onCreate(new Vector3(x, y, z));
}
}
@Override
public boolean onMachineActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) {
TileEntity tileEntity = world.getTileEntity(x, y, z);
if (tileEntity != null && tileEntity instanceof IMultiBlock) {
return ((IMultiBlock)tileEntity).onActivated(player);
}
return false;
}
@Override
public void breakBlock(World world, int x, int y, int z, Block par5, int par6) {
TileEntity tileEntity = world.getTileEntity(x, y, z);
if (tileEntity != null && tileEntity instanceof IMultiBlock) {
((IMultiBlock)tileEntity).onDestroy(tileEntity);
}
this.dropBlockAsItem(world, x, y, z, new ItemStack(this));
super.breakBlock(world, x, y, z, par5, par6);
}
@Override
public int quantityDropped(Random par1Random) {
return 0;
}
@Override
public TileEntity createNewTileEntity(World var1, int meta) {
return new TileEntityArmbot();
}
@SideOnly(value=Side.CLIENT)
@Override
public int getRenderType() {
return BlockRenderingHandler.BLOCK_RENDER_ID;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean canProvidePower() {
return true;
}
}