This commit is contained in:
cool-mist
2026-01-26 20:00:50 +05:30
parent dc61d6d956
commit 280150b0b0
18 changed files with 779 additions and 325 deletions
+17 -8
View File
@@ -2,6 +2,8 @@ pub mod constants;
mod draw;
mod logic;
use std::collections::HashMap;
use crate::{resources::Resources, widgets::*};
use macroquad::prelude::*;
use sol_lib::generator::Puzzle;
@@ -15,30 +17,36 @@ pub struct Game {
window_width: f32,
puzzle: Puzzle,
id_text: IdTextInput,
id_text_btn: ButtonWidget,
reset_btn: ButtonWidget,
next_btn: ButtonWidget,
show_rules: bool,
rules_font_size: f32,
board: BoardWidget,
heading_rect: Rect,
heading_font_size: f32,
heading_text: String,
heading: LabelWidget,
show_rules: bool,
rules_text: String,
rules_btn_text: String,
rules_btn: ButtonWidget,
game_mode: GameMode,
easy_btn: ButtonWidget,
medium_btn: ButtonWidget,
hard_btn: ButtonWidget,
game_mode_btns: HashMap<GameMode, ButtonWidget>,
pieces_label: LabelWidget,
max_age_label: LabelWidget,
pieces_counter: CounterWidget,
max_age_counter: CounterWidget,
generate_btn: ButtonWidget,
}
#[derive(Default)]
pub struct GameSettings {
pub volume: f32,
pub max_moves_per_piece: u32,
pub debug: bool,
pub num_pieces: u32,
}
#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
@@ -46,6 +54,7 @@ pub enum GameMode {
Easy,
Medium,
Hard,
Custom,
}
impl Default for GameMode {