summaryrefslogtreecommitdiff
path: root/src/output_layout.rs
blob: efe48751991a3ca24ebf9c89c4aa5941011e775b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use crate::gate::*;
use macroquad::prelude::*;

pub struct OutputLayout {
    outputs: Vec<Connection>,
}

impl OutputLayout {
    pub fn new(outputs: Vec<Connection>) -> Self {
        OutputLayout { outputs }
    }
    pub fn draw(&self) {
        let playground_offset_x: f32 = screen_width() / 20.;
        let playground_offset_y: f32 = screen_height() / 14.;
        let playground_height: f32 = screen_height() - playground_offset_y * 2.0;
        for (cnt, node) in self.outputs.iter().enumerate() {
            draw_circle(
                screen_width() - playground_offset_x,
                playground_height / 3.0 + 25. + (30. * cnt as f32),
                node.radius,
                if node.on { node.color } else { GRAY },
            );
        }
    }
}