X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fserver%2FServerState.cpp;h=8c3f7e6196f92c5272cda3b61aa9128b825891c9;hb=78dcbeb7a905c4c153cb1b20e23f5adc1efc6d7e;hp=cedae4ee9a8b4b4376e77f480645d45c64141217;hpb=a50aa0f2a2fea14f5f8c56209e2ecde3088ef913;p=blank.git diff --git a/src/server/ServerState.cpp b/src/server/ServerState.cpp index cedae4e..8c3f7e6 100644 --- a/src/server/ServerState.cpp +++ b/src/server/ServerState.cpp @@ -20,7 +20,8 @@ ServerState::ServerState( : env(env) , block_types() , world(block_types, wc) -, generator(gc) +, spawn_index(world.Chunks().MakeIndex(wc.spawn, 3)) +, generator(gc, block_types) , chunk_loader(world.Chunks(), generator, ws) , skeletons() , spawner(world, skeletons, gc.seed) @@ -28,6 +29,7 @@ ServerState::ServerState( , loop_timer(16) { TextureIndex tex_index; env.loader.LoadBlockTypes("default", block_types, tex_index); + generator.Scan(); skeletons.LoadHeadless(); spawner.LimitSkeletons(1, skeletons.Size()); server.SetPlayerModel(skeletons[0]); @@ -37,6 +39,10 @@ ServerState::ServerState( std::cout << "listening on UDP port " << config.net.port << std::endl; } +ServerState::~ServerState() { + world.Chunks().UnregisterIndex(spawn_index); +} + void ServerState::Handle(const SDL_Event &event) { if (event.type == SDL_QUIT) {