From d7ec3d7096eca796cc29bd3b062dfcefc27deae4 Mon Sep 17 00:00:00 2001 From: cool-mist Date: Wed, 21 Jan 2026 00:01:44 +0530 Subject: [PATCH] config-ify --- {assets => src/bin/assets}/button.wav | Bin {assets => src/bin/assets}/caskaydia.ttf | Bin {assets => src/bin/assets}/click.wav | Bin {assets => src/bin/assets}/loss.wav | Bin {assets => src/bin/assets}/mode.wav | Bin {assets => src/bin/assets}/pieces.png | Bin {assets => src/bin/assets}/win.wav | Bin src/bin/sol_chess/game.rs | 94 +++ src/{ => bin/sol_chess}/game/button.rs | 0 src/{ => bin/sol_chess}/game/color.rs | 0 src/bin/sol_chess/game/constants.rs | 39 ++ src/bin/sol_chess/game/draw.rs | 337 +++++++++++ src/bin/sol_chess/game/logic.rs | 312 ++++++++++ src/{ => bin/sol_chess}/game/shadow.rs | 0 src/{ => bin/sol_chess}/game/sound.rs | 2 +- src/{ => bin/sol_chess}/game/texture.rs | 0 src/{ => bin/sol_chess}/main.rs | 23 +- src/board.rs | 21 +- src/board/constants.rs | 2 +- src/game.rs | 720 ----------------------- src/game/constants.rs | 1 - src/lib.rs | 2 +- 22 files changed, 810 insertions(+), 743 deletions(-) rename {assets => src/bin/assets}/button.wav (100%) rename {assets => src/bin/assets}/caskaydia.ttf (100%) rename {assets => src/bin/assets}/click.wav (100%) rename {assets => src/bin/assets}/loss.wav (100%) rename {assets => src/bin/assets}/mode.wav (100%) rename {assets => src/bin/assets}/pieces.png (100%) rename {assets => src/bin/assets}/win.wav (100%) create mode 100644 src/bin/sol_chess/game.rs rename src/{ => bin/sol_chess}/game/button.rs (100%) rename src/{ => bin/sol_chess}/game/color.rs (100%) create mode 100644 src/bin/sol_chess/game/constants.rs create mode 100644 src/bin/sol_chess/game/draw.rs create mode 100644 src/bin/sol_chess/game/logic.rs rename src/{ => bin/sol_chess}/game/shadow.rs (100%) rename src/{ => bin/sol_chess}/game/sound.rs (93%) rename src/{ => bin/sol_chess}/game/texture.rs (100%) rename src/{ => bin/sol_chess}/main.rs (83%) delete mode 100644 src/game.rs delete mode 100644 src/game/constants.rs diff --git a/assets/button.wav b/src/bin/assets/button.wav similarity index 100% rename from assets/button.wav rename to src/bin/assets/button.wav diff --git a/assets/caskaydia.ttf b/src/bin/assets/caskaydia.ttf similarity index 100% rename from assets/caskaydia.ttf rename to src/bin/assets/caskaydia.ttf diff --git a/assets/click.wav b/src/bin/assets/click.wav similarity index 100% rename from assets/click.wav rename to src/bin/assets/click.wav diff --git a/assets/loss.wav b/src/bin/assets/loss.wav similarity index 100% rename from assets/loss.wav rename to src/bin/assets/loss.wav diff --git a/assets/mode.wav b/src/bin/assets/mode.wav similarity index 100% rename from assets/mode.wav rename to src/bin/assets/mode.wav diff --git a/assets/pieces.png b/src/bin/assets/pieces.png similarity index 100% rename from assets/pieces.png rename to src/bin/assets/pieces.png diff --git a/assets/win.wav b/src/bin/assets/win.wav similarity index 100% rename from assets/win.wav rename to src/bin/assets/win.wav diff --git a/src/bin/sol_chess/game.rs b/src/bin/sol_chess/game.rs new file mode 100644 index 0000000..d56338a --- /dev/null +++ b/src/bin/sol_chess/game.rs @@ -0,0 +1,94 @@ +use std::{ + collections::HashMap, + fmt::{self, Display, Formatter}, + sync::Arc, +}; + +mod button; +mod color; +pub mod constants; +mod draw; +mod logic; +mod shadow; +pub mod sound; +mod texture; + +use button::Button; +use macroquad::prelude::*; +use sol_chess::board::{Board, BoardState}; +use sound::Sounds; + +pub struct Game { + // The generated puzzle. We keep a copy of this to reset the game. + original_board: Board, + + // What is shown to the user + board: Board, + + // Constants througout the game + texture_res: Texture2D, + sounds: Sounds, + font: Arc, + num_squares: usize, + heading_text: String, + + // Update below on handle input + state: GameState, + debug: bool, + game_mode: GameMode, + + // Update below on window resize + // Used for drawing the state + square_width: f32, + window_height: f32, + window_width: f32, + board_rect: Rect, + squares: Vec, + heading_rect: Rect, + heading_font_size: f32, + gp_btns: HashMap, + mode_btns: HashMap, + rules: bool, + rules_btn: Option