diff --git a/engine/world_generation/src/hex_utils.rs b/engine/world_generation/src/hex_utils.rs index c959c1f..c2441c4 100644 --- a/engine/world_generation/src/hex_utils.rs +++ b/engine/world_generation/src/hex_utils.rs @@ -1,5 +1,6 @@ use crate::prelude::Chunk; use bevy::prelude::*; +use serde::{Deserialize, Serialize}; pub const OUTER_RADIUS: f32 = 1.; pub const INNER_RADIUS: f32 = OUTER_RADIUS * (SQRT_3 / 2.); @@ -56,7 +57,7 @@ pub fn get_tile_count(radius: usize) -> usize { return 1 + 3 * (radius + 1) * radius; } -#[derive(Default, Debug, Clone, Copy, Eq, PartialEq)] +#[derive(Default, Debug, Clone, Copy, Eq, PartialEq, Serialize, Deserialize)] pub struct HexCoord { pub hex: IVec3, } diff --git a/game/buildings/src/build_queue.rs b/game/buildings/src/build_queue.rs new file mode 100644 index 0000000..324b36e --- /dev/null +++ b/game/buildings/src/build_queue.rs @@ -0,0 +1,20 @@ +use shared::building::BuildingIdentifier; +use world_generation::hex_utils::HexCoord; + +pub struct BuildQueue { + pub queue: Vec, +} + +impl Default for BuildQueue { + fn default() -> Self { + Self { + queue: Default::default(), + } + } +} + +#[derive(PartialEq, Eq)] +pub struct QueueEntry { + pub building: BuildingIdentifier, + pub pos: HexCoord, +} diff --git a/game/buildings/src/lib.rs b/game/buildings/src/lib.rs index 6242561..7cb53fb 100644 --- a/game/buildings/src/lib.rs +++ b/game/buildings/src/lib.rs @@ -1,6 +1,6 @@ pub mod assets; +pub mod build_queue; pub mod building_plugin; pub mod buildings_database; pub mod footprint; - pub use building_plugin::*; diff --git a/game/shared/src/building.rs b/game/shared/src/building.rs new file mode 100644 index 0000000..21617dc --- /dev/null +++ b/game/shared/src/building.rs @@ -0,0 +1,4 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Default, PartialEq, Eq, Serialize, Deserialize)] +pub struct BuildingIdentifier(u32); diff --git a/game/shared/src/lib.rs b/game/shared/src/lib.rs index d3c0f71..d317d7e 100644 --- a/game/shared/src/lib.rs +++ b/game/shared/src/lib.rs @@ -1,3 +1,4 @@ +pub mod building; pub mod despawn; pub mod resource; pub mod states;