Use i64 instead of f64 for WheightedGraph

This commit is contained in:
hal8174 2025-03-26 17:22:37 +01:00
parent 068297e2c2
commit 6f74f1345e
6 changed files with 52 additions and 52 deletions

View file

@ -11,7 +11,7 @@ use super::*;
#[derive(Debug)]
struct PowerGraph {
nodes: HashMap<(Position, ElectricPoleType), (Vec<(Position, ElectricPoleType)>, f64)>,
nodes: HashMap<(Position, ElectricPoleType), (Vec<(Position, ElectricPoleType)>, i64)>,
}
#[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)]
@ -30,7 +30,7 @@ struct Node {
impl WheightedGraph for PowerGraph {
type Node = Node;
fn edge(&self, node: &Self::Node, num: usize) -> Option<(Self::Node, f64)> {
fn edge(&self, node: &Self::Node, num: usize) -> Option<(Self::Node, i64)> {
match node.node_type {
NodeType::In => {
if num == 0 {
@ -61,7 +61,7 @@ impl WheightedGraph for PowerGraph {
electric_pole_type,
node_type: NodeType::In,
},
0.0,
0,
)
})
}),
@ -144,15 +144,15 @@ impl Blueprint {
.placeable(Position::new(x, y), electric_pole_type.size())
{
Some(match electric_pole_type {
ElectricPoleType::Small => 0.8,
ElectricPoleType::Medium => 1.0,
ElectricPoleType::Big => 1.5,
ElectricPoleType::Small => 8,
ElectricPoleType::Medium => 10,
ElectricPoleType::Big => 15,
ElectricPoleType::Substation => todo!(),
})
} else if power_pole_map
.contains_key(&(Position::new(x, y), electric_pole_type))
{
Some(0.0)
Some(0)
} else {
None
};
@ -236,10 +236,10 @@ where
{
type Node = Option<G::Node>;
fn edge(&self, node: &Self::Node, num: usize) -> Option<(Self::Node, f64)> {
fn edge(&self, node: &Self::Node, num: usize) -> Option<(Self::Node, i64)> {
match node {
Some(n) => self.graph.edge(n, num).map(|(e, w)| (Some(e), w)),
None => self.start_nodes.get(num).map(|n| (Some(n.clone()), 0.0)),
None => self.start_nodes.get(num).map(|n| (Some(n.clone()), 0)),
}
}
}
@ -346,15 +346,15 @@ impl Blueprint {
.placeable(Position::new(x, y), electric_pole_type.size())
{
Some(match electric_pole_type {
ElectricPoleType::Small => 0.8,
ElectricPoleType::Medium => 1.0,
ElectricPoleType::Big => 1.5,
ElectricPoleType::Small => 8,
ElectricPoleType::Medium => 10,
ElectricPoleType::Big => 15,
ElectricPoleType::Substation => todo!(),
})
} else if power_pole_map
.contains_key(&(Position::new(x, y), electric_pole_type))
{
Some(0.0)
Some(0)
} else {
None
};