update indev version

This commit is contained in:
Vinzenz Schroeter 2025-07-09 23:30:50 +02:00
parent 0bf317dd6d
commit 143ef1e285
7 changed files with 49 additions and 51 deletions

12
Cargo.lock generated
View file

@ -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",

View file

@ -1,4 +1,4 @@
use servicepoint::{Bitmap, WindowMut};
use servicepoint::{Bitmap, Grid, GridMut, WindowMut};
#[derive(Debug, Clone, Copy)]
pub struct Bar {
pub progress: f64,

View file

@ -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<char, CharGrid>,
bitmap: &'b mut WindowMut<bool, Bitmap>,
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)
}

View file

@ -76,40 +76,44 @@ impl Game {
pub fn draw(
&self,
text_layer: WindowMut<char, CharGrid>,
pixel_layer: WindowMut<bool, Bitmap>,
mut text_layer: WindowMut<char, CharGrid>,
mut pixel_layer: WindowMut<bool, Bitmap>,
) {
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<char, CharGrid>,
pixel_layer: WindowMut<bool, Bitmap>,
mut text_layer: WindowMut<char, CharGrid>,
mut pixel_layer: WindowMut<bool, Bitmap>,
) {
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);
}
}
}

View file

@ -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};

View file

@ -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<char, CharGrid>, bitmap: WindowMut<bool, Bitmap>) {
pub fn draw(
&self,
chars: &mut WindowMut<char, CharGrid>,
bitmap: &mut WindowMut<bool, Bitmap>,
) {
if !self.enabled {
return;
}

View file

@ -67,12 +67,16 @@ impl UnlockSystem {
}
}
pub fn draw(&self, chars: WindowMut<char, CharGrid>, bitmap: WindowMut<bool, Bitmap>) {
pub fn draw(
&self,
chars: &mut WindowMut<char, CharGrid>,
bitmap: &mut WindowMut<bool, Bitmap>,
) {
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();