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