001 package net.minecraft.block;
002
003 import cpw.mods.fml.relauncher.Side;
004 import cpw.mods.fml.relauncher.SideOnly;
005 import net.minecraft.block.material.Material;
006 import net.minecraft.world.IBlockAccess;
007
008 public class BlockLeavesBase extends Block
009 {
010 /**
011 * Used to determine how to display leaves based on the graphics level. May also be used in rendering for
012 * transparency, not sure.
013 */
014 public boolean graphicsLevel;
015
016 protected BlockLeavesBase(int par1, int par2, Material par3Material, boolean par4)
017 {
018 super(par1, par2, par3Material);
019 this.graphicsLevel = par4;
020 }
021
022 /**
023 * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two
024 * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
025 */
026 public boolean isOpaqueCube()
027 {
028 return false;
029 }
030
031 @SideOnly(Side.CLIENT)
032
033 /**
034 * Returns true if the given side of this block type should be rendered, if the adjacent block is at the given
035 * coordinates. Args: blockAccess, x, y, z, side
036 */
037 public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
038 {
039 int var6 = par1IBlockAccess.getBlockId(par2, par3, par4);
040 return !this.graphicsLevel && var6 == this.blockID ? false : super.shouldSideBeRendered(par1IBlockAccess, par2, par3, par4, par5);
041 }
042 }