THE CUT: two more vessels earn their place, six props do not
The egg bench gets its real ceramic mixing bowl. Everything else in this pass is subtraction, because a prop that fights the game is worse than no prop: - The generated tumbler renders OPAQUE, and that glass exists for one reason: watching an egg sink, stand or float in it. A pretty glass you cannot see through deletes the float test. Reverted to the see-through cylinder. - Six models (wire basket, raw/cooked wing, raw/golden chip, egg carton) were shipping in the bundle unused — 27MB of dead weight served to every player for nothing. Deleted, and their lines in gen-assets.sh are commented with WHY they were rejected so nobody regenerates them by reflex: per-piece food must tint per frame (colour is the verdict), and the top-down rack must never occlude the wings. Verified: eggs still 10.0 with the new bowl, float test still legible. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
51d55ac231
commit
acf9926eaf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/assets/models/egg_carton_empty.glb
Normal file
BIN
public/assets/models/egg_carton_empty.glb
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -196,17 +196,23 @@ do_prep2d() {
|
||||
do_stations() {
|
||||
# the air fryer bench
|
||||
gen_3d air_fryer 241 "a chunky black modern air fryer appliance with a pull out drawer basket and a round dial on top, matte plastic body"
|
||||
gen_3d wire_basket 243 "a square wire mesh air fryer basket tray with a crumb rack, empty, seen at an angle"
|
||||
gen_3d chicken_wing 245 "a single raw chicken wing piece, pale pink skin, plump, on nothing"
|
||||
gen_3d wing_cooked 247 "a single golden crispy fried chicken wing, glistening browned skin"
|
||||
# REJECTED (the procedural rack reads better from the top-down camera and never occludes the wings):
|
||||
# gen_3d wire_basket 243 "a square wire mesh air fryer basket tray with a crumb rack, empty, seen at an angle"
|
||||
# REJECTED (per-piece food stays procedural — its COLOUR is the gameplay read):
|
||||
# gen_3d chicken_wing 245 "a single raw chicken wing piece, pale pink skin, plump, on nothing"
|
||||
# REJECTED (same: browning is a live tint, not a second mesh):
|
||||
# gen_3d wing_cooked 247 "a single golden crispy fried chicken wing, glistening browned skin"
|
||||
# the deep fryer bench
|
||||
gen_3d fryer_pot 249 "a deep stainless steel stockpot of golden cooking oil, tall straight sides, no handle visible, seen from a low angle"
|
||||
gen_3d fryer_basket 251 "a round wire mesh deep fryer basket with a long metal hooked handle, empty"
|
||||
gen_3d drain_rack 253 "a small rectangular wire cooling rack on short legs over a metal tray, empty"
|
||||
gen_3d chip_raw 255 "a single thick cut raw potato chip fry baton, pale starchy white"
|
||||
gen_3d chip_golden 257 "a single thick cut golden fried potato chip, crisp browned edges"
|
||||
# REJECTED (per-piece food stays procedural — raw-to-golden must tint per frame):
|
||||
# gen_3d chip_raw 255 "a single thick cut raw potato chip fry baton, pale starchy white"
|
||||
# REJECTED (same: the gold IS the judgement):
|
||||
# gen_3d chip_golden 257 "a single thick cut golden fried potato chip, crisp browned edges"
|
||||
# the egg bench
|
||||
gen_3d egg_carton 259 "an open cardboard egg carton holding six brown eggs, lid folded back"
|
||||
# REJECTED (ships with six eggs baked in; that bench is about which eggs are YOURS):
|
||||
# gen_3d egg_carton 259 "an open cardboard egg carton holding six brown eggs, lid folded back"
|
||||
gen_3d egg_carton_empty 260 "an open EMPTY cardboard egg carton with six empty moulded hollows, lid folded back, no eggs in it at all"
|
||||
gen_3d mixing_bowl 261 "a wide shallow white ceramic mixing bowl, empty, seen at a three quarter angle"
|
||||
gen_3d tall_glass 263 "a plain tall clear drinking glass of water, empty of anything else"
|
||||
|
||||
@ -15,6 +15,7 @@ import {
|
||||
} from '../sim/eggs';
|
||||
import { el, Panel } from '../ui/hud';
|
||||
import { loadBackdrop } from './props';
|
||||
import { loadProp } from './assets';
|
||||
|
||||
const BENCH_Y = 0;
|
||||
|
||||
@ -113,6 +114,9 @@ export class EggBenchView implements View {
|
||||
);
|
||||
this.glass.position.set(2.1, BENCH_Y + 0.45, -0.4);
|
||||
this.root.add(this.glass);
|
||||
// ponytail: NO glass prop. The generated tumbler renders opaque, and this
|
||||
// glass exists solely so you can WATCH an egg sink, stand or float in it.
|
||||
// A pretty glass you cannot see through deletes the float test.
|
||||
const water = new THREE.Mesh(
|
||||
new THREE.CylinderGeometry(0.4, 0.35, 0.62, 20),
|
||||
new THREE.MeshStandardMaterial({ color: 0x6fa8c4, roughness: 0.15, transparent: true, opacity: 0.5 }),
|
||||
@ -127,6 +131,15 @@ export class EggBenchView implements View {
|
||||
);
|
||||
this.bowl.position.set(0, BENCH_Y + 0.31, 0.55);
|
||||
this.root.add(this.bowl);
|
||||
// The cylinder stays as the drop-target geometry the eggs measure against;
|
||||
// the real bowl just stands where it stands.
|
||||
void loadProp('/assets/models/mixing_bowl.glb', 1.65)
|
||||
.then((prop) => {
|
||||
prop.position.set(0, BENCH_Y - 0.01, 0.55);
|
||||
this.bowl.visible = false;
|
||||
this.root.add(prop);
|
||||
})
|
||||
.catch(() => undefined);
|
||||
this.bowlMix = new THREE.Mesh(
|
||||
new THREE.CylinderGeometry(0.92, 0.92, 0.05, 28),
|
||||
new THREE.MeshStandardMaterial({ color: 0xf4f0e4, roughness: 0.35, transparent: true, opacity: 0 }),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user