    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    }