diff options
author | metamuffin <metamuffin@disroot.org> | 2025-03-23 18:33:24 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-03-23 18:33:24 +0100 |
commit | 572b14f847dbb9c33ab767b4a13aab28f23e40d8 (patch) | |
tree | 0c6af0b48dc95747c0b89ba5ccd151af88a81bb3 /src | |
parent | 33a404b796fe85485ebf8ca6c1f0dfe25fe99485 (diff) | |
download | unity-tools-572b14f847dbb9c33ab767b4a13aab28f23e40d8.tar unity-tools-572b14f847dbb9c33ab767b4a13aab28f23e40d8.tar.bz2 unity-tools-572b14f847dbb9c33ab767b4a13aab28f23e40d8.tar.zst |
render settings
Diffstat (limited to 'src')
-rw-r--r-- | src/classes/render_settings.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/classes/render_settings.rs b/src/classes/render_settings.rs new file mode 100644 index 0000000..9751af4 --- /dev/null +++ b/src/classes/render_settings.rs @@ -0,0 +1,40 @@ +use super::{material::Material, pptr::PPtr, vectors::ColorRGBA}; +use crate::object::{Value, parser::FromValue}; +use anyhow::Result; +use serde::Serialize; + +#[derive(Debug, Serialize)] +pub struct RenderSettings { + pub skybox_material: PPtr<Material>, + pub fog_mode: i32, + pub fog_density: f32, + pub linear_fog_start: f32, + pub linear_fog_end: f32, + pub fog: bool, + pub fog_color: ColorRGBA, + pub ambient_equator_color: ColorRGBA, + pub ambient_ground_color: ColorRGBA, + pub ambient_sky_color: ColorRGBA, + pub ambient_intensity: f32, + pub ambient_mode: i32, +} + +impl FromValue for RenderSettings { + fn from_value(v: Value) -> Result<Self> { + let mut fields = v.as_class("RenderSettings")?; + Ok(RenderSettings { + skybox_material: fields.field("m_SkyboxMaterial")?, + fog: fields.field("m_Fog")?, + fog_color: fields.field("m_FogColor")?, + fog_density: fields.field("m_FogDensity")?, + fog_mode: fields.field("m_FogMode")?, + linear_fog_end: fields.field("m_LinearFogEnd")?, + linear_fog_start: fields.field("m_LinearFogStart")?, + ambient_equator_color: fields.field("m_AmbientEquatorColor")?, + ambient_ground_color: fields.field("m_AmbientGroundColor")?, + ambient_intensity: fields.field("m_AmbientIntensity")?, + ambient_mode: fields.field("m_AmbientMode")?, + ambient_sky_color: fields.field("m_AmbientSkyColor")?, + }) + } +} |