Jeffrey Wilcke
0dcead3a7a
feat(save): format version 2 with cyberspace; refuse v1 by seed
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:47:57 +02:00
Jeffrey Wilcke
8981b237f9
feat(screens): walk cyberspace, jack in on enter, body left behind
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:47:08 +02:00
Jeffrey Wilcke
2dc2938b2e
fix(render): camera clamp keeps the far edge on the map; drop unused pan
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:45:55 +02:00
Jeffrey Wilcke
3a9d7c5179
fix(explore): cursor moves freely and the camera follows it
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:44:04 +02:00
Jeffrey Wilcke
4bdb7a9fb4
chore(walker): allow dead code until the map screen wires jacking
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:43:58 +02:00
Jeffrey Wilcke
5469fd04cd
feat(walker): jack in and out, body left at the port
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:42:57 +02:00
Jeffrey Wilcke
9798ed1f10
feat(render): digital overlay works inside cyberspace
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:42:15 +02:00
Jeffrey Wilcke
bbd2745f73
feat(citygen): validate cyberspace anchors, jacks and reachability
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:40:40 +02:00
Jeffrey Wilcke
2d451f24d8
feat(citygen): cyberspace nodes, lanes and jack ports
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:39:06 +02:00
Jeffrey Wilcke
5037719e95
feat(citygen): cyberspace stage with grid, constructs, gates and hubs
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:36:38 +02:00
Jeffrey Wilcke
a491841639
feat(net): nodes carry their cyberspace tile
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:34:59 +02:00
Jeffrey Wilcke
b740b9d334
feat(net): cyberspace terrains, node features and their tileset
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:33:48 +02:00
Jeffrey Wilcke
2dc843aa86
chore: rename app crate and binary to cyberpunk
...
The game is called cyberpunk; the city generator is its first subsystem,
not the project. The citygen library keeps its name. README reframed
around the game.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 21:04:51 +02:00
Jeffrey Wilcke
59ba72f0e0
fix: review findings
...
- screen transitions snapshot the previous frame (ratatui swaps buffers
after draw, so the old snapshot was always blank); frame loop extracted
into a testable Runner
- .city loading rejects structurally inconsistent files: Grid deserialize
checks size vs data, load_city checks header vs body and runs
City::validate (now also checks Net link endpoints)
- saving from the map hands the live map screen back instead of a fresh
explore screen
- signage glyphs covered by the unicode-width test
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 18:23:15 +02:00
Jeffrey Wilcke
3c75674489
docs: README, dead-code cleanup, smoke fixes
...
- README with run instructions and key reference
- lift the crate-level dead_code allowance; scope it to the anim library surface
- render paths tolerate a city that is still generating (district/building ids
without entries), found by driving the app through a pty
- status messages show in the status bar, not only inside the inspector
- buffered JSON export (26 s -> 0.4 s for a large city)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 18:02:46 +02:00
Jeffrey Wilcke
48320eb0e6
feat(city): explore and walk screens with panels and help
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:54:00 +02:00
Jeffrey Wilcke
df448525c2
feat(city): walker with symmetric shadowcasting FOV
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:51:14 +02:00
Jeffrey Wilcke
997814e2f3
feat(city): title, configure and files screens
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:49:49 +02:00
Jeffrey Wilcke
73596eadd2
feat(city): animated generating screen
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:47:14 +02:00
Jeffrey Wilcke
acd0286bab
feat(city): logo, menu, form, panels and transitions
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:45:16 +02:00
Jeffrey Wilcke
741231c25b
feat(city): digital net overlay
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:42:11 +02:00
Jeffrey Wilcke
d43f1b68f0
feat(city): map viewport, camera, minimap, weather and traffic overlays
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:41:04 +02:00
Jeffrey Wilcke
f005d0c1b2
feat(city): style pack, tileset and lighting
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:37:36 +02:00
Jeffrey Wilcke
0e14cd14fc
feat(city): animation primitives and effects
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:34:04 +02:00
Jeffrey Wilcke
68be96a8b2
feat(city): app loop, terminal guard, save format, gen CLI
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:33:18 +02:00
Jeffrey Wilcke
0d459e7058
fix(citygen): robustness found by the extended seed sweep
...
- arterials merge onto existing roads and keep distance otherwise
- isolated strata components get a drop-in public connector
- blockless districts fall back to the largest clean rectangle
- sliver districts merge into neighbours (district count is a maximum)
- dressing removes blocking features that cut tiles off the street
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:30:54 +02:00
Jeffrey Wilcke
9ac713bbe9
feat(citygen): City::validate and seed sweep tests
...
Also guarantees one building per district and repairs interiors split
by crossing partitions, both found by the new validation.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:21:08 +02:00
Jeffrey Wilcke
b781e60d73
feat(citygen): net graph stage
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:15:13 +02:00
Jeffrey Wilcke
90b626e034
feat(citygen): naming stage
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:12:00 +02:00
Jeffrey Wilcke
fad98bba0b
feat(citygen): dressing, light maps, variants
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:11:22 +02:00
Jeffrey Wilcke
2fff121576
feat(citygen): connectivity repair and public connectors
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:09:06 +02:00
Jeffrey Wilcke
ac14d2c299
feat(citygen): building interiors, doors, windows, shafts
...
Blocks now keep a one-tile margin from water, the map edge and other
districts and get an alley ring; lots are cut as back-to-back rows so
every building has an outdoor-facing wall for its door.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:06:29 +02:00
Jeffrey Wilcke
466e587fb7
feat(citygen): undercity, skyways and heights verticals
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 17:01:41 +02:00
Jeffrey Wilcke
7d3bd8d394
feat(citygen): lots and building placement
...
Also makes block fitting recursive so irregular district regions split
into several clean blocks instead of being dropped.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 16:58:06 +02:00
Jeffrey Wilcke
9cc97b87cf
feat(citygen): per-theme street subdivision and blocks
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 16:53:26 +02:00
Jeffrey Wilcke
6ba66d5e63
feat(citygen): arterial road network
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 16:50:04 +02:00
Jeffrey Wilcke
fca3e32c97
feat(citygen): districts stage with themed Voronoi regions
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 16:48:48 +02:00
Jeffrey Wilcke
7c9928214f
feat(citygen): generator state machine, pathing helpers, terrain stage
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 16:47:02 +02:00
Jeffrey Wilcke
c8d8deeb0f
feat(citygen): flavor pack and theme table
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 16:44:14 +02:00
Jeffrey Wilcke
3a17d7e1cd
feat(citygen): params validation, GenError, seeded rng helpers
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 16:42:32 +02:00
Jeffrey Wilcke
40b6972664
feat(citygen): tile, world and net data model
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 16:41:47 +02:00
Jeffrey Wilcke
698a6a13db
feat(citygen): geometry primitives and Grid
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 16:40:04 +02:00
Jeffrey Wilcke
76c07e2927
chore: cargo workspace with citygen and city crates
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-12 16:39:05 +02:00