001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import java.util.List; 006 007 public class BlockLilyPad extends BlockFlower 008 { 009 protected BlockLilyPad(int par1, int par2) 010 { 011 super(par1, par2); 012 float var3 = 0.5F; 013 float var4 = 0.015625F; 014 this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var4, 0.5F + var3); 015 this.setCreativeTab(CreativeTabs.tabDeco); 016 } 017 018 /** 019 * The type of render function that is called for this block 020 */ 021 public int getRenderType() 022 { 023 return 23; 024 } 025 026 /** 027 * if the specified block is in the given AABB, add its collision bounding box to the given list 028 */ 029 public void addCollidingBlockToList(World par1World, int par2, int par3, int par4, AxisAlignedBB par5AxisAlignedBB, List par6List, Entity par7Entity) 030 { 031 if (par7Entity == null || !(par7Entity instanceof EntityBoat)) 032 { 033 super.addCollidingBlockToList(par1World, par2, par3, par4, par5AxisAlignedBB, par6List, par7Entity); 034 } 035 } 036 037 /** 038 * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been 039 * cleared to be reused) 040 */ 041 public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) 042 { 043 return AxisAlignedBB.getAABBPool().addOrModifyAABBInPool((double)par2 + this.minX, (double)par3 + this.minY, (double)par4 + this.minZ, (double)par2 + this.maxX, (double)par3 + this.maxY, (double)par4 + this.maxZ); 044 } 045 046 @SideOnly(Side.CLIENT) 047 public int getBlockColor() 048 { 049 return 2129968; 050 } 051 052 @SideOnly(Side.CLIENT) 053 054 /** 055 * Returns the color this block should be rendered. Used by leaves. 056 */ 057 public int getRenderColor(int par1) 058 { 059 return 2129968; 060 } 061 062 @SideOnly(Side.CLIENT) 063 064 /** 065 * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called 066 * when first determining what to render. 067 */ 068 public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) 069 { 070 return 2129968; 071 } 072 073 /** 074 * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of 075 * blockID passed in. Args: blockID 076 */ 077 protected boolean canThisPlantGrowOnThisBlockID(int par1) 078 { 079 return par1 == Block.waterStill.blockID; 080 } 081 082 /** 083 * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. 084 */ 085 public boolean canBlockStay(World par1World, int par2, int par3, int par4) 086 { 087 return par3 >= 0 && par3 < 256 ? par1World.getBlockMaterial(par2, par3 - 1, par4) == Material.water && par1World.getBlockMetadata(par2, par3 - 1, par4) == 0 : false; 088 } 089 }