Ejemplo n.º 1
0
        protected TezHexArrayIndex toArrayIndex(ref TezHexOffsetCoordinate coordinate)
        {
            var pos_x = m_HalfWidth + coordinate.q;
            var pos_y = m_HalfHeight + coordinate.r;

            ///计算数组坐标在哪一个chunk的范围内
            var chunk_x = pos_x / m_ChunkSize;
            var chunk_y = pos_y / m_ChunkSize;

            ///计算chunk内的Block的数组坐标
            var block_x = pos_x % m_ChunkSize;
            var block_y = pos_y % m_ChunkSize;

            return(new TezHexArrayIndex(chunk_x, chunk_y, block_x, block_y));
        }
Ejemplo n.º 2
0
        public bool tryGetBlock(TezHexOffsetCoordinate coordinate, out Block block)
        {
            var array_index = this.toArrayIndex(ref coordinate);

            if (array_index.isChunkOutOfRange(m_ChunkXCount, m_ChunkYCount))
            {
                block = null;
                return(false);
            }

            return(m_ChunkArray[array_index.chunkX, array_index.chunkY].tryGetBlock(
                       array_index.blockX,
                       array_index.blockY,
                       out block));
        }