implement SetSceneGrid
This commit is contained in:
parent
668bef6a88
commit
529896a352
3 changed files with 19 additions and 3 deletions
|
@ -51,7 +51,8 @@ pub enum Request {
|
|||
CreateScene {
|
||||
title: String,
|
||||
},
|
||||
SceneSetGrid {
|
||||
SetSceneGrid {
|
||||
scene: usize,
|
||||
grid_cell_size: f32,
|
||||
grid_offset: [f32; 2],
|
||||
},
|
||||
|
|
|
@ -25,6 +25,7 @@ pub trait GameImpl<'a, C: Character<A> + Serialize + Deserialize<'a>, A: entry::
|
|||
/// the list of available scenes
|
||||
fn scenes(&self) -> Vec<usize>;
|
||||
fn get_scene(&self, id: usize) -> Option<&Scene>;
|
||||
fn get_scene_mut(&mut self, id: usize) -> Option<&mut Scene>;
|
||||
fn create_scene(&mut self, title: String);
|
||||
fn scene_visible(&mut self, scene: usize, visible: bool);
|
||||
fn create_token(&mut self, scene_id: usize, character: String, img_source: String, x: f32, y: f32) -> usize;
|
||||
|
@ -208,6 +209,10 @@ impl<'a, C: Character<A> + Serialize + Deserialize<'a>, A: entry::GameEntry + Se
|
|||
scene.visible_to_users = visible;
|
||||
}
|
||||
}
|
||||
|
||||
fn get_scene_mut(&mut self, id: usize) -> Option<&mut Scene> {
|
||||
self.scenes.get_mut(&id)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Default, Debug, Clone)]
|
||||
|
|
14
src/lib.rs
14
src/lib.rs
|
@ -169,10 +169,20 @@ impl GameServer {
|
|||
_ = broadcast.send((Some(id), scenes));
|
||||
}
|
||||
}
|
||||
api::Request::SceneSetGrid {
|
||||
api::Request::SetSceneGrid {
|
||||
grid_cell_size,
|
||||
grid_offset,
|
||||
} => todo!(),
|
||||
scene,
|
||||
} => {
|
||||
if *self.users.get(&id).unwrap_or(&false) {
|
||||
if let Some(scene) = self.game.get_scene_mut(scene) {
|
||||
if let Some(map) = scene.map.as_mut() {
|
||||
map.grid_cell_size = grid_cell_size;
|
||||
map.grid_offset = grid_offset;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
api::Request::SceneSetVisible { scene, visible } => {
|
||||
if *self.users.get(&id).unwrap_or(&false) {
|
||||
self.game.scene_visible(scene, visible);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue