trying to eat the spaghetti (make it less)
This commit is contained in:
parent
3dd1a0caee
commit
4ad7d2ebd0
42 changed files with 189 additions and 668 deletions
7
crates/moonhare_event/Cargo.toml
Normal file
7
crates/moonhare_event/Cargo.toml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
[package]
|
||||
name = "moonhare_event"
|
||||
edition = "2024"
|
||||
version.workspace = true
|
||||
authors.workspace = true
|
||||
|
||||
[dependencies]
|
||||
1
crates/moonhare_event/README.md
Normal file
1
crates/moonhare_event/README.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
# MoonhareEvent
|
||||
12
crates/moonhare_event/src/event.rs
Normal file
12
crates/moonhare_event/src/event.rs
Normal 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;
|
||||
}
|
||||
5
crates/moonhare_event/src/event_listener.rs
Normal file
5
crates/moonhare_event/src/event_listener.rs
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
use crate::event::Event;
|
||||
|
||||
pub trait EventListener {
|
||||
fn on_event<T: Event>(event: T);
|
||||
}
|
||||
|
|
@ -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 {
|
||||
|
||||
}
|
||||
9
crates/moonhare_event/src/events/key_events/mod.rs
Normal file
9
crates/moonhare_event/src/events/key_events/mod.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
use crate::event::Event;
|
||||
|
||||
pub mod key_pressed_event;
|
||||
|
||||
pub trait KeyEvent: Event {
|
||||
fn get_key_code() {
|
||||
|
||||
}
|
||||
}
|
||||
3
crates/moonhare_event/src/events/mod.rs
Normal file
3
crates/moonhare_event/src/events/mod.rs
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
pub mod key_events;
|
||||
pub mod mouse_events;
|
||||
pub mod window_events;
|
||||
5
crates/moonhare_event/src/events/mouse_events/mod.rs
Normal file
5
crates/moonhare_event/src/events/mouse_events/mod.rs
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
use crate::event::Event;
|
||||
|
||||
pub trait MouseEvent: Event {
|
||||
|
||||
}
|
||||
5
crates/moonhare_event/src/events/window_events/mod.rs
Normal file
5
crates/moonhare_event/src/events/window_events/mod.rs
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
use crate::event::Event;
|
||||
|
||||
pub trait WindowEvent: Event {
|
||||
|
||||
}
|
||||
3
crates/moonhare_event/src/lib.rs
Normal file
3
crates/moonhare_event/src/lib.rs
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
pub mod event;
|
||||
pub mod event_listener;
|
||||
pub mod events;
|
||||
Loading…
Add table
Add a link
Reference in a new issue