From 168cdd6cf81f57c96fad06e41a5506e3026c56fc Mon Sep 17 00:00:00 2001 From: LunarAkai Date: Thu, 31 Jul 2025 22:04:00 +0200 Subject: [PATCH] uh, left this project for a few days so idk --- Cargo.lock | 5 +++++ Cargo.toml | 1 + crates/moonhare_event/src/lib.rs | 1 + crates/moonhare_game/Cargo.toml | 7 +++++++ crates/moonhare_game/src/basic/mod.rs | 2 ++ crates/moonhare_game/src/basic/node.rs | 3 +++ crates/moonhare_game/src/basic/window.rs | 10 ++++++++++ crates/moonhare_game/src/lib.rs | 19 +++++++++++++++++++ crates/moonhare_graphics/src/lib.rs | 2 +- crates/moonhare_internal/Cargo.toml | 1 + crates/moonhare_internal/src/lib.rs | 1 + crates/moonhare_log/src/lib.rs | 3 +-- crates/moonhare_window/src/lib.rs | 1 + crates/moonhare_window/src/window_config.rs | 2 -- crates/moonhare_window/src/winit_window.rs | 4 +--- moonhare_engine/README.md | 2 +- moonhare_engine/src/lib.rs | 20 +++++++++++++++++++- playground/src/main.rs | 3 ++- 18 files changed, 76 insertions(+), 11 deletions(-) create mode 100644 crates/moonhare_game/Cargo.toml create mode 100644 crates/moonhare_game/src/basic/mod.rs create mode 100644 crates/moonhare_game/src/basic/node.rs create mode 100644 crates/moonhare_game/src/basic/window.rs create mode 100644 crates/moonhare_game/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 5bf564c..db15128 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -506,6 +506,10 @@ dependencies = [ name = "moonhare_event" version = "0.1.0" +[[package]] +name = "moonhare_game" +version = "0.1.0" + [[package]] name = "moonhare_graphics" version = "0.1.0" @@ -515,6 +519,7 @@ name = "moonhare_internal" version = "0.1.0" dependencies = [ "moonhare_event", + "moonhare_game", "moonhare_graphics", "moonhare_log", "moonhare_window", diff --git a/Cargo.toml b/Cargo.toml index dcab2b5..fac5834 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,7 @@ members = [ ] [workspace.package] +name = "moonhare_engine" version = "0.1.0" authors = ["LunarAkai"] diff --git a/crates/moonhare_event/src/lib.rs b/crates/moonhare_event/src/lib.rs index 6c1c6a7..bb41637 100644 --- a/crates/moonhare_event/src/lib.rs +++ b/crates/moonhare_event/src/lib.rs @@ -1,3 +1,4 @@ +//! Defines various Events for the Moonhare Game Engine pub mod event; pub mod event_listener; pub mod events; \ No newline at end of file diff --git a/crates/moonhare_game/Cargo.toml b/crates/moonhare_game/Cargo.toml new file mode 100644 index 0000000..de3eca9 --- /dev/null +++ b/crates/moonhare_game/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "moonhare_game" +edition = "2024" +version.workspace = true +authors.workspace = true + +[dependencies] diff --git a/crates/moonhare_game/src/basic/mod.rs b/crates/moonhare_game/src/basic/mod.rs new file mode 100644 index 0000000..3691eae --- /dev/null +++ b/crates/moonhare_game/src/basic/mod.rs @@ -0,0 +1,2 @@ +pub mod node; +pub mod window; \ No newline at end of file diff --git a/crates/moonhare_game/src/basic/node.rs b/crates/moonhare_game/src/basic/node.rs new file mode 100644 index 0000000..5c30870 --- /dev/null +++ b/crates/moonhare_game/src/basic/node.rs @@ -0,0 +1,3 @@ +pub trait Node { + +} \ No newline at end of file diff --git a/crates/moonhare_game/src/basic/window.rs b/crates/moonhare_game/src/basic/window.rs new file mode 100644 index 0000000..c26c703 --- /dev/null +++ b/crates/moonhare_game/src/basic/window.rs @@ -0,0 +1,10 @@ +use crate::basic::{node::Node}; + +pub struct GameWindow { + +} + + +impl Node for GameWindow { + +} \ No newline at end of file diff --git a/crates/moonhare_game/src/lib.rs b/crates/moonhare_game/src/lib.rs new file mode 100644 index 0000000..f5e41f7 --- /dev/null +++ b/crates/moonhare_game/src/lib.rs @@ -0,0 +1,19 @@ +//! Base functionality for a Moonhare Game Engine Project +pub mod basic; + +/// Only one Game may exist per project +pub struct Game { + pub name: String +} + +impl Default for Game { + fn default() -> Self { + Self { + name: default_game_name() + } + } +} + +fn default_game_name() -> String { + "Moonhare Game".to_owned() +} \ No newline at end of file diff --git a/crates/moonhare_graphics/src/lib.rs b/crates/moonhare_graphics/src/lib.rs index f3412ac..212005c 100644 --- a/crates/moonhare_graphics/src/lib.rs +++ b/crates/moonhare_graphics/src/lib.rs @@ -1,4 +1,4 @@ -/// Crate for providing an abstraction layer over different graphics APIs +//! Crate for providing an abstraction layer over different graphics APIs pub mod graphics_server; pub mod shader; \ No newline at end of file diff --git a/crates/moonhare_internal/Cargo.toml b/crates/moonhare_internal/Cargo.toml index 3493467..457c259 100644 --- a/crates/moonhare_internal/Cargo.toml +++ b/crates/moonhare_internal/Cargo.toml @@ -6,6 +6,7 @@ authors.workspace = true [dependencies] moonhare_event = { path = "../moonhare_event" } +moonhare_game = { path = "../moonhare_game" } moonhare_graphics = { path = "../moonhare_graphics" } moonhare_log = { path = "../moonhare_log" } moonhare_window = { path = "../moonhare_window" } \ No newline at end of file diff --git a/crates/moonhare_internal/src/lib.rs b/crates/moonhare_internal/src/lib.rs index a4d9119..223b52b 100644 --- a/crates/moonhare_internal/src/lib.rs +++ b/crates/moonhare_internal/src/lib.rs @@ -1,4 +1,5 @@ pub use moonhare_event as event; +pub use moonhare_game as game; pub use moonhare_graphics as graphics; pub use moonhare_log as log; pub use moonhare_window as window; \ No newline at end of file diff --git a/crates/moonhare_log/src/lib.rs b/crates/moonhare_log/src/lib.rs index 047ec1f..3bfdfbe 100644 --- a/crates/moonhare_log/src/lib.rs +++ b/crates/moonhare_log/src/lib.rs @@ -1,5 +1,4 @@ -/// Wrapper around `log` and `fern` crates -/// +//! Wrapper around `log` and `fern` crates use std::{fmt::Display, io, time::SystemTime}; /// Configures the Log Output Settings diff --git a/crates/moonhare_window/src/lib.rs b/crates/moonhare_window/src/lib.rs index d28d8e8..9844da4 100644 --- a/crates/moonhare_window/src/lib.rs +++ b/crates/moonhare_window/src/lib.rs @@ -1,2 +1,3 @@ +//! Provides an abstraction above Winit functionality pub mod window_config; pub mod winit_window; \ No newline at end of file diff --git a/crates/moonhare_window/src/window_config.rs b/crates/moonhare_window/src/window_config.rs index 3e0e475..a1ffaeb 100644 --- a/crates/moonhare_window/src/window_config.rs +++ b/crates/moonhare_window/src/window_config.rs @@ -1,5 +1,3 @@ -use std::{any::Any, string}; - /// General Config for [`WinitWindow`](crate::winit::winit_window::WinitWindow) pub struct WindowConfig { pub title: String, diff --git a/crates/moonhare_window/src/winit_window.rs b/crates/moonhare_window/src/winit_window.rs index c037895..75b830d 100644 --- a/crates/moonhare_window/src/winit_window.rs +++ b/crates/moonhare_window/src/winit_window.rs @@ -1,6 +1,4 @@ -use std::error::Error; - -use winit::{application::ApplicationHandler, dpi::LogicalSize, event::WindowEvent, event_loop::{ActiveEventLoop, EventLoop}, window::{Window, WindowAttributes, WindowId}}; +use winit::{application::ApplicationHandler, dpi::LogicalSize, event::WindowEvent, event_loop::ActiveEventLoop, window::{Window, WindowAttributes}}; use crate::window_config::WindowConfig; diff --git a/moonhare_engine/README.md b/moonhare_engine/README.md index 41f07f5..1f81acc 100644 --- a/moonhare_engine/README.md +++ b/moonhare_engine/README.md @@ -1 +1 @@ -# MoonhareEngine \ No newline at end of file +# MoonhareEngine diff --git a/moonhare_engine/src/lib.rs b/moonhare_engine/src/lib.rs index 746c67f..0bd7b3e 100644 --- a/moonhare_engine/src/lib.rs +++ b/moonhare_engine/src/lib.rs @@ -1,3 +1,21 @@ +//! Moonhare Game Engine pub use moonhare_internal::*; -pub const ENGINE_NAME: &str = "Moonhare Engine"; \ No newline at end of file +pub const ENGINE_NAME: &str = "Moonhare Engine"; + +/* +Game: (not a node, only one game may exist) +- Window(s) (node) + - Scene1 (node) + - Node + - Node + - ... + - Scene2 (node) + - ... + +------------------ +Node +- Optional +- Optional