use bevy::math::UVec2; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Project { #[serde(alias = "bgColor")] pub bg_color: String, pub levels: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Level { pub uid: u32, pub identifier: String, #[serde(alias = "pxHei")] pub px_height: u32, #[serde(alias = "pxWid")] pub px_width: u32, #[serde(alias = "layerInstances")] pub layer_instances: Vec, #[serde(alias = "fieldInstances")] pub field_instances: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct LayerInstance { #[serde(alias = "__type")] pub ty: LayerType, #[serde(alias = "__identifier")] pub identifier: String, #[serde(alias = "__cHei")] pub height: u32, #[serde(alias = "__cWid")] pub width: u32, #[serde(alias = "gridTiles")] pub grid_tiles: Vec, #[serde(alias = "intGridCsv")] pub int_grid_tiles: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct FieldInstance {} #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Tile { #[serde(alias = "t")] pub ty: u32, #[serde(alias = "a")] pub alpha: f32, #[serde(alias = "f")] pub flip: u8, #[serde(alias = "px")] pub px_coords: UVec2, } #[derive(Debug, Clone, Serialize, Deserialize)] pub enum LayerType { IntGrid, Entities, Tiles, AutoLayer, }