//! The file formats backing maps and other configs use crate::data::{NodeId, LinkId}; use serde::{Serialize, Deserialize}; use std::path::Path; /// A config tree that describes a map #[derive(Serialize, Deserialize)] pub struct MapCfg { /// The set of nodes pub nodes: Vec, /// Links connecting nodes pub links: Vec, /// Default spawn points (player count) pub spawns: Vec, } #[derive(Serialize, Deserialize)] pub struct NodeCfg { /// Node ID pub id: NodeId, /// Render/world position pub x: f64, pub y: f64, } #[derive(Serialize, Deserialize)] pub struct LinkCfg { /// The link ID id: LinkId, /// List of connectioned nodes con: Vec, } #[derive(Serialize, Deserialize)] pub struct SpawnCfg { /// The node of the spawn point pub n_id: NodeId, /// At what number of players is this spawn available? pub max_players: usize, }