clientobject: add null checks
[waspsaliva.git] / src / skyparams.h
blob1de494d69d2b4106d6f2356d197da930659126b6
1 /*
2 Minetest
3 Copyright (C) 2019 Jordach, Jordan Snelling <jordach.snelling@gmail.com>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation; either version 2.1 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 #pragma once
22 struct SkyColor
24 video::SColor day_sky;
25 video::SColor day_horizon;
26 video::SColor dawn_sky;
27 video::SColor dawn_horizon;
28 video::SColor night_sky;
29 video::SColor night_horizon;
30 video::SColor indoors;
33 struct SkyboxParams
35 video::SColor bgcolor;
36 std::string type;
37 std::vector<std::string> textures;
38 bool clouds;
39 SkyColor sky_color;
40 video::SColor fog_sun_tint;
41 video::SColor fog_moon_tint;
42 std::string fog_tint_type;
45 struct SunParams
47 bool visible;
48 std::string texture;
49 std::string tonemap;
50 std::string sunrise;
51 bool sunrise_visible;
52 f32 scale;
55 struct MoonParams
57 bool visible;
58 std::string texture;
59 std::string tonemap;
60 f32 scale;
63 struct StarParams
65 bool visible;
66 u32 count;
67 video::SColor starcolor;
68 f32 scale;
71 // Utility class for setting default sky, sun, moon, stars values:
72 class SkyboxDefaults
74 public:
75 const SkyColor getSkyColorDefaults()
77 SkyColor sky;
78 // Horizon colors
79 sky.day_horizon = video::SColor(255, 144, 211, 246);
80 sky.indoors = video::SColor(255, 100, 100, 100);
81 sky.dawn_horizon = video::SColor(255, 186, 193, 240);
82 sky.night_horizon = video::SColor(255, 64, 144, 255);
83 // Sky colors
84 sky.day_sky = video::SColor(255, 97, 181, 245);
85 sky.dawn_sky = video::SColor(255, 180, 186, 250);
86 sky.night_sky = video::SColor(255, 0, 107, 255);
87 return sky;
90 const SunParams getSunDefaults()
92 SunParams sun;
93 sun.visible = true;
94 sun.sunrise_visible = true;
95 sun.texture = "sun.png";
96 sun.tonemap = "sun_tonemap.png";
97 sun.sunrise = "sunrisebg.png";
98 sun.scale = 1;
99 return sun;
102 const MoonParams getMoonDefaults()
104 MoonParams moon;
105 moon.visible = true;
106 moon.texture = "moon.png";
107 moon.tonemap = "moon_tonemap.png";
108 moon.scale = 1;
109 return moon;
112 const StarParams getStarDefaults()
114 StarParams stars;
115 stars.visible = true;
116 stars.count = 1000;
117 stars.starcolor = video::SColor(105, 235, 235, 255);
118 stars.scale = 1;
119 return stars;