package net.minecraft.block;
import java.util.Iterator;
import net.minecraft.block.material.Material;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class BlockPressurePlateWeighted extends BlockBasePressurePlate
{
/** The maximum number of items the plate weights. */
private final int maxItemsWeighted;
protected BlockPressurePlateWeighted(int par1, String par2Str, Material par3Material, int par4)
{
super(par1, par2Str, par3Material);
this.maxItemsWeighted = par4;
}
/**
* Returns the current state of the pressure plate. Returns a value between 0 and 15 based on the number of items on
* it.
*/
protected int getPlateState(World par1World, int par2, int par3, int par4)
{
int l = 0;
Iterator iterator = par1World.getEntitiesWithinAABB(EntityItem.class, this.getSensitiveAABB(par2, par3, par4)).iterator();
while (iterator.hasNext())
{
EntityItem entityitem = (EntityItem)iterator.next();
l += entityitem.getEntityItem().stackSize;
if (l >= this.maxItemsWeighted)
{
break;
}
}
if (l <= 0)
{
return 0;
}
else
{
float f = (float)Math.min(this.maxItemsWeighted, l) / (float)this.maxItemsWeighted;
return MathHelper.ceiling_float_int(f * 15.0F);
}
}
/**
* Argument is metadata. Returns power level (0-15)
*/
protected int getPowerSupply(int par1)
{
return par1;
}
/**
* Argument is weight (0-15). Return the metadata to be set because of it.
*/
protected int getMetaFromWeight(int par1)
{
return par1;
}
/**
* How many world ticks before ticking
*/
public int tickRate(World par1World)
{
return 10;
}
}