public virtual bool IsSheltered(Vector3i position)
    {
        // We only want to check air positions.
        if (theEntity.world.GetBlock(position).type != 0)
        {
            return(false);
        }

        float  num = 1f;
        int    x   = position.x;
        int    y   = position.y;
        int    z   = position.z;
        IChunk chunkFromWorldPos = theEntity.world.GetChunkFromWorldPos(x, y, z);

        num  = Mathf.Max(chunkFromWorldPos.GetLight(x, y, z, Chunk.LIGHT_TYPE.SUN), chunkFromWorldPos.GetLight(x, y + 1, z, Chunk.LIGHT_TYPE.SUN));
        num /= 15f;
        return(1f - num > 0.3f);
    }