spaghetti
This commit is contained in:
parent
051027a094
commit
a97e41f395
13 changed files with 101 additions and 2 deletions
8
Cargo.lock
generated
8
Cargo.lock
generated
|
|
@ -690,6 +690,10 @@ dependencies = [
|
||||||
"winit",
|
"winit",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "moonhare_event"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "moonhare_graphics"
|
name = "moonhare_graphics"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
@ -703,6 +707,10 @@ dependencies = [
|
||||||
"log",
|
"log",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "moonhare_window"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ndk"
|
name = "ndk"
|
||||||
version = "0.9.0"
|
version = "0.9.0"
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "3"
|
resolver = "3"
|
||||||
members = [
|
members = [
|
||||||
"moonhare_engine",
|
"moonhare_engine", "moonhare_event",
|
||||||
"moonhare_graphics", "moonhare_log",
|
"moonhare_graphics",
|
||||||
|
"moonhare_log",
|
||||||
|
"moonhare_window",
|
||||||
"playground"
|
"playground"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
7
moonhare_event/Cargo.toml
Normal file
7
moonhare_event/Cargo.toml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
[package]
|
||||||
|
name = "moonhare_event"
|
||||||
|
edition = "2024"
|
||||||
|
version.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
12
moonhare_event/src/event.rs
Normal file
12
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
moonhare_event/src/event_listener.rs
Normal file
5
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);
|
||||||
|
}
|
||||||
19
moonhare_event/src/events/key_events/key_pressed_event.rs
Normal file
19
moonhare_event/src/events/key_events/key_pressed_event.rs
Normal 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 {
|
||||||
|
|
||||||
|
}
|
||||||
9
moonhare_event/src/events/key_events/mod.rs
Normal file
9
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
moonhare_event/src/events/mod.rs
Normal file
3
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
moonhare_event/src/events/mouse_events/mod.rs
Normal file
5
moonhare_event/src/events/mouse_events/mod.rs
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
use crate::event::Event;
|
||||||
|
|
||||||
|
pub trait MouseEvent: Event {
|
||||||
|
|
||||||
|
}
|
||||||
5
moonhare_event/src/events/window_events/mod.rs
Normal file
5
moonhare_event/src/events/window_events/mod.rs
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
use crate::event::Event;
|
||||||
|
|
||||||
|
pub trait WindowEvent: Event {
|
||||||
|
|
||||||
|
}
|
||||||
3
moonhare_event/src/lib.rs
Normal file
3
moonhare_event/src/lib.rs
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
pub mod event;
|
||||||
|
pub mod event_listener;
|
||||||
|
pub mod events;
|
||||||
7
moonhare_window/Cargo.toml
Normal file
7
moonhare_window/Cargo.toml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
[package]
|
||||||
|
name = "moonhare_window"
|
||||||
|
edition = "2024"
|
||||||
|
version.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
14
moonhare_window/src/lib.rs
Normal file
14
moonhare_window/src/lib.rs
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
pub fn add(left: u64, right: u64) -> u64 {
|
||||||
|
left + right
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn it_works() {
|
||||||
|
let result = add(2, 2);
|
||||||
|
assert_eq!(result, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue