building queue
This commit is contained in:
@@ -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,
|
||||
}
|
||||
|
||||
20
game/buildings/src/build_queue.rs
Normal file
20
game/buildings/src/build_queue.rs
Normal file
@@ -0,0 +1,20 @@
|
||||
use shared::building::BuildingIdentifier;
|
||||
use world_generation::hex_utils::HexCoord;
|
||||
|
||||
pub struct BuildQueue {
|
||||
pub queue: Vec<QueueEntry>,
|
||||
}
|
||||
|
||||
impl Default for BuildQueue {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
queue: Default::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Eq)]
|
||||
pub struct QueueEntry {
|
||||
pub building: BuildingIdentifier,
|
||||
pub pos: HexCoord,
|
||||
}
|
||||
@@ -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::*;
|
||||
|
||||
4
game/shared/src/building.rs
Normal file
4
game/shared/src/building.rs
Normal file
@@ -0,0 +1,4 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Default, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub struct BuildingIdentifier(u32);
|
||||
@@ -1,3 +1,4 @@
|
||||
pub mod building;
|
||||
pub mod despawn;
|
||||
pub mod resource;
|
||||
pub mod states;
|
||||
|
||||
Reference in New Issue
Block a user