Compare commits
1 Commits
main
...
claude/epi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c5889c957 |
4
.gitignore
vendored
@ -1,6 +1,2 @@
|
|||||||
node_modules
|
node_modules
|
||||||
dist/
|
dist/
|
||||||
art_incoming/
|
|
||||||
public/props/manifest.lock
|
|
||||||
__pycache__/
|
|
||||||
*.pyc
|
|
||||||
|
|||||||
25
CLAUDE.md
@ -29,31 +29,6 @@ by parallel "lanes" coordinated through files, reviewed by Fable.
|
|||||||
branch. An unpushed session didn't happen.
|
branch. An unpushed session didn't happen.
|
||||||
- Remote is Gitea: `ssh://git@100.71.119.27:222/monster/not-tonight.git`.
|
- Remote is Gitea: `ssh://git@100.71.119.27:222/monster/not-tonight.git`.
|
||||||
|
|
||||||
## Dev notes (venue expansion landed 2026-07-28)
|
|
||||||
- **The ladder's four venues now have four different rooms** (`docs/VENUES.md`).
|
|
||||||
Layouts live in `src/scenes/floor/layouts/` (`theRoyal`, `elevate`, `room`);
|
|
||||||
**Voltage stays in `venueMap.ts`** so the others can import primitives from it
|
|
||||||
without an import cycle. A night picks its room from `NightContext.venue.id`.
|
|
||||||
- Nothing about a room may be a module singleton any more. Props, lights, posts,
|
|
||||||
probes and the tile palette all hang off `FloorLayout`. `venueMap.VENUE/PROPS/
|
|
||||||
LIGHTS` still exist and are still Voltage's — they are the reference room, not
|
|
||||||
"the venue".
|
|
||||||
- **Dev route `#floor:<venueId>`** boots the floor demo straight into one room
|
|
||||||
(`#floor:room`, `#floor:theRoyal`, `#floor:elevate`). Plain `#floor`/F = Voltage.
|
|
||||||
- `tests/floor/layoutInvariants.ts` is the executable rulebook every layout runs:
|
|
||||||
perimeter, reachability, anchors on walkable tiles, posts not sealed, probes
|
|
||||||
reachable, props on-grid. Add a room, add it to `LAYOUTS`, it gets checked.
|
|
||||||
- Asset generation is `tools/gen/` — `assets.py` is the manifest (one entry per
|
|
||||||
sprite), `run_batch.py` walks it, resumable, `--workers N`. **Cloudflare Workers
|
|
||||||
AI first** (10k free neurons/day, resets 00:00 UTC), falling back to MODELBEAST
|
|
||||||
`flux_local` automatically when the day's allocation is spent. Meshes use the
|
|
||||||
**512 tier + vertex baker** (`mb.FAST_MESH`): ~90s vs ~6min, and the difference
|
|
||||||
does not survive the downscale to 32px. Heartbeat: `~/.jobs/not-tonight-assets.json`.
|
|
||||||
- `props_import.py` takes its sizes FROM `tools/gen/assets.py`, so sizes cannot
|
|
||||||
drift between the farm and the game. It locks `manifest.json` — parallel imports
|
|
||||||
used to lose entries to a read-modify-write race, which shows up as a prop that
|
|
||||||
is on disk but renders as a placeholder. `tools/gen/rebuild_manifest.py` repairs.
|
|
||||||
|
|
||||||
## Dev notes (Phase 2 landed 2026-07-19)
|
## Dev notes (Phase 2 landed 2026-07-19)
|
||||||
- The game boots into the NIGHT (Thu→Fri→Sat run, saved). Controls: click the
|
- The game boots into the NIGHT (Thu→Fri→Sat run, saved). Controls: click the
|
||||||
rope/verdicts at the door; click the venue doorway to step inside; on the
|
rope/verdicts at the door; click the venue doorway to step inside; on the
|
||||||
|
|||||||
1079
LANEHANDOVER.md
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 363 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 225 KiB After Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 92 KiB |
@ -70,22 +70,10 @@ Status: ✅ implemented · 🔜 next nibbles · 💡 backlog.*
|
|||||||
|
|
||||||
## Systems worth a whole phase
|
## Systems worth a whole phase
|
||||||
|
|
||||||
- ✅ **Venue 4 / ROOM boss week** (2026-07-21, first cut): fourth rung on the
|
- 💡 **Venue 4 / ROOM boss week** (design §6): dress code re-randomises every
|
||||||
ladder (promotes from Elevate). No Dazza rule chronology — the board IS the
|
15 in-game minutes; dialogue rendered as lip-read guesses under the loudest
|
||||||
law and re-randomises every 15 in-game minutes (3 rules per window, seeded,
|
mix arc.
|
||||||
with a toast on the turn); every rope line renders as bracketed lip-read
|
- 💡 **The DJ shift** (role ladder): the booth is built, the engine's mix is
|
||||||
guesses (`[FIST? LIST?]`) because the techno ate the dialogue. 60 licensed,
|
already externally scriptable — requests at the booth, energy management.
|
||||||
1.2 arrival scale, inspector working, crowd of heads and VIP-claimers.
|
- 💡 **Bartender shift**: the bar geometry and RSA scoring already exist;
|
||||||
- ✅ **The DJ shift** (2026-07-20, first cut): E at the booth hands you the decks
|
pour-and-cut-off from the other side of the counter.
|
||||||
while the resident steps out. B pulls the bass (the room leans in); SPACE
|
|
||||||
drops, judged against the LIVE bar line (clean/late/clang — early and late
|
|
||||||
are the same offence); requests arrive at the booth glass with per-request
|
|
||||||
odds ("got any dnb", nan's song, the DUN DUN one) and three answers that all
|
|
||||||
cost something. A build held too long runs out of stairs. Movement locks
|
|
||||||
while you hold them; the floor and the door keep happening without you.
|
|
||||||
- ✅ **Bartender shift** (2026-07-21, first cut): E at the till hands you the
|
|
||||||
taps (movement locks; the floor keeps happening). Orders arrive as choices —
|
|
||||||
the order line degrades with the patron's stage (the spelling IS the sobriety
|
|
||||||
test) — SERVE / WATER / CUT OFF all legal, all priced. Serving messy/maggot
|
|
||||||
is the RSA breach: the vibe pays up front, and 35% of the time somebody with
|
|
||||||
a lanyard saw it (ONE deferred write-up per night, deduped by reason).
|
|
||||||
|
|||||||
@ -5,14 +5,6 @@ fleet's asset factories. Written 2026-07-20. Code contract: everything lands
|
|||||||
behind data tables (`venueMap.PROPS` / `LIGHTS`) and a sprite drop-in convention —
|
behind data tables (`venueMap.PROPS` / `LIGHTS`) and a sprite drop-in convention —
|
||||||
generated art replaces placeholders with zero code changes.*
|
generated art replaces placeholders with zero code changes.*
|
||||||
|
|
||||||
> **Superseded in part, 2026-07-28 — see [VENUES.md](VENUES.md).** This document
|
|
||||||
> describes ONE venue floor, which is what the game had when it was written. The
|
|
||||||
> venue ladder now has four distinct rooms, and props/lights/posts/probes hang
|
|
||||||
> off a per-venue `FloorLayout` rather than the module singletons named below.
|
|
||||||
> The pipeline sections (§4 sprite drop-in, and the settled prop pipeline at the
|
|
||||||
> foot of this file) are still exactly right and still the house rules — only
|
|
||||||
> "the venue floor" in §2 is now specifically *Voltage's* floor.
|
|
||||||
|
|
||||||
## 1. Design principles
|
## 1. Design principles
|
||||||
|
|
||||||
1. **Darkness stays the mechanic.** Props read as silhouettes in ambient dark and
|
1. **Darkness stays the mechanic.** Props read as silhouettes in ambient dark and
|
||||||
@ -121,42 +113,3 @@ palette/density once.
|
|||||||
*(flux params for all [MB] jobs: `model flux2-klein-4b, steps 4`; put "no text,
|
*(flux params for all [MB] jobs: `model flux2-klein-4b, steps 4`; put "no text,
|
||||||
no lettering" in every prompt EXCEPT the posters, where mangled text reads as
|
no lettering" in every prompt EXCEPT the posters, where mangled text reads as
|
||||||
authentic gig-poster grot.)*
|
authentic gig-poster grot.)*
|
||||||
|
|
||||||
|
|
||||||
## Prop pipeline — settled 2026-07-22 (A/B'd, not guessed)
|
|
||||||
|
|
||||||
Two routes, both free and unlimited on MODELBEAST. Pick by object, not by habit.
|
|
||||||
|
|
||||||
**[MB] flux direct** — `flux_local` → `tools/props_import.py`. Fast (~9s).
|
|
||||||
Use for FLAT things: posters, decals, graffiti, signage, floor markings.
|
|
||||||
|
|
||||||
**[GLB] TRELLIS → Blender** — `flux_local` (product shot) → `trellis2_mlx`
|
|
||||||
(`asset_id` is a TOP-LEVEL job field, NOT inside `params`) →
|
|
||||||
`tools/glb_to_sprite.py <mesh.glb> <kind>` → sprite + manifest, headless, no
|
|
||||||
GUI. Use for objects with real VOLUME: tables, fridges, machines, furniture.
|
|
||||||
|
|
||||||
Why the split, from the A/B (same pool table, both routes): flux picks its own
|
|
||||||
camera every generation — the same prompt style gave a perfectly top-down
|
|
||||||
urinal and a front-on fridge in one batch, and mismatched camera angles never
|
|
||||||
read as one room. The mesh route renders every prop from one fixed ortho
|
|
||||||
camera, and TRELLIS carries detail flux flattens: worn felt, real pockets,
|
|
||||||
rails and legs, clean alpha.
|
|
||||||
|
|
||||||
**RAKE by object HEIGHT — and I had this backwards first time.**
|
|
||||||
Low and wide (pool table, booth table, crate): **60°**. Tall (arcade, fridge,
|
|
||||||
speaker, anything standing): **~76°**. The instinct to *lower* the rake for tall
|
|
||||||
objects "so you see more face" is wrong — a tall object already shows nothing
|
|
||||||
but face; it needs to be steeper to read as a floor prop at all. A speaker at
|
|
||||||
55° is a featureless black slab.
|
|
||||||
|
|
||||||
**Judge sprites at SHIP size, not render size.** A 512px render of a fridge from
|
|
||||||
above looks ambiguous; the same sprite at 32x32 under the game's own point light
|
|
||||||
reads fine, because the venue's LIGHTS do half the identifying work (the fridges
|
|
||||||
carry a cyan glow, the arcade a flickering blue). Do not re-roll a prop off the
|
|
||||||
back of the big preview.
|
|
||||||
|
|
||||||
**The old guidance, kept because it is still true for low objects:** The venue's props are
|
|
||||||
three-quarter top-down, not straight down. Re-rolled from directly overhead, a
|
|
||||||
bar fridge is a grey rectangle — physically correct and visually dead, because
|
|
||||||
the glowing bottles that say "fridge" are on its front. 60° keeps the top
|
|
||||||
surface dominant while leaving enough face to identify the object at 32px.
|
|
||||||
|
|||||||
150
docs/VENUES.md
@ -1,150 +0,0 @@
|
|||||||
# NOT TONIGHT — the four venues
|
|
||||||
|
|
||||||
*Written 2026-07-28. The venue ladder in `src/data/venues.ts` has always been
|
|
||||||
four venues; up to now they shared ONE floor map and differed only by difficulty
|
|
||||||
knobs. This document is the design contract for giving each its own room.*
|
|
||||||
|
|
||||||
## 0. Why bother
|
|
||||||
|
|
||||||
Design §6 sells the ladder as *promotion* — survive a week, get a better door.
|
|
||||||
But a promotion you cannot see is a number, not a reward. Walking into Elevate
|
|
||||||
and finding The Royal's carpet under your feet undoes the fiction the whole run
|
|
||||||
is built on. Each venue now has its own bar layout, its own dunnies, its own
|
|
||||||
smoking area and its own DJ booth, because those four things are exactly what a
|
|
||||||
bouncer actually learns about a room.
|
|
||||||
|
|
||||||
## 1. Shared contract (all four)
|
|
||||||
|
|
||||||
- **Grid is fixed at 80×45 tiles.** Venues differ by ARRANGEMENT, not extent —
|
|
||||||
the camera, minimap and bounds maths all key off `MAP_W`/`MAP_H`, and a
|
|
||||||
per-venue grid size would be a refactor with no visible payoff. A small venue
|
|
||||||
reads small by walling its unused grid to `void`, not by shrinking the array.
|
|
||||||
- **Every layout exports a `FloorLayout`**: `{ id, map, props, lights, posts,
|
|
||||||
probes }`. Nothing else may be a module singleton — that was the old shape and
|
|
||||||
it is what made four venues impossible.
|
|
||||||
- **Every layout must satisfy the same invariants** (`tests/floor/layouts.test.ts`):
|
|
||||||
1. every `AnchorKind` has ≥1 anchor, and every anchor is walkable;
|
|
||||||
2. all walkable tiles are mutually reachable (flood fill), except sealed
|
|
||||||
cubicle interiors, which must be reachable from their `StallDef.door`;
|
|
||||||
3. every `POSTS` entry is walkable and has a walkable neighbour (a post on a
|
|
||||||
sealed tile freezes the player for the night — this has shipped twice);
|
|
||||||
4. every `PROBES` entry has a walkable tile within reach;
|
|
||||||
5. no prop hangs off the grid.
|
|
||||||
- **Materials are grain, the palette is hue.** `FloorLayout.materials` names a
|
|
||||||
generated plate per tile kind (`tex_carpet`, `tex_concrete`, …) and the baker
|
|
||||||
stamps it **tinted to the palette colour**. That is deliberate: an untinted
|
|
||||||
photo-real plate blows straight past the brightness band everything else was
|
|
||||||
tuned in, and the room stops being dark. Plates are 16×16 — the game's tile —
|
|
||||||
because at that size "carpet" is structured noise, which is also what pub
|
|
||||||
carpet looks like from head height. No plate named, or art not landed: flat
|
|
||||||
palette colour, exactly as before.
|
|
||||||
- **The baked floor is keyed per venue** (`floor:tiles:<id>`). Textures outlive a
|
|
||||||
scene, so a single global key meant the first venue you played baked the floor
|
|
||||||
for every venue after it — you would survive a week at The Royal, get promoted,
|
|
||||||
and walk into Voltage still standing on the pub's carpet. It only shows on
|
|
||||||
promotion, which is precisely when the ladder is supposed to pay off.
|
|
||||||
- **Light signatures survive** (SPACES.md §1): bar = amber, dance = pulsing
|
|
||||||
pink on the real beat, DJ = deep blue, toilets = flickering green, smoking =
|
|
||||||
cool blue, entry = venue pink. A venue may add ONE signature colour of its
|
|
||||||
own — Elevate's skyline gold, ROOM's sodium orange — and no more, or the
|
|
||||||
navigate-by-glow rule stops working.
|
|
||||||
- **Darkness stays the mechanic.** No venue may be bright enough to scan from
|
|
||||||
the doorway.
|
|
||||||
|
|
||||||
## 2. The Royal — "a dive with a dance floor"
|
|
||||||
|
|
||||||
Licensed 80 · regulars and punters · nobody checks anything.
|
|
||||||
|
|
||||||
A suburban Australian pub that had a dance floor bolted on in about 2004 and has
|
|
||||||
not redecorated since. Patterned carpet, a horseshoe public bar, and the dance
|
|
||||||
floor is plainly the least important thing in the building.
|
|
||||||
|
|
||||||
| Space | What's in it |
|
|
||||||
|---|---|
|
|
||||||
| **Public bar** (horseshoe, west) | the long counter, taps, till, keg stack, a TV showing the footy, bar fridges |
|
|
||||||
| **Pool room** (north-west) | two pool tables, cue rack, a dartboard on the wall |
|
|
||||||
| **TAB / pokies corner** (north-east) | bank of poker machines, TAB screens, stools, its own miserable light |
|
|
||||||
| **Bistro** (centre-north) | bistro tables, bain-marie counter, the meat-raffle drum |
|
|
||||||
| **Dance floor** (south-east) | small, an afterthought, one mirror ball, a jukebox on the wall |
|
|
||||||
| **DJ corner** | not a booth — a folding table with a controller, beside the dance floor |
|
|
||||||
| **Dunnies** (east) | a stainless TROUGH, two cubicles (one out of order), one basin |
|
|
||||||
| **Beer garden** (south, open sky) | picnic tables, umbrellas, patio heater, butt bin — the smoking area, and the nicest room in the pub |
|
|
||||||
|
|
||||||
Light: warm amber everywhere, green cone over each pool table, the pokies' own
|
|
||||||
sickly blue, and the beer garden cool blue. No pink except the dance corner.
|
|
||||||
|
|
||||||
## 3. Voltage — "valley institution"
|
|
||||||
|
|
||||||
Licensed 110 · the tuning baseline · the inspector drinks here.
|
|
||||||
|
|
||||||
**This is the existing map and it does not change.** It is tuned under the
|
|
||||||
darkness sheet, its reachability is asserted, and every existing floor test
|
|
||||||
targets it. It stays the default layout and the reference for the other three.
|
|
||||||
|
|
||||||
## 4. Elevate — "rooftop, small room, big opinions"
|
|
||||||
|
|
||||||
Licensed 70 · influencers and owner's mates · every second person is a VIP.
|
|
||||||
|
|
||||||
The whole venue is outdoors, which makes the rain a design element rather than a
|
|
||||||
yard-only effect. Small footprint — a third of the grid is sky. You arrive by
|
|
||||||
lift, not off the street, so the entry is a lobby.
|
|
||||||
|
|
||||||
| Space | What's in it |
|
|
||||||
|---|---|
|
|
||||||
| **Lift lobby** (west) | lift doors, a rope line, the stamp podium, one mirror |
|
|
||||||
| **Cocktail bar** (north) | short backlit bar, no taps — bottles and a champagne bucket |
|
|
||||||
| **VIP booths** (east) | banquettes behind velvet rope posts, low tables |
|
|
||||||
| **Dance floor** (centre, small) | it is a terrace with a dance floor, not a club |
|
|
||||||
| **DJ plinth** | raised, open, no booth walls — the DJ is on display |
|
|
||||||
| **Toilets** (north-east) | two unisex cubicles, marble basin, enormous mirror |
|
|
||||||
| **Terrace edge** (south + east) | glass balustrade, planters, the city skyline beyond |
|
|
||||||
| **Smoking** | the whole roof is open air; a designated corner with a standing ash urn and heat lamps |
|
|
||||||
|
|
||||||
Light: warm amber bar, cool blue-white terrace, deep blue DJ, and the venue's
|
|
||||||
own signature — **skyline gold** spilling from the city card beyond the glass.
|
|
||||||
|
|
||||||
## 5. ROOM — "no sign, no socials"
|
|
||||||
|
|
||||||
Licensed 60 · heads and chancers · the board is the law.
|
|
||||||
|
|
||||||
A concrete warehouse. No branding anywhere, because branding is how you get
|
|
||||||
found. The sound system is the most expensive thing in the building by an order
|
|
||||||
of magnitude and everything else is borrowed.
|
|
||||||
|
|
||||||
| Space | What's in it |
|
|
||||||
|---|---|
|
|
||||||
| **Main floor** | concrete pillars, no booths, the crowd is the furniture |
|
|
||||||
| **The stacks** | Funktion-One-style speaker towers + subs — huge, four corners |
|
|
||||||
| **DJ booth** | low, central, facing the floor, no barrier — CDJs not turntables |
|
|
||||||
| **Bar** (west) | a plywood plank on scaffolding, cans only, no taps, no till |
|
|
||||||
| **Toilets** (north-east) | industrial, graffiti on every surface, three cubicles of which one works, a cracked basin, no mirror |
|
|
||||||
| **Loading dock** (south, open sky) | roller door, pallets, a wheelie bin — this is the smoking area |
|
|
||||||
| **Chill-out** (north-west) | two ruined couches under a single bulb |
|
|
||||||
| **The board** | the rule board that rewrites itself (`shuffleDressCode`) — a physical prop by the entry |
|
|
||||||
|
|
||||||
Light: almost none. Sodium orange over the loading dock (ROOM's signature),
|
|
||||||
one flickering green fluoro in the dunnies, strobes on the floor, and the
|
|
||||||
stacks' own power LEDs. This is the darkest venue in the game on purpose.
|
|
||||||
|
|
||||||
## 6. Prop vocabulary added for these rooms
|
|
||||||
|
|
||||||
Route per SPACES.md §"Prop pipeline": **[F]** = flux direct (flat things —
|
|
||||||
signage, boards, screens, backdrops); **[M]** = product shot → TRELLIS.2 →
|
|
||||||
Blender ortho render (things with volume). Rake follows the house rule —
|
|
||||||
**60° low and wide, ~76° tall**.
|
|
||||||
|
|
||||||
| Venue | Kinds |
|
|
||||||
|---|---|
|
|
||||||
| The Royal | `pokie`[M76] `tabBoard`[F] `bistroTable`[M60] `picnicTable`[M60] `trough`[M70] `keg`[M76] `dartboard`[F] `jukebox`[M76] `raffleDrum`[M60] `bainMarie`[M60] `tvSport`[F] `beerUmbrella`[M80] `ashtray`[M60] |
|
|
||||||
| Elevate | `cocktailBar`[M60] `banquette`[M60] `ropePost`[M76] `planter`[M60] `balustrade`[M76] `djPlinth`[M60] `marbleSink`[M70] `ashUrn`[M76] `champBucket`[M60] `loungeChair`[M60] `liftDoor`[F] `skylineCard`[F] |
|
|
||||||
| ROOM | `stackF1`[M76] `subBass`[M60] `plywoodBar`[M60] `rollerDoor`[F] `pallet`[M60] `wheelieBin`[M76] `oldCouch`[M60] `pillar`[M76] `ruleBoard`[F] `strobe`[M76] `smokeMachine`[M60] `cableSnake`[M60] `brokenBasin`[M70] `canStack`[M60] `cdj`[M60] |
|
|
||||||
| Staff (set dressing, all venues) | `staffBartender` `staffDj` `staffGlassie` `staffSecurity` — all [M76] |
|
|
||||||
|
|
||||||
Staff figures are PROPS, not patrons. The procedural dolls stay exactly as they
|
|
||||||
are: `dollPlan` draws the specific items the dress code convicts on, so
|
|
||||||
replacing patrons with pre-rendered art would make the convictions invisible
|
|
||||||
(recorded in LANEHANDOVER, FABLE-SOLO-23). A bartender who never moves is set
|
|
||||||
dressing and carries no mechanical weight, which is why she can be a sprite.
|
|
||||||
|
|
||||||
Street plates (door scene, one per venue, [F], 640×176):
|
|
||||||
`street:royal` `street:elevate` `street:room` — `street:backdrop` stays Voltage's.
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 836 B |
|
Before Width: | Height: | Size: 570 B |
|
Before Width: | Height: | Size: 596 B |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 990 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 878 B |
|
Before Width: | Height: | Size: 575 B |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 422 B |
|
Before Width: | Height: | Size: 404 B |
|
Before Width: | Height: | Size: 424 B |
|
Before Width: | Height: | Size: 781 B After Width: | Height: | Size: 644 B |
|
Before Width: | Height: | Size: 988 B |
|
Before Width: | Height: | Size: 981 B |
|
Before Width: | Height: | Size: 602 B |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 524 B |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 696 B |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 746 B After Width: | Height: | Size: 549 B |
|
Before Width: | Height: | Size: 379 B |
|
Before Width: | Height: | Size: 438 B |
|
Before Width: | Height: | Size: 592 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 832 B |
|
Before Width: | Height: | Size: 354 B |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 424 B |
|
Before Width: | Height: | Size: 523 B |
|
Before Width: | Height: | Size: 478 B |
|
Before Width: | Height: | Size: 930 B |
|
Before Width: | Height: | Size: 796 B |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 853 B |
|
Before Width: | Height: | Size: 425 B |
|
Before Width: | Height: | Size: 223 B |
|
Before Width: | Height: | Size: 699 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 668 B |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 589 B |
@ -1,131 +1,24 @@
|
|||||||
{
|
{
|
||||||
"props": [
|
"props": [
|
||||||
"arcade",
|
"arcade",
|
||||||
"ashUrn",
|
|
||||||
"ashtray",
|
|
||||||
"bainMarie",
|
|
||||||
"balustrade",
|
|
||||||
"banquette",
|
|
||||||
"barFridge",
|
|
||||||
"barShelf",
|
"barShelf",
|
||||||
"barrier",
|
|
||||||
"beerUmbrella",
|
|
||||||
"binRound",
|
|
||||||
"bistroTable",
|
|
||||||
"boothLamp",
|
|
||||||
"boothTable",
|
"boothTable",
|
||||||
"brokenBasin",
|
|
||||||
"buttBin",
|
"buttBin",
|
||||||
"cableSnake",
|
|
||||||
"canStack",
|
|
||||||
"carpet",
|
|
||||||
"cctv",
|
|
||||||
"cdj",
|
|
||||||
"ceilingFan",
|
|
||||||
"champBucket",
|
|
||||||
"cloak",
|
"cloak",
|
||||||
"cocktailBar",
|
|
||||||
"crate",
|
"crate",
|
||||||
"cubicleDoor",
|
|
||||||
"cueRack",
|
|
||||||
"dartboard",
|
|
||||||
"deck",
|
"deck",
|
||||||
"discoball",
|
"discoball",
|
||||||
"dishwasher",
|
|
||||||
"distroBox",
|
|
||||||
"djPlinth",
|
|
||||||
"exitSign",
|
|
||||||
"fireExt",
|
|
||||||
"fireHose",
|
|
||||||
"firepit",
|
|
||||||
"flightCase",
|
|
||||||
"front_elevate",
|
|
||||||
"front_room",
|
|
||||||
"front_theRoyal",
|
|
||||||
"front_voltage",
|
|
||||||
"glassRack",
|
"glassRack",
|
||||||
"glassStack",
|
"glassStack",
|
||||||
"graffiti",
|
|
||||||
"handDryer",
|
|
||||||
"highTable",
|
|
||||||
"iceWell",
|
|
||||||
"jukebox",
|
|
||||||
"kebabShop",
|
|
||||||
"keg",
|
|
||||||
"liftDoor",
|
|
||||||
"loungeChair",
|
|
||||||
"marbleSink",
|
|
||||||
"mirror",
|
|
||||||
"mixer",
|
"mixer",
|
||||||
"monitor",
|
|
||||||
"mopBucket",
|
|
||||||
"noticeBoard",
|
|
||||||
"oldCouch",
|
|
||||||
"pallet",
|
|
||||||
"patioHeater",
|
|
||||||
"picnicTable",
|
|
||||||
"pieWarmer",
|
|
||||||
"pillar",
|
|
||||||
"plant",
|
|
||||||
"planter",
|
|
||||||
"plywoodBar",
|
|
||||||
"pokie",
|
|
||||||
"poolTable",
|
|
||||||
"poster1",
|
"poster1",
|
||||||
"poster2",
|
"poster2",
|
||||||
"poster3",
|
"poster3",
|
||||||
"poster4",
|
|
||||||
"poster5",
|
|
||||||
"poster6",
|
|
||||||
"poster7",
|
|
||||||
"poster8",
|
|
||||||
"poster9",
|
|
||||||
"raffleDrum",
|
|
||||||
"rollerDoor",
|
|
||||||
"ropePost",
|
|
||||||
"ruleBoard",
|
|
||||||
"sandwichBoard",
|
|
||||||
"sinkRow",
|
"sinkRow",
|
||||||
"skylineCard",
|
|
||||||
"smokeMachine",
|
|
||||||
"speaker",
|
"speaker",
|
||||||
"stackF1",
|
|
||||||
"staffBartender",
|
|
||||||
"staffChef",
|
|
||||||
"staffCleaner",
|
|
||||||
"staffDj",
|
|
||||||
"staffGlassie",
|
|
||||||
"staffSecurity",
|
|
||||||
"stampPodium",
|
"stampPodium",
|
||||||
"stanchion",
|
|
||||||
"streetBin",
|
|
||||||
"streetLamp",
|
|
||||||
"street_backdrop",
|
"street_backdrop",
|
||||||
"street_elevate",
|
|
||||||
"street_room",
|
|
||||||
"street_theRoyal",
|
|
||||||
"strobe",
|
|
||||||
"subBass",
|
|
||||||
"tabBoard",
|
|
||||||
"taps",
|
"taps",
|
||||||
"taxi",
|
"till"
|
||||||
"tex_brick",
|
|
||||||
"tex_carpet",
|
|
||||||
"tex_concrete",
|
|
||||||
"tex_deck",
|
|
||||||
"tex_looTile",
|
|
||||||
"tex_parquet",
|
|
||||||
"tex_paving",
|
|
||||||
"tex_plaster",
|
|
||||||
"tex_steel",
|
|
||||||
"tex_timber",
|
|
||||||
"till",
|
|
||||||
"topiary",
|
|
||||||
"trough",
|
|
||||||
"truss",
|
|
||||||
"tvSport",
|
|
||||||
"urinal",
|
|
||||||
"wetFloor",
|
|
||||||
"wheelieBin"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1015 B |
|
Before Width: | Height: | Size: 893 B |
|
Before Width: | Height: | Size: 351 B |
|
Before Width: | Height: | Size: 432 B |
|
Before Width: | Height: | Size: 884 B |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 771 B |
|
Before Width: | Height: | Size: 619 B |
|
Before Width: | Height: | Size: 912 B |
|
Before Width: | Height: | Size: 694 B |
|
Before Width: | Height: | Size: 479 B |
|
Before Width: | Height: | Size: 396 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 864 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 253 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 673 B |
|
Before Width: | Height: | Size: 619 B |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 554 B |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 492 B |
|
Before Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 605 B |
|
Before Width: | Height: | Size: 760 B After Width: | Height: | Size: 657 B |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 907 B |
|
Before Width: | Height: | Size: 919 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 291 B |