weather is saving now
This commit is contained in:
parent
2d27e5662a
commit
c9fb33132f
@ -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);
|
||||
bar->setSupplier([=]() {return WorldRenderer::fog;});
|
||||
bar->setConsumer([=](double val) {WorldRenderer::fog = val;});
|
||||
bar->setSupplier([=]() {return level->getWorld()->fog;});
|
||||
bar->setConsumer([=](double val) {level->getWorld()->fog = val;});
|
||||
panel->add(bar);
|
||||
}
|
||||
{
|
||||
|
||||
@ -274,11 +274,12 @@ void WorldRenderer::draw(
|
||||
bool hudVisible,
|
||||
PostProcessing* postProcessing
|
||||
){
|
||||
auto world = level->getWorld();
|
||||
const Viewport& vp = pctx.getViewport();
|
||||
camera->aspect = vp.getWidth() / static_cast<float>(vp.getHeight());
|
||||
|
||||
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();
|
||||
Shader* linesShader = assets->getShader("lines");
|
||||
@ -291,7 +292,7 @@ void WorldRenderer::draw(
|
||||
Window::clearDepth();
|
||||
|
||||
// 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
|
||||
{
|
||||
@ -355,5 +356,3 @@ void WorldRenderer::drawBorders(int sx, int sy, int sz, int ex, int ey, int ez)
|
||||
}
|
||||
lineBatch->render();
|
||||
}
|
||||
|
||||
float WorldRenderer::fog = 0.0f;
|
||||
|
||||
@ -76,8 +76,6 @@ public:
|
||||
Camera* camera,
|
||||
const EngineSettings& settings
|
||||
);
|
||||
|
||||
static float fog;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -194,19 +194,20 @@ void World::deserialize(dynamic::Map* root) {
|
||||
if (generator == "") {
|
||||
generator = WorldGenerators::getDefaultGeneratorID();
|
||||
}
|
||||
auto verobj = root->map("version");
|
||||
if (verobj) {
|
||||
if (auto verobj = root->map("version")) {
|
||||
int major=0, minor=-1;
|
||||
verobj->num("major", major);
|
||||
verobj->num("minor", minor);
|
||||
std::cout << "world version: " << major << "." << minor << std::endl;
|
||||
logger.info() << "world version: " << major << "." << minor;
|
||||
}
|
||||
auto timeobj = root->map("time");
|
||||
if (timeobj) {
|
||||
if (auto timeobj = root->map("time")) {
|
||||
timeobj->num("day-time", daytime);
|
||||
timeobj->num("day-time-speed", daytimeSpeed);
|
||||
timeobj->num("total-time", totalTime);
|
||||
}
|
||||
if (auto weatherobj = root->map("weather")) {
|
||||
weatherobj->num("fog", fog);
|
||||
}
|
||||
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("total-time", totalTime);
|
||||
|
||||
auto& weatherobj = root->putMap("weather");
|
||||
weatherobj.put("fog", fog);
|
||||
|
||||
root->put("next-inventory-id", nextInventoryId);
|
||||
return root;
|
||||
}
|
||||
|
||||
@ -49,6 +49,9 @@ public:
|
||||
/// @brief total time passed in the world (not depending on daytimeSpeed)
|
||||
double totalTime = 0.0;
|
||||
|
||||
/// @brief will be replaced with weather in future
|
||||
float fog = 0.0f;
|
||||
|
||||
World(
|
||||
std::string name,
|
||||
std::string generator,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user