Commit Graph

61 Commits

Author SHA1 Message Date
JonShard f28c987a3a Cleanup logs, make prints more uniform. 2026-08-14 14:26:19 +02:00
JonShard 9e0c3ed174 Split Station into WorkStation abstract script 2026-08-14 14:25:57 +02:00
algodoogle bd30f22e4e map gen 2026-08-11 15:55:36 +01:00
algodoogle 66f53c4a5f inport fix? 2026-08-11 15:45:58 +01:00
JonShard 6a591b9e3a Add bought station is ghost when spawns 2026-08-11 13:24:51 +02:00
JonShard 4bfb72d749 Improve logging 2026-08-11 11:02:20 +02:00
JonShard 3ae1e089aa Clean up SweetLogger prints by making file and functions arguments automatic 2026-08-11 10:19:26 +02:00
JonShard 7648ecbac9 Add Sweetlogger 2026-08-10 13:47:01 +02:00
JonShard dbaad35e50 Fix gamemanager state syncing 2026-08-10 10:23:38 +02:00
algodoogle ddf37cc0ae bug fix 2026-08-06 19:05:57 +01:00
JonShard eae9e56da7 Merge branch 'master' of https://git.offcoursegames.com/JonShard/VRyHungry1 2026-08-06 19:09:45 +02:00
JonShard 1196036973 Fix multiplayer scene outdated 2026-08-06 19:09:43 +02:00
algodoogle d4a724dddf random gen 2026-08-06 18:07:03 +01:00
JonShard d5c162a51a Fix all tables consumed the same customer. 2026-08-06 18:49:57 +02:00
JonShard 1cf3afd440 Add DayController and QueueController to handle spawning of customer through out a day 2026-08-06 14:51:49 +02:00
JonShard 3646992e35 Add food dispensers to shop. 2026-08-05 09:46:19 +02:00
JonShard c7840d3cc7 Add Shop spawn station 2026-08-04 14:55:00 +02:00
JonShard dde627d05b Add Shop toggles poke 2026-08-04 13:29:11 +02:00
JonShard 661210eac8 Add Shop menu on each hand 2026-08-04 12:38:21 +02:00
JonShard 58f7da7481 Add Shop UI 2026-08-03 13:19:30 +02:00
JonShard c3671c4489 Add StationMovement to counter, sink, table 2026-08-02 14:04:50 +02:00
JonShard b24a3f99ee Add BuildModeController that deletes loose items on enter BuildMode 2026-08-02 13:43:30 +02:00
JonShard a5c7df29cc Add Chopping Gesture 2026-08-02 09:19:08 +02:00
JonShard ee169a62b6 Organize files into some new folders 2026-07-31 16:51:01 +02:00
JonShard 4242325c8a Add tables pick random meals and 2026-07-31 14:15:47 +02:00
JonShard 48c9845624 Add Table handles Sides 2026-07-31 14:03:53 +02:00
JonShard 89e72c161b Add static resturant 2026-07-30 20:41:19 +02:00
JonShard 58e7792b62 Add spawning kitchen on hosting game 2026-07-30 16:03:34 +02:00
JonShard 19207e7f72 Add Table handles meals served before order taken 2026-07-30 11:29:28 +02:00
JonShard 9cdf0fc787 Add Exponential table progress bar 2026-07-30 11:09:43 +02:00
JonShard dfc081de3b Import project 2026-07-30 09:37:16 +02:00
JonShard 59c62b73e6 Test multi cube 2026-07-28 21:16:35 +02:00
algodoogle 96ea2dd1ea mp fix 2026-07-28 19:41:31 +01:00
algodoogle 7479cbd656 multy thing 2026-07-28 18:01:27 +01:00
algodoogle 8e14fb0f29 fix hob efect 2026-07-28 15:20:46 +01:00
algodoogle fd7f9f3a22 Merge branch 'master' of https://git.offcoursegames.com/JonShard/VRyHungry1 2026-07-28 14:32:55 +01:00
algodoogle e002c2fb4a tabel time 2026-07-28 14:32:52 +01:00
JonShard 7d694de307 Add DespawningItem 2026-07-28 10:39:34 +02:00
JonShard 3f951fef64 Add Items slide off dispensers 2026-07-28 10:39:15 +02:00
JonShard 11b4d3c138 Merge branch 'master' of https://git.offcoursegames.com/JonShard/VRyHungry1 2026-07-28 09:24:28 +02:00
JonShard bbf982c2f6 Add thrown plates absorb food on station 2026-07-28 09:22:03 +02:00
algodoogle 1a893ba9aa Visual indicator 2026-07-27 18:56:28 +01:00
algodoogle 29083a4250 some thig 2026-07-27 16:24:54 +01:00
algodoogle f3abe69eb4 small things 2026-07-27 16:14:13 +01:00
algodoogle 688eca13fa Merge branch 'master' of https://git.offcoursegames.com/JonShard/VRyHungry1 2026-07-27 13:47:54 +01:00
algodoogle c758771a75 gameover 2026-07-27 13:47:50 +01:00
JonShard d2f5e1fd4f jon scene: preview grid scales 2026-07-27 14:41:10 +02:00
JonShard 488feff7dc Add raw burger and cube dispenser 2026-07-27 14:20:44 +02:00
JonShard e04c5519d0 Move stations to floor 2026-07-26 16:00:30 +02:00
algodoogle 23ec41c1d6 Fix five multiplayer sync bugs, add automated two-instance test
Adds test/multiPlayerTest.tscn plus a driver that runs the kitchen flow
across two game instances: grab/drop, dirt station, sink washing, hob
cooking, counter combining and plating. Runs headless (run_mp_test.ps1),
in two visible windows (run_mp_test_windowed.ps1), or by hand with
keyboard controls (play_mp_test.ps1). 108 checks, exits non-zero on
failure.

After every step both peers snapshot every item's position and rendered
state and the server diffs them. Targeted assertions only look at the
thing a step touched, which misses desyncs elsewhere - that audit is
what caught the last bug below.

Bugs found and fixed:

- net_pickable: apply_held_state() only wrote `enabled` in its
  non-authority branch, so once a client grabbed an item every other
  peer set enabled=false and regaining authority never restored it. The
  server could then never pick that item up again, and a station would
  "snap" it (emitting has_picked_up, so a plate still got marked dirty)
  while pick_up() bailed out on the disabled item - leaving the zone
  holding an item with no grab driver.

- network_manager: station gating only happened in the spawn path, so
  stations baked into a scene file kept running their snap zones on
  clients and grabbed items straight out of the local hand. Added
  gate_existing_stations().

- network_manager: despawn_item() only freed the server's copy. Items
  baked into a scene aren't tracked by the MultiplayerSpawner, so
  consuming one left a ghost on every client, which then blocked the
  station it sat in and got grabbed instead of its replacement.

- network_manager: the snap-into-station decision read the server's own
  copy of the item position, but the reliable release RPC routinely
  overtakes the synchronizer's unordered position updates - so it acted
  on a stale position and teleported items back into the station they
  had just been carried away from. The releasing peer now sends its
  final transform and the server adopts it first.

- container: contained_ids.append()/erase() mutate the array in place,
  which never fires the setter that rebuilds the plate's visuals. The
  peer that put food on a plate was the only peer that never redrew it;
  remote peers looked right because the synchronizer assigns there.

Also null-guards XRServer.get_tracker() in the vendored xr-tools hand
grab point, which threw on every successful grab without an XR runtime,
and adds multiplayer_world.populate_from_layout so debug scenes can bake
their own content instead of spawning the whole kitchen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 02:00:50 +01:00