X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fserver%2FServerState.cpp;h=e6c031f8faea00c1366a131406c389293859b5d0;hb=825f479edf9867938b6789215ad7ae6303596cba;hp=5545818e23f16b5536f60492867e9742408c2b72;hpb=8ae45b6555d55f301f83daf8c1337d332d8305ab;p=blank.git diff --git a/src/server/ServerState.cpp b/src/server/ServerState.cpp index 5545818..e6c031f 100644 --- a/src/server/ServerState.cpp +++ b/src/server/ServerState.cpp @@ -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) +, spawner(world, skeletons, env.rng) +, 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); }