General refactor
This commit is contained in:
+20
-18
@@ -18,18 +18,18 @@
|
||||
#include "../world/Level.h"
|
||||
#include "../world/World.h"
|
||||
#include "../objects/Player.h"
|
||||
#include "../voxels/ChunksController.h"
|
||||
#include "../logic/ChunksController.h"
|
||||
#include "../logic/LevelController.h"
|
||||
#include "../voxels/Chunks.h"
|
||||
#include "../voxels/Chunk.h"
|
||||
#include "world_render.h"
|
||||
#include "../engine.h"
|
||||
#include "../util/stringutil.h"
|
||||
#include "../core_defs.h"
|
||||
#include "WorldRenderer.h"
|
||||
#include "hud.h"
|
||||
#include "ContentGfxCache.h"
|
||||
#include "gui/GUI.h"
|
||||
#include "gui/panels.h"
|
||||
#include "../engine.h"
|
||||
#include "../util/stringutil.h"
|
||||
#include "../core_defs.h"
|
||||
|
||||
#include "menu.h"
|
||||
|
||||
using std::string;
|
||||
@@ -71,7 +71,7 @@ void MenuScreen::update(float delta) {
|
||||
|
||||
void MenuScreen::draw(float delta) {
|
||||
Window::clear();
|
||||
Window::setBgColor(vec3(0.2f, 0.2f, 0.2f));
|
||||
Window::setBgColor(vec3(0.2f));
|
||||
|
||||
uicamera->fov = Window::height;
|
||||
Shader* uishader = engine->getAssets()->getShader("ui");
|
||||
@@ -88,16 +88,20 @@ void MenuScreen::draw(float delta) {
|
||||
}
|
||||
|
||||
static bool backlight;
|
||||
|
||||
LevelScreen::LevelScreen(Engine* engine, Level* level)
|
||||
: Screen(engine),
|
||||
level(level) {
|
||||
auto& settings = engine->getSettings();
|
||||
controller = new LevelController(settings, level);
|
||||
cache = new ContentGfxCache(level->content, engine->getAssets());
|
||||
worldRenderer = new WorldRenderer(engine, level, cache);
|
||||
hud = new HudRenderer(engine, level, cache, worldRenderer);
|
||||
backlight = engine->getSettings().graphics.backlight;
|
||||
backlight = settings.graphics.backlight;
|
||||
}
|
||||
|
||||
LevelScreen::~LevelScreen() {
|
||||
delete controller;
|
||||
delete hud;
|
||||
delete worldRenderer;
|
||||
delete cache;
|
||||
@@ -111,8 +115,9 @@ LevelScreen::~LevelScreen() {
|
||||
}
|
||||
|
||||
void LevelScreen::updateHotkeys() {
|
||||
auto& settings = engine->getSettings();
|
||||
if (Events::jpressed(keycode::O)) {
|
||||
occlusion = !occlusion;
|
||||
settings.graphics.frustumCulling = !settings.graphics.frustumCulling;
|
||||
}
|
||||
if (Events::jpressed(keycode::F3)) {
|
||||
level->player->debug = !level->player->debug;
|
||||
@@ -124,14 +129,15 @@ void LevelScreen::updateHotkeys() {
|
||||
|
||||
void LevelScreen::update(float delta) {
|
||||
gui::GUI* gui = engine->getGUI();
|
||||
EngineSettings& settings = engine->getSettings();
|
||||
|
||||
|
||||
bool inputLocked = hud->isPause() ||
|
||||
hud->isInventoryOpen() ||
|
||||
gui->isFocusCaught();
|
||||
if (!gui->isFocusCaught()) {
|
||||
updateHotkeys();
|
||||
}
|
||||
// TODO: subscribe for setting change
|
||||
EngineSettings& settings = engine->getSettings();
|
||||
if (settings.graphics.backlight != backlight) {
|
||||
level->chunks->saveAndClear();
|
||||
backlight = settings.graphics.backlight;
|
||||
@@ -139,11 +145,7 @@ void LevelScreen::update(float delta) {
|
||||
if (!hud->isPause()) {
|
||||
level->world->updateTimers(delta);
|
||||
}
|
||||
level->updatePlayer(delta, !inputLocked, hud->isPause(), !inputLocked);
|
||||
level->update();
|
||||
|
||||
level->chunksController->update(settings.chunks.loadSpeed);
|
||||
|
||||
controller->update(delta, !inputLocked, hud->isPause(), !inputLocked);
|
||||
hud->update();
|
||||
}
|
||||
|
||||
@@ -153,9 +155,9 @@ void LevelScreen::draw(float delta) {
|
||||
Viewport viewport(Window::width, Window::height);
|
||||
GfxContext ctx(nullptr, viewport, nullptr);
|
||||
|
||||
worldRenderer->draw(ctx, camera, occlusion);
|
||||
worldRenderer->draw(ctx, camera);
|
||||
hud->draw(ctx);
|
||||
if (level->player->debug) {
|
||||
hud->drawDebug( 1 / delta, occlusion);
|
||||
hud->drawDebug(1 / delta);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user