diff --git a/public/props/barFridge.png b/public/props/barFridge.png new file mode 100644 index 0000000..89f10e2 Binary files /dev/null and b/public/props/barFridge.png differ diff --git a/public/props/cubicleDoor.png b/public/props/cubicleDoor.png new file mode 100644 index 0000000..d3c73d4 Binary files /dev/null and b/public/props/cubicleDoor.png differ diff --git a/public/props/cueRack.png b/public/props/cueRack.png new file mode 100644 index 0000000..f5895b8 Binary files /dev/null and b/public/props/cueRack.png differ diff --git a/public/props/handDryer.png b/public/props/handDryer.png new file mode 100644 index 0000000..a34ada8 Binary files /dev/null and b/public/props/handDryer.png differ diff --git a/public/props/iceWell.png b/public/props/iceWell.png new file mode 100644 index 0000000..9d75f03 Binary files /dev/null and b/public/props/iceWell.png differ diff --git a/public/props/manifest.json b/public/props/manifest.json index 7fafc44..1f178a1 100644 --- a/public/props/manifest.json +++ b/public/props/manifest.json @@ -1,6 +1,7 @@ { "props": [ "arcade", + "barFridge", "barShelf", "boothLamp", "boothTable", @@ -8,14 +9,20 @@ "carpet", "cloak", "crate", + "cubicleDoor", + "cueRack", "deck", "discoball", "dishwasher", "glassRack", "glassStack", + "handDryer", "highTable", + "iceWell", "mixer", "monitor", + "mopBucket", + "patioHeater", "plant", "poolTable", "poster1", @@ -27,6 +34,8 @@ "street_backdrop", "taps", "till", + "truss", + "urinal", "wetFloor" ] } diff --git a/public/props/mopBucket.png b/public/props/mopBucket.png new file mode 100644 index 0000000..e000b71 Binary files /dev/null and b/public/props/mopBucket.png differ diff --git a/public/props/patioHeater.png b/public/props/patioHeater.png new file mode 100644 index 0000000..5209deb Binary files /dev/null and b/public/props/patioHeater.png differ diff --git a/public/props/truss.png b/public/props/truss.png new file mode 100644 index 0000000..05a7d92 Binary files /dev/null and b/public/props/truss.png differ diff --git a/public/props/urinal.png b/public/props/urinal.png new file mode 100644 index 0000000..288c16a Binary files /dev/null and b/public/props/urinal.png differ diff --git a/src/scenes/floor/FloorView.ts b/src/scenes/floor/FloorView.ts index e125907..921ee62 100644 --- a/src/scenes/floor/FloorView.ts +++ b/src/scenes/floor/FloorView.ts @@ -643,6 +643,7 @@ const PROP_SIZES: Record = { cloak: [16, 48], stampPodium: [16, 16], arcade: [32, 32], highTable: [16, 16], plant: [16, 16], wetFloor: [16, 16], poolTable: [48, 32], dishwasher: [32, 16], + urinal: [48, 16], handDryer: [16, 16], cubicleDoor: [16, 16], mopBucket: [16, 16], cueRack: [16, 16], barFridge: [32, 32], iceWell: [32, 16], patioHeater: [16, 32], truss: [48, 16], }; function bakePropPlaceholder(scene: Phaser.Scene, kind: PropKind): string { diff --git a/src/scenes/floor/venueMap.ts b/src/scenes/floor/venueMap.ts index e4299d4..a2699e8 100644 --- a/src/scenes/floor/venueMap.ts +++ b/src/scenes/floor/venueMap.ts @@ -184,6 +184,8 @@ export type PropKind = | 'barShelf' | 'taps' | 'till' | 'glassStack' | 'glassRack' | 'boothTable' | 'highTable' | 'sinkRow' | 'buttBin' | 'crate' | 'plant' | 'wetFloor' | 'poolTable' | 'dishwasher' + | 'urinal' | 'handDryer' | 'cubicleDoor' | 'mopBucket' | 'cueRack' + | 'barFridge' | 'iceWell' | 'patioHeater' | 'truss' | 'poster1' | 'poster2' | 'poster3' | 'cloak' | 'stampPodium' | 'arcade'; export interface PropEmissive { @@ -268,6 +270,25 @@ export const PROPS: readonly PropDef[] = Object.freeze([ P('wet', 'wetFloor', 35, 8, 1, 1), // the pool corner — it is still an Australian venue underneath the techno P('pool', 'poolTable', 15, 10, 3, 2), + P('cues', 'cueRack', 19, 9, 1, 1), + + // The dunnies were the emptiest room in the venue: one sink row across + // 17x14 tiles, with a whole minigame happening in it (audit 2026-07-22). + P('urinals', 'urinal', 72, 5, 3, 1), + P('dryer', 'handDryer', 65, 5, 1, 1), + P('mopBucket', 'mopBucket', 75, 14, 1, 1), + P('cubDoorA', 'cubicleDoor', 62, 12, 1, 1), + P('cubDoorB', 'cubicleDoor', 68, 12, 1, 1), + + // The bar had four props along thirty-one tiles of counter. + P('fridgeA', 'barFridge', 27, 3, 2, 2, { colour: 0x60c0e0, radius: 16 }), + P('fridgeB', 'barFridge', 41, 3, 2, 2, { colour: 0x60c0e0, radius: 16 }), + P('iceWell', 'iceWell', 37, 4, 2, 1), + + // Yard + rig. + P('heater', 'patioHeater', 21, 39, 1, 2, { colour: 0xe07030, radius: 34, pulse: 'flicker' }), + P('trussN', 'truss', 34, 15, 3, 1), + P('trussS', 'truss', 34, 30, 3, 1), ]); const L = ( diff --git a/tools/props_import.py b/tools/props_import.py index e5dce4c..ddb7c2e 100644 --- a/tools/props_import.py +++ b/tools/props_import.py @@ -27,6 +27,7 @@ TARGETS = { "cloak": (16, 48), "stampPodium": (16, 16), "arcade": (32, 32), "highTable": (16, 16), "plant": (16, 16), "wetFloor": (16, 16), "poolTable": (48, 32), "dishwasher": (32, 16), + "urinal": (48, 16), "handDryer": (16, 16), "cubicleDoor": (16, 16), "mopBucket": (16, 16), "cueRack": (16, 16), "barFridge": (32, 32), "iceWell": (32, 16), "patioHeater": (16, 32), "truss": (48, 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)