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 }