add digit sprites, remove comment tiles
This commit is contained in:
parent
636e9d04e2
commit
86548a8b0d
13 changed files with 65 additions and 75 deletions
|
@ -6,12 +6,11 @@ use super::board::Pos;
|
|||
|
||||
pub type MarbleValue = u32;
|
||||
|
||||
#[derive(Debug, Default, Clone, Copy)]
|
||||
#[derive(Debug, Default, Clone, Copy, PartialEq)]
|
||||
pub enum Tile {
|
||||
#[default]
|
||||
Blank,
|
||||
Block,
|
||||
Comment(u8),
|
||||
Marble {
|
||||
value: MarbleValue,
|
||||
dir: Direction,
|
||||
|
@ -22,7 +21,7 @@ pub enum Tile {
|
|||
Powerable(PTile, bool),
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||
pub enum PTile {
|
||||
Trigger,
|
||||
Wire(WireType),
|
||||
|
@ -34,13 +33,13 @@ pub enum PTile {
|
|||
Output,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||
pub enum MirrorType {
|
||||
Forward,
|
||||
Back,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||
pub enum MathOp {
|
||||
Add,
|
||||
Sub,
|
||||
|
@ -49,7 +48,7 @@ pub enum MathOp {
|
|||
Rem,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||
pub enum GateType {
|
||||
LessThan,
|
||||
GreaterThan,
|
||||
|
@ -57,7 +56,7 @@ pub enum GateType {
|
|||
NotEqual,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||
pub enum WireType {
|
||||
Vertical,
|
||||
Horizontal,
|
||||
|
@ -97,9 +96,20 @@ impl Tile {
|
|||
let tex_name = match self {
|
||||
Tile::Blank => "",
|
||||
Tile::Block => "block",
|
||||
Tile::Comment(_) => "",
|
||||
Tile::Marble { value: _, dir: _ } => "marble",
|
||||
Tile::Digit(_) => "",
|
||||
Tile::Digit(n) => match n {
|
||||
b'0' => "digit_0",
|
||||
b'1' => "digit_1",
|
||||
b'2' => "digit_2",
|
||||
b'3' => "digit_3",
|
||||
b'4' => "digit_4",
|
||||
b'5' => "digit_5",
|
||||
b'6' => "digit_6",
|
||||
b'7' => "digit_7",
|
||||
b'8' => "digit_8",
|
||||
b'9' => "digit_9",
|
||||
_ => unreachable!("invalid digit"),
|
||||
},
|
||||
Tile::Mirror(mirror) => match mirror {
|
||||
MirrorType::Forward => "mirror_forward",
|
||||
MirrorType::Back => "mirror_back",
|
||||
|
@ -139,8 +149,7 @@ impl Tile {
|
|||
&format!("{t}_{}", if *state { "on" } else { "off" })
|
||||
}
|
||||
};
|
||||
let tex_name = format!("{tex_name}.png");
|
||||
if let Some(texture) = textures.get(&tex_name) {
|
||||
if let Some(texture) = textures.get(tex_name) {
|
||||
d.draw_texture_ex(
|
||||
texture,
|
||||
Vector2::new((x - size / 2) as f32, (y - size / 2) as f32),
|
||||
|
@ -153,13 +162,6 @@ impl Tile {
|
|||
|
||||
match self {
|
||||
Tile::Blank => (),
|
||||
Tile::Comment(c) => {
|
||||
d.draw_rectangle(x - size / 2, y - size / 2, size, size, Color::DIMGRAY);
|
||||
d.draw_text(&format!("{}", *c as char), x - 10, y - 10, 20, Color::WHITE);
|
||||
}
|
||||
Tile::Digit(n) => {
|
||||
d.draw_text(&String::from(*n as char), x - 10, y - 10, 20, Color::ORANGE)
|
||||
}
|
||||
_ => d.draw_rectangle(x - size / 2, y - size / 2, size, size, Color::RED),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue