Fail fast on missing terrain assets and recover empty renders
This commit is contained in:
@@ -22,6 +22,8 @@ npm start
|
||||
|
||||
`npm start` and `npm run dev` supervise both the website and processing worker. The worker is required to turn an upload into a previewable draft. `npm run worker` also loads `.env.local` when run separately. Setup downloads the pinned vanilla rendering assets and the Chromium runtime used by the existing terrain-rendering worker. Browser UI checks are separate from this worker.
|
||||
|
||||
Missing vanilla assets are also prepared automatically when a plugin export is rendered. For an existing failed or empty draft, stop the worker and use `npm run reprocess -- <dataset UUID>` before restarting. This retains the raw upload. See [empty-render recovery](docs/server-plugin.md#recover-an-empty-render).
|
||||
|
||||
`GET /api/v1/health` checks database connectivity. An empty catalog means no map has passed moderator review yet. Moderator access is controlled by `profiles.role` in Supabase; the project owner can set their profile's role to `moderator` using the database dashboard, then use `/moderation` on the website.
|
||||
|
||||
## Install the capture tools
|
||||
@@ -43,6 +45,7 @@ The build copies both JARs to their Git-visible download folders. Include those
|
||||
|
||||
```sh
|
||||
npm test
|
||||
npm run test:renderer
|
||||
npm run typecheck -- --incremental false
|
||||
npm run build
|
||||
node --import tsx scripts/test-plugin.ts
|
||||
@@ -50,6 +53,8 @@ node --import tsx scripts/test-plugin.ts
|
||||
|
||||
The plugin regression uses the Paper JAR already downloaded into `.cache/paper-proof/paper.jar`, starts a temporary loopback-only Paper server on port 25580, and stops it automatically. It verifies export, manifest validation, missing-export instructions, interrupted TUS upload/resume, idempotent retries, and cancellation. Its upload endpoint is a local test server; it does not publish a real community map or launch a Minecraft client.
|
||||
|
||||
The renderer regression exercises the product's headless terrain worker with grass, water, trees and a building, verifies nonempty map/cubemap output, and checks that a missing model fails. It starts no Minecraft server and uses no website UI automation. Output is written to `.cache/renderer-regression`. To use an existing Paper export instead, run `npm run test:renderer -- <export-folder>` after setup.
|
||||
|
||||
## Rendering scope
|
||||
|
||||
Plugin exports include generated Overworld surface terrain (up to 24 blocks below each column's top), vanilla block states, and biome identifiers. Buried opaque blocks are omitted. Each export is limited to 5 million retained blocks, 240 MiB of raw terrain JSON, and 50 MiB compressed. Start with a 128 × 128 area, check the preview, then increase coverage. Lighting is simplified; custom packs, entities, and dynamic block-entity visuals are not captured by the server exporter.
|
||||
|
||||
Reference in New Issue
Block a user