Пример #1
0
        public bool     UpdateBlock(int x, int y, int z, WorldGeneration.World.BlockTypes newID)
        {
            int columnZ = (z < 0) ? z / 16 - 1 : z / 16;
            int columnX = (x < 0) ? x / 16 - 1 : x / 16;

            WorldGeneration.World.ChunkColumn column = null;

            for (int i = 0; i < FlatWorld.Length; ++i)
            {
                if (FlatWorld[i].X == columnX && FlatWorld[i].Z == columnZ)
                {
                    Server.ViewModel.Warning("World updating in chunk column : " + i + ", Coord(" + FlatWorld[i].X + ", " + FlatWorld[i].Z + ")");
                    column = FlatWorld[i];
                    break;
                }
            }
            if (column == null)
            {
                return(false);
            }
            int blockX = ((x < 0) ? 16 + x % 16 : x % 16);

            if (blockX == 16)
            {
                blockX = 0;
            }
            int blockZ = ((z < 0) ? 16 + z % 16 : z % 16);

            if (blockZ == 16)
            {
                blockZ = 0;
            }
            Server.ViewModel.Warning("BlockCoord(" + blockX + ", " + y + ", " + blockZ + ") = " + (blockX + y + blockZ * 16) + "Ndx");
            column.UpdateBlock(blockX, y, blockZ, newID);
            return(true);
        }
Пример #2
0
        public void UpdateBlock(int x, int y, int z, WorldGeneration.World.BlockTypes newID)
        {
            int chunkNdx = y / 16;

            m_column[chunkNdx].UpdateBlock(x, y % 16, z, newID);
        }