summaryrefslogtreecommitdiff
path: root/src/skyparams.h
diff options
context:
space:
mode:
authorJordach <jordach.snelling@gmail.com>2019-08-21 21:47:45 +0100
committersfan5 <sfan5@live.de>2020-03-05 20:12:19 +0100
commit946c03c69bfdde7dc91295692479f8e81bdf79e9 (patch)
tree0ee299c2fc1d424bdbe7bd03964c2ced47bf9b7e /src/skyparams.h
parent580e7e8eb902ae2faed36b4982e7e751e35f5201 (diff)
downloadminetest-946c03c69bfdde7dc91295692479f8e81bdf79e9.tar.gz
minetest-946c03c69bfdde7dc91295692479f8e81bdf79e9.tar.bz2
minetest-946c03c69bfdde7dc91295692479f8e81bdf79e9.zip
set_sky improvements, set_sun, set_moon and set_stars
Diffstat (limited to 'src/skyparams.h')
-rw-r--r--src/skyparams.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/src/skyparams.h b/src/skyparams.h
new file mode 100644
index 000000000..c5f01064d
--- /dev/null
+++ b/src/skyparams.h
@@ -0,0 +1,121 @@
+/*
+Minetest
+Copyright (C) 2019 Jordach, Jordan Snelling <jordach.snelling@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#pragma once
+
+struct skycolor
+{
+ video::SColor day_sky;
+ video::SColor day_horizon;
+ video::SColor dawn_sky;
+ video::SColor dawn_horizon;
+ video::SColor night_sky;
+ video::SColor night_horizon;
+ video::SColor indoors;
+};
+
+struct SkyboxParams
+{
+ video::SColor bgcolor;
+ 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;
+};
+
+struct SunParams
+{
+ bool visible;
+ std::string texture;
+ std::string tonemap;
+ std::string sunrise;
+ bool sunrise_visible;
+ f32 scale;
+};
+
+struct MoonParams
+{
+ bool visible;
+ std::string texture;
+ std::string tonemap;
+ f32 scale;
+};
+
+struct StarParams
+{
+ bool visible;
+ u32 count;
+ video::SColor starcolor;
+ f32 scale;
+};
+
+// Utility class for setting default sky, sun, moon, stars values:
+class SkyboxDefaults
+{
+public:
+ const skycolor getSkyColorDefaults()
+ {
+ skycolor sky;
+ // Horizon colors
+ sky.day_horizon = video::SColor(255, 155, 193, 240);
+ 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.dawn_sky = video::SColor(255, 180, 186, 250);
+ sky.night_sky = video::SColor(255, 0, 107, 255);
+ return sky;
+ }
+
+ const SunParams getSunDefaults()
+ {
+ SunParams sun;
+ sun.visible = true;
+ sun.sunrise_visible = true;
+ sun.texture = "sun.png";
+ sun.tonemap = "sun_tonemap.png";
+ sun.sunrise = "sunrisebg.png";
+ sun.scale = 1;
+ return sun;
+ }
+
+ const MoonParams getMoonDefaults()
+ {
+ MoonParams moon;
+ moon.visible = true;
+ moon.texture = "moon.png";
+ moon.tonemap = "moon_tonemap.png";
+ moon.scale = 1;
+ return moon;
+ }
+
+ const StarParams getStarDefaults()
+ {
+ StarParams stars;
+ stars.count = 1000;
+ stars.starcolor = video::SColor(105, 235, 235, 255);
+ stars.scale = 1;
+ return stars;
+ }
+};
+