better structure

This commit is contained in:
2025-06-28 03:51:13 +02:00
parent 551a062021
commit f401d4a995
9 changed files with 93 additions and 85 deletions
+8 -6
View File
@@ -1,30 +1,32 @@
pub mod keypress;
pub mod tick_rate;
use std::sync::Arc;
use crate::{events::EventManager, Screen};
pub trait Extension {
fn init(&mut self, screen: &mut Screen, events: &mut EventManager);
fn tick_start(&mut self, screen: &mut Screen, events: &mut EventManager);
fn tick_end(&mut self, screen: &mut Screen, events: &mut EventManager);
fn init(&mut self, screen: &mut Screen, events: &Arc<EventManager>);
fn tick_start(&mut self, screen: &mut Screen, events: &Arc<EventManager>);
fn tick_end(&mut self, screen: &mut Screen, events: &Arc<EventManager>);
}
pub struct ExtensionManager(Vec<Box<dyn Extension>>);
impl Extension for ExtensionManager {
fn init(&mut self, screen: &mut Screen, events: &mut EventManager) {
fn init(&mut self, screen: &mut Screen, events: &Arc<EventManager>) {
for ext in &mut self.0 {
ext.init(screen, events);
}
}
fn tick_start(&mut self, screen: &mut Screen, events: &mut EventManager) {
fn tick_start(&mut self, screen: &mut Screen, events: &Arc<EventManager>) {
for ext in &mut self.0 {
ext.tick_start(screen, events);
}
}
fn tick_end(&mut self, screen: &mut Screen, events: &mut EventManager) {
fn tick_end(&mut self, screen: &mut Screen, events: &Arc<EventManager>) {
for ext in &mut self.0 {
ext.tick_end(screen, events);
}