Prop batch 2: monitor, booth lamp, dishwasher, pool table, wet-floor cone, high tables, plants, and a real red-carpet plate for the door
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
node_modules
|
||||
dist/
|
||||
art_incoming/
|
||||
|
||||
@ -1531,3 +1531,24 @@ QueueManager owns it (pure, 7 new tests); DoorScene renders it.
|
||||
`monitor`, `boothLamp`, `dishwasher`, `poolTable`, `wetFloor`, `highTable`,
|
||||
plus new candidates: red-carpet strip + brass bollards (street), the pour
|
||||
glass, the card jar. Recipe in the Phase-3 deploy note.
|
||||
|
||||
## SESSION — FABLE-SOLO-15 · 2026-07-21
|
||||
|
||||
**Branch:** main (solo, Fable, ultra) · **Gate:** lint ✓ build ✓ test ✓ (718 tests)
|
||||
**Deployed:** https://monsterrobot.games/not-tonight/ (rsync, curl 200)
|
||||
|
||||
### MODELBEAST prop batch #2 (the SOLO-14 art audit, cleared)
|
||||
8 flux_local jobs on the farm (flux2-klein-4b steps 4, seeds 4230–4237,
|
||||
SPACES.md prompt register), imported via tools/props_import.py → 28 generated
|
||||
props now in the manifest: `monitor`, `boothLamp`, `dishwasher`, `poolTable`,
|
||||
`wetFloor`, `highTable`, `plant`, and **`carpet`** — a front-on red-carpet
|
||||
plate (128×32, new TARGETS entry) that DoorScene now prefers over the
|
||||
rect-drawn strip (`gen:prop:carpet` texture check, rects stay as fallback).
|
||||
Batch script kept at scratchpad `mb_props_batch.py` pattern; raws in
|
||||
art_incoming/ (now gitignored — repo carries only the game-ready sprites).
|
||||
Verified in pane: all 8 `gen:prop:*` textures load, carpet plate renders at
|
||||
the door, pool corner dressed on the floor. Screenshots taken.
|
||||
|
||||
### Shelf
|
||||
Remaining §6: Head of Security finale arc, roster board. Ambition-tier patron
|
||||
sprite sheets (ASSETS.md §2) still wants its own session.
|
||||
|
||||
BIN
public/props/boothLamp.png
Normal file
|
After Width: | Height: | Size: 424 B |
BIN
public/props/carpet.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/props/dishwasher.png
Normal file
|
After Width: | Height: | Size: 552 B |
BIN
public/props/highTable.png
Normal file
|
After Width: | Height: | Size: 430 B |
@ -2,15 +2,22 @@
|
||||
"props": [
|
||||
"arcade",
|
||||
"barShelf",
|
||||
"boothLamp",
|
||||
"boothTable",
|
||||
"buttBin",
|
||||
"carpet",
|
||||
"cloak",
|
||||
"crate",
|
||||
"deck",
|
||||
"discoball",
|
||||
"dishwasher",
|
||||
"glassRack",
|
||||
"glassStack",
|
||||
"highTable",
|
||||
"mixer",
|
||||
"monitor",
|
||||
"plant",
|
||||
"poolTable",
|
||||
"poster1",
|
||||
"poster2",
|
||||
"poster3",
|
||||
@ -19,6 +26,7 @@
|
||||
"stampPodium",
|
||||
"street_backdrop",
|
||||
"taps",
|
||||
"till"
|
||||
"till",
|
||||
"wetFloor"
|
||||
]
|
||||
}
|
||||
|
||||
BIN
public/props/monitor.png
Normal file
|
After Width: | Height: | Size: 351 B |
BIN
public/props/plant.png
Normal file
|
After Width: | Height: | Size: 396 B |
BIN
public/props/poolTable.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/props/wetFloor.png
Normal file
|
After Width: | Height: | Size: 387 B |
@ -255,6 +255,9 @@ export class DoorScene extends Phaser.Scene {
|
||||
// The red carpet: a strip of somewhere-better between rope and door,
|
||||
// flanked by brass posts. Bodies parked here are rendered by
|
||||
// syncCarpetSprites; the strip is set dressing.
|
||||
if (this.textures.exists('gen:prop:carpet')) {
|
||||
this.add.image(420, 236, 'gen:prop:carpet').setOrigin(0.5, 1).setDisplaySize(132, 34).setDepth(2);
|
||||
} else {
|
||||
this.add.rectangle(420, 232, 124, 12, 0x8a1428).setDepth(2);
|
||||
this.add.rectangle(420, 227, 124, 2, 0xa8283c).setDepth(2);
|
||||
for (const px of [356, 484]) {
|
||||
@ -262,6 +265,7 @@ export class DoorScene extends Phaser.Scene {
|
||||
this.add.rectangle(px, 205, 7, 4, 0xe0c060).setDepth(2);
|
||||
}
|
||||
this.add.rectangle(420, 206, 126, 2, 0x7a2438).setDepth(2); // the velvet itself
|
||||
}
|
||||
|
||||
this.buildRain();
|
||||
this.buildRope();
|
||||
|
||||
@ -29,6 +29,8 @@ TARGETS = {
|
||||
"dishwasher": (32, 16),
|
||||
# the door-scene backdrop plate is special-cased: full size, no quantise
|
||||
"street:backdrop": (640, 176),
|
||||
# door-scene red carpet plate (front-on, not a floor prop)
|
||||
"carpet": (128, 32),
|
||||
}
|
||||
|
||||
def main() -> None:
|
||||
|
||||