let the player sit on benches and picnic tables #130

Merged
sermuns merged 1 commit from bench-sitting into main 2026-10-22 14:08:59 +00:00
Owner

E while on foot sits the player on the nearest bench or picnic table within reach, and E or any movement key stands them up again. A sitting bit on the wire pose draws the other players seated too.

What it does

  • A bench has one seat along its length, with its backrest behind, so the body sits on the seat and faces the way the bench faces. The seat slides along the bench to where the player stands.
  • A picnic table has a bench on each side of its top, so the sitter takes the one on their side and faces the table across it. Standing up puts the feet behind the bench, clear of the table.
  • The seat geometry lives in one place, liuverse-world::dimensions, so the models in liuverse-scene and the seats in liuverse-sim agree on where the surface is.

Notes

  • The seat heights and sizes come from the models, not from new numbers: the bench's seat slab is BENCH_SEAT_HEIGHT deep and BENCH_LENGTH long, and the picnic table's benches are PICNIC_SEAT_HEIGHT high, PICNIC_SEAT_LENGTH long and PICNIC_SEAT_OFFSET from the table's middle.
  • The wire change is a sitting flag at the end of BodyStance, so it follows the append-only rule.
  • Flying while seated stands the player up first, rather than leaving them pinned to a bench.

Refs #68

`E` while on foot sits the player on the nearest bench or picnic table within reach, and `E` or any movement key stands them up again. A `sitting` bit on the wire pose draws the other players seated too. ## What it does - **A bench** has one seat along its length, with its backrest behind, so the body sits on the seat and faces the way the bench faces. The seat slides along the bench to where the player stands. - **A picnic table** has a bench on each side of its top, so the sitter takes the one on their side and faces the table across it. Standing up puts the feet behind the bench, clear of the table. - The seat geometry lives in one place, `liuverse-world::dimensions`, so the models in `liuverse-scene` and the seats in `liuverse-sim` agree on where the surface is. ## Notes - The seat heights and sizes come from the models, not from new numbers: the bench's seat slab is `BENCH_SEAT_HEIGHT` deep and `BENCH_LENGTH` long, and the picnic table's benches are `PICNIC_SEAT_HEIGHT` high, `PICNIC_SEAT_LENGTH` long and `PICNIC_SEAT_OFFSET` from the table's middle. - The wire change is a `sitting` flag at the end of `BodyStance`, so it follows the append-only rule. - Flying while seated stands the player up first, rather than leaving them pinned to a bench. Refs #68
`E` while on foot seats the player on the nearest bench or picnic table
within reach, and `E` or any movement key stands them up again. The body
sits on the seat's own surface and faces the way the seat does: a bench
has one seat along its length with its backrest behind, and a picnic
table has a bench on each side of its top, so the sitter faces the table
across it. A sitting bit on the wire pose draws the other players seated
too.

The seat geometry lives in one place, `liuverse-world::dimensions`, so
the models in `liuverse-scene` and the seats in `liuverse-sim` agree on
where the surface is.
Sign in to join this conversation.
No description provided.