# 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).