Add initial automatic roboport placement

This commit is contained in:
Henning Lindemann 2025-03-18 22:46:28 +01:00
parent 1680fef14d
commit caea696dd7
6 changed files with 203 additions and 1 deletions

View file

@ -11,6 +11,7 @@ use factorio_core::{
use std::{collections::HashMap, sync::atomic::AtomicUsize};
mod power_connection;
mod roboports;
mod visualize;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@ -153,6 +154,7 @@ pub enum EntityType {
Rail {
rail_type: RailType,
},
Roboport,
Unknown {
name: String,
size: Position,
@ -254,6 +256,10 @@ impl Entity {
Self::new_quarter_direction(EntityType::Rail { rail_type }, position, direction.into())
}
pub fn new_roboport(position: Position) -> Self {
Self::new(EntityType::Roboport, position, Direction::Up)
}
pub fn new_unknown(
name: impl AsRef<str>,
position: Position,
@ -299,6 +305,7 @@ impl Entity {
size: _,
} => name.clone(),
EntityType::Rail { rail_type } => rail_type.string(),
EntityType::Roboport => "roboport".to_string(),
}
}
@ -348,6 +355,7 @@ impl Entity {
} => *size,
EntityType::ElectricPole(electric_pole_type) => electric_pole_type.size(),
EntityType::Rail { rail_type } => rail_type.size(),
EntityType::Roboport => Position::new(8, 8),
_ => Position::new(2, 2),
}
}