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); }
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); }