From 1f395a45c433959cecbac761e69d4d0a33d9bd94 Mon Sep 17 00:00:00 2001 From: sicsix <8847273+sicsix@users.noreply.github.com> Date: Wed, 25 Jun 2025 09:36:20 +1000 Subject: [PATCH] chore: plugin descriptions, mod links, tooltips --- src/Features/InteriorSunShadows.h | 15 +++++++++------ src/Features/InverseSquareLighting.h | 17 +++++++++++------ .../InverseSquareLighting/LightEditor.cpp | 5 +++++ src/Features/SkySync.h | 17 +++++++++++------ 4 files changed, 36 insertions(+), 18 deletions(-) diff --git a/src/Features/InteriorSunShadows.h b/src/Features/InteriorSunShadows.h index 35694ca24d..f4abe5a61f 100644 --- a/src/Features/InteriorSunShadows.h +++ b/src/Features/InteriorSunShadows.h @@ -3,6 +3,10 @@ struct InteriorSunShadows : Feature { +private: + static constexpr std::string_view MOD_ID = "153541"; + +public: static InteriorSunShadows* GetSingleton() { static InteriorSunShadows singleton; @@ -15,12 +19,11 @@ struct InteriorSunShadows : Feature virtual std::pair> GetFeatureSummary() override { return { - "Enables realistic sun shadows inside interior spaces that have openings to the exterior, such as windows and doors, bringing natural lighting indoors.", - { "Sun shadow casting through windows and openings", - "Double-sided rendering for accurate interior shadows", - "Automatic detection of interiors with sun exposure", - "Enhanced directional light culling for interiors", - "Seamless integration with existing shadow systems" } + "Allows for the sun and moon to cast light and shadows into interior spaces.", + { "Functions only for explicitly enabled interiors", + "Utilizes existing sun, moon, and weather systems", + "Includes an option to force double-sided rendering for unprepared interiors", + "Fixes geometry culling issues that cause light leakage" } }; } virtual void DrawSettings() override; diff --git a/src/Features/InverseSquareLighting.h b/src/Features/InverseSquareLighting.h index 6ff712c388..7d89b53a25 100644 --- a/src/Features/InverseSquareLighting.h +++ b/src/Features/InverseSquareLighting.h @@ -4,6 +4,10 @@ struct InverseSquareLighting : Feature { +private: + static constexpr std::string_view MOD_ID = "153542"; + +public: static InverseSquareLighting* GetSingleton() { static InverseSquareLighting singleton; @@ -21,12 +25,13 @@ struct InverseSquareLighting : Feature virtual std::pair> GetFeatureSummary() override { return { - "Implements physically accurate inverse square falloff for lighting, making light attenuation behave realistically with distance for more natural illumination.", - { "Physically accurate light attenuation based on distance", - "Automatic radius calculation for optimal performance", - "Enhanced light editor for fine-tuning light properties", - "Realistic shadow caster handling", - "Support for both point and directional lighting" } + "Implements an additional inverse square falloff for lighting which allows for a more physically accurate and realistic looking light attenuation.", + { "Automatic light radius calculation based on intensity", + "Lights smoothly fade out at a configurable cutoff, solving the infinite distance problem", + "Does not modify any existing lighting", + "Requires the use of mods with lights enabled for inverse square falloff.", + "Full integration with Light Placer", + "Built in Light Editor for mod authors to preview lighting changes in real-time" } }; } diff --git a/src/Features/InverseSquareLighting/LightEditor.cpp b/src/Features/InverseSquareLighting/LightEditor.cpp index eea8d4b5b0..7261053b0d 100644 --- a/src/Features/InverseSquareLighting/LightEditor.cpp +++ b/src/Features/InverseSquareLighting/LightEditor.cpp @@ -5,6 +5,11 @@ void LightEditor::DrawSettings() { ImGui::Checkbox("Enable Light Editor", &enabled); + if (auto _tt = Util::HoverTooltipWrapper()) { + ImGui::Text( + "Allows for modifying lights in real-time to preview changes. " + "Changes cannot be saved directly and it is not intended for gameplay use."); + } if (!enabled) return; diff --git a/src/Features/SkySync.h b/src/Features/SkySync.h index 3da3cd9884..acfa107a5f 100644 --- a/src/Features/SkySync.h +++ b/src/Features/SkySync.h @@ -3,6 +3,10 @@ struct SkySync : Feature { +private: + static constexpr std::string_view MOD_ID = "153543"; + +public: static SkySync* GetSingleton() { static SkySync singleton; @@ -16,12 +20,13 @@ struct SkySync : Feature virtual std::pair> GetFeatureSummary() override { return { - "Synchronizes celestial lighting with the actual sky state, ensuring sun and moon lighting direction and intensity accurately match their visual position in the sky.", - { "Accurate sun and moon lighting direction matching sky position", - "Alternative sun path calculation for improved realism", - "Configurable moon light source selection", - "Real-time celestial body tracking and updates", - "Enhanced sky and climate transition handling" } + "Synchronizes volumetric lighting and shadows with the actual sun and moon positions in the sky.", + { "Fixes the mismatch between the positions of the sun and moons and the lighting direction", + "Includes an optional alternative southern sun path for more realistic and dramatic lighting", + "Smoothly switches the light source between the sun and moons based on visibility", + "Moon light source can be switched between Masser, Secunda, or the brightest", + "Automatic calculation of moon lighting intensity based on moon phase", + "Fixes the sun appearing higher on the horizon when the player gains altitude" } }; }