Skip to content
This repository has been archived by the owner on Sep 19, 2022. It is now read-only.

Very minor fine-tuning to OrderQueue #57

Merged
merged 2 commits into from
Apr 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions src/components.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,13 +89,22 @@ pub struct OrderQueue {
}

impl OrderQueue {
/// Better to wrap a component creation in a function
pub fn new(orders: Vec<UnitOrder>) -> Self {
/// Create an empty OrderQueue
pub fn new() -> Self {
OrderQueue {
orders: VecDeque::new(),
}
}
}

impl From<Vec<UnitOrder>> for OrderQueue {
fn from(orders: Vec<UnitOrder>) -> Self {
OrderQueue {
orders: VecDeque::from(orders),
}
}
}

/// Items available to buy
#[derive(PartialEq, Eq, Copy, Clone, Debug)]
pub struct ShelfItem(pub Items, pub i32);
10 changes: 5 additions & 5 deletions src/systems/order_generation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ pub fn order_generation_system(
oq.orders.push_back(UnitOrder::MovetoPoint(*pos));
} else {
order_queue
.insert(*e, OrderQueue::new(vec![UnitOrder::MovetoPoint(*pos)]));
.insert(*e, OrderQueue::from(vec![UnitOrder::MovetoPoint(*pos)]));
}
}
}
Expand All @@ -40,7 +40,7 @@ pub fn order_generation_system(
} else {
order_queue.insert(
*e,
OrderQueue::new(vec![UnitOrder::MovetoUnit(trg_e[0].clone())]),
OrderQueue::from(vec![UnitOrder::MovetoUnit(trg_e[0].clone())]),
);
}
}
Expand All @@ -52,7 +52,7 @@ pub fn order_generation_system(
oq.orders.push_back(UnitOrder::AMovetoPoint(*pos));
} else {
order_queue
.insert(*e, OrderQueue::new(vec![UnitOrder::AMovetoPoint(*pos)]));
.insert(*e, OrderQueue::from(vec![UnitOrder::AMovetoPoint(*pos)]));
}
}
}
Expand All @@ -70,7 +70,7 @@ pub fn order_generation_system(
oq.orders.clear();
oq.orders.push_back(UnitOrder::HoldPosition);
} else {
order_queue.insert(*e, OrderQueue::new(vec![UnitOrder::HoldPosition]));
order_queue.insert(*e, OrderQueue::from(vec![UnitOrder::HoldPosition]));
}
}
}
Expand All @@ -80,7 +80,7 @@ pub fn order_generation_system(
if let Some(oq) = order_queue.get_mut(*e) {
oq.orders.clear();
} else {
order_queue.insert(*e, OrderQueue::new(vec![]));
order_queue.insert(*e, OrderQueue::new());
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/systems/spawn_creep.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ pub fn spawn_creep_system(

// Spawn with Hold position order. To stop leaders when game mode is changed to micro-input.
// order_queue.insert(creep, OrderQueue::new(vec![UnitOrder::HoldPosition]));
order_queue.insert(creep, OrderQueue::new(vec![]));
order_queue.insert(creep, OrderQueue::new());

sprites.insert(
creep,
Expand Down
2 changes: 1 addition & 1 deletion src/systems/spawn_leader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ pub fn spawn_leader_system(

// Spawn with Hold position order. To stop leaders when game mode is changed to micro-input.
// order_queue.insert(leader, OrderQueue::new(vec![UnitOrder::HoldPosition]));
order_queue.insert(leader, OrderQueue::new(vec![]));
order_queue.insert(leader, OrderQueue::new());

skillsets.insert(
leader,
Expand Down