trying to eat the spaghetti (make it less)

This commit is contained in:
LunarAkai 2025-07-29 11:59:34 +02:00
commit 4ad7d2ebd0
42 changed files with 189 additions and 668 deletions

View file

@ -0,0 +1,12 @@
pub enum EventType {
None,
WindowClose, WindowResize,
KeyPressed, KeyReleased,
MouseButtonPressed, MouseButtonReleased, MouseMoved, MouseScrolled
}
/// Base Class for Engine Events
pub trait Event {
fn get_event_name() -> &'static str;
fn get_event_type() -> EventType;
}

View file

@ -0,0 +1,5 @@
use crate::event::Event;
pub trait EventListener {
fn on_event<T: Event>(event: T);
}

View file

@ -0,0 +1,19 @@
use crate::{event::Event,};
struct KeyPressedEvent{}
const KEY_PRESSED_EVENT_NAME: &str = "KeyPressedEvent";
impl Event for KeyPressedEvent {
fn get_event_name() -> &'static str {
KEY_PRESSED_EVENT_NAME
}
fn get_event_type() -> crate::event::EventType {
crate::event::EventType::KeyPressed
}
}
impl super::KeyEvent for KeyPressedEvent {
}

View file

@ -0,0 +1,9 @@
use crate::event::Event;
pub mod key_pressed_event;
pub trait KeyEvent: Event {
fn get_key_code() {
}
}

View file

@ -0,0 +1,3 @@
pub mod key_events;
pub mod mouse_events;
pub mod window_events;

View file

@ -0,0 +1,5 @@
use crate::event::Event;
pub trait MouseEvent: Event {
}

View file

@ -0,0 +1,5 @@
use crate::event::Event;
pub trait WindowEvent: Event {
}

View file

@ -0,0 +1,3 @@
pub mod event;
pub mod event_listener;
pub mod events;