From 9cdf72dc47bac9520733d2fdac009ef2ea6683ad Mon Sep 17 00:00:00 2001 From: JonShard Date: Sun, 9 Aug 2026 13:15:30 +0200 Subject: [PATCH] Add MultiplayerSyncronizers to stations --- Net/net_pickable.gd | 4 +- Net/network_manager.gd | 3 +- Player/net_player.tscn | 17 +- Prefabs/XROrigin.tscn | 48 +++--- Stations/BurgerBunsDispenser.tscn | 15 ++ Stations/Counter.tscn | 18 ++ Stations/Hob.tscn | 26 +-- Stations/StationMovement.tscn | 10 +- Stations/counter.gd | 6 +- Stations/cube_side_dispense.tscn | 14 ++ Stations/dirt_station.tscn | 36 +++- Stations/plate_dispenser.tscn | 14 ++ Stations/potato_dispenser.tscn | 14 ++ Stations/raw_burger_dispenser.tscn | 14 ++ Stations/sink.gd | 6 +- Stations/sink.tscn | 32 ++-- Stations/station_movement.gd | 2 +- Stations/table.tscn | 38 +++-- Textures/sky/NightSkyHDRI009_16K.tres | 2 +- UI/main_menu_panel.gd | 2 +- .../misc/hold_button_visualshader.tres | 155 +----------------- .../loading_screen/loading_screen_shader.tres | 91 +--------- global/GameManager.gd | 2 +- project.godot | 1 - recipes.yaml.uid | 1 - test/mp_test_driver.gd | 6 +- 26 files changed, 233 insertions(+), 344 deletions(-) delete mode 100644 recipes.yaml.uid diff --git a/Net/net_pickable.gd b/Net/net_pickable.gd index 430ccec..bb77bbb 100644 --- a/Net/net_pickable.gd +++ b/Net/net_pickable.gd @@ -147,8 +147,8 @@ func apply_held_state() -> void: and _pickable.collision_mask == 0 \ and _pickable.enabled == want_enabled: return - if NetworkManager.is_online(): - print("%s: freezing (non-authority, owner=peer %d)" % [_pickable.name, net_held_by]) + # if NetworkManager.is_online(): # This was spamming that Knife was frozen every frame. + # print("%s: freezing (non-authority, owner=peer %d)" % [_pickable.name, net_held_by]) _pickable.freeze = true _pickable.freeze_mode = RigidBody3D.FREEZE_MODE_KINEMATIC _pickable.collision_mask = 0 diff --git a/Net/network_manager.gd b/Net/network_manager.gd index efd08a7..31bb256 100644 --- a/Net/network_manager.gd +++ b/Net/network_manager.gd @@ -522,7 +522,8 @@ func _on_player_absent(peer_id: int) -> void: # --- Command-line driven test bootstrap ----------------------------------- func _handle_cmdline() -> void: - var args := OS.get_cmdline_user_args() + print("Networkmanager _handle_cmdline()") + var args := OS.get_cmdline_args() if args.has("--server"): log_line("cmdline: --server") host() diff --git a/Player/net_player.tscn b/Player/net_player.tscn index 1913654..2403931 100644 --- a/Player/net_player.tscn +++ b/Player/net_player.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=5 format=3] +[gd_scene format=3 uid="uid://c58ns7csdahjy"] -[ext_resource type="Script" path="res://Player/net_player.gd" id="1_np001"] +[ext_resource type="Script" uid="uid://bncuxh7j7ix5q" path="res://Player/net_player.gd" id="1_np001"] [ext_resource type="PackedScene" uid="uid://bq86r4yll8po" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn" id="2_np002"] [ext_resource type="PackedScene" uid="uid://xqimcf20s2jp" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn" id="3_np003"] @@ -28,17 +28,16 @@ properties/5/path = NodePath("RightHand:quaternion") properties/5/spawn = false properties/5/replication_mode = 1 -[node name="NetPlayer" type="Node3D"] +[node name="NetPlayer" type="Node3D" unique_id=70287099] script = ExtResource("1_np001") -[node name="Head" type="MeshInstance3D" parent="."] +[node name="Head" type="MeshInstance3D" parent="." unique_id=56588259] mesh = SubResource("CapsuleMesh_np004") -[node name="LeftHand" parent="." instance=ExtResource("2_np002")] +[node name="LeftHand" parent="." unique_id=1703673184 instance=ExtResource("2_np002")] -[node name="RightHand" parent="." instance=ExtResource("3_np003")] +[node name="RightHand" parent="." unique_id=325341465 instance=ExtResource("3_np003")] -[node name="Sync" type="MultiplayerSynchronizer" parent="."] -root_path = NodePath("..") -replication_config = SubResource("SceneReplicationConfig_np005") +[node name="Sync" type="MultiplayerSynchronizer" parent="." unique_id=529459963] replication_interval = 0.033 +replication_config = SubResource("SceneReplicationConfig_np005") diff --git a/Prefabs/XROrigin.tscn b/Prefabs/XROrigin.tscn index 9fb53f5..76d52fd 100644 --- a/Prefabs/XROrigin.tscn +++ b/Prefabs/XROrigin.tscn @@ -10,34 +10,34 @@ [ext_resource type="PackedScene" uid="uid://cqhw276realc" path="res://addons/godot-xr-tools/functions/function_pointer.tscn" id="6_ptr"] [ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="7_1fmci"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_1fmci"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ouruy"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_itrmp"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_i0gvw"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_nrfrd"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_5mmou"] filter_enabled = true filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_73fu8"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_yfij0"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ouruy"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_2ebvs"] filter_enabled = true filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] -[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_i0gvw"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_l8v2a"] graph_offset = Vector2(-536, 11) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_1fmci") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_ouruy") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_itrmp") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_i0gvw") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_nrfrd") +nodes/Grip/node = SubResource("AnimationNodeBlend2_5mmou") nodes/Grip/position = Vector2(0, 20) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_73fu8") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_yfij0") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_ouruy") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_2ebvs") nodes/Trigger/position = Vector2(-360, 20) node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] @@ -45,34 +45,34 @@ node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, & transparency = 1 albedo_color = Color(1, 1, 1, 0.5882353) -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_5mmou"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qpjda"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_yfij0"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_37hbl"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_2ebvs"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_to5tn"] filter_enabled = true filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_l8v2a"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_nlnu7"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_qpjda"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_we6ah"] filter_enabled = true filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] -[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_37hbl"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_dtgvk"] graph_offset = Vector2(-552.664, 107.301) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_5mmou") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_qpjda") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_yfij0") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_37hbl") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_2ebvs") +nodes/Grip/node = SubResource("AnimationNodeBlend2_to5tn") nodes/Grip/position = Vector2(0, 40) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_l8v2a") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_nlnu7") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_qpjda") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_we6ah") nodes/Trigger/position = Vector2(-360, 40) node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] @@ -120,7 +120,7 @@ bone_idx = 9 [node name="Poke" parent="XRControllerLeftHand/LeftHand/Hand_low_L/Armature/Skeleton3D/BoneAttachment3D" unique_id=259928841 instance=ExtResource("7_1fmci")] [node name="AnimationTree" parent="XRControllerLeftHand/LeftHand" index="1"] -tree_root = SubResource("AnimationNodeBlendTree_i0gvw") +tree_root = SubResource("AnimationNodeBlendTree_l8v2a") [node name="MovementDirect" parent="XRControllerLeftHand" unique_id=1865515938 instance=ExtResource("2_q1xvu")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.009340696, -0.0074635968, 0.024033919) @@ -181,7 +181,7 @@ bone_idx = 9 [node name="Poke" parent="XRControllerRightHand/RightHand/Hand_low_R/Armature/Skeleton3D/BoneAttachment3D" unique_id=303927399 instance=ExtResource("7_1fmci")] [node name="AnimationTree" parent="XRControllerRightHand/RightHand" index="1"] -tree_root = SubResource("AnimationNodeBlendTree_37hbl") +tree_root = SubResource("AnimationNodeBlendTree_dtgvk") [node name="MovementTurn" parent="XRControllerRightHand" unique_id=154529119 instance=ExtResource("4_rd8py")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0074635968, 0.024033919) diff --git a/Stations/BurgerBunsDispenser.tscn b/Stations/BurgerBunsDispenser.tscn index fedba90..34424a4 100644 --- a/Stations/BurgerBunsDispenser.tscn +++ b/Stations/BurgerBunsDispenser.tscn @@ -6,6 +6,17 @@ [ext_resource type="PackedScene" uid="uid://c0lknik4noobs" path="res://items/BurgerBuns.tscn" id="2_1q74o"] [ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="4_rf1b2"] +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_u2p81"] +properties/0/path = NodePath(".:position") +properties/0/spawn = false +properties/0/replication_mode = 1 +properties/1/path = NodePath(".:rotation") +properties/1/spawn = false +properties/1/replication_mode = 1 +properties/2/path = NodePath(".:visible") +properties/2/spawn = false +properties/2/replication_mode = 1 + [sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"] radius = 0.3 @@ -21,6 +32,10 @@ albedo_color = Color(0.6784191, 0.54546416, 0.016760282, 1) [node name="StationMovement" parent="." unique_id=946873975 node_paths=PackedStringArray("station") instance=ExtResource("1_u2p81")] station = NodePath("../BurgerBunsDispenser") +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="." unique_id=904562637] +root_path = NodePath("../BurgerBunsDispenser") +replication_config = SubResource("SceneReplicationConfig_u2p81") + [node name="BurgerBunsDispenser" type="StaticBody3D" parent="." unique_id=1720683779] script = ExtResource("1_myl3s") item_scene = ExtResource("2_1q74o") diff --git a/Stations/Counter.tscn b/Stations/Counter.tscn index 25b1909..dfe1a57 100644 --- a/Stations/Counter.tscn +++ b/Stations/Counter.tscn @@ -9,6 +9,24 @@ [ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://UI/progress_bar.tscn" id="6_racgh"] [sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_3jbl6"] +properties/0/path = NodePath("Counter:position") +properties/0/spawn = false +properties/0/replication_mode = 1 +properties/1/path = NodePath("Counter:rotation") +properties/1/spawn = false +properties/1/replication_mode = 1 +properties/2/path = NodePath("Counter:process_result") +properties/2/spawn = false +properties/2/replication_mode = 1 +properties/3/path = NodePath("Counter:process_result_work") +properties/3/spawn = false +properties/3/replication_mode = 1 +properties/4/path = NodePath("Counter:work_progress") +properties/4/spawn = false +properties/4/replication_mode = 1 +properties/5/path = NodePath("Counter:visible") +properties/5/spawn = false +properties/5/replication_mode = 1 [sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"] size = Vector3(0.48521727, 0.040039063, 0.41994628) diff --git a/Stations/Hob.tscn b/Stations/Hob.tscn index 74bbe48..3127df1 100644 --- a/Stations/Hob.tscn +++ b/Stations/Hob.tscn @@ -8,14 +8,6 @@ [ext_resource type="Material" uid="uid://d1djvskv4n4m3" path="res://textures/hob_off.tres" id="4_8qpxk"] [ext_resource type="Material" uid="uid://db7c7w4apwti7" path="res://textures/hob_on.tres" id="6_m7l4u"] -[sub_resource type="BoxShape3D" id="BoxShape3D_kdxnr"] -size = Vector3(0.6, 1, 0.6) - -[sub_resource type="BoxShape3D" id="BoxShape3D_7uuqv"] -size = Vector3(0.6, 0.12802735, 0.6) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gkb3v"] - [sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_hob"] properties/0/path = NodePath("Hob:time_cooked") properties/0/spawn = false @@ -32,6 +24,17 @@ properties/3/replication_mode = 1 properties/4/path = NodePath("Hob:rotation") properties/4/spawn = false properties/4/replication_mode = 1 +properties/5/path = NodePath("Hob:visible") +properties/5/spawn = false +properties/5/replication_mode = 1 + +[sub_resource type="BoxShape3D" id="BoxShape3D_kdxnr"] +size = Vector3(0.6, 1, 0.6) + +[sub_resource type="BoxShape3D" id="BoxShape3D_7uuqv"] +size = Vector3(0.6, 0.12802735, 0.6) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gkb3v"] [sub_resource type="Animation" id="Animation_7uuqv"] length = 0.001 @@ -171,6 +174,9 @@ _data = { [node name="StationMovement" parent="." unique_id=946873975 node_paths=PackedStringArray("station") instance=ExtResource("1_pydjp")] station = NodePath("../Hob") +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="." unique_id=768992259] +replication_config = SubResource("SceneReplicationConfig_np_hob") + [node name="Hob" type="StaticBody3D" parent="." unique_id=1332123047] script = ExtResource("1_7jc4g") @@ -279,10 +285,6 @@ size = Vector3(0.55, 0.835, 0.072) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.003479004, -0.45215607, 0.24655426) size = Vector3(0.55, 0.096, 0.14) -[node name="Sync" type="MultiplayerSynchronizer" parent="Hob" unique_id=768992259] -root_path = NodePath("../..") -replication_config = SubResource("SceneReplicationConfig_np_hob") - [node name="AnimationPlayer" type="AnimationPlayer" parent="Hob" unique_id=1525460719] root_node = NodePath("../..") libraries/ = SubResource("AnimationLibrary_ac5f3") diff --git a/Stations/StationMovement.tscn b/Stations/StationMovement.tscn index 28fea34..b3b3c0f 100644 --- a/Stations/StationMovement.tscn +++ b/Stations/StationMovement.tscn @@ -36,9 +36,6 @@ properties/0/replication_mode = 1 properties/1/path = NodePath(".:quaternion") properties/1/spawn = false properties/1/replication_mode = 1 -properties/2/path = NodePath("NetPickable:net_held_by") -properties/2/spawn = true -properties/2/replication_mode = 1 [sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"] size = Vector3(0.5, 0.87231445, 0.5) @@ -51,12 +48,15 @@ albedo_color = Color(1, 0.78999996, 0.39999998, 0.4627451) properties/0/path = NodePath(".:visible") properties/0/spawn = false properties/0/replication_mode = 1 -properties/1/path = NodePath("../MoveHandle:position") +properties/1/path = NodePath(".:position") properties/1/spawn = false properties/1/replication_mode = 1 -properties/2/path = NodePath("../MoveHandle:rotation") +properties/2/path = NodePath(".:rotation") properties/2/spawn = false properties/2/replication_mode = 1 +properties/3/path = NodePath("..:moving") +properties/3/spawn = false +properties/3/replication_mode = 1 [node name="StationMovement" type="Node3D" unique_id=946873975 node_paths=PackedStringArray("move_handle", "move_ghost")] script = ExtResource("1_ldy6a") diff --git a/Stations/counter.gd b/Stations/counter.gd index e1c0ee7..8c24c76 100644 --- a/Stations/counter.gd +++ b/Stations/counter.gd @@ -11,9 +11,9 @@ extends StaticBody3D # Chopping state. Follow the hob/sink pattern so the display refreshes when # values change; only the world owner runs the station's process in practice. -var process_result: String = "": set = _set_result -var process_result_work: float = 0.0: set = _set_result_work -var work_progress: float = 0.0: set = _set_work_progress +@export var process_result: String = "": set = _set_result +@export var process_result_work: float = 0.0: set = _set_result_work +@export var work_progress: float = 0.0: set = _set_work_progress func _ready() -> void: diff --git a/Stations/cube_side_dispense.tscn b/Stations/cube_side_dispense.tscn index a114ffd..3c36ad5 100644 --- a/Stations/cube_side_dispense.tscn +++ b/Stations/cube_side_dispense.tscn @@ -6,6 +6,17 @@ [ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="3_ahn1e"] [ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="4_nn8tr"] +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_0wtc7"] +properties/0/path = NodePath("CubeSideDispenser:position") +properties/0/spawn = false +properties/0/replication_mode = 1 +properties/1/path = NodePath("CubeSideDispenser:rotation") +properties/1/spawn = false +properties/1/replication_mode = 1 +properties/2/path = NodePath("CubeSideDispenser:visible") +properties/2/spawn = false +properties/2/replication_mode = 1 + [sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"] radius = 0.3 @@ -25,6 +36,9 @@ size = Vector3(0.1, 0.1, 0.1) [node name="StationMovement" parent="." unique_id=946873975 node_paths=PackedStringArray("station") instance=ExtResource("1_qooyy")] station = NodePath("../CubeSideDispenser") +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="." unique_id=821487160] +replication_config = SubResource("SceneReplicationConfig_0wtc7") + [node name="CubeSideDispenser" type="StaticBody3D" parent="." unique_id=200950572] script = ExtResource("1_4m60m") item_scene = ExtResource("2_nn8tr") diff --git a/Stations/dirt_station.tscn b/Stations/dirt_station.tscn index 243bf21..9cfcdf8 100644 --- a/Stations/dirt_station.tscn +++ b/Stations/dirt_station.tscn @@ -1,8 +1,20 @@ [gd_scene format=3 uid="uid://cnjwtnhwh0i8q"] [ext_resource type="Script" uid="uid://q7tpwmrbmu1m" path="res://stations/dirt_station.gd" id="1_hc1d4"] +[ext_resource type="PackedScene" uid="uid://cvucwxibtol5f" path="res://stations/StationMovement.tscn" id="1_ucg2q"] [ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="2_v0ytd"] +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_ku4h3"] +properties/0/path = NodePath(".:position") +properties/0/spawn = false +properties/0/replication_mode = 1 +properties/1/path = NodePath(".:rotation") +properties/1/spawn = false +properties/1/replication_mode = 1 +properties/2/path = NodePath(".:visible") +properties/2/spawn = false +properties/2/replication_mode = 1 + [sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"] size = Vector3(0.5, 1, 0.5) @@ -16,28 +28,38 @@ size = Vector3(0.5, 1, 0.5) [sub_resource type="BoxShape3D" id="BoxShape3D_mep2a"] size = Vector3(0.81640625, 0.5635376, 0.79351807) -[node name="DirtStation" type="StaticBody3D" unique_id=160842153 groups=["station"]] +[node name="DirtStation" type="Node3D" unique_id=784427347] + +[node name="StationMovement" parent="." unique_id=946873975 node_paths=PackedStringArray("station") instance=ExtResource("1_ucg2q")] +station = NodePath("../DirtStation") + +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="." unique_id=1485614825] +root_path = NodePath("../DirtStation") +replication_config = SubResource("SceneReplicationConfig_ku4h3") + +[node name="DirtStation" type="StaticBody3D" parent="." unique_id=160842153 groups=["station"]] script = ExtResource("1_hc1d4") -[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1400366312] +[node name="CollisionShape3D" type="CollisionShape3D" parent="DirtStation" unique_id=1400366312] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) shape = SubResource("BoxShape3D_24d3s") -[node name="MeshInstance3D" type="MeshInstance3D" parent="CollisionShape3D" unique_id=55726639] +[node name="MeshInstance3D" type="MeshInstance3D" parent="DirtStation/CollisionShape3D" unique_id=55726639] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.008318901, 0, -0.022509098) mesh = SubResource("BoxMesh_ay2w6") -[node name="Label3D" type="Label3D" parent="CollisionShape3D" unique_id=1251766743] +[node name="Label3D" type="Label3D" parent="DirtStation/CollisionShape3D" unique_id=1251766743] transform = Transform3D(0.9999992, 0, 0, 0, 0.99999946, 0, 0, 0, 0.9999992, 0.002797456, 0.6309581, -0.2812457) text = "Dirt" -[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=333161027 groups=["station"]] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5270121, 0) +[node name="XRToolsSnapZone" type="Area3D" parent="DirtStation" unique_id=333161027 groups=["station"]] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0313971, 0) collision_layer = 65536 collision_mask = 65540 script = ExtResource("2_v0ytd") snap_mode = 1 metadata/_custom_type_script = "uid://cquqe4f1m1sw6" -[node name="CollisionShape3D2" type="CollisionShape3D" parent="XRToolsSnapZone" unique_id=1398712192] +[node name="CollisionShape3D2" type="CollisionShape3D" parent="DirtStation/XRToolsSnapZone" unique_id=1398712192] transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0.008666992, -0.11009073, -0.009353638) shape = SubResource("BoxShape3D_mep2a") diff --git a/Stations/plate_dispenser.tscn b/Stations/plate_dispenser.tscn index 769999a..86665bb 100644 --- a/Stations/plate_dispenser.tscn +++ b/Stations/plate_dispenser.tscn @@ -6,6 +6,17 @@ [ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="3_lr065"] [ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="4_tfo2i"] +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_jgjsq"] +properties/0/path = NodePath("PlateDispenser:position") +properties/0/spawn = false +properties/0/replication_mode = 1 +properties/1/path = NodePath("PlateDispenser:rotation") +properties/1/spawn = false +properties/1/replication_mode = 1 +properties/2/path = NodePath("PlateDispenser:visible") +properties/2/spawn = false +properties/2/replication_mode = 1 + [sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"] radius = 0.3 @@ -18,6 +29,9 @@ radius = 0.3 [node name="StationMovement" parent="." unique_id=946873975 node_paths=PackedStringArray("station") instance=ExtResource("1_jgjsq")] station = NodePath("../PlateDispenser") +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="." unique_id=901684173] +replication_config = SubResource("SceneReplicationConfig_jgjsq") + [node name="PlateDispenser" type="StaticBody3D" parent="." unique_id=710538846] script = ExtResource("1_jm0ik") item_scene = ExtResource("2_tfo2i") diff --git a/Stations/potato_dispenser.tscn b/Stations/potato_dispenser.tscn index c822266..fa317d1 100644 --- a/Stations/potato_dispenser.tscn +++ b/Stations/potato_dispenser.tscn @@ -6,6 +6,17 @@ [ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="4_fx1kw"] [ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="5_ur331"] +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_8orw3"] +properties/0/path = NodePath("PotatoDispenser:position") +properties/0/spawn = false +properties/0/replication_mode = 1 +properties/1/path = NodePath("PotatoDispenser:rotation") +properties/1/spawn = false +properties/1/replication_mode = 1 +properties/2/path = NodePath("PotatoDispenser:visible") +properties/2/spawn = false +properties/2/replication_mode = 1 + [sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"] radius = 0.3 @@ -21,6 +32,9 @@ albedo_color = Color(0.48, 0.34336, 0.1872, 1) [node name="StationMovement" parent="." unique_id=946873975 node_paths=PackedStringArray("station") instance=ExtResource("1_8orw3")] station = NodePath("../PotatoDispenser") +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="." unique_id=41449367] +replication_config = SubResource("SceneReplicationConfig_8orw3") + [node name="PotatoDispenser" type="StaticBody3D" parent="." unique_id=1720683779] script = ExtResource("2_30d2d") item_scene = ExtResource("3_mjqsn") diff --git a/Stations/raw_burger_dispenser.tscn b/Stations/raw_burger_dispenser.tscn index 2c23c0b..fc6c467 100644 --- a/Stations/raw_burger_dispenser.tscn +++ b/Stations/raw_burger_dispenser.tscn @@ -7,6 +7,17 @@ [ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="5_mep2a"] [ext_resource type="PackedScene" uid="uid://cvucwxibtol5f" path="res://stations/StationMovement.tscn" id="6_8ou8n"] +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_8ou8n"] +properties/0/path = NodePath("RawBurgerDispenser:position") +properties/0/spawn = false +properties/0/replication_mode = 1 +properties/1/path = NodePath("RawBurgerDispenser:rotation") +properties/1/spawn = false +properties/1/replication_mode = 1 +properties/2/path = NodePath("RawBurgerDispenser:visible") +properties/2/spawn = false +properties/2/replication_mode = 1 + [sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"] radius = 0.3 @@ -22,6 +33,9 @@ albedo_texture = ExtResource("4_1f5le") [node name="StationMovement" parent="." unique_id=946873975 node_paths=PackedStringArray("station") instance=ExtResource("6_8ou8n")] station = NodePath("../RawBurgerDispenser") +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="." unique_id=1886082284] +replication_config = SubResource("SceneReplicationConfig_8ou8n") + [node name="RawBurgerDispenser" type="StaticBody3D" parent="." unique_id=235630131] script = ExtResource("1_gkb3v") item_scene = ExtResource("2_mep2a") diff --git a/Stations/sink.gd b/Stations/sink.gd index f30abb1..f796d01 100644 --- a/Stations/sink.gd +++ b/Stations/sink.gd @@ -10,9 +10,9 @@ const plate_wash_time: float = 3.0 ## display when they change. Only the world owner runs this station's _process ## and snap zone, so without this a client never updates its bar — it stayed ## frozen on screen long after the plate came out clean. -var time_washed: float = 0.0: set = _set_time_washed -var is_washing: bool = false: set = _set_is_washing -var plate: PlateController = null +@export var time_washed: float = 0.0: set = _set_time_washed +@export var is_washing: bool = false: set = _set_is_washing +@export var plate: PlateController = null func _set_time_washed(value: float) -> void: diff --git a/Stations/sink.tscn b/Stations/sink.tscn index 2e5a36d..e3cbba8 100644 --- a/Stations/sink.tscn +++ b/Stations/sink.tscn @@ -5,6 +5,23 @@ [ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="2_3ocod"] [ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://UI/progress_bar.tscn" id="4_1pinr"] +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_sink"] +properties/0/path = NodePath(".:position") +properties/0/spawn = false +properties/0/replication_mode = 1 +properties/1/path = NodePath(".:rotation") +properties/1/spawn = false +properties/1/replication_mode = 1 +properties/2/path = NodePath(".:time_washed") +properties/2/spawn = false +properties/2/replication_mode = 1 +properties/3/path = NodePath(".:is_washing") +properties/3/spawn = false +properties/3/replication_mode = 1 +properties/4/path = NodePath(".:visible") +properties/4/spawn = false +properties/4/replication_mode = 1 + [sub_resource type="BoxShape3D" id="BoxShape3D_l02yb"] size = Vector3(0.6, 1.0024658, 0.6) @@ -16,14 +33,6 @@ stereo = true [sub_resource type="BoxShape3D" id="BoxShape3D_ai6d4"] size = Vector3(0.5, 0.128, 0.5) -[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_sink"] -properties/0/path = NodePath(".:time_washed") -properties/0/spawn = true -properties/0/replication_mode = 1 -properties/1/path = NodePath(".:is_washing") -properties/1/spawn = true -properties/1/replication_mode = 1 - [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0gbf8"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bvwq1"] @@ -187,6 +196,10 @@ height = 0.04 [node name="StationMovement" parent="." unique_id=946873975 node_paths=PackedStringArray("station") instance=ExtResource("1_uluvy")] station = NodePath("../Sink") +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="." unique_id=1601242574] +root_path = NodePath("../Sink") +replication_config = SubResource("SceneReplicationConfig_np_sink") + [node name="Sink" type="StaticBody3D" parent="." unique_id=2055277359 groups=["station"]] script = ExtResource("1_7hh4b") @@ -241,9 +254,6 @@ transform = Transform3D(1, 0, 0, 0, 0.9367828, -0.34991136, 0, 0.34991136, 0.936 operation = 2 size = Vector3(1, 1.2053223, 0.352417) -[node name="Sync" type="MultiplayerSynchronizer" parent="Sink" unique_id=1601242574] -replication_config = SubResource("SceneReplicationConfig_np_sink") - [node name="ProgressBar3D" parent="Sink" unique_id=654673176 instance=ExtResource("4_1pinr")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3229032, -0.035980098) diff --git a/Stations/station_movement.gd b/Stations/station_movement.gd index 12c7bdf..011bf73 100644 --- a/Stations/station_movement.gd +++ b/Stations/station_movement.gd @@ -9,7 +9,7 @@ var move_handle_rigid: RigidBody3D var original_collision_layer: int = 0 var original_y_pos: float = 0.0 var original_station_transform: Transform3D = Transform3D.IDENTITY -var moving: bool = false +@export var moving: bool = false var ghost_materials: Array[StandardMaterial3D] = [] const GHOST_COLOR_VALID: Color = Color(0, 1, 0, 0.35) diff --git a/Stations/table.tscn b/Stations/table.tscn index a2d61fc..173cfc6 100644 --- a/Stations/table.tscn +++ b/Stations/table.tscn @@ -7,6 +7,26 @@ [ext_resource type="AudioStream" uid="uid://daiv8ubwdbidf" path="res://sounds/220195__gameaudio__click-wooden-1.wav" id="3_0s6ir"] [ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://UI/progress_bar.tscn" id="3_kjf1i"] +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_table"] +properties/0/path = NodePath(".:_state") +properties/0/spawn = false +properties/0/replication_mode = 1 +properties/1/path = NodePath(".:_state_time") +properties/1/spawn = false +properties/1/replication_mode = 1 +properties/2/path = NodePath(".:_unsatisfied_orders") +properties/2/spawn = false +properties/2/replication_mode = 1 +properties/3/path = NodePath(".:position") +properties/3/spawn = false +properties/3/replication_mode = 1 +properties/4/path = NodePath(".:rotation") +properties/4/spawn = false +properties/4/replication_mode = 1 +properties/5/path = NodePath(".:visible") +properties/5/spawn = false +properties/5/replication_mode = 1 + [sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"] size = Vector3(0.7983472, 0.060000002, 0.59873295) @@ -16,17 +36,6 @@ radius = 0.6 [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"] albedo_color = Color(0.31, 0.21576, 0.1333, 1) -[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_table"] -properties/0/path = NodePath(".:_state") -properties/0/spawn = true -properties/0/replication_mode = 1 -properties/1/path = NodePath(".:_state_time") -properties/1/spawn = true -properties/1/replication_mode = 1 -properties/2/path = NodePath(".:_unsatisfied_orders") -properties/2/spawn = true -properties/2/replication_mode = 1 - [sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"] size = Vector3(2.1, 0.5, 2.1) @@ -35,6 +44,10 @@ size = Vector3(2.1, 0.5, 2.1) [node name="StationMovement" parent="." unique_id=946873975 node_paths=PackedStringArray("station") instance=ExtResource("1_5mi7y")] station = NodePath("../Table") +[node name="MultiplayerSyncronizer" type="MultiplayerSynchronizer" parent="." unique_id=2000411505] +root_path = NodePath("../Table") +replication_config = SubResource("SceneReplicationConfig_np_table") + [node name="Table" type="StaticBody3D" parent="." unique_id=1863572470 groups=["station", "table"]] script = ExtResource("1_2vcpj") money_sound = ExtResource("2_jslhm") @@ -154,9 +167,6 @@ pixel_size = 0.003 billboard = 2 text = "20.1s" -[node name="Sync" type="MultiplayerSynchronizer" parent="Table" unique_id=2000411505] -replication_config = SubResource("SceneReplicationConfig_np_table") - [node name="ProgressBar3D" parent="Table" unique_id=654673176 instance=ExtResource("3_kjf1i")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8692299, 0) y_billboard = true diff --git a/Textures/sky/NightSkyHDRI009_16K.tres b/Textures/sky/NightSkyHDRI009_16K.tres index eaa2922..25ff43b 100644 --- a/Textures/sky/NightSkyHDRI009_16K.tres +++ b/Textures/sky/NightSkyHDRI009_16K.tres @@ -1,6 +1,6 @@ [gd_resource type="Sky" format=3 uid="uid://c1abtpwhdm2d5"] -[ext_resource type="Texture2D" uid="uid://ci0hjoabnf8nu" path="res://Textures/sky/NightSkyHDRI009_16K_HDR.exr" id="acg_mft3ic9d"] +[ext_resource type="Texture2D" uid="uid://ci0hjoabnf8nu" path="res://textures/sky/NightSkyHDRI009_16K_HDR.exr" id="acg_mft3ic9d"] [sub_resource type="PanoramaSkyMaterial" id="acg_025sfqr4"] panorama = ExtResource("acg_mft3ic9d") diff --git a/UI/main_menu_panel.gd b/UI/main_menu_panel.gd index 1384e36..3ff269b 100644 --- a/UI/main_menu_panel.gd +++ b/UI/main_menu_panel.gd @@ -48,7 +48,7 @@ func _ready() -> void: ## --server / --join on the command line skip straight to the multiplayer ## scene, same as the previously headless-tested main.tscn flow. func _bypass_menu_for_cmdline() -> bool: - var args := OS.get_cmdline_user_args() + var args := OS.get_cmdline_args() if args.has("--server"): NetworkManager.request_host() get_tree().change_scene_to_file.call_deferred(MULTIPLAYER_SCENE) diff --git a/addons/godot-xr-tools/misc/hold_button_visualshader.tres b/addons/godot-xr-tools/misc/hold_button_visualshader.tres index 084664c..244c5b7 100644 --- a/addons/godot-xr-tools/misc/hold_button_visualshader.tres +++ b/addons/godot-xr-tools/misc/hold_button_visualshader.tres @@ -1,4 +1,4 @@ -[gd_resource type="VisualShader" load_steps=28 format=3 uid="uid://c6okm2ay0fkjf"] +[gd_resource type="VisualShader" format=3 uid="uid://c6okm2ay0fkjf"] [sub_resource type="VisualShaderNodeFloatOp" id="1"] output_port_for_preview = 0 @@ -101,159 +101,6 @@ output_port_for_preview = 0 function = 12 [resource] -code = "shader_type spatial; -render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx, unshaded; - -uniform vec4 albedo : source_color; -uniform float value; -uniform float fade; -uniform float radius; -uniform float width; - - - -void fragment() { -// ColorParameter:2 - vec4 n_out2p0 = albedo; - - -// Input:3 - vec2 n_out3p0 = UV; - - -// VectorOp:4 - vec3 n_in4p1 = vec3(2.00000, 2.00000, 0.00000); - vec3 n_out4p0 = vec3(n_out3p0, 0.0) * n_in4p1; - - -// VectorOp:5 - vec3 n_in5p1 = vec3(-1.00000, -1.00000, 0.00000); - vec3 n_out5p0 = n_out4p0 + n_in5p1; - - -// VectorFunc:17 - vec3 n_out17p0 = normalize(n_out5p0); - - -// VectorOp:19 - vec3 n_in19p1 = vec3(0.00000, -1.00000, 0.00000); - vec3 n_out19p0 = cross(n_out17p0, n_in19p1); - - -// VectorDecompose:20 - float n_out20p0 = n_out19p0.x; - float n_out20p1 = n_out19p0.y; - float n_out20p2 = n_out19p0.z; - - -// DotProduct:18 - vec3 n_in18p1 = vec3(0.00000, -1.00000, 0.00000); - float n_out18p0 = dot(n_out17p0, n_in18p1); - - -// FloatFunc:24 - float n_out24p0 = acos(n_out18p0); - - -// FloatOp:23 - float n_in23p0 = 6.28319; - float n_out23p0 = n_in23p0 - n_out24p0; - - - vec3 n_out22p0; -// If:22 - float n_in22p1 = 0.00000; - float n_in22p2 = 0.00001; - if(abs(n_out20p2 - n_in22p1) < n_in22p2) - { - n_out22p0 = vec3(n_out24p0); - } - else if(n_out20p2 < n_in22p1) - { - n_out22p0 = vec3(n_out24p0); - } - else - { - n_out22p0 = vec3(n_out23p0); - } - - -// FloatOp:25 - float n_in25p1 = 6.28319; - float n_out25p0 = n_out22p0.x / n_in25p1; - - -// FloatParameter:26 - float n_out26p0 = value; - - -// FloatOp:27 - float n_out27p0 = n_out25p0 - n_out26p0; - - -// FloatParameter:14 - float n_out14p0 = fade; - - -// FloatOp:30 - float n_in30p1 = 6.28319; - float n_out30p0 = n_out14p0 / n_in30p1; - - -// FloatOp:28 - float n_out28p0 = n_out27p0 / n_out30p0; - - -// VectorLen:6 - float n_out6p0 = length(n_out5p0); - - -// FloatParameter:8 - float n_out8p0 = radius; - - -// FloatOp:7 - float n_out7p0 = n_out6p0 - n_out8p0; - - -// FloatFunc:9 - float n_out9p0 = abs(n_out7p0); - - -// FloatParameter:11 - float n_out11p0 = width; - - -// FloatOp:15 - float n_in15p1 = 2.00000; - float n_out15p0 = n_out11p0 / n_in15p1; - - -// FloatOp:13 - float n_out13p0 = n_out9p0 - n_out15p0; - - -// FloatOp:10 - float n_out10p0 = n_out13p0 / n_out14p0; - - -// FloatOp:29 - float n_out29p0 = max(n_out28p0, n_out10p0); - - -// FloatOp:12 - float n_in12p0 = 1.00000; - float n_out12p0 = n_in12p0 - n_out29p0; - - -// Output:0 - ALBEDO = vec3(n_out2p0.xyz); - ALPHA = n_out12p0; - - -} -" -graph_offset = Vector2(652.664, 119.317) flags/unshaded = true nodes/fragment/0/position = Vector2(1800, -40) nodes/fragment/2/node = SubResource("3") diff --git a/addons/godot-xr-tools/staging/loading_screen/loading_screen_shader.tres b/addons/godot-xr-tools/staging/loading_screen/loading_screen_shader.tres index 2d83f5f..4c40ec3 100644 --- a/addons/godot-xr-tools/staging/loading_screen/loading_screen_shader.tres +++ b/addons/godot-xr-tools/staging/loading_screen/loading_screen_shader.tres @@ -1,4 +1,4 @@ -[gd_resource type="VisualShader" load_steps=16 format=3 uid="uid://4i0pwdtfmtsv"] +[gd_resource type="VisualShader" format=3 uid="uid://4i0pwdtfmtsv"] [sub_resource type="VisualShaderNodeCompare" id="5"] output_port_for_preview = 0 @@ -62,95 +62,6 @@ function = 2 condition = 1 [resource] -code = "shader_type spatial; -render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx, unshaded; - -uniform vec4 bar_color : source_color; -uniform sampler2D bar_texture : source_color; -uniform vec3 cutout = vec3(4.850000, 0.330000, 0.000000); -uniform float progress; - - - -void fragment() { -// ColorParameter:15 - vec4 n_out15p0 = bar_color; - - - vec4 n_out19p0; -// Texture2D:19 - n_out19p0 = texture(bar_texture, UV); - float n_out19p4 = n_out19p0.a; - - -// VectorOp:17 - vec3 n_out17p0 = vec3(n_out15p0.xyz) * vec3(n_out19p0.xyz); - - -// Input:3 - vec2 n_out3p0 = UV; - - -// VectorOp:4 - vec3 n_in4p1 = vec3(10.00000, 1.00000, 0.00000); - vec3 n_out4p0 = vec3(n_out3p0, 0.0) * n_in4p1; - - -// VectorOp:5 - vec3 n_in5p1 = vec3(5.00000, 0.50000, 0.00000); - vec3 n_out5p0 = n_out4p0 - n_in5p1; - - -// VectorFunc:6 - vec3 n_out6p0 = abs(n_out5p0); - - -// Vector3Parameter:20 - vec3 n_out20p0 = cutout; - - - bool n_out8p0; -// Compare:8 - { - bvec2 _bv = greaterThan(vec2(n_out6p0.xy), vec2(n_out20p0.xy)); - n_out8p0 = any(_bv); - } - - -// FloatParameter:12 - float n_out12p0 = progress; - - -// VectorCompose:13 - float n_in13p1 = 0.00000; - float n_in13p2 = 0.00000; - vec3 n_out13p0 = vec3(n_out12p0, n_in13p1, n_in13p2); - - - bool n_out11p0; -// Compare:11 - { - bvec2 _bv = lessThan(n_out3p0, vec2(n_out13p0.xy)); - n_out11p0 = any(_bv); - } - - -// FloatOp:14 - float n_out14p0 = max((n_out8p0 ? 1.0 : 0.0), (n_out11p0 ? 1.0 : 0.0)); - - -// FloatOp:18 - float n_out18p0 = n_out19p4 * n_out14p0; - - -// Output:0 - ALBEDO = n_out17p0; - ALPHA = n_out18p0; - - -} -" -graph_offset = Vector2(-744.269, 307.118) flags/unshaded = true nodes/fragment/0/position = Vector2(1220, 440) nodes/fragment/3/node = SubResource("10") diff --git a/global/GameManager.gd b/global/GameManager.gd index a0a005f..fcf399b 100644 --- a/global/GameManager.gd +++ b/global/GameManager.gd @@ -2,7 +2,7 @@ extends Node const STAR_DAY_FREQUENCY: int = 3 -var money: int = 0: +var money: int = 1000: get: return money set(value): diff --git a/project.godot b/project.godot index 579e467..046dc07 100644 --- a/project.godot +++ b/project.godot @@ -32,7 +32,6 @@ file_logging/enable_file_logging=true window/size/viewport_width=1000 window/size/viewport_height=650 -window/size/mode=2 window/stretch/mode="canvas_items" window/stretch/aspect="expand" diff --git a/recipes.yaml.uid b/recipes.yaml.uid deleted file mode 100644 index 26c7014..0000000 --- a/recipes.yaml.uid +++ /dev/null @@ -1 +0,0 @@ -uid://be8o8m6xpp3kc diff --git a/test/mp_test_driver.gd b/test/mp_test_driver.gd index cfca263..b3a8bab 100644 --- a/test/mp_test_driver.gd +++ b/test/mp_test_driver.gd @@ -86,7 +86,7 @@ var _frame_index := 0 func _ready() -> void: - var args := OS.get_cmdline_user_args() + var args := OS.get_cmdline_args() _auto_mode = "--mptest" in args # Opt-in only. This node also sits in the real multiplayer scene (so a client # joining a test session has a driver), and must be completely inert during @@ -788,7 +788,7 @@ func _setup_frames() -> void: _frames_enabled = false _log("frame capture disabled: a headless run has no rendered output to grab") return - var role := "server" if "--server" in OS.get_cmdline_user_args() else "client" + var role := "server" if "--server" in OS.get_cmdline_args() else "client" _frames_dir = "res://logs/mptest_frames_%s" % role DirAccess.make_dir_recursive_absolute(ProjectSettings.globalize_path(_frames_dir)) # Clear out a previous run's frames, or the GIF would splice the two together. @@ -1410,7 +1410,7 @@ func _banner(s: String) -> void: # would otherwise fight over one file (the engine's own godot.log has exactly # that problem when two peers run at once — it rotates per process). func _open_log() -> void: - var role := "server" if "--server" in OS.get_cmdline_user_args() else "client" + var role := "server" if "--server" in OS.get_cmdline_args() else "client" var path := "res://logs/mptest_%s.log" % role DirAccess.make_dir_recursive_absolute(ProjectSettings.globalize_path("res://logs")) _log_file = FileAccess.open(path, FileAccess.WRITE)