Пример #1
0
        /// <summary>
        /// Returns whether the EntityAIBase should begin execution.
        /// </summary>
        public override bool ShouldExecute()
        {
            if (Entity.GetAge() >= 100)
            {
                return(false);
            }

            if (Entity.GetRNG().Next(120) != 0)
            {
                return(false);
            }

            Vec3D vec3d = RandomPositionGenerator.Func_48622_a(Entity, 10, 7);

            if (vec3d == null)
            {
                return(false);
            }
            else
            {
                Field_46098_b = vec3d.XCoord;
                Field_46099_c = vec3d.YCoord;
                Field_46097_d = vec3d.ZCoord;
                return(true);
            }
        }
        /// <summary>
        /// Returns whether the EntityAIBase should begin execution.
        /// </summary>
        public override bool ShouldExecute()
        {
            if (EntityObj.WorldObj.IsDaytime() && !EntityObj.WorldObj.IsRaining() || EntityObj.WorldObj.WorldProvider.HasNoSky)
            {
                return(false);
            }

            if (EntityObj.GetRNG().Next(50) != 0)
            {
                return(false);
            }

            if (InsidePosX != -1 && EntityObj.GetDistanceSq(InsidePosX, EntityObj.PosY, InsidePosZ) < 4D)
            {
                return(false);
            }

            Village village = EntityObj.WorldObj.VillageCollectionObj.FindNearestVillage(MathHelper2.Floor_double(EntityObj.PosX), MathHelper2.Floor_double(EntityObj.PosY), MathHelper2.Floor_double(EntityObj.PosZ), 14);

            if (village == null)
            {
                return(false);
            }
            else
            {
                DoorInfo = village.FindNearestDoorUnrestricted(MathHelper2.Floor_double(EntityObj.PosX), MathHelper2.Floor_double(EntityObj.PosY), MathHelper2.Floor_double(EntityObj.PosZ));
                return(DoorInfo != null);
            }
        }