diff options
author | Katharina Fey <kookie@spacekookie.de> | 2021-02-07 21:12:43 +0100 |
---|---|---|
committer | Katharina Fey <kookie@spacekookie.de> | 2021-02-07 21:12:43 +0100 |
commit | f9d4d7ec0198f192f53e583c259e35350fe9fb62 (patch) | |
tree | 161c6f8d84d5483d0e4dfe8f4a997876a8a5a981 /games/rstnode/rst-client/src/state.rs | |
parent | 0472f0fb50ffb945c83d662cd21b994562bee12d (diff) |
rstnode: basic mouse input handling
Diffstat (limited to 'games/rstnode/rst-client/src/state.rs')
-rw-r--r-- | games/rstnode/rst-client/src/state.rs | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/games/rstnode/rst-client/src/state.rs b/games/rstnode/rst-client/src/state.rs index 6b7312f13d7f..b1b5e89f3d13 100644 --- a/games/rstnode/rst-client/src/state.rs +++ b/games/rstnode/rst-client/src/state.rs @@ -6,15 +6,17 @@ use crate::{ entities::{Coordinates, NodeRndr}, Renderer, }, + input::InputHandle, GameSettings, }; use ggez::{event::EventHandler, graphics, Context, GameResult}; -use rst_core::data::{Node, Owner, Upgrade}; +use rst_core::data::{Color, Level, Node, Owner, Player, Upgrade}; use std::sync::Arc; pub struct ClientState { assets: Assets, settings: GameSettings, + input: InputHandle, // Game state node: NodeRndr, @@ -25,14 +27,20 @@ impl ClientState { Self { assets, settings, + input: InputHandle::new(), node: NodeRndr { - loc: Coordinates(250.0, 250.0), + loc: Coordinates(512.0, 512.0), inner: Arc::new(Node { id: 0, health: 100.into(), max_health: 100.into(), - owner: Owner::Neutral, - type_: Upgrade::Base, + owner: Owner::Player(Player { + id: 0, + name: "kookie".into(), + color: Color::blue(), + money: 1000.into(), + }), + type_: Upgrade::Relay(Level::One), links: 0, link_states: vec![], buffer: vec![], @@ -47,7 +55,8 @@ impl ClientState { } impl EventHandler for ClientState { - fn update(&mut self, _ctx: &mut Context) -> GameResult<()> { + fn update(&mut self, ctx: &mut Context) -> GameResult<()> { + self.input.update(ctx)?; Ok(()) } |