library

Online co-op book organization video game
git clone https://git.bradleygannon.com/library.git
Log | Files | Refs

commit 1fb690aedead6e7a503c75f58407af5ccb62475a
parent e6fdc7a48fe32e03c74b661e721a7769fc5bd4d5
Author: Bradley Gannon <bradley@bradleygannon.com>
Date:   Sun, 30 Aug 2026 20:00:02 -0400

Remove SpriteIndex

Diffstat:
Mclient/src/render.rs | 21++++-----------------
Mcommon/src/game.rs | 11-----------
2 files changed, 4 insertions(+), 28 deletions(-)

diff --git a/client/src/render.rs b/client/src/render.rs @@ -1,6 +1,4 @@ -use std::ops::Index; - -use common::game::{BOOKS, GameState, SpriteIndex}; +use common::game::{BOOKS, GameState}; use macroquad::prelude::*; use uuid::Uuid; @@ -70,17 +68,6 @@ impl Spritesheet { } } -impl Index<SpriteIndex> for Spritesheet { - type Output = Sprite; - - fn index(&self, index: SpriteIndex) -> &Self::Output { - match index { - SpriteIndex::Meeple => &self.meeple, - SpriteIndex::FloorBook => &self.book, - } - } -} - pub(crate) fn render_game( camera: &Camera, game: &GameState, @@ -97,14 +84,14 @@ pub(crate) fn render_game( } // Render books on the floor - let floor_book_sprite = spritesheet[SpriteIndex::FloorBook].clone(); + let floor_book_sprite = spritesheet.book.clone(); for floor_book in game.floor_books().iter() { let position_camera = floor_book.position() - camera.position; floor_book_sprite.render(position_camera); } // Render players - let player_sprite = spritesheet[SpriteIndex::Meeple].clone(); + let player_sprite = spritesheet.meeple.clone(); for player in game.players().values() { let position_camera = player.position() - camera.position; player_sprite.render(position_camera); @@ -194,7 +181,7 @@ pub(crate) fn follow_local_player( ) { let screen_center = Vec2::new(screen_width() / 2., screen_height() / 2.); if let Some((_, player)) = game.players().iter().find(|(id, _)| *id == local_player_id) { - let player_sprite = &spritesheet[player.sprite_index()]; + let player_sprite = &spritesheet.meeple; camera.position = player.position() - screen_center + player_sprite.size / 2.; } } diff --git a/common/src/game.rs b/common/src/game.rs @@ -212,7 +212,6 @@ impl Default for GameState { pub struct Player { name: String, position: Vec2, - sprite_index: SpriteIndex, collider: RectSerde, timestamp: SystemTime, } @@ -222,7 +221,6 @@ impl Player { Player { name, position: Vec2::ZERO, - sprite_index: SpriteIndex::Meeple, collider: RectSerde::new(0., 0., 43.4, 40.2), timestamp: SystemTime::now(), } @@ -233,9 +231,6 @@ impl Player { pub fn position(&self) -> Vec2 { self.position } - pub fn sprite_index(&self) -> SpriteIndex { - self.sprite_index - } pub fn collider(&self) -> RectSerde { self.collider } @@ -483,12 +478,6 @@ pub enum ActionKind { Move { new_position: Vec2 }, } -#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] -pub enum SpriteIndex { - Meeple, - FloorBook, -} - #[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] pub struct Response { timestamp: SystemTime,