feat(env): add pluggable world environments
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sat, 12 Sep 2026 09:58:20 +0000 (12:58 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sat, 12 Sep 2026 09:58:20 +0000 (12:58 +0300)
commitff37193e27da88a84377471ef1ea1ad852a4f5bc
tree2b6f44144d90c35d37d2a73ca1d50de92910ba5d
parent7bf0044c670bafb7a46e86e6741a964ae2d1d165
feat(env): add pluggable world environments

Add an EnvironmentProvider contract so the workspace can open a
pluggable 3D world by name, with discovery through a registry that
pairs built-in providers with ServiceLoader classpath plug-ins.

The --env=<name> flag resolves a provider, reports unknown or
unavailable environments, and lets the workspace own the provider
lifecycle. A built-in grid provider validates the contract without
external data. Test-driver flags are recognized anywhere on the
command line so they can coexist with --env, and start.sh rebuilds the
modules before launching the Fallout 4 environment.
TODO.org
src/main/java/eu/svjatoslav/sixth/core/Main.java
src/main/java/eu/svjatoslav/sixth/env/EnvironmentContext.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/env/EnvironmentProvider.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/env/EnvironmentRegistry.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/env/GridEnvironmentProvider.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/workspace/Workspace.java
start.sh [new file with mode: 0755]