001package net.minecraft.block; 002 003import java.util.Iterator; 004import java.util.List; 005import net.minecraft.block.material.Material; 006import net.minecraft.entity.Entity; 007import net.minecraft.entity.EntityLiving; 008import net.minecraft.entity.player.EntityPlayer; 009import net.minecraft.world.World; 010 011public class BlockPressurePlate extends BlockBasePressurePlate 012{ 013 /** The mob type that can trigger this pressure plate. */ 014 private EnumMobType triggerMobType; 015 016 protected BlockPressurePlate(int par1, String par2Str, Material par3Material, EnumMobType par4EnumMobType) 017 { 018 super(par1, par2Str, par3Material); 019 this.triggerMobType = par4EnumMobType; 020 } 021 022 protected int func_94355_d(int par1) 023 { 024 return par1 > 0 ? 1 : 0; 025 } 026 027 protected int func_94350_c(int par1) 028 { 029 return par1 == 1 ? 15 : 0; 030 } 031 032 protected int func_94351_d(World par1World, int par2, int par3, int par4) 033 { 034 List list = null; 035 036 if (this.triggerMobType == EnumMobType.everything) 037 { 038 list = par1World.getEntitiesWithinAABBExcludingEntity((Entity)null, this.func_94352_a(par2, par3, par4)); 039 } 040 041 if (this.triggerMobType == EnumMobType.mobs) 042 { 043 list = par1World.getEntitiesWithinAABB(EntityLiving.class, this.func_94352_a(par2, par3, par4)); 044 } 045 046 if (this.triggerMobType == EnumMobType.players) 047 { 048 list = par1World.getEntitiesWithinAABB(EntityPlayer.class, this.func_94352_a(par2, par3, par4)); 049 } 050 051 if (!list.isEmpty()) 052 { 053 Iterator iterator = list.iterator(); 054 055 while (iterator.hasNext()) 056 { 057 Entity entity = (Entity)iterator.next(); 058 059 if (!entity.doesEntityNotTriggerPressurePlate()) 060 { 061 return 15; 062 } 063 } 064 } 065 066 return 0; 067 } 068}