/* * Copyright (c) CovertJaguar, 2014 http://railcraft.info * * This code is the property of CovertJaguar * and may only be used with explicit written * permission unless otherwise specified on the * license page at http://railcraft.info/wiki/info:license. */ package mods.railcraft.common.blocks.hidden; import cpw.mods.fml.common.registry.GameRegistry; import java.util.ArrayList; import java.util.List; import java.util.Random; import net.minecraft.block.material.Material; import net.minecraft.util.IIcon; import mods.railcraft.common.core.RailcraftConfig; import mods.railcraft.common.plugins.forge.RailcraftRegistry; import net.minecraft.block.BlockContainer; import net.minecraft.client.particle.EffectRenderer; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; /** * * @author CovertJaguar <http://www.railcraft.info> */ public class BlockHidden extends BlockContainer { private static BlockHidden block; public static BlockHidden getBlock() { return block; } public static void registerBlock() { if (block == null && RailcraftConfig.isBlockEnabled("residual.heat")) { block = new BlockHidden(); RailcraftRegistry.register(block); } } public BlockHidden() { super(Material.air); setBlockName("railcraft.residual.heat"); disableStats(); setStepSound(new SoundType("null", 0, 0)); GameRegistry.registerTileEntity(TileHidden.class, "RCHiddenTile"); } @Override public void registerBlockIcons(IIconRegister iconRegister) { } @Override public IIcon getIcon(int side, int meta) { try { return Blocks.tallgrass.getIcon(side, meta); } catch (NullPointerException ex) { return null; } } @Override public int quantityDropped(Random par1Random) { return 0; } @Override public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) { return new ArrayList<ItemStack>(); } @Override public int getRenderType() { return -1; } @Override public boolean isOpaqueCube() { return false; } @Override public boolean renderAsNormalBlock() { return false; } @Override public boolean isAir(IBlockAccess world, int x, int y, int z) { return true; } @Override public void addCollisionBoxesToList(World par1World, int par2, int par3, int par4, AxisAlignedBB par5AxisAlignedBB, List par6List, Entity par7Entity) { } @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) { return null; } @Override public AxisAlignedBB getSelectedBoundingBoxFromPool(World par1World, int par2, int par3, int par4) { return null; } @Override public boolean canCollideCheck(int par1, boolean par2) { return false; } @Override public boolean isCollidable() { return false; } @Override public MovingObjectPosition collisionRayTrace(World par1World, int par2, int par3, int par4, Vec3 par5Vec3, Vec3 par6Vec3) { return null; } @Override public final void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { } @Override public int getMobilityFlag() { return 1; } @Override public TileEntity createNewTileEntity(World world, int meta) { return new TileHidden(); } @Override public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) { return true; } @Override public boolean addDestroyEffects(World world, int x, int y, int z, int meta, EffectRenderer effectRenderer) { return true; } @Override public boolean addHitEffects(World worldObj, MovingObjectPosition target, EffectRenderer effectRenderer) { return true; } }