use serde::{Deserialize, Serialize};
use crate::{
animation::{MixerDoc, StoredAnimation},
assets::AssetTable,
dynamic_material::CustomMaterialRef,
environment::EnvironmentConfig,
shadows::ShadowsConfig,
tree::EditorNode,
};
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub struct Scene {
#[serde(default)]
pub name: String,
#[serde(default)]
pub environment: EnvironmentConfig,
#[serde(default)]
pub shadows: ShadowsConfig,
#[serde(default)]
pub assets: AssetTable,
#[serde(default)]
pub custom_materials: Vec<CustomMaterialRef>,
#[serde(default)]
pub animations: Vec<StoredAnimation>,
#[serde(default)]
pub mixer: MixerDoc,
#[serde(default)]
pub nodes: Vec<EditorNode>,
}