spaghetti

This commit is contained in:
LunarAkai 2025-07-29 00:13:33 +02:00
commit a97e41f395
13 changed files with 101 additions and 2 deletions

8
Cargo.lock generated
View file

@ -690,6 +690,10 @@ dependencies = [
"winit",
]
[[package]]
name = "moonhare_event"
version = "0.1.0"
[[package]]
name = "moonhare_graphics"
version = "0.1.0"
@ -703,6 +707,10 @@ dependencies = [
"log",
]
[[package]]
name = "moonhare_window"
version = "0.1.0"
[[package]]
name = "ndk"
version = "0.9.0"

View file

@ -1,8 +1,10 @@
[workspace]
resolver = "3"
members = [
"moonhare_engine",
"moonhare_graphics", "moonhare_log",
"moonhare_engine", "moonhare_event",
"moonhare_graphics",
"moonhare_log",
"moonhare_window",
"playground"
]

View file

@ -0,0 +1,7 @@
[package]
name = "moonhare_event"
edition = "2024"
version.workspace = true
authors.workspace = true
[dependencies]

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;

View file

@ -0,0 +1,7 @@
[package]
name = "moonhare_window"
edition = "2024"
version.workspace = true
authors.workspace = true
[dependencies]

View 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);
}
}