Repository navigation
Finish transfer items: small and attached buildings, building tags, shared seams, mod export and headless CLI - #8
Merged
Conversation
Streamed-world gaps: - Buildings from 2x2 tiles: footprints under 6 tiles on a side are one room; stairs only along a side of at least 6 tiles. Imports no longer inflate small outlines; one-room presets and geometry drafts accept them. - OSM world import promotes imported fence lines crossing section seams once into the world fence layer, merges per-section gates and keeps only the owning section's copy of a line that merely touches a neighbour. Preserve edits keeps authored world fences. - Shared world decorations (world format 8): stored once in world tiles, clipped into each section, protected in isolated editing, kept by section workspaces, preserve-edits reimport and both exporters; world inspector panel to promote, move and remove them. Transfer contract items 2, 4-7, 9 and the section 3 seam check: - Building tags pz:kind, pz:style, roof:colour (colours measured from the installed roof sprites), pz:wall and pz:trim; unknown pz:* keys reported. - Attached buildings (pz:attached, pz:door-to, map format 13): one shared wall owned by the larger building, own entrance for the smaller one. - Mod export options on every export: mod id, map folder, title, common/media/maps layout and install into Zomboid/mods. - simplepzmap CLI: build from a JSON scene, validate --game (every tile name against the installed game), export, tiles (.pack/.tiles from PNG frames) and probe (installed game classes load the export). - Seam check: every source building and fence placed once or kept as evidence with a reason. Verified: 404 C# and 262 JS tests; real Pilna OSM built with --strict (26 sections, 0 lost or duplicated features, all 2471 tile names found) and loaded by the installed game's classes (416 cells, 9565 rooms). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A GET export with install=true could be triggered by any web page (a link or image pointing at the local editor) and write into Zomboid/mods. Installing now needs POST, which the host middleware limits to JSON requests from the editor's own origin; workspace exports and job downloads also accept POST. A GET can still rename the returned archive, which has no side effects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Finishes the work left open after the streamed world editor and the real-place transfer contract.
Streamed-world gaps
Transfer items 2, 4–7, 9 and the contract §3 seam check
pz:kind,pz:style,roof:colour(named or#rrggbb, matched to roof sets by colours measured from the installed sprites),pz:wall,pz:trim. Unknownpz:*keys and bad values are reported, never fatal.pz:attached,pz:door-to, map format 13): the larger building owns the single shared wall, the smaller one keeps its own entrance, an optional door joins them.common/media/mapslayout, install intoZomboid/mods. Install replaces only folders the editor created and is accepted only on same-origin POST.simplepzmapCLI (src/SimplePZMapmaker.Cli):buildfrom a JSON scene,validate --game(every exported tile name against the installed game),export,tiles(.pack/.tilesfrom PNG frames, properties copied from installed tiles) andprobe(installed game classes load the export). Guide:docs/CLI.md.Verification
simplepzmap build --strict --game: 26 sections, 1,640 section and 61 shared buildings, 0 lost or duplicated, all 2,471 tile names found in the game. The installed game's classes loaded 416 cells, 425,984 chunks and 9,565 rooms (1,429 upper, 249 stair tiles).Notes for review
scripts/verify-game-runtime.ps1now accepts absolute archive paths and a-NoStairsswitch; a PowerShell bug that split single-element probe arguments into characters is fixed.🤖 Generated with Claude Code