]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/skyparams.h
Fix BSD iconv declaration
[dragonfireclient.git] / src / skyparams.h
index c5f01064d1c279bda5d8b851bc286a65c8037c8a..f7f69442787319fefd9e647e65bd4ce508ccf39c 100644 (file)
@@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #pragma once
 
-struct skycolor
+struct SkyColor
 {
        video::SColor day_sky;
        video::SColor day_horizon;
@@ -36,10 +36,10 @@ struct SkyboxParams
        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
@@ -68,26 +68,51 @@ struct StarParams
        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;
@@ -99,7 +124,7 @@ class SkyboxDefaults
                return sun;
        }
 
-       const MoonParams getMoonDefaults()
+       static const MoonParams getMoonDefaults()
        {
                MoonParams moon;
                moon.visible = true;
@@ -109,13 +134,25 @@ class SkyboxDefaults
                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;
+       }
+};