Пример #1
0
        public bool isUnderground()
        {
            Chunk above = world.findChunk(myChunkKey.neighbor(ChunkKey.Neighbor.TOP));

            if (above != null)
            {
                return(!above.isAir());
            }

            return(true);
        }
Пример #2
0
        public List <Chunk> findNeighbors(Chunk chunk, ChunkKey.Neighbor neighbors)
        {
            List <Chunk> ret = new List <Chunk>();
            ChunkKey     k   = chunk.chunkKey;

            if ((neighbors & ChunkKey.Neighbor.LEFT) == ChunkKey.Neighbor.LEFT)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.LEFT)));
            }
            if ((neighbors & ChunkKey.Neighbor.RIGHT) == ChunkKey.Neighbor.RIGHT)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.RIGHT)));
            }
            if ((neighbors & ChunkKey.Neighbor.BOTTOM) == ChunkKey.Neighbor.BOTTOM)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.BOTTOM)));
            }
            if ((neighbors & ChunkKey.Neighbor.TOP) == ChunkKey.Neighbor.TOP)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.TOP)));
            }
            if ((neighbors & ChunkKey.Neighbor.FRONT) == ChunkKey.Neighbor.FRONT)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.FRONT)));
            }
            if ((neighbors & ChunkKey.Neighbor.BACK) == ChunkKey.Neighbor.BACK)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.BACK)));
            }
            if ((neighbors & ChunkKey.Neighbor.LBF) == ChunkKey.Neighbor.LBF)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.LBF)));
            }
            if ((neighbors & ChunkKey.Neighbor.LB) == ChunkKey.Neighbor.LB)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.LB)));
            }
            if ((neighbors & ChunkKey.Neighbor.LBB) == ChunkKey.Neighbor.LBB)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.LBB)));
            }
            if ((neighbors & ChunkKey.Neighbor.BF) == ChunkKey.Neighbor.BF)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.BF)));
            }
            if ((neighbors & ChunkKey.Neighbor.BB) == ChunkKey.Neighbor.BB)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.BB)));
            }
            if ((neighbors & ChunkKey.Neighbor.RBF) == ChunkKey.Neighbor.RBF)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.RBF)));
            }
            if ((neighbors & ChunkKey.Neighbor.RB) == ChunkKey.Neighbor.RB)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.RB)));
            }
            if ((neighbors & ChunkKey.Neighbor.RBB) == ChunkKey.Neighbor.RBB)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.RBB)));
            }
            if ((neighbors & ChunkKey.Neighbor.LF) == ChunkKey.Neighbor.LF)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.LF)));
            }
            if ((neighbors & ChunkKey.Neighbor.BL) == ChunkKey.Neighbor.BL)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.BL)));
            }
            if ((neighbors & ChunkKey.Neighbor.RF) == ChunkKey.Neighbor.RF)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.RF)));
            }
            if ((neighbors & ChunkKey.Neighbor.BR) == ChunkKey.Neighbor.BR)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.BR)));
            }
            if ((neighbors & ChunkKey.Neighbor.LTF) == ChunkKey.Neighbor.LTF)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.LTF)));
            }
            if ((neighbors & ChunkKey.Neighbor.LT) == ChunkKey.Neighbor.LT)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.LT)));
            }
            if ((neighbors & ChunkKey.Neighbor.LTB) == ChunkKey.Neighbor.LTB)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.LTB)));
            }
            if ((neighbors & ChunkKey.Neighbor.TF) == ChunkKey.Neighbor.TF)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.TF)));
            }
            if ((neighbors & ChunkKey.Neighbor.TB) == ChunkKey.Neighbor.TB)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.TB)));
            }
            if ((neighbors & ChunkKey.Neighbor.RTF) == ChunkKey.Neighbor.RTF)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.RTF)));
            }
            if ((neighbors & ChunkKey.Neighbor.RT) == ChunkKey.Neighbor.RT)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.RT)));
            }
            if ((neighbors & ChunkKey.Neighbor.RTB) == ChunkKey.Neighbor.RTB)
            {
                ret.Add(findChunk(k.neighbor(ChunkKey.Neighbor.RTB)));
            }
            return(ret);
        }