Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }