23 lines
1.1 KiB
Markdown
23 lines
1.1 KiB
Markdown
# DiceOS
|
|
|
|
DiceOS is a custom desktop-like environment built on top of the LibGDX framework using Java. It features a custom rendering pipeline, windowing system, and modular service-based architecture managed by Avaje Inject.
|
|
|
|
## Building and Running
|
|
|
|
The project uses Gradle.
|
|
|
|
* **Build:** `./gradlew build`
|
|
* **Run:** `./gradlew run` (Assumes an application task is defined)
|
|
* **Test:** `./gradlew test`
|
|
|
|
## Development Conventions
|
|
|
|
* **Language:** Java
|
|
* **Dependency Injection:** Uses `avaje-inject`. Components are marked with `@Component` and injected via constructor.
|
|
* **Boilerplate:** Uses `lombok` for boilerplate reduction.
|
|
* **Rendering:** Built on LibGDX. Main entry point is `DiceOS.java` which extends `ApplicationAdapter`.
|
|
* **Asset Loading:** All assets, including textures, fonts, and NinePatches, must be loaded via the `ResourceLoader` service to ensure proper lifecycle management and caching.
|
|
* **Project Structure:**
|
|
* `src/main/java/be/seeseemelk/diceos/system`: Core OS services (Display, Window, Input, etc.).
|
|
* `src/main/resources`: Assets (backgrounds, system textures, fonts).
|