Separate map projects and add reusable island and operator camera tools
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Terraforming tools
|
||||
|
||||
The terrain toolkit turns one small JSON recipe into a repeatable height field, a raster preview, and bounded edit plans. It prepares the terrain foundation for the Shacraft lobby: mountain ridges, cliff-backed building platforms, a lake bed, garden terraces and ravines. Buildings and fluids are separate work.
|
||||
The terrain toolkit turns one small JSON recipe into a repeatable height field, a raster preview, and bounded edit plans. It supports small hills, graded routes, ridges, dry channels and local terrain adjustments. Buildings and fluids are separate work.
|
||||
|
||||
## Design and boundaries
|
||||
|
||||
@@ -47,16 +47,14 @@ The terrain compiler and preview renderer run outside the server tick. Live read
|
||||
|
||||
Build once with `./mvnw package` and `npm --prefix bridge test`. Offline preview needs the Java runtime installed by the project's bootstrap script; `MCB_JAVA_HOME` can override its path.
|
||||
|
||||
Render the proposed Shacraft terrain without a running server:
|
||||
Render the included eight-by-eight hill recipe without a running server:
|
||||
|
||||
```bash
|
||||
python3 scripts/terrain.py preview examples/terrain/shacraft-massif.json \
|
||||
--output docs/references/shacraft-terrain-heightmap.png
|
||||
python3 scripts/terrain.py preview examples/terrain/small-hill.json \
|
||||
--output .runtime/small-hill-preview.png
|
||||
```
|
||||
|
||||

|
||||
|
||||
The example proposes a 768×768×192 envelope and therefore 27,648 possible tiles at 4096 blocks each. This is a layout experiment, not an instruction to apply all tiles to the current world. It must be assigned a new, suitable project area before use. The current Gothic hall site is not a valid destination for it.
|
||||
The example covers X/Z 0..7 and Y80..87, with a rounded hill over seeded low-amplitude noise. The output is a target heightmap, not an observed world image. Inspect a suitable site and select the correct area before applying the recipe. Larger map-specific recipes and their reference images should be stored in the map project, outside this reusable toolkit.
|
||||
|
||||
For an authorized small site, a local batch avoids sending every tile's polling traffic through model context. This Linux runner uses an exclusive manifest lock, saves requests before sending them, stops on conflicts and processes at most 64 explicitly selected tiles per invocation:
|
||||
|
||||
@@ -80,7 +78,7 @@ Automated tests cover ordered features, negative elevations/coordinates, determi
|
||||
|
||||
The opt-in `bridge/test/live-terrain.mjs` exercises the real MCP → Paper path in an isolated fixture: preview without writes, a 201-block hill, idempotent replay, checked undo, protected existing gold block, preserved cell, stale-plan conflict, empty mask, area rejection and unknown recipe ID. The local batch runner is also tested by apply → resume → undo with full air restoration.
|
||||
|
||||
A compact recipe and native PNG reduce context cost; they do not eliminate server work. Large sites still need many live reads and potentially large journals. No full 768×768 application, throughput target or crash/disk benchmark has been completed. This toolkit is ready for small terrain sections and progressive landscape work; a whole-map rollout should be benchmarked and staged separately.
|
||||
A compact recipe and native PNG reduce context cost; they do not eliminate server work. Large sites still need many live reads and potentially large journals. No whole-map throughput target or crash/disk benchmark is claimed by these toolkit tests. This toolkit is ready for small terrain sections and progressive landscape work; a whole-map rollout should be benchmarked and staged separately.
|
||||
|
||||
## Relative brushes on existing terrain
|
||||
|
||||
|
||||
Reference in New Issue
Block a user