public void HandleTILE(Socket socket, byte[] data) { new BufferReader(data) .Ignore(sizeof(int)) .ReadInteger(out var levelId) .ReadInteger(out var x) .ReadInteger(out var y) .ReadStringUTF8(out var tileName); World.GetLevel(levelId).SetTile(x, y, TILES.GetTile(tileName)); }
public static Chunk Load(ChunkStorage store) { Chunk chunk = new Chunk(store.X, store.Y); // Loading tile for (int x = 0; x < CHUNK_SIZE; x++) { for (int y = 0; y < CHUNK_SIZE; y++) { chunk.Tiles[x, y] = TILES.GetTile(store.Registry[store.Tiles[y * CHUNK_SIZE + x].ToString()]); chunk.Data[x, y] = store.Data[y * CHUNK_SIZE + x]; } } // Loading entities foreach (EntityStorage entityData in store.Entities) { Entity entity = entityData.ConstructEntity(); chunk.AddEntity(entity); } return(chunk); }