public ChunkStorage Save() { ChunkStorage store = new ChunkStorage(); Dictionary <Tile, int> tileToId = TILES.GetTileToID(); store.X = X; store.Y = Y; store.Level = Level.Id; store.Registry = TILES.GetIDToName(); // Saving tile for (int x = 0; x < CHUNK_SIZE; x++) { for (int y = 0; y < CHUNK_SIZE; y++) { store.Tiles[y * CHUNK_SIZE + x] = tileToId[Tiles[x, y]]; store.Data[y * CHUNK_SIZE + x] = Data[x, y]; } } // Saving entities foreach (var e in Entities) { if (!e.IsMemberOf(ENTITIES.GROUPE_SAVE_EXCUDED)) { store.Entities.Add(e.Save()); } } return(store); }
public ChunkStorage Save() { var storage = new ChunkStorage(); var tileToId = TILES.GetTileToID(); storage.X = X; storage.Y = Y; storage.Level = Level.Id; storage.Registry = TILES.GetIDToName(); // Saving tile for (var x = 0; x < SIZE; x++) { for (var y = 0; y < SIZE; y++) { storage.Tiles[y * SIZE + x] = tileToId[Tiles[x, y]]; storage.Data[y * SIZE + x] = Data[x, y]; } } // Saving entities lock (Entities) { foreach (var entity in Entities.Where(e => !e.MemberOf(ENTITIES.GROUPE_SAVE_EXCUDED))) { storage.Entities.Add(entity.Save()); } } return(storage); }