mirror of
https://github.com/luanti-org/luanti.git
synced 2025-12-16 03:55:24 +01:00
Add API to control shadow intensity from the game/mod (#11944)
* Also Disable shadows when sun/moon is hidden. Fixes #11972.
This commit is contained in:
@@ -82,11 +82,12 @@ public:
|
||||
}
|
||||
|
||||
|
||||
bool is_active() const { return m_shadows_enabled; }
|
||||
bool is_active() const { return m_shadows_enabled && shadowMapTextureFinal != nullptr; }
|
||||
void setTimeOfDay(float isDay) { m_time_day = isDay; };
|
||||
void setShadowIntensity(float shadow_intensity);
|
||||
|
||||
s32 getShadowSamples() const { return m_shadow_samples; }
|
||||
float getShadowStrength() const { return m_shadow_strength; }
|
||||
float getShadowStrength() const { return m_shadows_enabled ? m_shadow_strength : 0.0f; }
|
||||
float getTimeOfDay() const { return m_time_day; }
|
||||
|
||||
private:
|
||||
@@ -101,6 +102,9 @@ private:
|
||||
void mixShadowsQuad();
|
||||
void updateSMTextures();
|
||||
|
||||
void disable();
|
||||
void enable() { m_shadows_enabled = m_shadows_supported; }
|
||||
|
||||
// a bunch of variables
|
||||
IrrlichtDevice *m_device{nullptr};
|
||||
scene::ISceneManager *m_smgr{nullptr};
|
||||
@@ -116,12 +120,14 @@ private:
|
||||
std::vector<NodeToApply> m_shadow_node_array;
|
||||
|
||||
float m_shadow_strength;
|
||||
float m_shadow_strength_gamma;
|
||||
float m_shadow_map_max_distance;
|
||||
float m_shadow_map_texture_size;
|
||||
float m_time_day{0.0f};
|
||||
int m_shadow_samples;
|
||||
bool m_shadow_map_texture_32bit;
|
||||
bool m_shadows_enabled;
|
||||
bool m_shadows_supported;
|
||||
bool m_shadow_map_colored;
|
||||
u8 m_map_shadow_update_frames; /* Use this number of frames to update map shaodw */
|
||||
u8 m_current_frame{0}; /* Current frame */
|
||||
|
||||
Reference in New Issue
Block a user