예제 #1
0
        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));
        }
예제 #2
0
파일: Chunk.cs 프로젝트: krisz2000/hevadea
        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);
        }