#pragma once
-struct skycolor
+struct SkyColor
{
video::SColor day_sky;
video::SColor day_horizon;
std::string type;
std::vector<std::string> textures;
bool clouds;
- skycolor sky_color;
- video::SColor sun_tint;
- video::SColor moon_tint;
- std::string tint_type;
+ SkyColor sky_color;
+ video::SColor fog_sun_tint;
+ video::SColor fog_moon_tint;
+ std::string fog_tint_type;
};
struct SunParams
f32 scale;
};
+struct CloudParams
+{
+ float density;
+ video::SColor color_bright;
+ video::SColor color_ambient;
+ float thickness;
+ float height;
+ v2f speed;
+};
+
// Utility class for setting default sky, sun, moon, stars values:
class SkyboxDefaults
{
public:
- const skycolor getSkyColorDefaults()
+ SkyboxDefaults() = delete;
+
+ static const SkyboxParams getSkyDefaults()
+ {
+ SkyboxParams sky;
+ sky.bgcolor = video::SColor(255, 255, 255, 255);
+ sky.type = "regular";
+ sky.clouds = true;
+ sky.sky_color = getSkyColorDefaults();
+ sky.fog_sun_tint = video::SColor(255, 244, 125, 29);
+ sky.fog_moon_tint = video::SColorf(0.5, 0.6, 0.8, 1).toSColor();
+ sky.fog_tint_type = "default";
+ return sky;
+ }
+
+ static const SkyColor getSkyColorDefaults()
{
- skycolor sky;
+ SkyColor sky;
// Horizon colors
- sky.day_horizon = video::SColor(255, 155, 193, 240);
+ sky.day_horizon = video::SColor(255, 144, 211, 246);
sky.indoors = video::SColor(255, 100, 100, 100);
sky.dawn_horizon = video::SColor(255, 186, 193, 240);
sky.night_horizon = video::SColor(255, 64, 144, 255);
// Sky colors
- sky.day_sky = video::SColor(255, 140, 186, 250);
+ sky.day_sky = video::SColor(255, 97, 181, 245);
sky.dawn_sky = video::SColor(255, 180, 186, 250);
sky.night_sky = video::SColor(255, 0, 107, 255);
return sky;
}
- const SunParams getSunDefaults()
+ static const SunParams getSunDefaults()
{
SunParams sun;
sun.visible = true;
return sun;
}
- const MoonParams getMoonDefaults()
+ static const MoonParams getMoonDefaults()
{
MoonParams moon;
moon.visible = true;
return moon;
}
- const StarParams getStarDefaults()
+ static const StarParams getStarDefaults()
{
StarParams stars;
+ stars.visible = true;
stars.count = 1000;
stars.starcolor = video::SColor(105, 235, 235, 255);
stars.scale = 1;
return stars;
}
-};
+ static const CloudParams getCloudDefaults()
+ {
+ CloudParams clouds;
+ clouds.density = 0.4f;
+ clouds.color_bright = video::SColor(229, 240, 240, 255);
+ clouds.color_ambient = video::SColor(255, 0, 0, 0);
+ clouds.thickness = 16.0f;
+ clouds.height = 120;
+ clouds.speed = v2f(0.0f, -2.0f);
+ return clouds;
+ }
+};