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);
}