001 package net.minecraft.entity.ai; 002 003 import java.util.ArrayList; 004 import java.util.List; 005 import net.minecraft.entity.Entity; 006 import net.minecraft.entity.EntityLiving; 007 008 public class EntitySenses 009 { 010 EntityLiving entityObj; 011 List field_75524_b = new ArrayList(); 012 List field_75525_c = new ArrayList(); 013 014 public EntitySenses(EntityLiving par1EntityLiving) 015 { 016 this.entityObj = par1EntityLiving; 017 } 018 019 /** 020 * Clears canSeeCachePositive and canSeeCacheNegative. 021 */ 022 public void clearSensingCache() 023 { 024 this.field_75524_b.clear(); 025 this.field_75525_c.clear(); 026 } 027 028 /** 029 * Checks, whether 'our' entity can see the entity given as argument (true) or not (false), caching the result. 030 */ 031 public boolean canSee(Entity par1Entity) 032 { 033 if (this.field_75524_b.contains(par1Entity)) 034 { 035 return true; 036 } 037 else if (this.field_75525_c.contains(par1Entity)) 038 { 039 return false; 040 } 041 else 042 { 043 this.entityObj.worldObj.theProfiler.startSection("canSee"); 044 boolean var2 = this.entityObj.canEntityBeSeen(par1Entity); 045 this.entityObj.worldObj.theProfiler.endSection(); 046 047 if (var2) 048 { 049 this.field_75524_b.add(par1Entity); 050 } 051 else 052 { 053 this.field_75525_c.add(par1Entity); 054 } 055 056 return var2; 057 } 058 } 059 }