gemini_engine/primitives/
pixel.rsuse crate::{containers::CanCollide, core::{CanDraw, ColChar, Vec2D}};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Pixel {
pub pos: Vec2D,
pub fill_char: ColChar,
}
impl Pixel {
#[must_use]
pub const fn new(pos: Vec2D, fill_char: ColChar) -> Self {
Self { pos, fill_char }
}
}
impl CanDraw for Pixel {
fn draw_to(&self, canvas: &mut impl crate::core::Canvas) {
canvas.plot(self.pos, self.fill_char);
}
}
impl CanCollide for Pixel {
fn collides_with_pos(&self, pos: Vec2D) -> bool {
self.pos == pos
}
}