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
+16 -9
View File
@@ -28,10 +28,6 @@ pub struct BoardInteraction<'a> {
}
impl BoardWidget {
fn get(&mut self, i: usize, j: usize) -> &mut GameSquare {
&mut self.squares[i * self.num_squares + j]
}
pub fn initialize_state(num_squares: usize, current_board: Board) -> BoardWidget {
let mut board = BoardWidget::default();
board.num_squares = num_squares;
@@ -71,11 +67,11 @@ impl BoardWidget {
self.squares = rects;
}
pub fn draw(&self, show_rules: bool, rules_font_size: f32, resources: &Resources, settings: &GameSettings) {
pub fn draw(&self, params: &BoardDrawParams, resources: &Resources, settings: &GameSettings) {
let board_shadow_width = constants::BOARD_SHADOW_MULTIPLIER * self.square_width;
draw_shadow(&self.board_rect, board_shadow_width);
if show_rules {
if params.show_rules {
draw_rectangle(
self.board_rect.x,
self.board_rect.y,
@@ -84,11 +80,13 @@ impl BoardWidget {
UiColor::Yellow.to_bg_color(),
);
let font_size = rules_font_size * 0.6;
let font_size = params.rules_font_size * 0.4;
let rules = "\
Every move should be a \n\
capture. Win when only \n\
one piece is left.\n";
one piece is left.\n\
Age: Each piece can only \n\
move 'age' times";
let measurement = measure_text(rules, Some(resources.font()), font_size as u16, 1.0);
let draw_text_params = TextParams {
font_size: font_size as u16,
@@ -99,7 +97,7 @@ impl BoardWidget {
draw_multiline_text_ex(
rules,
self.board_rect.x + 0.5 * self.square_width,
self.board_rect.y + 0.5 * (self.board_rect.h - measurement.height)
self.board_rect.y + 0.4 * (self.board_rect.h - measurement.height)
- 2. * measurement.offset_y,
Some(2.),
draw_text_params,
@@ -161,6 +159,10 @@ impl BoardWidget {
}
}
fn get(&mut self, i: usize, j: usize) -> &mut GameSquare {
&mut self.squares[i * self.num_squares + j]
}
fn draw_debug(&self) {
let mut debug_lines = vec![];
let (mx, my) = mouse_position();
@@ -420,3 +422,8 @@ struct PieceDrawTextureParams<'a> {
texture: &'a Texture2D,
draw_text_params: DrawTextureParams,
}
pub struct BoardDrawParams {
pub show_rules: bool,
pub rules_font_size: f32,
}