Parameterize priority queue

This commit is contained in:
hal8174 2025-03-27 20:25:10 +01:00
parent 6f74f1345e
commit ffe51bede9
14 changed files with 276 additions and 183 deletions

View file

@ -12,3 +12,4 @@ clap = { version = "4.5.26", features = ["derive"] }
serde = "1.0.217"
serde_json = "1.0.135"
flate2 = "1.0.35"
tracing = "0.1.41"

View file

@ -6,6 +6,7 @@ use factorio_graph::{
priority_queue::binary_heap::FastBinaryHeap,
wheighted_graph::{WheightedGraph, shortest_path::dijkstra, steiner_tree},
};
use tracing::trace_span;
use super::*;
@ -112,6 +113,7 @@ fn power_connections(
impl Blueprint {
pub fn connect_power_networks(&mut self) {
let _complete_span = trace_span!("connect power networks").entered();
let mut power_pole_map = self
.entities
.iter()
@ -246,6 +248,7 @@ where
impl Blueprint {
pub fn connect_roboport_power(&mut self) {
let _complete_span = trace_span!("connect roboport power").entered();
let mut roboportmap = self
.entities
.iter()
@ -287,8 +290,8 @@ impl Blueprint {
{
let placibility = self.placibility_map();
for (electric_pole_type, dist) in [
(ElectricPoleType::Small, 9),
(ElectricPoleType::Medium, 11),
(ElectricPoleType::Small, 7),
(ElectricPoleType::Medium, 9),
(ElectricPoleType::Big, 6),
] {
for (x, y) in
@ -314,6 +317,7 @@ impl Blueprint {
let mut visited_roboports = vec![start_roboport];
while !roboportmap.is_empty() {
let _inner = trace_span!("inner").entered();
let placibility = self.placibility_map();
let mut power_pole_map = self
.entities

View file

@ -6,6 +6,7 @@ use factorio_graph::{
priority_queue::binary_heap::FastBinaryHeap,
set_cover::{greedy_connected_set_cover_priority_queue, greedy_set_cover_priority_queue},
};
use tracing::trace_span;
use crate::abstraction::Entity;
@ -31,6 +32,7 @@ impl Graph for RoboportGraph<'_> {
impl Blueprint {
pub fn add_roboport_network(&mut self) {
let _complete_span = trace_span!("roboport_network").entered();
let aabb = self.get_aabb().unwrap();
let universe = self.entities.len();