Skip to main content

tinygame_core/core/
plugins.rs

1use sdl3_main::AppResult;
2
3use crate::core::world::World;
4
5pub struct PluginMeta {
6    pub name: &'static str,
7    pub depends_on: &'static [&'static str],
8}
9
10pub trait Plugin {
11    fn get_meta() -> PluginMeta;
12    fn init(_world: &mut World) -> AppResult {
13        AppResult::Continue
14    }
15    fn step(_world: &World) -> AppResult {
16        AppResult::Continue
17    }
18    fn pre_step(_world: &World) -> AppResult {
19        AppResult::Continue
20    }
21    fn post_step(_world: &World) -> AppResult {
22        AppResult::Continue
23    }
24    fn exit(_world: &World) -> () {
25        ()
26    }
27}