Player creation moved to World::loadLevel
This commit is contained in:
parent
2768371a94
commit
1b935aa081
@ -43,10 +43,8 @@ MenuScreen::MenuScreen(Engine* engine_) : Screen(engine_) {
|
|||||||
std::cout << "-- loading world" << std::endl;
|
std::cout << "-- loading world" << std::endl;
|
||||||
EngineSettings& settings = engine->getSettings();
|
EngineSettings& settings = engine->getSettings();
|
||||||
World* world = new World("world", enginefs::get_worlds_folder()/"world", 42, settings);
|
World* world = new World("world", enginefs::get_worlds_folder()/"world", 42, settings);
|
||||||
vec3 playerPosition = vec3(0, 64, 0);
|
|
||||||
Camera* camera = new Camera(playerPosition, radians(90.0f));
|
auto screen = new LevelScreen(engine, world->loadLevel(settings));
|
||||||
Player* player = new Player(playerPosition, 4.0f, camera);
|
|
||||||
auto screen = new LevelScreen(engine, world->loadLevel(player, settings));
|
|
||||||
engine->setScreen(shared_ptr<Screen>(screen));
|
engine->setScreen(shared_ptr<Screen>(screen));
|
||||||
});
|
});
|
||||||
panel->add(shared_ptr<UINode>(button));
|
panel->add(shared_ptr<UINode>(button));
|
||||||
@ -61,10 +59,7 @@ MenuScreen::MenuScreen(Engine* engine_) : Screen(engine_) {
|
|||||||
button->listenAction([this, panel, name](GUI*) {
|
button->listenAction([this, panel, name](GUI*) {
|
||||||
EngineSettings& settings = engine->getSettings();
|
EngineSettings& settings = engine->getSettings();
|
||||||
World* world = new World(name, enginefs::get_worlds_folder()/name, 42, settings);
|
World* world = new World(name, enginefs::get_worlds_folder()/name, 42, settings);
|
||||||
vec3 playerPosition = vec3(0, 64, 0);
|
engine->setScreen(new LevelScreen(engine, world->loadLevel(settings)));
|
||||||
Camera* camera = new Camera(playerPosition, radians(90.0f));
|
|
||||||
Player* player = new Player(playerPosition, 4.0f, camera);
|
|
||||||
engine->setScreen(new LevelScreen(engine, world->loadLevel(player, settings)));
|
|
||||||
});
|
});
|
||||||
worldsPanel->add(shared_ptr<UINode>(button));
|
worldsPanel->add(shared_ptr<UINode>(button));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#include "World.h"
|
#include "World.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <glm/glm.hpp>
|
||||||
|
|
||||||
#include "Level.h"
|
#include "Level.h"
|
||||||
#include "../files/WorldFiles.h"
|
#include "../files/WorldFiles.h"
|
||||||
@ -12,6 +13,7 @@
|
|||||||
#include "../window/Camera.h"
|
#include "../window/Camera.h"
|
||||||
#include "../world/LevelEvents.h"
|
#include "../world/LevelEvents.h"
|
||||||
|
|
||||||
|
using glm::vec3;
|
||||||
using std::shared_ptr;
|
using std::shared_ptr;
|
||||||
|
|
||||||
World::World(std::string name, std::string directory, int seed, EngineSettings& settings) : name(name), seed(seed) {
|
World::World(std::string name, std::string directory, int seed, EngineSettings& settings) : name(name), seed(seed) {
|
||||||
@ -36,13 +38,16 @@ void World::write(Level* level, bool writeChunks) {
|
|||||||
wfile->writePlayer(level->player);
|
wfile->writePlayer(level->player);
|
||||||
}
|
}
|
||||||
|
|
||||||
Level* World::loadLevel(Player* player, EngineSettings& settings) {
|
Level* World::loadLevel(EngineSettings& settings) {
|
||||||
ChunksStorage* storage = new ChunksStorage();
|
ChunksStorage* storage = new ChunksStorage();
|
||||||
LevelEvents* events = new LevelEvents();
|
LevelEvents* events = new LevelEvents();
|
||||||
|
|
||||||
|
vec3 playerPosition = vec3(0, 64, 0);
|
||||||
|
Camera* camera = new Camera(playerPosition, glm::radians(90.0f));
|
||||||
|
Player* player = new Player(playerPosition, 4.0f, camera);
|
||||||
Level* level = new Level(this, player, storage, events, settings);
|
Level* level = new Level(this, player, storage, events, settings);
|
||||||
wfile->readPlayer(player);
|
wfile->readPlayer(player);
|
||||||
|
|
||||||
Camera* camera = player->camera;
|
|
||||||
camera->rotation = mat4(1.0f);
|
camera->rotation = mat4(1.0f);
|
||||||
camera->rotate(player->camY, player->camX, 0);
|
camera->rotate(player->camY, player->camX, 0);
|
||||||
return level;
|
return level;
|
||||||
|
|||||||
@ -20,7 +20,7 @@ public:
|
|||||||
~World();
|
~World();
|
||||||
|
|
||||||
void write(Level* level, bool writeChunks);
|
void write(Level* level, bool writeChunks);
|
||||||
Level* loadLevel(Player* player, EngineSettings& settings);
|
Level* loadLevel(EngineSettings& settings);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* WORLD_WORLD_H_ */
|
#endif /* WORLD_WORLD_H_ */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user