Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.prefixaut.voidmod.blocks;
- 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.entity.EntityLivingBase;
- 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.util.IIcon;
- import net.minecraft.util.MathHelper;
- import net.minecraft.world.World;
- import net.prefixaut.voidmod.VoidMod;
- import net.prefixaut.voidmod.api.VoidBlocks;
- import net.prefixaut.voidmod.tileentitys.VoidExtractorTileEntity;
- import java.util.Random;
- import cpw.mods.fml.relauncher.Side;
- import cpw.mods.fml.relauncher.SideOnly;
- public class VoidExtractorBlock extends BlockContainer {
- private boolean isActive;
- @SideOnly(Side.CLIENT)
- private IIcon top, left, right, back, front, frontA, bottom;
- private String ipath = VoidMod.MODID + ":";
- public VoidExtractorBlock(boolean isActive, String name) {
- super(Material.rock);
- this.isActive = isActive;
- if (isActive) ipath += name.substring(0, name.length() - 6);
- else ipath += name;
- this.setBlockName(name);
- this.setBlockTextureName(VoidMod.MODID + ":" + name);
- // if (!isActive)
- this.setCreativeTab(VoidMod.voidTab);
- this.setHardness(4.0F);
- this.setResistance(7.0F);
- this.setHarvestLevel("pickaxe", 2);
- }
- public void updateActivity(boolean active, World world, int x, int y, int z, VoidExtractorTileEntity entity) {
- if (active == isActive) return;
- isActive = active;
- int dir = world.getBlockMetadata(x, y, z);
- System.out.println("saved TileEnetity " + entity);
- world.setBlockToAir(x, y, z);
- if (isActive) world.setBlock(x, y, z, VoidBlocks.voidExtractorActive);
- else world.setBlock(x, y, z, VoidBlocks.voidExtractor);
- world.setBlockMetadataWithNotify(x, y, z, dir, 2);
- if (entity != null) {
- entity.validate();
- world.setTileEntity(x, y, z, entity);
- entity.validate();
- } else world.setTileEntity(x, y, z, new VoidExtractorTileEntity());
- }
- @SideOnly(Side.CLIENT)
- @Override
- public void registerBlockIcons(IIconRegister ireg) {
- this.top = ireg.registerIcon(ipath + "_top");
- this.left = ireg.registerIcon(ipath + "_left");
- this.right = ireg.registerIcon(ipath + "_right");
- this.back = ireg.registerIcon(ipath + "_back");
- this.front = ireg.registerIcon(ipath + "_front");
- this.frontA = ireg.registerIcon(ipath + "_frontActive");
- this.bottom = ireg.registerIcon(ipath + "_bottom");
- }
- @Override
- public IIcon getIcon(int side, int metadata) {
- switch (side) {
- case 0: return this.bottom;
- case 1: return this.top;
- case 2: return isActive ? this.frontA : this.front;
- case 3: return this.back;
- case 4: return this.left;
- case 5: return this.right;
- default: return null;
- }
- }
- @Override
- public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) {
- player.openGui(VoidMod.instance, 666, world, x, y, z);
- return true;
- }
- @Override
- public Item getItemDropped(int par1, Random random, int par3) {
- return Item.getItemFromBlock(VoidBlocks.voidExtractor);
- }
- @Override
- public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack itemstack) {
- int dir = MathHelper.floor_double((double) (entity.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
- switch (dir) {
- case 0: world.setBlockMetadataWithNotify(x, y, z, 2, 2);
- break;
- case 1: world.setBlockMetadataWithNotify(x, y, z, 5, 2);
- break;
- case 2: world.setBlockMetadataWithNotify(x, y, z, 3, 2);
- break;
- case 3: world.setBlockMetadataWithNotify(x, y, z, 4, 2);
- break;
- }
- super.onBlockPlacedBy(world, x, y, z, entity, itemstack);
- }
- @Override
- public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
- VoidExtractorTileEntity te = (VoidExtractorTileEntity) world.getTileEntity(x, y, z);
- if (te != null) {
- for (int i=0; i < te.getSizeInventory(); i++) {
- ItemStack itm = te.getStackInSlot(i);
- if (itm != null) {
- float fx = new Random().nextFloat() * 0.6F + 0.1F;
- float fy = new Random().nextFloat() * 0.6F + 0.1F;
- float fz = new Random().nextFloat() * 0.6F + 0.1F;
- EntityItem eitm = new EntityItem(world, (double) x + fx, (double) y + fy, (double) z + fz, itm);
- }
- }
- }
- super.breakBlock(world, x, y, z, block, meta);
- }
- @Override
- public TileEntity createNewTileEntity(World world, int metadata) {
- return new VoidExtractorTileEntity();
- }
- @Override
- public TileEntity createTileEntity(World world, int metadata) {
- return new VoidExtractorTileEntity();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement