]> git.localhorst.tv Git - blank.git/blobdiff - src/server/ServerState.cpp
more parameters for world generation
[blank.git] / src / server / ServerState.cpp
index 5545818e23f16b5536f60492867e9742408c2b72..8c3f7e6196f92c5272cda3b61aa9128b825891c9 100644 (file)
@@ -15,24 +15,32 @@ ServerState::ServerState(
        const Generator::Config &gc,
        const World::Config &wc,
        const WorldSave &ws,
-       const Server::Config &sc
+       const Config &config
 )
 : 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)
-, server(sc, world)
+, server(config.net, world, ws)
 , 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]);
 
        loop_timer.Start();
 
-       std::cout << "listening on UDP port " << sc.port << std::endl;
+       std::cout << "listening on UDP port " << config.net.port << std::endl;
+}
+
+ServerState::~ServerState() {
+       world.Chunks().UnregisterIndex(spawn_index);
 }