Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/StarSkyParameters.cpp
diff options
context:
space:
mode:
authorNiffe <petrovnik01@ukr.net>2024-03-01 00:03:19 +0200
committerNiffe <petrovnik01@ukr.net>2024-03-01 18:28:13 +0200
commit4b4013e5c8201276cf26c8c1e68ac62a8e9b7449 (patch)
tree816732f7cf1d70cdb021c1103877fe386495f101 /source/game/StarSkyParameters.cpp
parent3453819837f8f1bb1d439bb2df66386a9f35d80d (diff)
Dynamic sun image
Also adds access to sun scale, ray color, and fixes sun rendering in front of satellites
Diffstat (limited to 'source/game/StarSkyParameters.cpp')
-rw-r--r--source/game/StarSkyParameters.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/game/StarSkyParameters.cpp b/source/game/StarSkyParameters.cpp
index 886d882..3eddce5 100644
--- a/source/game/StarSkyParameters.cpp
+++ b/source/game/StarSkyParameters.cpp
@@ -16,6 +16,7 @@ SkyParameters::SkyParameters(CelestialCoordinate const& coordinate, CelestialDat
auto params = celestialDatabase->parameters(coordinate);
if (!params)
return;
+ auto systemParams = celestialDatabase->parameters(coordinate.system());
seed = staticRandomU64(params->seed(), "SkySeed");
// Gather up all the CelestialParameters and scales for all the celestial
@@ -50,6 +51,8 @@ SkyParameters::SkyParameters(CelestialCoordinate const& coordinate, CelestialDat
horizonImages = CelestialGraphics::worldHorizonImages(*params);
readVisitableParameters(params->visitableParameters());
+
+ sunType = systemParams->getParameter("typeName").toString();
}
SkyParameters::SkyParameters(SkyParameters const& oldSkyParameters, VisitableWorldParametersConstPtr newVisitableParameters) : SkyParameters() {
@@ -108,6 +111,8 @@ SkyParameters::SkyParameters(Json const& config) : SkyParameters() {
spaceLevel = config.optFloat("spaceLevel");
surfaceLevel = config.optFloat("surfaceLevel");
+
+ sunType = config.getString("sunType", "");
}
Json SkyParameters::toJson() const {
@@ -149,6 +154,7 @@ Json SkyParameters::toJson() const {
{"ambientLightLevel", jsonFromMaybe<Color>(skyColoring.maybeRight(), [](Color c) { return jsonFromColor(c); })},
{"spaceLevel", jsonFromMaybe<float>(spaceLevel)},
{"surfaceLevel", jsonFromMaybe<float>(surfaceLevel)},
+ {"sunType", sunType},
};
}
@@ -163,6 +169,7 @@ void SkyParameters::read(DataStream& ds) {
ds >> skyColoring;
ds >> spaceLevel;
ds >> surfaceLevel;
+ ds >> sunType;
}
void SkyParameters::write(DataStream& ds) const {
@@ -176,6 +183,7 @@ void SkyParameters::write(DataStream& ds) const {
ds << skyColoring;
ds << spaceLevel;
ds << surfaceLevel;
+ ds << sunType;
}
void SkyParameters::readVisitableParameters(VisitableWorldParametersConstPtr visitableParameters) {