weather is saving now
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
|
||||||
|
|||||||
@@ -76,8 +76,6 @@ public:
|
|||||||
Camera* camera,
|
Camera* camera,
|
||||||
const EngineSettings& settings
|
const EngineSettings& settings
|
||||||
);
|
);
|
||||||
|
|
||||||
static float fog;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+9
-5
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user