weather is saving now

This commit is contained in:
MihailRis
2024-05-30 16:02:01 +03:00
parent 2d27e5662a
commit c9fb33132f
5 changed files with 17 additions and 13 deletions
+2 -2
View File
@@ -139,8 +139,8 @@ std::shared_ptr<UINode> create_debug_panel(
} }
{ {
auto bar = std::make_shared<TrackBar>(0.0f, 1.0f, 0.0f, 0.005f, 8); auto bar = std::make_shared<TrackBar>(0.0f, 1.0f, 0.0f, 0.005f, 8);
bar->setSupplier([=]() {return WorldRenderer::fog;}); bar->setSupplier([=]() {return level->getWorld()->fog;});
bar->setConsumer([=](double val) {WorldRenderer::fog = val;}); bar->setConsumer([=](double val) {level->getWorld()->fog = val;});
panel->add(bar); panel->add(bar);
} }
{ {
+3 -4
View File
@@ -274,11 +274,12 @@ void WorldRenderer::draw(
bool hudVisible, bool hudVisible,
PostProcessing* postProcessing PostProcessing* postProcessing
){ ){
auto world = level->getWorld();
const Viewport& vp = pctx.getViewport(); const Viewport& vp = pctx.getViewport();
camera->aspect = vp.getWidth() / static_cast<float>(vp.getHeight()); camera->aspect = vp.getWidth() / static_cast<float>(vp.getHeight());
const EngineSettings& settings = engine->getSettings(); const EngineSettings& settings = engine->getSettings();
skybox->refresh(pctx, level->getWorld()->daytime, 1.0f+fog*2.0f, 4); skybox->refresh(pctx, world->daytime, 1.0f+world->fog*2.0f, 4);
Assets* assets = engine->getAssets(); Assets* assets = engine->getAssets();
Shader* linesShader = assets->getShader("lines"); Shader* linesShader = assets->getShader("lines");
@@ -291,7 +292,7 @@ void WorldRenderer::draw(
Window::clearDepth(); Window::clearDepth();
// Drawing background sky plane // Drawing background sky plane
skybox->draw(pctx, camera, assets, level->getWorld()->daytime, fog); skybox->draw(pctx, camera, assets, world->daytime, world->fog);
// Actually world render with depth buffer on // Actually world render with depth buffer on
{ {
@@ -355,5 +356,3 @@ void WorldRenderer::drawBorders(int sx, int sy, int sz, int ex, int ey, int ez)
} }
lineBatch->render(); lineBatch->render();
} }
float WorldRenderer::fog = 0.0f;
-2
View File
@@ -76,8 +76,6 @@ public:
Camera* camera, Camera* camera,
const EngineSettings& settings const EngineSettings& settings
); );
static float fog;
}; };
+9 -5
View File
@@ -194,19 +194,20 @@ void World::deserialize(dynamic::Map* root) {
if (generator == "") { if (generator == "") {
generator = WorldGenerators::getDefaultGeneratorID(); generator = WorldGenerators::getDefaultGeneratorID();
} }
auto verobj = root->map("version"); if (auto verobj = root->map("version")) {
if (verobj) {
int major=0, minor=-1; int major=0, minor=-1;
verobj->num("major", major); verobj->num("major", major);
verobj->num("minor", minor); verobj->num("minor", minor);
std::cout << "world version: " << major << "." << minor << std::endl; logger.info() << "world version: " << major << "." << minor;
} }
auto timeobj = root->map("time"); if (auto timeobj = root->map("time")) {
if (timeobj) {
timeobj->num("day-time", daytime); timeobj->num("day-time", daytime);
timeobj->num("day-time-speed", daytimeSpeed); timeobj->num("day-time-speed", daytimeSpeed);
timeobj->num("total-time", totalTime); timeobj->num("total-time", totalTime);
} }
if (auto weatherobj = root->map("weather")) {
weatherobj->num("fog", fog);
}
nextInventoryId = root->get("next-inventory-id", 2); nextInventoryId = root->get("next-inventory-id", 2);
} }
@@ -226,6 +227,9 @@ std::unique_ptr<dynamic::Map> World::serialize() const {
timeobj.put("day-time-speed", daytimeSpeed); timeobj.put("day-time-speed", daytimeSpeed);
timeobj.put("total-time", totalTime); timeobj.put("total-time", totalTime);
auto& weatherobj = root->putMap("weather");
weatherobj.put("fog", fog);
root->put("next-inventory-id", nextInventoryId); root->put("next-inventory-id", nextInventoryId);
return root; return root;
} }
+3
View File
@@ -49,6 +49,9 @@ public:
/// @brief total time passed in the world (not depending on daytimeSpeed) /// @brief total time passed in the world (not depending on daytimeSpeed)
double totalTime = 0.0; double totalTime = 0.0;
/// @brief will be replaced with weather in future
float fog = 0.0f;
World( World(
std::string name, std::string name,
std::string generator, std::string generator,