use crate::state; use crate::svg_loader; use crate::utils; use crate::resources; pub struct InGameState { gui_svg: web_sys::SvgElement, } impl InGameState { pub fn new(level: svg_loader::SvgLevel) -> InGameState { InGameState { gui_svg: utils::get_element_by_id("ingame-ui").unwrap(), } } } impl state::State for InGameState { fn init(&mut self, _init: state::StateInitializer) -> state::Transition { self.gui_svg .style() .set_property("display", "block") .unwrap(); let rendering = resources::Rendering::new("game-canvas").unwrap(); rendering.ctx.set_fill_style(&"#100e23".into()); rendering.ctx.fill_rect(0.0, 0.0, 1920.0, 1080.0); state::Transition::Sleep } fn deinit(&mut self) { self.gui_svg .style() .set_property("display", "none") .unwrap(); } }