From 143ef1e285247fcb0b2bc5623c26b021a4471fc0 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Wed, 9 Jul 2025 23:30:50 +0200 Subject: [PATCH] update indev version --- Cargo.lock | 12 ------------ src/bar.rs | 2 +- src/border_panel.rs | 24 +++++++++++------------- src/game.rs | 40 ++++++++++++++++++++++------------------ src/main.rs | 4 ++-- src/row.rs | 8 ++++++-- src/unlocks.rs | 10 +++++++--- 7 files changed, 49 insertions(+), 51 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 06b93b5..1a90286 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -108,17 +108,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" -[[package]] -name = "inherent" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c38228f24186d9cc68c729accb4d413be9eaed6ad07ff79e0270d9e56f3de13" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -282,7 +271,6 @@ name = "servicepoint" version = "0.16.0" dependencies = [ "bitvec", - "inherent", "log", "once_cell", "rust-lzma", diff --git a/src/bar.rs b/src/bar.rs index 27958c1..7a08964 100644 --- a/src/bar.rs +++ b/src/bar.rs @@ -1,4 +1,4 @@ -use servicepoint::{Bitmap, WindowMut}; +use servicepoint::{Bitmap, Grid, GridMut, WindowMut}; #[derive(Debug, Clone, Copy)] pub struct Bar { pub progress: f64, diff --git a/src/border_panel.rs b/src/border_panel.rs index 441c475..ca04dfc 100644 --- a/src/border_panel.rs +++ b/src/border_panel.rs @@ -1,4 +1,4 @@ -use servicepoint::{Bitmap, CharGrid, CharGridMutExt, TILE_SIZE, WindowMut}; +use servicepoint::{Bitmap, CharGrid, CharGridMutExt, Grid, GridMut, TILE_SIZE, WindowMut}; pub type BorderPattern = [bool; TILE_SIZE]; @@ -6,8 +6,8 @@ pub const OUTER_BORDER: BorderPattern = [false, false, false, true, true, false, pub const INNER_BORDER: BorderPattern = [false, false, false, true, true, false, false, false]; pub fn draw_border_panel<'c, 'b>( - mut chars: WindowMut<'c, char, CharGrid>, - mut bitmap: WindowMut<'b, bool, Bitmap>, + chars: &'c mut WindowMut, + bitmap: &'b mut WindowMut, label: &str, border_pattern: BorderPattern, ) -> (WindowMut<'c, char, CharGrid>, WindowMut<'b, bool, Bitmap>) { @@ -77,17 +77,15 @@ pub fn draw_border_panel<'c, 'b>( } } - let (chars, _) = chars.split_horizontal_mut(tile_width - 1).unwrap(); - let (_, chars) = chars.split_horizontal_mut(1).unwrap(); - let (chars, _) = chars.split_vertical_mut(tile_height - 1).unwrap(); - let (_, chars) = chars.split_vertical_mut(1).unwrap(); - - let (bitmap, _) = bitmap - .split_horizontal_mut(pixel_width - TILE_SIZE) + let chars = chars + .window_mut(1..tile_width - 1, 1..tile_height - 1) + .unwrap(); + let bitmap = bitmap + .window_mut( + TILE_SIZE..tile_width - TILE_SIZE, + TILE_SIZE..tile_height - TILE_SIZE, + ) .unwrap(); - let (_, bitmap) = bitmap.split_horizontal_mut(TILE_SIZE).unwrap(); - let (bitmap, _) = bitmap.split_vertical_mut(pixel_height - TILE_SIZE).unwrap(); - let (_, bitmap) = bitmap.split_vertical_mut(TILE_SIZE).unwrap(); (chars, bitmap) } diff --git a/src/game.rs b/src/game.rs index 40dd8cf..c35fdb0 100644 --- a/src/game.rs +++ b/src/game.rs @@ -76,40 +76,44 @@ impl Game { pub fn draw( &self, - text_layer: WindowMut, - pixel_layer: WindowMut, + mut text_layer: WindowMut, + mut pixel_layer: WindowMut, ) { - let (text_layer, pixel_layer) = draw_border_panel( - text_layer, - pixel_layer, + let (mut text_layer, mut pixel_layer) = draw_border_panel( + &mut text_layer, + &mut pixel_layer, " Discordia Boot Procedure ", OUTER_BORDER, ); let unlocks_height = 3 + 2; - let (unlocks_text, bars_text) = text_layer.split_vertical_mut(unlocks_height).unwrap(); - let (unlocks_pixel, bars_pixel) = pixel_layer + let (mut unlocks_text, bars_text) = text_layer.split_vertical_mut(unlocks_height).unwrap(); + let (mut unlocks_pixel, bars_pixel) = pixel_layer .split_vertical_mut(unlocks_height * TILE_SIZE) .unwrap(); - self.unlocks.draw(unlocks_text, unlocks_pixel); + self.unlocks.draw(&mut unlocks_text, &mut unlocks_pixel); self.draw_bars(bars_text, bars_pixel); } fn draw_bars( &self, - text_layer: WindowMut, - pixel_layer: WindowMut, + mut text_layer: WindowMut, + mut pixel_layer: WindowMut, ) { - let (mut text_layer, mut pixel_layer) = - draw_border_panel(text_layer, pixel_layer, " Processes ", INNER_BORDER); + let (mut text_layer, mut pixel_layer) = draw_border_panel( + &mut text_layer, + &mut pixel_layer, + " Processes ", + INNER_BORDER, + ); - for row in self.state.rows.iter() { - let bar_window; - (bar_window, pixel_layer) = pixel_layer.split_vertical_mut(TILE_SIZE).unwrap(); - let label_window; - (label_window, text_layer) = text_layer.split_vertical_mut(1).unwrap(); - row.draw(label_window, bar_window); + for (index, row) in self.state.rows.iter().enumerate() { + let mut bar_window = pixel_layer + .window_mut(.., index * TILE_SIZE..index * TILE_SIZE + TILE_SIZE) + .unwrap(); + let mut label_window = text_layer.window_mut(.., index..index + 1).unwrap(); + row.draw(&mut label_window, &mut bar_window); } } } diff --git a/src/main.rs b/src/main.rs index fbd534a..1f1ef7a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ use game::Game; use servicepoint::{ - Bitmap, BitmapCommand, CharGrid, CharGridCommand, ClearCommand, TILE_HEIGHT, TILE_WIDTH, - UdpSocketExt, + Bitmap, BitmapCommand, CharGrid, CharGridCommand, ClearCommand, GridMut, TILE_HEIGHT, + TILE_WIDTH, UdpSocketExt, }; use std::{net::UdpSocket, time::Instant}; diff --git a/src/row.rs b/src/row.rs index b3ddb15..e636d7b 100644 --- a/src/row.rs +++ b/src/row.rs @@ -1,5 +1,5 @@ use crate::{Currency, bar::Bar}; -use servicepoint::{Bitmap, CharGrid, CharGridMutExt, WindowMut}; +use servicepoint::{Bitmap, CharGrid, CharGridMutExt, Grid, WindowMut}; use std::time::Duration; #[derive(Debug, Clone, Copy)] @@ -39,7 +39,11 @@ impl Row { completions * self.productivity } - pub fn draw(&self, chars: WindowMut, bitmap: WindowMut) { + pub fn draw( + &self, + chars: &mut WindowMut, + bitmap: &mut WindowMut, + ) { if !self.enabled { return; } diff --git a/src/unlocks.rs b/src/unlocks.rs index 66d36bc..452abf8 100644 --- a/src/unlocks.rs +++ b/src/unlocks.rs @@ -67,12 +67,16 @@ impl UnlockSystem { } } - pub fn draw(&self, chars: WindowMut, bitmap: WindowMut) { + pub fn draw( + &self, + chars: &mut WindowMut, + bitmap: &mut WindowMut, + ) { let title = format!(" Stage {}/{} ", self.bought, self.total_unlock_count); - let (chars, bitmap) = draw_border_panel(chars, bitmap, &title, INNER_BORDER); + let (mut chars, mut bitmap) = draw_border_panel(chars, bitmap, &title, INNER_BORDER); - let (all_unlocks_pixels, bitmap) = bitmap.split_vertical_mut(TILE_SIZE).unwrap(); + let (all_unlocks_pixels, mut bitmap) = bitmap.split_vertical_mut(TILE_SIZE).unwrap(); self.all_unlocks_bar.draw(all_unlocks_pixels); let (next_unlocks_pixels, _) = bitmap.split_vertical_mut(TILE_SIZE).unwrap();