Add Visualize to LayoutResult

This commit is contained in:
hal8174 2025-02-04 23:27:37 +01:00
parent ec869d4c18
commit c472a28591
5 changed files with 73 additions and 35 deletions

View file

@ -1,7 +1,7 @@
mod image;
mod print;
use crate::prelude::*;
use crate::{pathfield::PathField, prelude::*};
use ::image::RgbaImage;
pub use image::image_grid;
use std::collections::HashMap;
@ -124,6 +124,25 @@ impl Visualization {
}
}
pub fn add_path(&mut self, path: &[PathField], fg: Option<Color>, bg: Option<Color>) {
for p in path {
match p {
PathField::Belt { pos, dir } => {
self.add_symbol(*pos, Symbol::Arrow(*dir), fg, bg);
}
PathField::Underground { pos, dir, len } => {
self.add_symbol(*pos, Symbol::ArrowEnter(*dir), fg, None);
self.add_symbol(
pos.in_direction(dir, *len as i32),
Symbol::ArrowExit(*dir),
fg,
bg,
);
}
}
}
}
pub fn overwrite_background(&mut self, pos: Position, bg: Option<Color>) {
if let Some(s) = self.symbols.get_mut(&pos) {
s.2 = bg;