use bevy::asset::Asset; use crate::prelude::*; use serde::Deserialize; #[derive(Deserialize, Asset, TypePath, Clone)] pub struct GlobalWorldConfig { pub world: WorldConfig, pub part: WPartConfig, pub hearty: HeartyConfig, } #[derive(Deserialize, Asset, TypePath, Clone)] pub struct WorldConfig { pub gravity: f32, pub gravity_iterations: usize, pub spawn_parts_at: String, pub spawn_parts_interval_secs: f32, } #[derive(Deserialize, Asset, TypePath, Clone, Debug)] pub struct WPartConfig { pub default_width: f32, pub default_height: f32, pub default_mass: f32, pub joint_align_compliance: f32, pub joint_angle_compliance: f32, pub joint_limit_compliance: f32, pub joint_linear_damping: f32, pub joint_angular_damping: f32, } #[derive(Deserialize, Asset, TypePath, Clone)] pub struct HeartyConfig { pub thrust: f32, pub spawn_at: String, }