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