use crate::connectors::*;
use crate::state::State;
use rscenes_raylib_connector::assets::*;
use std::fmt::Debug;
use std::ptr;
pub trait Scene: Debug + 'static {
fn id(&self) -> usize {
ptr::addr_of!(*self) as *const i32 as usize
}
fn get_camera_2d(&self) -> Camera2D {
Camera2D::empty()
}
fn get_camera_3d(&self) -> Camera3D {
Camera3D::empty()
}
#[allow(unused)]
fn on_setup(&mut self, connector: PlainConnector) -> Result<(), String> {
Ok(())
}
#[allow(unused)]
fn on_load(&mut self, connector: PlainConnector) -> Result<(), String> {
Ok(())
}
#[allow(unused)]
fn on_exit(&mut self, connector: PlainConnector) -> Result<(), String> {
Ok(())
}
#[allow(unused)]
fn draw_2d(&self, connector: Connector2D) -> Result<(), String> {
Ok(())
}
#[allow(unused)]
fn draw_3d(&self, connector: Connector3D) -> Result<(), String> {
Ok(())
}
#[allow(unused)]
fn draw_hud(&self, connector: Connector2D) -> Result<(), String> {
Ok(())
}
#[allow(unused)]
fn on_update(&mut self, connector: PlainConnector, dt: f32) -> Result<State, String> {
Ok(State::Keep)
}
}