use std::sync::Arc; use anyhow::Result; use engine::prelude::*; use crate::board::Board; pub struct MillGame { board: Arc, scene: SceneHandle, } impl MillGame { pub fn new(engine: Arc) -> Result> { let mut scene = SceneHandle::new(&engine)?; scene.activate()?; Ok(Arc::new(Self { board: Board::new(engine, &mut scene)?, scene, })) } } impl EngineObject for MillGame { fn name(&self) -> &str { "MillGame" } fn update(&self) -> Result<()> { Ok(()) } fn event(&self, event: EngineEvent) -> Result<()> { match event { EngineEvent::MouseMotion(_, _) => (), EngineEvent::MouseButtonDown(_) => (), EngineEvent::MouseButtonUp(_) => (), EngineEvent::MouseWheel(_, _, _) => (), EngineEvent::KeyDown(_) => (), EngineEvent::KeyUp(_) => (), EngineEvent::ButtonDown(_) => (), EngineEvent::ButtonUp(_) => (), EngineEvent::ControllerAxis(_) => (), EngineEvent::ControllerAdded(_) => (), EngineEvent::ControllerRemoved(_) => (), EngineEvent::FileDrop(_) => (), } Ok(()) } }