mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-07 03:51:50 +00:00
move weather from WorldRenderer to LevelFrontend
This commit is contained in:
parent
22f09d3659
commit
ac00c561ee
7 changed files with 26 additions and 10 deletions
|
|
@ -147,3 +147,7 @@ const ContentGfxCache& LevelFrontend::getContentGfxCache() const {
|
|||
LevelController& LevelFrontend::getController() const {
|
||||
return controller;
|
||||
}
|
||||
|
||||
Weather& LevelFrontend::getWeather() {
|
||||
return weather;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "world/Weather.hpp"
|
||||
|
||||
#include <memory>
|
||||
|
||||
class Assets;
|
||||
|
|
@ -15,6 +17,7 @@ class LevelFrontend {
|
|||
LevelController& controller;
|
||||
Assets& assets;
|
||||
std::unique_ptr<ContentGfxCache> contentCache;
|
||||
Weather weather {};
|
||||
public:
|
||||
LevelFrontend(
|
||||
Engine& engine,
|
||||
|
|
@ -28,4 +31,5 @@ public:
|
|||
const ContentGfxCache& getContentGfxCache() const;
|
||||
ContentGfxCache& getContentGfxCache();
|
||||
LevelController& getController() const;
|
||||
Weather& getWeather();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ LevelScreen::LevelScreen(
|
|||
|
||||
auto resetChunks = [=](bool) {
|
||||
player->chunks->saveAndClear();
|
||||
renderer->clear();
|
||||
renderer->resetCache();
|
||||
};
|
||||
keepAlive(settings.graphics.backlight.observe(resetChunks));
|
||||
keepAlive(settings.graphics.softLighting.observe(resetChunks));
|
||||
|
|
@ -94,7 +94,7 @@ LevelScreen::LevelScreen(
|
|||
}));
|
||||
keepAlive(input.addCallback(BIND_CHUNKS_RELOAD, [=]() {
|
||||
player->chunks->saveAndClear();
|
||||
renderer->clear();
|
||||
renderer->resetCache();
|
||||
return false;
|
||||
}));
|
||||
controller->preQuitCallbacks.listen([this]() {
|
||||
|
|
@ -153,7 +153,7 @@ void LevelScreen::loadDecorations() {
|
|||
}
|
||||
auto data = io::read_object(CLIENT_FILE);
|
||||
if (data.has("weather")) {
|
||||
renderer->getWeather().deserialize(data["weather"]);
|
||||
frontend->getWeather().deserialize(data["weather"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -161,7 +161,7 @@ void LevelScreen::saveDecorations() {
|
|||
io::create_directory("world:client");
|
||||
|
||||
auto data = dv::object();
|
||||
data["weather"] = renderer->getWeather().serialize();
|
||||
data["weather"] = frontend->getWeather().serialize();
|
||||
io::write_json(CLIENT_FILE, data, true);
|
||||
}
|
||||
|
||||
|
|
@ -257,7 +257,7 @@ void LevelScreen::update(float delta) {
|
|||
|
||||
hud->update(hudVisible);
|
||||
|
||||
const Weather& weather = renderer->getWeather();
|
||||
const Weather& weather = frontend->getWeather();
|
||||
const Player& player = playerController->getPlayer();
|
||||
const Camera& camera = *player.currentCamera;
|
||||
decorator->update(paused ? 0.0f : delta, camera, weather);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue