4 Commits

Author SHA1 Message Date
JonShard 68b6d4d1dc Add spawning kitchen after hosting 2026-07-29 13:59:33 +02:00
JonShard 6933e17f3a Simplified Network manager WIP 2026-07-29 13:41:16 +02:00
JonShard 0f1f0c6a93 Remove AI multiplayer 2026-07-29 10:57:35 +02:00
JonShard ea492f914b Add Hob move handle 2026-07-29 09:54:20 +02:00
111 changed files with 1577 additions and 1142 deletions
+7 -5
View File
@@ -1,6 +1,8 @@
class_name ItemContainer class_name ItemContainer
extends Node3D extends Node3D
const RECIPE_MANAGER = preload("res://scripts/recipe_Manager.gd")
@export var enabled: bool = true @export var enabled: bool = true
@export var target_group : String # Items with this tag can be added to the container @export var target_group : String # Items with this tag can be added to the container
@export var meal_positions: Array[Node3D] = [] @export var meal_positions: Array[Node3D] = []
@@ -27,8 +29,8 @@ func _ready() -> void:
# Absorbing items is a server decision (the container's holder is server- # Absorbing items is a server decision (the container's holder is server-
# snapped into a station, matching table.gd/hob.gd's convention). # snapped into a station, matching table.gd/hob.gd's convention).
func _on_body_entered(body: Node3D) -> void: func _on_body_entered(body: Node3D) -> void:
if not NetworkManager.owns_world(): #if not NetworkManager.owns_world():
return #return
print("Container enabled: ", enabled) print("Container enabled: ", enabled)
if not enabled: if not enabled:
print("Container disabled in _on_body_entered body") print("Container disabled in _on_body_entered body")
@@ -90,7 +92,7 @@ func _add_item(item: Node3D) -> void:
updated.append(food_node.id) updated.append(food_node.id)
plate_controller.contained_ids = updated plate_controller.contained_ids = updated
NetworkManager.despawn_item(item) item.queue_free()
func erase_item(item: FoodItem) -> void: func erase_item(item: FoodItem) -> void:
@@ -122,7 +124,7 @@ func refresh_visuals(ids: Array[String]) -> void:
var meal_idx := 0 var meal_idx := 0
var side_idx := 0 var side_idx := 0
for id in ids: for id in ids:
var scene := RecipeManager.get_item_scene(id) var scene := RECIPE_MANAGER.get_item_scene(id)
if not scene: if not scene:
continue continue
var visual := scene.instantiate() var visual := scene.instantiate()
@@ -195,7 +197,7 @@ func _remove_from_physics(visual: Node3D) -> void:
PhysicsServer3D.body_set_space((visual as RigidBody3D).get_rid(), RID()) PhysicsServer3D.body_set_space((visual as RigidBody3D).get_rid(), RID())
var despawning_item = visual.get_node_or_null("DespawningItem") var despawning_item = visual.get_node_or_null("DespawningItem")
if despawning_item: if despawning_item:
NetworkManager.despawn_item(despawning_item) despawning_item.queue_free()
#plate (Pickalbe) #plate (Pickalbe)
+1 -1
View File
@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://du31pqeytu8as"] [gd_scene format=3 uid="uid://du31pqeytu8as"]
[ext_resource type="Script" uid="uid://6lyhyial1fh5" path="res://Containers/container.gd" id="1_r4cle"] [ext_resource type="Script" uid="uid://6lyhyial1fh5" path="res://containers/container.gd" id="1_r4cle"]
[sub_resource type="SphereShape3D" id="SphereShape3D_vlqg6"] [sub_resource type="SphereShape3D" id="SphereShape3D_vlqg6"]
radius = 0.3 radius = 0.3
+3 -3
View File
@@ -1,14 +1,14 @@
[gd_scene format=3 uid="uid://bp3v1jl8pctro"] [gd_scene format=3 uid="uid://bp3v1jl8pctro"]
[ext_resource type="Script" uid="uid://bfrlpbsqg5lqr" path="res://addons/godot-xr-tools/objects/pickable.gd" id="1_nq5sa"] [ext_resource type="Script" uid="uid://bfrlpbsqg5lqr" path="res://addons/godot-xr-tools/objects/pickable.gd" id="1_nq5sa"]
[ext_resource type="PackedScene" uid="uid://du31pqeytu8as" path="res://Containers/container.tscn" id="1_s5yhh"] [ext_resource type="PackedScene" uid="uid://du31pqeytu8as" path="res://containers/container.tscn" id="1_s5yhh"]
[ext_resource type="Script" uid="uid://iqjqsk4v6qfh" path="res://Containers/plate_controller.gd" id="1_vjsmi"] [ext_resource type="Script" uid="uid://iqjqsk4v6qfh" path="res://containers/plate_controller.gd" id="1_vjsmi"]
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="2_3bkoa"] [ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="2_3bkoa"]
[ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="3_6v47p"] [ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="3_6v47p"]
[ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="4_dhtvl"] [ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="4_dhtvl"]
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="5_vlcpl"] [ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="5_vlcpl"]
[ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="6_el51w"] [ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="6_el51w"]
[ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://Net/net_pickable.gd" id="20_netpk"] [ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://net/net_pickable.gd" id="20_netpk"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_kek77"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_kek77"]
height = 0.0635376 height = 0.0635376
+4 -4
View File
@@ -6,10 +6,10 @@
[ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="4_mgacb"] [ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="4_mgacb"]
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="5_vw7i6"] [ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="5_vw7i6"]
[ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="6_cp3eg"] [ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="6_cp3eg"]
[ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://Prefabs/food_item.tscn" id="7_mde49"] [ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://prefabs/food_item.tscn" id="7_mde49"]
[ext_resource type="PackedScene" uid="uid://3lr2dhy62rhk" path="res://Prefabs/combinable_item.tscn" id="8_wmrff"] [ext_resource type="PackedScene" uid="uid://3lr2dhy62rhk" path="res://prefabs/combinable_item.tscn" id="8_wmrff"]
[ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://Prefabs/despawning_item.tscn" id="10_6ypk4"] [ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://prefabs/despawning_item.tscn" id="10_6ypk4"]
[ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://Net/net_pickable.gd" id="20_netpk"] [ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://net/net_pickable.gd" id="20_netpk"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_gkni8"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_gkni8"]
height = 0.1 height = 0.1
+4 -4
View File
@@ -6,10 +6,10 @@
[ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="4_hc3f7"] [ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="4_hc3f7"]
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="5_a0a5b"] [ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="5_a0a5b"]
[ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="6_bdp75"] [ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="6_bdp75"]
[ext_resource type="PackedScene" uid="uid://3lr2dhy62rhk" path="res://Prefabs/combinable_item.tscn" id="7_bdp75"] [ext_resource type="PackedScene" uid="uid://3lr2dhy62rhk" path="res://prefabs/combinable_item.tscn" id="7_bdp75"]
[ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://Prefabs/despawning_item.tscn" id="10_uygc5"] [ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://prefabs/despawning_item.tscn" id="10_uygc5"]
[ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://Prefabs/food_item.tscn" id="11_vjw41"] [ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://prefabs/food_item.tscn" id="11_vjw41"]
[ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://Net/net_pickable.gd" id="20_netpk"] [ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://net/net_pickable.gd" id="20_netpk"]
[sub_resource type="BoxShape3D" id="BoxShape3D_m1xbq"] [sub_resource type="BoxShape3D" id="BoxShape3D_m1xbq"]
size = Vector3(0.1, 0.1, 0.1) size = Vector3(0.1, 0.1, 0.1)
+4 -4
View File
@@ -1,15 +1,15 @@
[gd_scene format=3 uid="uid://dpot5qie20vf6"] [gd_scene format=3 uid="uid://dpot5qie20vf6"]
[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1_fco8w"] [ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1_fco8w"]
[ext_resource type="Texture2D" uid="uid://cexxfyw03hr81" path="res://Textures/1.png" id="2_r8jvx"] [ext_resource type="Texture2D" uid="uid://cexxfyw03hr81" path="res://textures/1.png" id="2_r8jvx"]
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="3_qixic"] [ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="3_qixic"]
[ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="4_bw8vh"] [ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="4_bw8vh"]
[ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="5_w8sii"] [ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="5_w8sii"]
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="6_mvnl5"] [ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="6_mvnl5"]
[ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="7_wqxjj"] [ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="7_wqxjj"]
[ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://Prefabs/despawning_item.tscn" id="10_l4hsd"] [ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://prefabs/despawning_item.tscn" id="10_l4hsd"]
[ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://Prefabs/food_item.tscn" id="10_yxtxs"] [ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://prefabs/food_item.tscn" id="10_yxtxs"]
[ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://Net/net_pickable.gd" id="20_netpk"] [ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://net/net_pickable.gd" id="20_netpk"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_fco8w"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_fco8w"]
height = 0.0338974 height = 0.0338974
@@ -6,10 +6,10 @@
[ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="4_wb51u"] [ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="4_wb51u"]
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="5_wqyr2"] [ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="5_wqyr2"]
[ext_resource type="Animation" uid="uid://bediglpx0rj7i" path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.res" id="6_ftab3"] [ext_resource type="Animation" uid="uid://bediglpx0rj7i" path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.res" id="6_ftab3"]
[ext_resource type="PackedScene" uid="uid://3lr2dhy62rhk" path="res://Prefabs/combinable_item.tscn" id="7_wb51u"] [ext_resource type="PackedScene" uid="uid://3lr2dhy62rhk" path="res://prefabs/combinable_item.tscn" id="7_wb51u"]
[ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://Prefabs/food_item.tscn" id="8_t9y3x"] [ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://prefabs/food_item.tscn" id="8_t9y3x"]
[ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://Prefabs/despawning_item.tscn" id="10_46e7r"] [ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://prefabs/despawning_item.tscn" id="10_46e7r"]
[ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://Net/net_pickable.gd" id="20_netpk"] [ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://net/net_pickable.gd" id="20_netpk"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_vlqg6"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_vlqg6"]
height = 0.10708985 height = 0.10708985
+4 -4
View File
@@ -6,10 +6,10 @@
[ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="5_ychvb"] [ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="5_ychvb"]
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="6_etdv2"] [ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="6_etdv2"]
[ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="7_rl64h"] [ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="7_rl64h"]
[ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://Prefabs/despawning_item.tscn" id="10_6p8pj"] [ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://prefabs/despawning_item.tscn" id="10_6p8pj"]
[ext_resource type="PackedScene" uid="uid://3lr2dhy62rhk" path="res://Prefabs/combinable_item.tscn" id="10_ut7mg"] [ext_resource type="PackedScene" uid="uid://3lr2dhy62rhk" path="res://prefabs/combinable_item.tscn" id="10_ut7mg"]
[ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://Prefabs/food_item.tscn" id="10_zz42p"] [ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://prefabs/food_item.tscn" id="10_zz42p"]
[ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://Net/net_pickable.gd" id="20_netpk"] [ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://net/net_pickable.gd" id="20_netpk"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_fco8w"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_fco8w"]
height = 0.04777527 height = 0.04777527
+19 -19
View File
@@ -1,27 +1,27 @@
[gd_scene format=3 uid="uid://b3m2ag8g5rj4r"] [gd_scene format=3 uid="uid://b3m2ag8g5rj4r"]
[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1_3gf3l"] [ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1_gu23e"]
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="2_0mkco"] [ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="2_l78s7"]
[ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="3_6tnvi"] [ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="3_d4y38"]
[ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="4_cljtj"] [ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="4_bejy7"]
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="5_dunns"] [ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="5_cu6ps"]
[ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="6_fh0f6"] [ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="6_jq7iw"]
[ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://Prefabs/food_item.tscn" id="7_yy3y8"] [ext_resource type="PackedScene" uid="uid://bfj80jh13t6e5" path="res://prefabs/food_item.tscn" id="7_fn8yh"]
[ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://Prefabs/despawning_item.tscn" id="9_ej8jm"] [ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://net/net_pickable.gd" id="8_f6bya"]
[ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://Net/net_pickable.gd" id="20_netpk"] [ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://prefabs/despawning_item.tscn" id="9_4uadj"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_fco8w"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_fco8w"]
height = 0.10392761 height = 0.10392761
radius = 0.096191406 radius = 0.096191406
[sub_resource type="Resource" id="Resource_lc22d"] [sub_resource type="Resource" id="Resource_lc22d"]
script = ExtResource("4_cljtj") script = ExtResource("4_bejy7")
closed_pose = ExtResource("3_6tnvi") closed_pose = ExtResource("3_d4y38")
metadata/_custom_type_script = "uid://dvobm6vcfnqe8" metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
[sub_resource type="Resource" id="Resource_qyiot"] [sub_resource type="Resource" id="Resource_qyiot"]
script = ExtResource("4_cljtj") script = ExtResource("4_bejy7")
closed_pose = ExtResource("6_fh0f6") closed_pose = ExtResource("6_jq7iw")
metadata/_custom_type_script = "uid://dvobm6vcfnqe8" metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3gf3l"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3gf3l"]
@@ -41,18 +41,18 @@ properties/2/path = NodePath("NetPickable:net_held_by")
properties/2/spawn = true properties/2/spawn = true
properties/2/replication_mode = 1 properties/2/replication_mode = 1
[node name="Hamburger" unique_id=1675596942 groups=["platalbe_item"] instance=ExtResource("1_3gf3l")] [node name="Hamburger" unique_id=1675596942 groups=["platalbe_item"] instance=ExtResource("1_gu23e")]
gravity_scale = 0.04 gravity_scale = 0.04
[node name="CollisionShape3D" parent="." index="0"] [node name="CollisionShape3D" parent="." index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.02, 0.02, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.02, 0.02, 0)
shape = SubResource("CylinderShape3D_fco8w") shape = SubResource("CylinderShape3D_fco8w")
[node name="GrabPointHandLeft" parent="." index="1" unique_id=1571481674 instance=ExtResource("2_0mkco")] [node name="GrabPointHandLeft" parent="." index="1" unique_id=1571481674 instance=ExtResource("2_l78s7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.067650706, 0.04601878, -0.08606844) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.067650706, 0.04601878, -0.08606844)
hand_pose = SubResource("Resource_lc22d") hand_pose = SubResource("Resource_lc22d")
[node name="GrabPointHandRight" parent="." index="2" unique_id=514404634 instance=ExtResource("5_dunns")] [node name="GrabPointHandRight" parent="." index="2" unique_id=514404634 instance=ExtResource("5_cu6ps")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06531982, 0.042291984, -0.08604182) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06531982, 0.042291984, -0.08604182)
hand_pose = SubResource("Resource_qyiot") hand_pose = SubResource("Resource_qyiot")
@@ -90,13 +90,13 @@ height = 0.03
sides = 16 sides = 16
material = SubResource("StandardMaterial3D_6l01i") material = SubResource("StandardMaterial3D_6l01i")
[node name="FoodItem" parent="." index="5" unique_id=63948206 instance=ExtResource("7_yy3y8")] [node name="FoodItem" parent="." index="5" unique_id=63948206 instance=ExtResource("7_fn8yh")]
id = "hamburger" id = "hamburger"
type = 0 type = 0
sell_value = 4 sell_value = 4
[node name="NetPickable" type="MultiplayerSynchronizer" parent="." index="6" unique_id=56164120] [node name="NetPickable" type="MultiplayerSynchronizer" parent="." index="6" unique_id=56164120]
replication_config = SubResource("SceneReplicationConfig_np_hamburger") replication_config = SubResource("SceneReplicationConfig_np_hamburger")
script = ExtResource("20_netpk") script = ExtResource("8_f6bya")
[node name="DespawningItem" parent="." index="7" unique_id=303090111 instance=ExtResource("9_ej8jm")] [node name="DespawningItem" parent="." index="7" unique_id=303090111 instance=ExtResource("9_4uadj")]
+208 -208
View File
@@ -1,209 +1,209 @@
extends MultiplayerSynchronizer extends MultiplayerSynchronizer
#
## Networked sync component for a pickable item. Added as a child literally ### Networked sync component for a pickable item. Added as a child literally
## named "NetPickable" (network_manager.gd's authority RPCs already expect ### named "NetPickable" (network_manager.gd's authority RPCs already expect
## this) of every net-synced pickable, replicating its transform and held ### this) of every net-synced pickable, replicating its transform and held
## state. Only the current multiplayer authority (the server while loose, or ### state. Only the current multiplayer authority (the server while loose, or
## whichever peer is holding it) actually simulates physics for the item; ### whichever peer is holding it) actually simulates physics for the item;
## every other peer freezes their local copy and just follows the synced ### every other peer freezes their local copy and just follows the synced
## transform. ### transform.
#
## 0 = loose/server-simulated; otherwise the peer id currently holding it. ### 0 = loose/server-simulated; otherwise the peer id currently holding it.
## Replicated at spawn and on change so a late joiner sees the current holder. ### Replicated at spawn and on change so a late joiner sees the current holder.
var net_held_by: int = 0: set = _set_net_held_by #var net_held_by: int = 0: set = _set_net_held_by
#
var _pickable: XRToolsPickable #var _pickable: XRToolsPickable
#
# This item's own baked freeze_mode (e.g. plate.tscn bakes KINEMATIC, not the ## This item's own baked freeze_mode (e.g. plate.tscn bakes KINEMATIC, not the
# RigidBody3D default of STATIC) — captured once so it can be restored when ## RigidBody3D default of STATIC) — captured once so it can be restored when
# this peer regains ownership, instead of getting stuck on whatever ## this peer regains ownership, instead of getting stuck on whatever
# apply_held_state() last forced it to while non-authority. ## apply_held_state() last forced it to while non-authority.
var _original_freeze_mode: int #var _original_freeze_mode: int
#
# Same idea for the pickable's authored `enabled` flag, which the non-authority ## Same idea for the pickable's authored `enabled` flag, which the non-authority
# branch of apply_held_state() clears while someone else is holding the item. ## branch of apply_held_state() clears while someone else is holding the item.
var _original_enabled: bool #var _original_enabled: bool
#
# Whether the "our own hand still holds this" guard has already been logged for ## Whether the "our own hand still holds this" guard has already been logged for
# the current grab. apply_held_state() runs every network tick, so without this ## the current grab. apply_held_state() runs every network tick, so without this
# the guard message repeats for as long as you hold the item. ## the guard message repeats for as long as you hold the item.
var _grab_race_logged := false #var _grab_race_logged := false
#
#
func _ready() -> void: #func _ready() -> void:
_pickable = get_parent() as XRToolsPickable #_pickable = get_parent() as XRToolsPickable
if not _pickable: #if not _pickable:
push_error("NetPickable must be a child of an XRToolsPickable") #push_error("NetPickable must be a child of an XRToolsPickable")
return #return
_original_freeze_mode = _pickable.freeze_mode #_original_freeze_mode = _pickable.freeze_mode
_original_enabled = _pickable.enabled #_original_enabled = _pickable.enabled
_pickable.picked_up.connect(_on_picked_up) #_pickable.picked_up.connect(_on_picked_up)
_pickable.dropped.connect(_on_dropped) #_pickable.dropped.connect(_on_dropped)
# Deferred: the pickable root captures its own original_collision_mask/ ## Deferred: the pickable root captures its own original_collision_mask/
# original_collision_layer via @onready, which runs AFTER this child's ## original_collision_layer via @onready, which runs AFTER this child's
# _ready() but BEFORE the root's _ready() body. Calling apply_held_state ## _ready() but BEFORE the root's _ready() body. Calling apply_held_state
# synchronously here would freeze/mask the item before that capture runs, ## synchronously here would freeze/mask the item before that capture runs,
# permanently corrupting the "restore on drop" values. ## permanently corrupting the "restore on drop" values.
apply_held_state.call_deferred() #apply_held_state.call_deferred()
#
#
func _set_net_held_by(value: int) -> void: #func _set_net_held_by(value: int) -> void:
var old := net_held_by #var old := net_held_by
net_held_by = value #net_held_by = value
if old != value and NetworkManager.is_online(): #if old != value and NetworkManager.is_online():
print("%s net_held_by: %d -> %d (local state: %s, authority=%d)" % [ #print("%s net_held_by: %d -> %d (local state: %s, authority=%d)" % [
_pickable.name, old, value, _holder_desc(), get_multiplayer_authority() #_pickable.name, old, value, _holder_desc(), get_multiplayer_authority()
]) #])
apply_held_state() #apply_held_state()
#
#
## Puts the item in the right physics state for whether this peer currently ### Puts the item in the right physics state for whether this peer currently
## owns it. Called locally after net_held_by changes, and directly by ### owns it. Called locally after net_held_by changes, and directly by
## NetworkManager._set_item_authority right after an authority handoff. ### NetworkManager._set_item_authority right after an authority handoff.
## ###
## IMPORTANT: this runs on every network tick, not just on a real change. ### IMPORTANT: this runs on every network tick, not just on a real change.
## net_held_by is replicated in ALWAYS mode, so the synchronizer assigns it every ### net_held_by is replicated in ALWAYS mode, so the synchronizer assigns it every
## tick on non-authority peers — unchanged value included — and that assignment ### tick on non-authority peers — unchanged value included — and that assignment
## lands in _set_net_held_by(), which calls this. So every branch here has to be ### lands in _set_net_held_by(), which calls this. So every branch here has to be
## idempotent and silent when there is nothing to do: otherwise each item logs a ### idempotent and silent when there is nothing to do: otherwise each item logs a
## line and rewrites four physics properties every tick on every peer that ### line and rewrites four physics properties every tick on every peer that
## doesn't own it. ### doesn't own it.
func apply_held_state() -> void: #func apply_held_state() -> void:
if not _pickable: #if not _pickable:
return #return
if not NetworkManager.is_online() or is_multiplayer_authority(): #if not NetworkManager.is_online() or is_multiplayer_authority():
_grab_race_logged = false #_grab_race_logged = false
# We own this item's simulation (offline, loose+server, or currently ## We own this item's simulation (offline, loose+server, or currently
# holding it). If it's not actively in our own hand right now, make ## holding it). If it's not actively in our own hand right now, make
# sure it isn't still left frozen/collision-less from a previous ## sure it isn't still left frozen/collision-less from a previous
# non-authority period (e.g. right after regaining authority when a ## non-authority period (e.g. right after regaining authority when a
# client released it) — while actually held, XRToolsPickable's own ## client released it) — while actually held, XRToolsPickable's own
# pick_up()/let_go() already manage these fields, so leave those be. ## pick_up()/let_go() already manage these fields, so leave those be.
if not _pickable.is_picked_up(): #if not _pickable.is_picked_up():
var changed := _pickable.freeze_mode != _original_freeze_mode \ #var changed := _pickable.freeze_mode != _original_freeze_mode \
or _pickable.collision_mask != _pickable.original_collision_mask #or _pickable.collision_mask != _pickable.original_collision_mask
if changed: #if changed:
if NetworkManager.is_online(): #if NetworkManager.is_online():
print( #print(
"%s: reclaiming ownership, restoring freeze_mode %d->%d collision_mask %d->%d" % [ #"%s: reclaiming ownership, restoring freeze_mode %d->%d collision_mask %d->%d" % [
_pickable.name, _pickable.freeze_mode, _original_freeze_mode, #_pickable.name, _pickable.freeze_mode, _original_freeze_mode,
_pickable.collision_mask, _pickable.original_collision_mask #_pickable.collision_mask, _pickable.original_collision_mask
] #]
) #)
_pickable.freeze_mode = _original_freeze_mode #_pickable.freeze_mode = _original_freeze_mode
_pickable.collision_mask = _pickable.original_collision_mask #_pickable.collision_mask = _pickable.original_collision_mask
# Unlike freeze/collision (which XRToolsPickable manages itself while ## Unlike freeze/collision (which XRToolsPickable manages itself while
# held), `enabled` is only ever written by the non-authority branch ## held), `enabled` is only ever written by the non-authority branch
# below, so it must be restored here or it stays false forever: once a ## below, so it must be restored here or it stays false forever: once a
# client grabbed this item, every other peer set enabled=false, and ## client grabbed this item, every other peer set enabled=false, and
# regaining authority left it that way. On the server that silently ## regaining authority left it that way. On the server that silently
# broke everything downstream — hands couldn't pick the item up again, ## broke everything downstream — hands couldn't pick the item up again,
# and a station snap zone would "snap" it (emitting has_picked_up, so ## and a station snap zone would "snap" it (emitting has_picked_up, so
# e.g. a plate still got marked dirty) while pick_up() bailed out on ## e.g. a plate still got marked dirty) while pick_up() bailed out on
# the disabled item, leaving the zone holding an item with no grab ## the disabled item, leaving the zone holding an item with no grab
# driver that then fell out of the station. ## driver that then fell out of the station.
if _pickable.enabled != _original_enabled: #if _pickable.enabled != _original_enabled:
if NetworkManager.is_online(): #if NetworkManager.is_online():
print("%s: reclaiming ownership, restoring enabled %s->%s" % [ #print("%s: reclaiming ownership, restoring enabled %s->%s" % [
_pickable.name, _pickable.enabled, _original_enabled #_pickable.name, _pickable.enabled, _original_enabled
]) #])
_pickable.enabled = _original_enabled #_pickable.enabled = _original_enabled
return #return
# A net_held_by/position sync update can race ahead of the ## A net_held_by/position sync update can race ahead of the
# authority-handoff RPC that's about to confirm a grab we just made ## authority-handoff RPC that's about to confirm a grab we just made
# optimistically (they travel on different channels with no ordering ## optimistically (they travel on different channels with no ordering
# guarantee). Don't let a stale sync value yank an item out of our own ## guarantee). Don't let a stale sync value yank an item out of our own
# hand mid-grab — only an explicit force_release_item rejection, or ## hand mid-grab — only an explicit force_release_item rejection, or
# actually losing authority for real, should end a grab we initiated. ## actually losing authority for real, should end a grab we initiated.
if _pickable.is_picked_up() and _pickable.get_picked_up_by() is XRToolsFunctionPickup: #if _pickable.is_picked_up() and _pickable.get_picked_up_by() is XRToolsFunctionPickup:
# Log once per grab, not once per tick. ## Log once per grab, not once per tick.
if NetworkManager.is_online() and not _grab_race_logged: #if NetworkManager.is_online() and not _grab_race_logged:
_grab_race_logged = true #_grab_race_logged = true
print( #print(
"%s: ignoring non-authority sync (net_held_by=%d) — still actively held by our own hand (grab-race guard)" % [ #"%s: ignoring non-authority sync (net_held_by=%d) — still actively held by our own hand (grab-race guard)" % [
_pickable.name, net_held_by #_pickable.name, net_held_by
] #]
) #)
return #return
_grab_race_logged = false #_grab_race_logged = false
# Someone else owns it: stop simulating locally, just follow the sync. ## Someone else owns it: stop simulating locally, just follow the sync.
if _pickable.is_picked_up(): #if _pickable.is_picked_up():
if NetworkManager.is_online(): #if NetworkManager.is_online():
print( #print(
"%s: was held by %s on this peer, but authority now says peer %d owns it — force-dropping" % [ #"%s: was held by %s on this peer, but authority now says peer %d owns it — force-dropping" % [
_pickable.name, _holder_desc(), net_held_by #_pickable.name, _holder_desc(), net_held_by
] #]
) #)
_pickable.drop() #_pickable.drop()
# Bail out when we're already in the follow-the-sync state. Without this the ## Bail out when we're already in the follow-the-sync state. Without this the
# writes below (and the line logged with them) repeated every tick for every ## writes below (and the line logged with them) repeated every tick for every
# item on every non-authority peer — 90% of the log, plus four redundant ## item on every non-authority peer — 90% of the log, plus four redundant
# physics-property writes per item per tick. The comparison also means we ## physics-property writes per item per tick. The comparison also means we
# still re-apply if something else perturbs the state (e.g. let_go() ## still re-apply if something else perturbs the state (e.g. let_go()
# restoring the collision mask after a force-drop). ## restoring the collision mask after a force-drop).
var want_enabled := (net_held_by == 0) #var want_enabled := (net_held_by == 0)
if _pickable.freeze \ #if _pickable.freeze \
and _pickable.freeze_mode == RigidBody3D.FREEZE_MODE_KINEMATIC \ #and _pickable.freeze_mode == RigidBody3D.FREEZE_MODE_KINEMATIC \
and _pickable.collision_mask == 0 \ #and _pickable.collision_mask == 0 \
and _pickable.enabled == want_enabled: #and _pickable.enabled == want_enabled:
return #return
if NetworkManager.is_online(): #if NetworkManager.is_online():
print("%s: freezing (non-authority, owner=peer %d)" % [_pickable.name, net_held_by]) #print("%s: freezing (non-authority, owner=peer %d)" % [_pickable.name, net_held_by])
_pickable.freeze = true #_pickable.freeze = true
_pickable.freeze_mode = RigidBody3D.FREEZE_MODE_KINEMATIC #_pickable.freeze_mode = RigidBody3D.FREEZE_MODE_KINEMATIC
_pickable.collision_mask = 0 #_pickable.collision_mask = 0
_pickable.enabled = want_enabled #_pickable.enabled = want_enabled
#
#
## Local hand grab (not a station snap zone, which is server-only): request ### Local hand grab (not a station snap zone, which is server-only): request
## authority immediately so the throw/drop can be reconciled, but let the grab ### authority immediately so the throw/drop can be reconciled, but let the grab
## happen instantly here rather than waiting on the round trip. ### happen instantly here rather than waiting on the round trip.
func _on_picked_up(_p) -> void: #func _on_picked_up(_p) -> void:
var by := _pickable.get_picked_up_by() #var by := _pickable.get_picked_up_by()
if not (by is XRToolsFunctionPickup): #if not (by is XRToolsFunctionPickup):
# e.g. a station snap zone grabbed it (server-side auto-snap, or the ## e.g. a station snap zone grabbed it (server-side auto-snap, or the
# addon's own "grab out of a snap zone" shortcut mid-cascade) — not a ## addon's own "grab out of a snap zone" shortcut mid-cascade) — not a
# player-initiated hand grab, so no authority request from here. ## player-initiated hand grab, so no authority request from here.
if NetworkManager.is_online(): #if NetworkManager.is_online():
print("%s picked up by %s (not a hand) — no authority request" % [_pickable.name, _holder_desc()]) #print("%s picked up by %s (not a hand) — no authority request" % [_pickable.name, _holder_desc()])
return #return
if NetworkManager.is_online(): #if NetworkManager.is_online():
print("%s grabbed by hand (authority was peer %d), requesting authority" % [_pickable.name, net_held_by]) #print("%s grabbed by hand (authority was peer %d), requesting authority" % [_pickable.name, net_held_by])
NetworkManager.request_item_authority_from(_pickable.get_path()) #NetworkManager.request_item_authority_from(_pickable.get_path())
#
#
func _on_dropped(_p) -> void: #func _on_dropped(_p) -> void:
# Only forward if we're actually still the authority — a drop caused by ## Only forward if we're actually still the authority — a drop caused by
# apply_held_state() losing authority (see above) must not re-report. ## apply_held_state() losing authority (see above) must not re-report.
if not is_multiplayer_authority(): #if not is_multiplayer_authority():
if NetworkManager.is_online(): #if NetworkManager.is_online():
print("%s dropped locally, but we aren't its authority (peer %d is) — not reporting" % [_pickable.name, net_held_by]) #print("%s dropped locally, but we aren't its authority (peer %d is) — not reporting" % [_pickable.name, net_held_by])
return #return
if NetworkManager.is_online(): #if NetworkManager.is_online():
print("%s dropped, reporting release to server (lin=%s ang=%s)" % [ #print("%s dropped, reporting release to server (lin=%s ang=%s)" % [
_pickable.name, _pickable.linear_velocity, _pickable.angular_velocity #_pickable.name, _pickable.linear_velocity, _pickable.angular_velocity
]) #])
# Send our own final transform too: we were the authority until now, and the ## Send our own final transform too: we were the authority until now, and the
# server's copy may not have received our last position sync yet. ## server's copy may not have received our last position sync yet.
NetworkManager.release_item_authority_from( #NetworkManager.release_item_authority_from(
_pickable.get_path(), _pickable.linear_velocity, _pickable.angular_velocity, #_pickable.get_path(), _pickable.linear_velocity, _pickable.angular_velocity,
_pickable.global_transform #_pickable.global_transform
) #)
#
#
## Human-readable description of what's currently holding this item on THIS ### Human-readable description of what's currently holding this item on THIS
## peer, for diagnosing desyncs between a hand's own "what am I holding" ### peer, for diagnosing desyncs between a hand's own "what am I holding"
## bookkeeping and the item's actual grab state (see the snap-zone-grab race ### bookkeeping and the item's actual grab state (see the snap-zone-grab race
## in NetworkManager._try_snap_into_station for a real example). ### in NetworkManager._try_snap_into_station for a real example).
func _holder_desc() -> String: #func _holder_desc() -> String:
if not _pickable or not _pickable.is_picked_up(): #if not _pickable or not _pickable.is_picked_up():
return "loose" #return "loose"
var by := _pickable.get_picked_up_by() #var by := _pickable.get_picked_up_by()
if not by: #if not by:
return "held(no grabber?)" #return "held(no grabber?)"
if by is XRToolsFunctionPickup: #if by is XRToolsFunctionPickup:
return "hand(%s)" % by.get_path() #return "hand(%s)" % by.get_path()
if by is XRToolsSnapZone: #if by is XRToolsSnapZone:
var station := by.get_parent() #var station := by.get_parent()
return "zone(%s)" % (station.name if station else str(by.get_path())) #return "zone(%s)" % (station.name if station else str(by.get_path()))
return "other(%s: %s)" % [by.get_class(), by.get_path()] #return "other(%s: %s)" % [by.get_class(), by.get_path()]
+16
View File
@@ -0,0 +1,16 @@
extends MultiplayerSpawner
@export var kitchen_scene: PackedScene
func _ready() -> void:
if not kitchen_scene:
push_error("StationSpawner missing kitchen_scene")
if NetworkManager.is_server():
# Later we will do procedural generation here.
# For now we just load a scene.
var kitchen = kitchen_scene.instantiate()
get_node(spawn_path).add_child(kitchen)
+1
View File
@@ -0,0 +1 @@
uid://dw3bfum87xs55
-155
View File
@@ -1,155 +0,0 @@
extends Node
class_name WorldLayout
## Data-driven description of what's in the multiplayer world. The server (or
## the single machine, when offline) spawns every entry through
## NetworkManager.spawn_item() instead of baking these into the scene file, so
## a joining client receives them from the server rather than assuming its own
## copy of the scene matches. Swapping the contents of these two functions is
## the only change needed for a future varying/procedural layout.
##
## Positions below are transcribed verbatim from the previous baked layout in
## Scenes/multiPlayer.tscn so the starting world is unchanged.
func get_node_data(node):
# {"scene": "res://Stations/Hob.tscn", "name": "Hob",
# "xform": Transform3D(Basis(), Vector3(0.29336345, 0.8981018, -1.484)), "props": {}},
var data = {}
data["scene"] = node.scene_file_path
data["name"] = node.name
# global, not local: the copies are respawned under WorldContent, so an
# authored node that was nested inside another (JonScene parents Counter5
# under Counter3) would otherwise land in the wrong place.
data["xform"] = node.global_transform
data["props"] = {}
var scrip = node.get_script()
if scrip:
for i in scrip.get_script_property_list():
# Only authored configuration — i.e. @export vars, which are the ones
# the editor exposes. Plain script variables are live runtime state:
# copying those and replaying them into a fresh instance re-runs their
# setters before the node is in the tree, so any setter touching an
# @onready reference blows up (Table's _state calls into its progress
# bar, which is still null at that point).
if not (i.usage & PROPERTY_USAGE_EDITOR):
continue
if str(i["name"]).begins_with("_"):
continue
data["props"][i["name"]] = node.get(i["name"])
return data
## The authored station nodes sitting in the current scene: anything instanced
## from res://Stations/. Exposed as nodes (not just data) because every peer has
## to remove these originals — the server replaces them with replicated copies,
## and a client that kept its own would end up showing two of everything.
func get_station_nodes() -> Array[Node]:
return _authored_nodes("res://Stations/", "StaticBody3D")
## Likewise for authored items. Containers/ counts as items too — plates and
## trays are things the player carries, and a client that never received one
## would have an incomplete world.
func get_item_nodes() -> Array[Node]:
var found := _authored_nodes("res://Items/", "XRToolsPickable")
found.append_array(_authored_nodes("res://Containers/", "XRToolsPickable"))
return found
func _authored_nodes(dir: String, type: String) -> Array[Node]:
var scenes := []
for file in ResourceLoader.list_directory(dir):
scenes.append(dir + file)
var found: Array[Node] = []
for node in get_tree().root.find_children("*", type, true, false):
if node.scene_file_path in scenes and not found.has(node):
found.append(node)
return found
func get_stations() -> Array[Dictionary]:
var data: Array[Dictionary] = []
for node in get_station_nodes():
data.append(get_node_data(node))
return data
func get_items() -> Array[Dictionary]:
var data: Array[Dictionary] = []
for node in get_item_nodes():
data.append(get_node_data(node))
return data
static func get_stations_old() -> Array[Dictionary]:
return [
{"scene": "res://Stations/Hob.tscn", "name": "Hob",
"xform": Transform3D(Basis(), Vector3(0.29336345, 0.8981018, -1.484)), "props": {}},
{"scene": "res://Stations/BurgerBunsDispenser.tscn", "name": "BurgerBunsDispenser",
"xform": Transform3D(Basis(), Vector3(-1.832131, 0.40028095, -1.4813508)), "props": {}},
{"scene": "res://Stations/sink.tscn", "name": "Sink",
"xform": Transform3D(Basis(), Vector3(1.3140475, 0.9061539, -1.4941733)), "props": {}},
{"scene": "res://Stations/dirt_station.tscn", "name": "DirtStation",
"xform": Transform3D(Basis(), Vector3(2.0864775, 0.8981018, -1.244947)), "props": {}},
{"scene": "res://Stations/Counter.tscn", "name": "Counter",
"xform": Transform3D(Basis(), Vector3(-0.7124918, 0.90304357, -1.4886917)), "props": {}},
{"scene": "res://Stations/Counter.tscn", "name": "Counter2",
"xform": Transform3D(Vector3(-4.371139e-08, 0.0, 1.0), Vector3(0.0, 1.0, 0.0), Vector3(-1.0, 0.0, -4.371139e-08), Vector3(-1.7648025, 0.90304357, -0.4458799)), "props": {}},
{"scene": "res://Stations/Counter.tscn", "name": "Counter3",
"xform": Transform3D(Vector3(-4.371139e-08, 0.0, 1.0), Vector3(0.0, 1.0, 0.0), Vector3(-1.0, 0.0, -4.371139e-08), Vector3(-1.7648025, 0.90304357, 0.55367994)), "props": {}},
{"scene": "res://Stations/Counter.tscn", "name": "Counter4",
"xform": Transform3D(Vector3(-4.371139e-08, 0.0, 1.0), Vector3(0.0, 1.0, 0.0), Vector3(-1.0, 0.0, -4.371139e-08), Vector3(-1.7648025, 0.90304357, 1.5539298)), "props": {}},
{"scene": "res://Stations/table.tscn", "name": "Table",
"xform": Transform3D(Basis(), Vector3(1.633146, 0.9030438, 1.1343781)),
"props": {
"initial_thinking_time": 8.0,
"initial_primary_time": 40.0,
"initial_friend_time": 3.0,
"initial_eating_time": 3.0,
}},
]
static func get_items_old() -> Array[Dictionary]:
var items: Array[Dictionary] = []
items.append(_item("res://Items/BurgerBuns.tscn", "BurgerBuns", Vector3(-1.8162017, 1.6081157, -1.4714175)))
items.append(_item("res://Items/BurgerBuns.tscn", "BurgerBuns2", Vector3(-1.3596323, 1.4110342, -0.22482127)))
items.append(_item("res://Containers/plate.tscn", "Plate", Vector3(-1.5717233, 1.5454081, 1.5373346)))
items.append(_item("res://Containers/plate.tscn", "Plate2", Vector3(-1.5730225, 1.499024, 0.59790254)))
items.append(_item("res://Containers/plate.tscn", "Plate3", Vector3(-1.5818124, 1.499024, -0.4634577)))
items.append(_item("res://Items/burger.tscn", "burger", Vector3(0.6888188, 1.4195822, -1.7110313)))
items.append(_item("res://Items/burger.tscn", "burger2", Vector3(0.6931299, 1.5300478, -1.71225)))
items.append(_item("res://Items/burger.tscn", "burger3", Vector3(0.69027674, 1.4969791, -1.7210286)))
items.append(_item("res://Items/burger.tscn", "burger4", Vector3(0.69134104, 1.4543622, -1.7210286)))
items.append(_item("res://Items/hamburger.tscn", "Hamburger", Vector3(-1.9352558, 1.623975, 1.2447833)))
items.append(_item("res://Items/hamburger.tscn", "Hamburger2", Vector3(-1.9857153, 1.5329368, 0.9472374)))
items.append(_item("res://Items/hamburger.tscn", "Hamburger3", Vector3(-1.7201865, 1.5329367, 0.14773655)))
items.append(_item("res://Items/cooked_burger.tscn", "CookedBurger", Vector3(-0.30671906, 1.4131018, -1.0928738)))
items.append(_item("res://Items/cooked_burger.tscn", "CookedBurger2", Vector3(-0.30671906, 1.4496142, -1.0928738)))
items.append(_item("res://Items/cooked_burger.tscn", "CookedBurger3", Vector3(-1.3344773, 1.4398065, -0.7096845)))
items.append(_item("res://Items/cooked_burger.tscn", "CookedBurger4", Vector3(-0.30671906, 1.525444, -1.0928738)))
items.append(_item("res://Items/PickupCube.tscn", "PickableObject", Vector3(0.6225724, 1.4792972, -1.0473135)))
items.append(_item("res://Items/PickupCube.tscn", "PickableObject2", Vector3(0.6359743, 1.4639391, -1.1673055)))
items.append(_item("res://Items/PickupCube.tscn", "PickableObject3", Vector3(0.5142721, 1.4792972, -1.0473135)))
items.append(_item("res://Items/PickupCube.tscn", "PickableObject4", Vector3(0.5276739, 1.4639391, -1.1673055)))
items.append(_item("res://Items/PickupCube.tscn", "PickableObject5", Vector3(0.73287535, 1.4792972, -1.0473135)))
items.append(_item("res://Items/PickupCube.tscn", "PickableObject6", Vector3(0.7462772, 1.4639391, -1.1673055)))
items.append(_item("res://Items/PickupCube.tscn", "PickableObject7", Vector3(-1.3556751, 1.4792972, 0.28881657)))
items.append(_item("res://Items/PickupCube.tscn", "PickableObject8", Vector3(-1.3422732, 1.4639391, 0.16882455)))
items.append(_item("res://Items/PickupCube.tscn", "PickableObject9", Vector3(-1.4639754, 1.4792972, 0.28881657)))
items.append(_item("res://Items/PickupCube.tscn", "PickableObject10", Vector3(-1.4505737, 1.4639391, 0.16882455)))
return items
static func _item(scene: String, name: String, pos: Vector3) -> Dictionary:
return {"scene": scene, "name": name, "xform": Transform3D(Basis(), pos), "props": {}}
-1
View File
@@ -1 +0,0 @@
uid://donvkica3drtx
+2 -2
View File
@@ -1,6 +1,6 @@
[gd_scene load_steps=5 format=3] [gd_scene format=3]
[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://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"] [ext_resource type="PackedScene" uid="uid://xqimcf20s2jp" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn" id="3_np003"]
+10 -7
View File
@@ -1,7 +1,7 @@
class_name CombinableItem class_name CombinableItem
extends Node extends Node
const RECIPE_MANAGER = preload("res://RecipeManager.gd") const RECIPE_MANAGER = preload("res://scripts/recipe_Manager.gd")
@onready var combine_area_3d: Area3D = $Area3d @onready var combine_area_3d: Area3D = $Area3d
@onready var _pickable: XRToolsPickable = get_parent() as XRToolsPickable @onready var _pickable: XRToolsPickable = get_parent() as XRToolsPickable
@@ -51,8 +51,8 @@ func _on_item_dropped(_item: Node3D) -> void:
# If the other body is a FoodItem, check for a recipe and combine if one exists. # If the other body is a FoodItem, check for a recipe and combine if one exists.
# Combining is a server decision (the base item is server-snapped into a zone). # Combining is a server decision (the base item is server-snapped into a zone).
func _on_body_entered(body: Node3D) -> void: func _on_body_entered(body: Node3D) -> void:
if not NetworkManager.owns_world(): # if not NetworkManager.owns_world():
return # return
if _combining or body == _pickable: if _combining or body == _pickable:
print("CombinableItem _on_body_entered: other is our own pickable") print("CombinableItem _on_body_entered: other is our own pickable")
return return
@@ -81,13 +81,16 @@ func _combine(other_body: Node3D, result: PackedScene) -> void:
# Spawn the result through the server (so it replicates to every peer, # Spawn the result through the server (so it replicates to every peer,
# including late joiners) at the base item's location, in world space. # including late joiners) at the base item's location, in world space.
var base_transform := _pickable.global_transform var base_transform := _pickable.global_transform
var result_instance: Node3D = NetworkManager.spawn_item(result.resource_path, base_transform) #var result_instance: Node3D = NetworkManager.spawn_item(result.resource_path, base_transform)
var result_instance: Node3D = result.instantiate()
get_tree().root.add_child(result_instance)
result_instance.transform = base_transform
# Free the pickable / root of this item and consume the incoming item. # Free the pickable / root of this item and consume the incoming item.
snap_zone.drop_object() snap_zone.drop_object()
NetworkManager.despawn_item(_pickable) _pickable.queue_free()
other_body.drop() other_body.drop()
NetworkManager.despawn_item(other_body) other_body.queue_free()
# Snap the result into the now-empty zone. # Snap the result into the now-empty zone.
snap_zone.pick_up_object(result_instance) snap_zone.pick_up_object(result_instance)
+1 -1
View File
@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://3lr2dhy62rhk"] [gd_scene format=3 uid="uid://3lr2dhy62rhk"]
[ext_resource type="Script" uid="uid://dounic663dn5q" path="res://Prefabs/combinable_item.gd" id="1_q21ti"] [ext_resource type="Script" uid="uid://dounic663dn5q" path="res://prefabs/combinable_item.gd" id="1_q21ti"]
[sub_resource type="SphereShape3D" id="SphereShape3D_o1b3t"] [sub_resource type="SphereShape3D" id="SphereShape3D_o1b3t"]
radius = 0.2 radius = 0.2
-8
View File
@@ -1,8 +0,0 @@
class_name CombineRecipe
extends Resource
## The [CombinableItem.id] of the item that must be combined into the base item.
@export var ingredient_id: StringName
## The scene the base item turns into when [member ingredient_id] is combined in.
@export var result: PackedScene
-1
View File
@@ -1 +0,0 @@
uid://coidnv8b2yvxr
-9
View File
@@ -1,9 +0,0 @@
class_name CookableItem
extends Node
@export_range(0.0, 30.0, 0.5, "or_greater", "suffix:s") var cooking_time: float = 4.0
@export var turns_into: PackedScene
func _ready() -> void:
if not turns_into:
push_error("Cooking Error: 'turns_into' PackedScene is missing on ", name, ". Please assign a scene in the Inspector.")
-1
View File
@@ -1 +0,0 @@
uid://bs7cxydoxk1cx
-9
View File
@@ -1,9 +0,0 @@
[gd_scene format=3 uid="uid://7earnjgdmwgx"]
[ext_resource type="Script" uid="uid://bs7cxydoxk1cx" path="res://Prefabs/cookable_item.gd" id="1_6hwx6"]
[ext_resource type="PackedScene" uid="uid://cucc3gaqu2nab" path="res://Items/Charcoal.tscn" id="2_rpt7j"]
[node name="CookableItem" type="Node" unique_id=280820828]
script = ExtResource("1_6hwx6")
cooking_time = 2.0
turns_into = ExtResource("2_rpt7j")
+5 -5
View File
@@ -28,8 +28,8 @@ func _process(delta: float) -> void:
# them and the blink below toggled `visible` locally, so the same item was # them and the blink below toggled `visible` locally, so the same item was
# shown on one peer and hidden on the other. Non-owners just follow the # shown on one peer and hidden on the other. Non-owners just follow the
# server, which removes the item for everyone when its time is up. # server, which removes the item for everyone when its time is up.
if not NetworkManager.owns_world(): # if not NetworkManager.owns_world():
return # return
# if we're held or moving, reset timer and return # if we're held or moving, reset timer and return
if _pickable.get_picked_up_by() or _rigid.linear_velocity.length_squared() > pow(minimum_speed_square,2): if _pickable.get_picked_up_by() or _rigid.linear_velocity.length_squared() > pow(minimum_speed_square,2):
@@ -42,7 +42,7 @@ func _process(delta: float) -> void:
_time_left -= delta _time_left -= delta
if _time_left <= 0: if _time_left <= 0:
print("DespawningItem despawning!" , get_parent()) print("DespawningItem despawning!" , get_parent())
NetworkManager.despawn_item(get_parent()) get_parent().queue_free()
# Stop counting: despawn_item() only queues the free, so without this we # Stop counting: despawn_item() only queues the free, so without this we
# keep re-reporting the same item every frame until it actually goes. # keep re-reporting the same item every frame until it actually goes.
set_process(false) set_process(false)
@@ -56,8 +56,8 @@ func _process(delta: float) -> void:
# `visible` is not a replicated property, so a blink driven only here would make # `visible` is not a replicated property, so a blink driven only here would make
# the item flicker on the host and stay solid on clients. Until it is synced, # the item flicker on the host and stay solid on clients. Until it is synced,
# only warn when there is nobody else to disagree with. # only warn when there is nobody else to disagree with.
func _set_visible(value: bool) -> void: func _set_visible(value: bool) -> void: # TODO: Fix blinking
if NetworkManager.is_online(): if true:# NetworkManager.is_online():
get_parent().visible = true get_parent().visible = true
return return
get_parent().visible = value get_parent().visible = value
+1 -1
View File
@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://b5ukku8i0hilb"] [gd_scene format=3 uid="uid://b5ukku8i0hilb"]
[ext_resource type="Script" uid="uid://deyna316ka4xs" path="res://Prefabs/despawning_item.gd" id="1_ayqk8"] [ext_resource type="Script" uid="uid://deyna316ka4xs" path="res://prefabs/despawning_item.gd" id="1_ayqk8"]
[node name="DespawningItem" type="Node" unique_id=303090111] [node name="DespawningItem" type="Node" unique_id=303090111]
script = ExtResource("1_ayqk8") script = ExtResource("1_ayqk8")
+1 -1
View File
@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://bfj80jh13t6e5"] [gd_scene format=3 uid="uid://bfj80jh13t6e5"]
[ext_resource type="Script" uid="uid://5tpoohkopryv" path="res://Prefabs/food_item.gd" id="1_0na5k"] [ext_resource type="Script" uid="uid://5tpoohkopryv" path="res://prefabs/food_item.gd" id="1_0na5k"]
[node name="FoodItem" type="Node" unique_id=63948206] [node name="FoodItem" type="Node" unique_id=63948206]
script = ExtResource("1_0na5k") script = ExtResource("1_0na5k")
+3
View File
@@ -11,8 +11,10 @@
[node name="XROrigin3D" type="XROrigin3D" unique_id=2055526621] [node name="XROrigin3D" type="XROrigin3D" unique_id=2055526621]
[node name="XRCamera3D" type="XRCamera3D" parent="." unique_id=983614103] [node name="XRCamera3D" type="XRCamera3D" parent="." unique_id=983614103]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8, 0)
[node name="XRControllerLeftHand" type="XRController3D" parent="." unique_id=1171100950] [node name="XRControllerLeftHand" type="XRController3D" parent="." unique_id=1171100950]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.30486506, 1.057469, 0)
tracker = &"left_hand" tracker = &"left_hand"
[node name="LeftHand" parent="XRControllerLeftHand" unique_id=1805508372 instance=ExtResource("1_jr1t4")] [node name="LeftHand" parent="XRControllerLeftHand" unique_id=1805508372 instance=ExtResource("1_jr1t4")]
@@ -30,6 +32,7 @@ show_laser = 2
show_target = true show_target = true
[node name="XRControllerRightHand" type="XRController3D" parent="." unique_id=202756852] [node name="XRControllerRightHand" type="XRController3D" parent="." unique_id=202756852]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.2788871, 1.048965, 0)
tracker = &"right_hand" tracker = &"right_hand"
[node name="RightHand" parent="XRControllerRightHand" unique_id=1112462503 instance=ExtResource("2_gshht")] [node name="RightHand" parent="XRControllerRightHand" unique_id=1112462503 instance=ExtResource("2_gshht")]
-1
View File
@@ -1 +0,0 @@
uid://cuo88u56uqwuy
+7 -7
View File
@@ -25,18 +25,18 @@ Example structure:
```yaml ```yaml
items: items:
hamburger: hamburger:
scene: res://Items/hamburger.tscn scene: res://Items/hamburger.tscn
type: meal type: meal
burger_buns: burger_buns:
scene: res://Items/BurgerBuns.tscn scene: res://Items/BurgerBuns.tscn
type: ingredient type: ingredient
combining: combining:
hamburger: hamburger:
- [cooked_burger, burger_buns] - [cooked_burger, burger_buns]
- [charcoal, charcoal] - [charcoal, charcoal]
charcoal: charcoal:
- [cube, cube] - [cube, cube]
``` ```
### `items` ### `items`
-10
View File
@@ -1,10 +0,0 @@
extends MultiplayerSpawner
func _ready() -> void:
add_spawnable_scene("res://Stations/csg_box_3d.tscn")
func _process(delta: float) -> void:
pass
-1
View File
@@ -1 +0,0 @@
uid://ctsqvhicswj8m
@@ -1,22 +1,22 @@
[gd_scene format=3 uid="uid://22shbqdvnwgo"] [gd_scene format=3 uid="uid://22shbqdvnwgo"]
[ext_resource type="Script" uid="uid://b4ldkd3ngs0vp" path="res://main.gd" id="1_m3h4l"] [ext_resource type="Script" uid="uid://b4ldkd3ngs0vp" path="res://scripts/main.gd" id="1_m3h4l"]
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://XROrigin.tscn" id="2_8pfaf"] [ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/xr_origin.tscn" id="2_8pfaf"]
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://Textures/dev_material_3d.tres" id="3_gatbn"] [ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="3_gatbn"]
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://Stations/Hob.tscn" id="4_3lufs"] [ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="4_3lufs"]
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://Textures/sky/NightSkyHDRI009_16K.tres" id="5_kh26v"] [ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="5_kh26v"]
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://Stations/BurgerBunsDispenser.tscn" id="7_tejmp"] [ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="7_tejmp"]
[ext_resource type="PackedScene" uid="uid://dpot5qie20vf6" path="res://Items/burger.tscn" id="9_rwx83"] [ext_resource type="PackedScene" uid="uid://dpot5qie20vf6" path="res://items/burger.tscn" id="9_rwx83"]
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://Stations/sink.tscn" id="12_ah4xa"] [ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="12_ah4xa"]
[ext_resource type="PackedScene" uid="uid://cnjwtnhwh0i8q" path="res://Stations/dirt_station.tscn" id="13_46xi2"] [ext_resource type="PackedScene" uid="uid://cnjwtnhwh0i8q" path="res://stations/dirt_station.tscn" id="13_46xi2"]
[ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://Stations/plate_dispenser.tscn" id="14_h88sx"] [ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://stations/plate_dispenser.tscn" id="14_h88sx"]
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://Stations/raw_burger_dispenser.tscn" id="15_m3h4l"] [ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="15_m3h4l"]
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://Stations/Counter.tscn" id="15_tpcje"] [ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://stations/Counter.tscn" id="15_tpcje"]
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://Stations/table.tscn" id="16_g2k6a"] [ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="16_g2k6a"]
[ext_resource type="Script" uid="uid://k8ywnvlhcic4" path="res://Scenes/testworldLoad.gd" id="16_m3h4l"] [ext_resource type="Script" uid="uid://k8ywnvlhcic4" path="res://test/testworld_load.gd" id="16_m3h4l"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="17_gatbn"] [ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="17_gatbn"]
[ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://UI/game_over_panel.tscn" id="18_3lufs"] [ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://ui/game_over_panel.tscn" id="18_3lufs"]
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://Scenes/GameOvercontroler.gd" id="19_3lufs"] [ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://prefabs/game_over_controler.gd" id="19_3lufs"]
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"] [sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
size = Vector3(16, 0.1, 16) size = Vector3(16, 0.1, 16)
+52 -59
View File
@@ -1,26 +1,25 @@
[gd_scene format=3 uid="uid://do6mrslyqe5qe"] [gd_scene format=3 uid="uid://do6mrslyqe5qe"]
[ext_resource type="Script" uid="uid://d1cefhe3yyyds" path="res://Scenes/multiplayer_world.gd" id="1_57ppd"] [ext_resource type="Script" uid="uid://b4ldkd3ngs0vp" path="res://scripts/main.gd" id="1_6gspb"]
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://XROrigin.tscn" id="2_o1b3t"] [ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="2_6gspb"]
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://Textures/dev_material_3d.tres" id="3_irf4n"] [ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="3_8n1fs"]
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://Stations/Hob.tscn" id="4_ctden"] [ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://ui/game_over_panel.tscn" id="4_6gspb"]
[ext_resource type="Script" uid="uid://ctsqvhicswj8m" path="res://Scenes/add_spawnables.gd" id="5_n8fyw"] [ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://prefabs/game_over_controler.gd" id="5_qmys3"]
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://Textures/sky/NightSkyHDRI009_16K.tres" id="7_n8fyw"] [ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/xr_origin.tscn" id="6_b4aof"]
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://Stations/BurgerBunsDispenser.tscn" id="9_sq0s2"] [ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="7_mdqee"]
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://Stations/raw_burger_dispenser.tscn" id="11_ctden"] [ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="8_wl1ox"]
[ext_resource type="PackedScene" uid="uid://bbg7dwsbxxh1t" path="res://Scenes/cube_side_dispense.tscn" id="12_57ppd"] [ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="9_wrlv7"]
[ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://Stations/plate_dispenser.tscn" id="13_irf4n"] [ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="10_dwulx"]
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://Stations/sink.tscn" id="13_o1b3t"] [ext_resource type="PackedScene" uid="uid://cnjwtnhwh0i8q" path="res://stations/dirt_station.tscn" id="11_e8c1b"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="14_di04w"] [ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://stations/Counter.tscn" id="12_cm8ly"]
[ext_resource type="PackedScene" uid="uid://cnjwtnhwh0i8q" path="res://Stations/dirt_station.tscn" id="14_irf4n"] [ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="13_0sfn4"]
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://Stations/Counter.tscn" id="15_di04w"] [ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="14_d0yvd"]
[ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://UI/game_over_panel.tscn" id="15_eoxxy"] [ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://stations/plate_dispenser.tscn" id="15_evyxv"]
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://Stations/table.tscn" id="16_di04w"] [ext_resource type="PackedScene" uid="uid://bbg7dwsbxxh1t" path="res://stations/cube_side_dispense.tscn" id="16_kktuy"]
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://Scenes/GameOvercontroler.gd" id="16_n8fyw"]
[sub_resource type="Environment" id="Environment_bvwq1"] [sub_resource type="Environment" id="Environment_bvwq1"]
background_mode = 2 background_mode = 2
sky = ExtResource("7_n8fyw") sky = ExtResource("2_6gspb")
ambient_light_source = 3 ambient_light_source = 3
ambient_light_color = Color(1, 1, 1, 1) ambient_light_color = Color(1, 1, 1, 1)
ambient_light_sky_contribution = 0.9 ambient_light_sky_contribution = 0.9
@@ -34,34 +33,34 @@ sdfgi_enabled = true
size = Vector3(20, 0.1, 20) size = Vector3(20, 0.1, 20)
[sub_resource type="BoxMesh" id="BoxMesh_24d3s"] [sub_resource type="BoxMesh" id="BoxMesh_24d3s"]
material = ExtResource("3_irf4n") material = ExtResource("7_mdqee")
size = Vector3(20, 0.1, 20) size = Vector3(20, 0.1, 20)
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"] [sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
size = Vector3(20, 10, 0.1) size = Vector3(20, 10, 0.1)
[node name="Main" type="Node3D" unique_id=1312265607] [node name="Main" type="Node3D" unique_id=1312265607]
script = ExtResource("1_57ppd") script = ExtResource("1_6gspb")
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250] [node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
environment = SubResource("Environment_bvwq1") environment = SubResource("Environment_bvwq1")
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("2_o1b3t")] [node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("6_b4aof")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9667189, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9667189, 0)
[node name="GameOverPanel" parent="." unique_id=1234658657 instance=ExtResource("3_8n1fs")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0281777, 2.8122003, 0)
scene = ExtResource("4_6gspb")
viewport_size = Vector2(900, 600)
transparent = 0
filter = false
scene_properties_keys = PackedStringArray("game_over_panel.gd")
[node name="controler" type="Node" parent="GameOverPanel" unique_id=803158176]
script = ExtResource("5_qmys3")
[node name="WorldContent" type="Node3D" parent="." unique_id=262398468] [node name="WorldContent" type="Node3D" parent="." unique_id=262398468]
[node name="Players" type="Node3D" parent="." unique_id=1772076868]
[node name="ItemsSpawner" type="MultiplayerSpawner" parent="." unique_id=2051771581]
_spawnable_scenes = PackedStringArray("uid://cwwnbx5uat3fw")
spawn_path = NodePath("../WorldContent")
script = ExtResource("5_n8fyw")
[node name="PlayersSpawner" type="MultiplayerSpawner" parent="." unique_id=619815427]
_spawnable_scenes = PackedStringArray("res://Player/net_player.tscn")
spawn_path = NodePath("../Players")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1376644384] [node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1376644384]
transform = Transform3D(-0.8660254, -0.43301278, 0.24999999, 0.3022632, -0.05510214, 0.9516306, -0.39829266, 0.8997021, 0.17860365, 0, 0, 0) transform = Transform3D(-0.8660254, -0.43301278, 0.24999999, 0.3022632, -0.05510214, 0.9516306, -0.39829266, 0.8997021, 0.17860365, 0, 0, 0)
@@ -93,53 +92,47 @@ shape = SubResource("BoxShape3D_24d3s")
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 9.934778, 4.297072, -0.018813023) transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 9.934778, 4.297072, -0.018813023)
shape = SubResource("BoxShape3D_24d3s") shape = SubResource("BoxShape3D_24d3s")
[node name="Table" parent="." unique_id=1863572470 instance=ExtResource("16_di04w")] [node name="Stations" type="Node3D" parent="." unique_id=1237237441]
[node name="Table" parent="Stations" unique_id=1863572470 instance=ExtResource("8_wl1ox")]
transform = Transform3D(-1, 0, 8.742277e-08, 0, 1, 0, -8.742277e-08, 0, -1, 3.6294794, 0.54177135, 0.0973109) transform = Transform3D(-1, 0, 8.742277e-08, 0, 1, 0, -8.742277e-08, 0, -1, 3.6294794, 0.54177135, 0.0973109)
primary_duration = 35.0 primary_duration = 35.0
[node name="Hob" parent="." unique_id=1687971542 instance=ExtResource("4_ctden")] [node name="Hob" parent="Stations" unique_id=1687971542 instance=ExtResource("9_wrlv7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.35077858, 0.50655985, -1.2833805) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.35077858, 0.50655985, -1.2833805)
[node name="Sink" parent="." unique_id=2055277359 instance=ExtResource("13_o1b3t")] [node name="Hob2" parent="Stations" unique_id=717907738 instance=ExtResource("9_wrlv7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.24685252, 0.51461196, -1.2828919) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.26079375, 0.50655985, -1.2833805)
[node name="DirtStation" parent="." unique_id=160842153 instance=ExtResource("14_irf4n")] [node name="Sink" parent="Stations" unique_id=2055277359 instance=ExtResource("10_dwulx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7978771, 0.50655985, -1.2598276) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9064429, 0.51461196, -1.2828919)
[node name="Counter" parent="." unique_id=1487893288 instance=ExtResource("15_di04w")] [node name="DirtStation" parent="Stations" unique_id=160842153 instance=ExtResource("11_e8c1b")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4574674, 0.50655985, -1.2598276)
[node name="Counter" parent="Stations" unique_id=1487893288 instance=ExtResource("12_cm8ly")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.94890714, 0.5115015, -1.3041471) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.94890714, 0.5115015, -1.3041471)
[node name="Counter2" parent="." unique_id=368890752 instance=ExtResource("15_di04w")] [node name="Counter2" parent="Stations" unique_id=368890752 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.1103079) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.1103079)
[node name="Counter4" parent="." unique_id=1748373996 instance=ExtResource("15_di04w")] [node name="Counter4" parent="Stations" unique_id=1748373996 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.70863545) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.70863545)
[node name="Counter3" parent="." unique_id=1498817646 instance=ExtResource("15_di04w")] [node name="Counter3" parent="Stations" unique_id=1498817646 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, 0.49258912) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, 0.49258912)
[node name="Counter5" parent="Counter3" unique_id=200341072 instance=ExtResource("15_di04w")] [node name="Counter5" parent="Stations" unique_id=200341072 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-1, 0, 4.371139e-08, 0, 1, 0, -4.371139e-08, 0, -1, -0.12681937, 2.3841858e-07, 3.538899) transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 1.9911776, 0.51150185, 0.61940837)
[node name="BurgerBunsDispenser" parent="." unique_id=1720683779 instance=ExtResource("9_sq0s2")] [node name="BurgerBunsDispenser" parent="Stations" unique_id=1720683779 instance=ExtResource("13_0sfn4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5242664, 0.008738995, 1.1073059) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5242664, 0.008738995, 1.1073059)
[node name="RawBurgerDispenser" parent="." unique_id=235630131 instance=ExtResource("11_ctden")] [node name="RawBurgerDispenser" parent="Stations" unique_id=235630131 instance=ExtResource("14_d0yvd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.8896122, 0.008738995, 1.0872328) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.8896122, 0.008738995, 1.0872328)
[node name="PlateDispenser" parent="." unique_id=710538846 instance=ExtResource("13_irf4n")] [node name="PlateDispenser" parent="Stations" unique_id=710538846 instance=ExtResource("15_evyxv")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.26631236, 0.008738995, 1.087036) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.26631236, 0.008738995, 1.087036)
[node name="GameOverPanel" parent="." unique_id=1234658657 instance=ExtResource("14_di04w")] [node name="CubeSideDispenser2" parent="Stations" unique_id=200950572 instance=ExtResource("16_kktuy")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0281777, 2.8122003, 0)
scene = ExtResource("15_eoxxy")
viewport_size = Vector2(900, 600)
transparent = 0
filter = false
scene_properties_keys = PackedStringArray("game_over_panel.gd")
[node name="controler" type="Node" parent="GameOverPanel" unique_id=803158176]
script = ExtResource("16_n8fyw")
[node name="CubeSideDispenser2" parent="." unique_id=200950572 instance=ExtResource("12_57ppd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.35154933, 0, 1.1119425) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.35154933, 0, 1.1119425)
+136
View File
@@ -0,0 +1,136 @@
[gd_scene format=3 uid="uid://do6mrslyqe5qe"]
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="2_6gspb"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="3_8n1fs"]
[ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://ui/game_over_panel.tscn" id="4_6gspb"]
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://prefabs/GameOvercontroler.gd" id="5_qmys3"]
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/xr_origin.tscn" id="6_b4aof"]
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="7_mdqee"]
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="8_wl1ox"]
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="9_wrlv7"]
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="10_dwulx"]
[ext_resource type="PackedScene" uid="uid://cnjwtnhwh0i8q" path="res://stations/dirt_station.tscn" id="11_e8c1b"]
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://stations/Counter.tscn" id="12_cm8ly"]
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="13_0sfn4"]
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="14_d0yvd"]
[ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://stations/plate_dispenser.tscn" id="15_evyxv"]
[ext_resource type="PackedScene" uid="uid://bbg7dwsbxxh1t" path="res://stations/cube_side_dispense.tscn" id="16_kktuy"]
[sub_resource type="Environment" id="Environment_bvwq1"]
background_mode = 2
sky = ExtResource("2_6gspb")
ambient_light_source = 3
ambient_light_color = Color(1, 1, 1, 1)
ambient_light_sky_contribution = 0.9
reflected_light_source = 2
ssr_enabled = true
ssao_enabled = true
ssil_enabled = true
sdfgi_enabled = true
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
size = Vector3(20, 0.1, 20)
[sub_resource type="BoxMesh" id="BoxMesh_24d3s"]
material = ExtResource("7_mdqee")
size = Vector3(20, 0.1, 20)
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
size = Vector3(20, 10, 0.1)
[node name="Main" type="Node3D" unique_id=1312265607]
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
environment = SubResource("Environment_bvwq1")
[node name="GameOverPanel" parent="." unique_id=1234658657 instance=ExtResource("3_8n1fs")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0281777, 2.8122003, 0)
scene = ExtResource("4_6gspb")
viewport_size = Vector2(900, 600)
transparent = 0
filter = false
scene_properties_keys = PackedStringArray("game_over_panel.gd")
[node name="controler" type="Node" parent="GameOverPanel" unique_id=803158176]
script = ExtResource("5_qmys3")
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("6_b4aof")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9667189, 0)
[node name="WorldContent" type="Node3D" parent="." unique_id=262398468]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1376644384]
transform = Transform3D(-0.8660254, -0.43301278, 0.24999999, 0.3022632, -0.05510214, 0.9516306, -0.39829266, 0.8997021, 0.17860365, 0, 0, 0)
[node name="Floor" type="StaticBody3D" parent="." unique_id=122279514]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floor" unique_id=958841648]
shape = SubResource("BoxShape3D_vlqg6")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor/CollisionShape3D" unique_id=1939997056]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00018164515, 0.0006352663, -0.002532661)
mesh = SubResource("BoxMesh_24d3s")
[node name="InvisibleWalls" type="StaticBody3D" parent="." unique_id=315740174]
[node name="CollisionShape3D" type="CollisionShape3D" parent="InvisibleWalls" unique_id=33059670]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.688614, 8.838269)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="InvisibleWalls" unique_id=2018792171]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.688614, -10.243342)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D3" type="CollisionShape3D" parent="InvisibleWalls" unique_id=757662929]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -9.807113, 4.688614, -0.018813243)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D4" type="CollisionShape3D" parent="InvisibleWalls" unique_id=1468386997]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 9.934778, 4.297072, -0.018813023)
shape = SubResource("BoxShape3D_24d3s")
[node name="Stations" type="Node3D" parent="." unique_id=1237237441]
[node name="Table" parent="Stations" unique_id=1863572470 instance=ExtResource("8_wl1ox")]
transform = Transform3D(-1, 0, 8.742277e-08, 0, 1, 0, -8.742277e-08, 0, -1, 3.6294794, 0.54177135, 0.0973109)
primary_duration = 35.0
[node name="Hob" parent="Stations" unique_id=1687971542 instance=ExtResource("9_wrlv7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.35077858, 0.50655985, -1.2833805)
[node name="Hob2" parent="Stations" unique_id=717907738 instance=ExtResource("9_wrlv7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.26079375, 0.50655985, -1.2833805)
[node name="Sink" parent="Stations" unique_id=2055277359 instance=ExtResource("10_dwulx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9064429, 0.51461196, -1.2828919)
[node name="DirtStation" parent="Stations" unique_id=160842153 instance=ExtResource("11_e8c1b")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4574674, 0.50655985, -1.2598276)
[node name="Counter" parent="Stations" unique_id=1487893288 instance=ExtResource("12_cm8ly")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.94890714, 0.5115015, -1.3041471)
[node name="Counter2" parent="Stations" unique_id=368890752 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.1103079)
[node name="Counter4" parent="Stations" unique_id=1748373996 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.70863545)
[node name="Counter3" parent="Stations" unique_id=1498817646 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, 0.49258912)
[node name="Counter5" parent="Stations" unique_id=200341072 instance=ExtResource("12_cm8ly")]
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 1.9911776, 0.51150185, 0.61940837)
[node name="BurgerBunsDispenser" parent="Stations" unique_id=1720683779 instance=ExtResource("13_0sfn4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5242664, 0.008738995, 1.1073059)
[node name="RawBurgerDispenser" parent="Stations" unique_id=235630131 instance=ExtResource("14_d0yvd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.8896122, 0.008738995, 1.0872328)
[node name="PlateDispenser" parent="Stations" unique_id=710538846 instance=ExtResource("15_evyxv")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.26631236, 0.008738995, 1.087036)
[node name="CubeSideDispenser2" parent="Stations" unique_id=200950572 instance=ExtResource("16_kktuy")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.35154933, 0, 1.1119425)
+136
View File
@@ -0,0 +1,136 @@
[gd_scene format=3 uid="uid://do6mrslyqe5qe"]
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="2_6gspb"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="3_8n1fs"]
[ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://ui/game_over_panel.tscn" id="4_6gspb"]
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://prefabs/GameOvercontroler.gd" id="5_qmys3"]
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/xr_origin.tscn" id="6_b4aof"]
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="7_mdqee"]
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="8_wl1ox"]
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="9_wrlv7"]
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="10_dwulx"]
[ext_resource type="PackedScene" uid="uid://cnjwtnhwh0i8q" path="res://stations/dirt_station.tscn" id="11_e8c1b"]
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://stations/Counter.tscn" id="12_cm8ly"]
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="13_0sfn4"]
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="14_d0yvd"]
[ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://stations/plate_dispenser.tscn" id="15_evyxv"]
[ext_resource type="PackedScene" uid="uid://bbg7dwsbxxh1t" path="res://stations/cube_side_dispense.tscn" id="16_kktuy"]
[sub_resource type="Environment" id="Environment_bvwq1"]
background_mode = 2
sky = ExtResource("2_6gspb")
ambient_light_source = 3
ambient_light_color = Color(1, 1, 1, 1)
ambient_light_sky_contribution = 0.9
reflected_light_source = 2
ssr_enabled = true
ssao_enabled = true
ssil_enabled = true
sdfgi_enabled = true
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
size = Vector3(20, 0.1, 20)
[sub_resource type="BoxMesh" id="BoxMesh_24d3s"]
material = ExtResource("7_mdqee")
size = Vector3(20, 0.1, 20)
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
size = Vector3(20, 10, 0.1)
[node name="Main" type="Node3D" unique_id=1312265607]
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
environment = SubResource("Environment_bvwq1")
[node name="GameOverPanel" parent="." unique_id=1234658657 instance=ExtResource("3_8n1fs")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0281777, 2.8122003, 0)
scene = ExtResource("4_6gspb")
viewport_size = Vector2(900, 600)
transparent = 0
filter = false
scene_properties_keys = PackedStringArray("game_over_panel.gd")
[node name="controler" type="Node" parent="GameOverPanel" unique_id=803158176]
script = ExtResource("5_qmys3")
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("6_b4aof")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9667189, 0)
[node name="WorldContent" type="Node3D" parent="." unique_id=262398468]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1376644384]
transform = Transform3D(-0.8660254, -0.43301278, 0.24999999, 0.3022632, -0.05510214, 0.9516306, -0.39829266, 0.8997021, 0.17860365, 0, 0, 0)
[node name="Floor" type="StaticBody3D" parent="." unique_id=122279514]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floor" unique_id=958841648]
shape = SubResource("BoxShape3D_vlqg6")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor/CollisionShape3D" unique_id=1939997056]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00018164515, 0.0006352663, -0.002532661)
mesh = SubResource("BoxMesh_24d3s")
[node name="InvisibleWalls" type="StaticBody3D" parent="." unique_id=315740174]
[node name="CollisionShape3D" type="CollisionShape3D" parent="InvisibleWalls" unique_id=33059670]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.688614, 8.838269)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="InvisibleWalls" unique_id=2018792171]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.688614, -10.243342)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D3" type="CollisionShape3D" parent="InvisibleWalls" unique_id=757662929]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -9.807113, 4.688614, -0.018813243)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D4" type="CollisionShape3D" parent="InvisibleWalls" unique_id=1468386997]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 9.934778, 4.297072, -0.018813023)
shape = SubResource("BoxShape3D_24d3s")
[node name="Stations" type="Node3D" parent="." unique_id=1237237441]
[node name="Table" parent="Stations" unique_id=1863572470 instance=ExtResource("8_wl1ox")]
transform = Transform3D(-1, 0, 8.742277e-08, 0, 1, 0, -8.742277e-08, 0, -1, 3.6294794, 0.54177135, 0.0973109)
primary_duration = 35.0
[node name="Hob" parent="Stations" unique_id=1687971542 instance=ExtResource("9_wrlv7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.35077858, 0.50655985, -1.2833805)
[node name="Hob2" parent="Stations" unique_id=717907738 instance=ExtResource("9_wrlv7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.26079375, 0.50655985, -1.2833805)
[node name="Sink" parent="Stations" unique_id=2055277359 instance=ExtResource("10_dwulx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9064429, 0.51461196, -1.2828919)
[node name="DirtStation" parent="Stations" unique_id=160842153 instance=ExtResource("11_e8c1b")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4574674, 0.50655985, -1.2598276)
[node name="Counter" parent="Stations" unique_id=1487893288 instance=ExtResource("12_cm8ly")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.94890714, 0.5115015, -1.3041471)
[node name="Counter2" parent="Stations" unique_id=368890752 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.1103079)
[node name="Counter4" parent="Stations" unique_id=1748373996 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.70863545)
[node name="Counter3" parent="Stations" unique_id=1498817646 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, 0.49258912)
[node name="Counter5" parent="Stations" unique_id=200341072 instance=ExtResource("12_cm8ly")]
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 1.9911776, 0.51150185, 0.61940837)
[node name="BurgerBunsDispenser" parent="Stations" unique_id=1720683779 instance=ExtResource("13_0sfn4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5242664, 0.008738995, 1.1073059)
[node name="RawBurgerDispenser" parent="Stations" unique_id=235630131 instance=ExtResource("14_d0yvd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.8896122, 0.008738995, 1.0872328)
[node name="PlateDispenser" parent="Stations" unique_id=710538846 instance=ExtResource("15_evyxv")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.26631236, 0.008738995, 1.087036)
[node name="CubeSideDispenser2" parent="Stations" unique_id=200950572 instance=ExtResource("16_kktuy")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.35154933, 0, 1.1119425)
+136
View File
@@ -0,0 +1,136 @@
[gd_scene format=3 uid="uid://do6mrslyqe5qe"]
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="2_6gspb"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="3_8n1fs"]
[ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://ui/game_over_panel.tscn" id="4_6gspb"]
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://prefabs/GameOvercontroler.gd" id="5_qmys3"]
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/xr_origin.tscn" id="6_b4aof"]
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="7_mdqee"]
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="8_wl1ox"]
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="9_wrlv7"]
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="10_dwulx"]
[ext_resource type="PackedScene" uid="uid://cnjwtnhwh0i8q" path="res://stations/dirt_station.tscn" id="11_e8c1b"]
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://stations/Counter.tscn" id="12_cm8ly"]
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="13_0sfn4"]
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="14_d0yvd"]
[ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://stations/plate_dispenser.tscn" id="15_evyxv"]
[ext_resource type="PackedScene" uid="uid://bbg7dwsbxxh1t" path="res://stations/cube_side_dispense.tscn" id="16_kktuy"]
[sub_resource type="Environment" id="Environment_bvwq1"]
background_mode = 2
sky = ExtResource("2_6gspb")
ambient_light_source = 3
ambient_light_color = Color(1, 1, 1, 1)
ambient_light_sky_contribution = 0.9
reflected_light_source = 2
ssr_enabled = true
ssao_enabled = true
ssil_enabled = true
sdfgi_enabled = true
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
size = Vector3(20, 0.1, 20)
[sub_resource type="BoxMesh" id="BoxMesh_24d3s"]
material = ExtResource("7_mdqee")
size = Vector3(20, 0.1, 20)
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
size = Vector3(20, 10, 0.1)
[node name="Main" type="Node3D" unique_id=1312265607]
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
environment = SubResource("Environment_bvwq1")
[node name="GameOverPanel" parent="." unique_id=1234658657 instance=ExtResource("3_8n1fs")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0281777, 2.8122003, 0)
scene = ExtResource("4_6gspb")
viewport_size = Vector2(900, 600)
transparent = 0
filter = false
scene_properties_keys = PackedStringArray("game_over_panel.gd")
[node name="controler" type="Node" parent="GameOverPanel" unique_id=803158176]
script = ExtResource("5_qmys3")
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("6_b4aof")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9667189, 0)
[node name="WorldContent" type="Node3D" parent="." unique_id=262398468]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1376644384]
transform = Transform3D(-0.8660254, -0.43301278, 0.24999999, 0.3022632, -0.05510214, 0.9516306, -0.39829266, 0.8997021, 0.17860365, 0, 0, 0)
[node name="Floor" type="StaticBody3D" parent="." unique_id=122279514]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floor" unique_id=958841648]
shape = SubResource("BoxShape3D_vlqg6")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor/CollisionShape3D" unique_id=1939997056]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00018164515, 0.0006352663, -0.002532661)
mesh = SubResource("BoxMesh_24d3s")
[node name="InvisibleWalls" type="StaticBody3D" parent="." unique_id=315740174]
[node name="CollisionShape3D" type="CollisionShape3D" parent="InvisibleWalls" unique_id=33059670]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.688614, 8.838269)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="InvisibleWalls" unique_id=2018792171]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.688614, -10.243342)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D3" type="CollisionShape3D" parent="InvisibleWalls" unique_id=757662929]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -9.807113, 4.688614, -0.018813243)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D4" type="CollisionShape3D" parent="InvisibleWalls" unique_id=1468386997]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 9.934778, 4.297072, -0.018813023)
shape = SubResource("BoxShape3D_24d3s")
[node name="Stations" type="Node3D" parent="." unique_id=1237237441]
[node name="Table" parent="Stations" unique_id=1863572470 instance=ExtResource("8_wl1ox")]
transform = Transform3D(-1, 0, 8.742277e-08, 0, 1, 0, -8.742277e-08, 0, -1, 3.6294794, 0.54177135, 0.0973109)
primary_duration = 35.0
[node name="Hob" parent="Stations" unique_id=1687971542 instance=ExtResource("9_wrlv7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.35077858, 0.50655985, -1.2833805)
[node name="Hob2" parent="Stations" unique_id=717907738 instance=ExtResource("9_wrlv7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.26079375, 0.50655985, -1.2833805)
[node name="Sink" parent="Stations" unique_id=2055277359 instance=ExtResource("10_dwulx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9064429, 0.51461196, -1.2828919)
[node name="DirtStation" parent="Stations" unique_id=160842153 instance=ExtResource("11_e8c1b")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4574674, 0.50655985, -1.2598276)
[node name="Counter" parent="Stations" unique_id=1487893288 instance=ExtResource("12_cm8ly")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.94890714, 0.5115015, -1.3041471)
[node name="Counter2" parent="Stations" unique_id=368890752 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.1103079)
[node name="Counter4" parent="Stations" unique_id=1748373996 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.70863545)
[node name="Counter3" parent="Stations" unique_id=1498817646 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, 0.49258912)
[node name="Counter5" parent="Stations" unique_id=200341072 instance=ExtResource("12_cm8ly")]
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 1.9911776, 0.51150185, 0.61940837)
[node name="BurgerBunsDispenser" parent="Stations" unique_id=1720683779 instance=ExtResource("13_0sfn4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5242664, 0.008738995, 1.1073059)
[node name="RawBurgerDispenser" parent="Stations" unique_id=235630131 instance=ExtResource("14_d0yvd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.8896122, 0.008738995, 1.0872328)
[node name="PlateDispenser" parent="Stations" unique_id=710538846 instance=ExtResource("15_evyxv")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.26631236, 0.008738995, 1.087036)
[node name="CubeSideDispenser2" parent="Stations" unique_id=200950572 instance=ExtResource("16_kktuy")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.35154933, 0, 1.1119425)
+136
View File
@@ -0,0 +1,136 @@
[gd_scene format=3 uid="uid://do6mrslyqe5qe"]
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="2_6gspb"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="3_8n1fs"]
[ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://ui/game_over_panel.tscn" id="4_6gspb"]
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://prefabs/game_over_controler.gd" id="5_qmys3"]
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/xr_origin.tscn" id="6_b4aof"]
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="7_mdqee"]
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="8_wl1ox"]
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="9_wrlv7"]
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="10_dwulx"]
[ext_resource type="PackedScene" uid="uid://cnjwtnhwh0i8q" path="res://stations/dirt_station.tscn" id="11_e8c1b"]
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://stations/Counter.tscn" id="12_cm8ly"]
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="13_0sfn4"]
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="14_d0yvd"]
[ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://stations/plate_dispenser.tscn" id="15_evyxv"]
[ext_resource type="PackedScene" uid="uid://bbg7dwsbxxh1t" path="res://stations/cube_side_dispense.tscn" id="16_kktuy"]
[sub_resource type="Environment" id="Environment_bvwq1"]
background_mode = 2
sky = ExtResource("2_6gspb")
ambient_light_source = 3
ambient_light_color = Color(1, 1, 1, 1)
ambient_light_sky_contribution = 0.9
reflected_light_source = 2
ssr_enabled = true
ssao_enabled = true
ssil_enabled = true
sdfgi_enabled = true
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
size = Vector3(20, 0.1, 20)
[sub_resource type="BoxMesh" id="BoxMesh_24d3s"]
material = ExtResource("7_mdqee")
size = Vector3(20, 0.1, 20)
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
size = Vector3(20, 10, 0.1)
[node name="Main" type="Node3D" unique_id=1312265607]
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
environment = SubResource("Environment_bvwq1")
[node name="GameOverPanel" parent="." unique_id=1234658657 instance=ExtResource("3_8n1fs")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0281777, 2.8122003, 0)
scene = ExtResource("4_6gspb")
viewport_size = Vector2(900, 600)
transparent = 0
filter = false
scene_properties_keys = PackedStringArray("game_over_panel.gd")
[node name="controler" type="Node" parent="GameOverPanel" unique_id=803158176]
script = ExtResource("5_qmys3")
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("6_b4aof")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9667189, 0)
[node name="WorldContent" type="Node3D" parent="." unique_id=262398468]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1376644384]
transform = Transform3D(-0.8660254, -0.43301278, 0.24999999, 0.3022632, -0.05510214, 0.9516306, -0.39829266, 0.8997021, 0.17860365, 0, 0, 0)
[node name="Floor" type="StaticBody3D" parent="." unique_id=122279514]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floor" unique_id=958841648]
shape = SubResource("BoxShape3D_vlqg6")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor/CollisionShape3D" unique_id=1939997056]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00018164515, 0.0006352663, -0.002532661)
mesh = SubResource("BoxMesh_24d3s")
[node name="InvisibleWalls" type="StaticBody3D" parent="." unique_id=315740174]
[node name="CollisionShape3D" type="CollisionShape3D" parent="InvisibleWalls" unique_id=33059670]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.688614, 8.838269)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="InvisibleWalls" unique_id=2018792171]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.688614, -10.243342)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D3" type="CollisionShape3D" parent="InvisibleWalls" unique_id=757662929]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -9.807113, 4.688614, -0.018813243)
shape = SubResource("BoxShape3D_24d3s")
[node name="CollisionShape3D4" type="CollisionShape3D" parent="InvisibleWalls" unique_id=1468386997]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 9.934778, 4.297072, -0.018813023)
shape = SubResource("BoxShape3D_24d3s")
[node name="Stations" type="Node3D" parent="." unique_id=1237237441]
[node name="Table" parent="Stations" unique_id=1863572470 instance=ExtResource("8_wl1ox")]
transform = Transform3D(-1, 0, 8.742277e-08, 0, 1, 0, -8.742277e-08, 0, -1, 3.6294794, 0.54177135, 0.0973109)
primary_duration = 35.0
[node name="Hob" parent="Stations" unique_id=1687971542 instance=ExtResource("9_wrlv7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.35077858, 0.50655985, -1.2833805)
[node name="Hob2" parent="Stations" unique_id=717907738 instance=ExtResource("9_wrlv7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.26079375, 0.50655985, -1.2833805)
[node name="Sink" parent="Stations" unique_id=2055277359 instance=ExtResource("10_dwulx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9064429, 0.51461196, -1.2828919)
[node name="DirtStation" parent="Stations" unique_id=160842153 instance=ExtResource("11_e8c1b")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4574674, 0.50655985, -1.2598276)
[node name="Counter" parent="Stations" unique_id=1487893288 instance=ExtResource("12_cm8ly")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.94890714, 0.5115015, -1.3041471)
[node name="Counter2" parent="Stations" unique_id=368890752 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.1103079)
[node name="Counter4" parent="Stations" unique_id=1748373996 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, -0.70863545)
[node name="Counter3" parent="Stations" unique_id=1498817646 instance=ExtResource("12_cm8ly")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.5477214, 0.5115016, 0.49258912)
[node name="Counter5" parent="Stations" unique_id=200341072 instance=ExtResource("12_cm8ly")]
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 1.9911776, 0.51150185, 0.61940837)
[node name="BurgerBunsDispenser" parent="Stations" unique_id=1720683779 instance=ExtResource("13_0sfn4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5242664, 0.008738995, 1.1073059)
[node name="RawBurgerDispenser" parent="Stations" unique_id=235630131 instance=ExtResource("14_d0yvd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.8896122, 0.008738995, 1.0872328)
[node name="PlateDispenser" parent="Stations" unique_id=710538846 instance=ExtResource("15_evyxv")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.26631236, 0.008738995, 1.087036)
[node name="CubeSideDispenser2" parent="Stations" unique_id=200950572 instance=ExtResource("16_kktuy")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.35154933, 0, 1.1119425)
-166
View File
@@ -1,166 +0,0 @@
[gd_scene format=3 uid="uid://c1nv4w33fedj6"]
[ext_resource type="Script" uid="uid://b4ldkd3ngs0vp" path="res://main.gd" id="1_72gy5"]
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://XROrigin.tscn" id="2_8wkh3"]
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://Textures/dev_material_3d.tres" id="3_m56cs"]
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://Stations/Hob.tscn" id="4_5kvh0"]
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://Textures/sky/NightSkyHDRI009_16K.tres" id="5_l1qm6"]
[ext_resource type="PackedScene" uid="uid://c0lknik4noobs" path="res://Items/BurgerBuns.tscn" id="6_bktvt"]
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://Stations/BurgerBunsDispenser.tscn" id="7_1nkd0"]
[ext_resource type="PackedScene" uid="uid://bp3v1jl8pctro" path="res://Containers/plate.tscn" id="8_l1owj"]
[ext_resource type="PackedScene" uid="uid://dpot5qie20vf6" path="res://Items/burger.tscn" id="9_220hi"]
[ext_resource type="PackedScene" uid="uid://b3m2ag8g5rj4r" path="res://Items/hamburger.tscn" id="10_qacki"]
[ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://Items/PickupCube.tscn" id="11_npf8s"]
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://Stations/sink.tscn" id="12_8apyq"]
[ext_resource type="PackedScene" uid="uid://cnjwtnhwh0i8q" path="res://Stations/dirt_station.tscn" id="13_jnwcx"]
[ext_resource type="PackedScene" uid="uid://cfc4ho67u4r5e" path="res://Items/cooked_burger.tscn" id="14_1lg2m"]
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://Stations/Counter.tscn" id="15_yy81s"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="16_vp"]
[ext_resource type="PackedScene" path="res://UI/main_menu_panel.tscn" id="17_panel"]
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
size = Vector3(115, 0.1, 15)
[sub_resource type="BoxMesh" id="BoxMesh_24d3s"]
material = ExtResource("3_m56cs")
size = Vector3(15, 0.1, 15)
[sub_resource type="Environment" id="Environment_bvwq1"]
background_mode = 2
sky = ExtResource("5_l1qm6")
reflected_light_source = 2
ssr_enabled = true
ssao_enabled = true
ssil_enabled = true
sdfgi_enabled = true
[node name="Main" type="Node3D" unique_id=1312265607]
script = ExtResource("1_72gy5")
[node name="XROrigin3D" parent="." unique_id=2055526621 instance=ExtResource("2_8wkh3")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36171648, 0, 0.81835127)
[node name="MainMenuPanel3D" parent="." unique_id=1448860532 instance=ExtResource("16_vp")]
transform = Transform3D(5, 0, 0, 0, 5, 0, 0, 0, 5, 0.36171648, 2.0238447, -1.9758987)
screen_size = Vector2(0.6, 0.4)
scene = ExtResource("17_panel")
viewport_size = Vector2(600, 400)
transparent = 1
scene_properties_keys = PackedStringArray("main_menu_panel.gd")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1376644384]
transform = Transform3D(-0.8660254, -0.43301278, 0.24999999, 0.3022632, -0.05510214, 0.9516306, -0.39829266, 0.8997021, 0.17860365, 0, 0, 0)
[node name="Floor" type="StaticBody3D" parent="." unique_id=122279514]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floor" unique_id=958841648]
shape = SubResource("BoxShape3D_vlqg6")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor/CollisionShape3D" unique_id=1939997056]
mesh = SubResource("BoxMesh_24d3s")
[node name="Hob" parent="." unique_id=1687971542 instance=ExtResource("4_5kvh0")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.29336345, 0.5, -1.484)
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
environment = SubResource("Environment_bvwq1")
[node name="BurgerBuns" parent="." unique_id=1088240294 instance=ExtResource("6_bktvt")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5530176, 1.0505146, -1.3074328)
[node name="BurgerBunsDispenser" parent="." unique_id=1720683779 instance=ExtResource("7_1nkd0")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.568947, -0.018512607, -1.317366)
[node name="Plate" parent="." unique_id=190487773 instance=ExtResource("8_l1owj")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5717233, 1.1548845, 1.5373346)
[node name="burger" parent="." unique_id=1417604760 instance=ExtResource("9_220hi")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6888188, 1.0325116, -1.7110313)
[node name="burger2" parent="." unique_id=1584460510 instance=ExtResource("9_220hi")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6931299, 1.1429771, -1.71225)
[node name="burger3" parent="." unique_id=1884095916 instance=ExtResource("9_220hi")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.69027674, 1.1099085, -1.7210286)
[node name="burger4" parent="." unique_id=1844818864 instance=ExtResource("9_220hi")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.69134104, 1.0672915, -1.7210286)
[node name="Hamburger" parent="." unique_id=761091445 instance=ExtResource("10_qacki")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.9352558, 1.2334514, 1.2447833)
[node name="PickableObject" parent="." unique_id=1675596942 instance=ExtResource("11_npf8s")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, 0, -2.6077032e-08, 1.4901161e-08, 1, 0.6225724, 1.0654817, -1.0473135)
[node name="PickableObject2" parent="." unique_id=713087634 instance=ExtResource("11_npf8s")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, -5.293956e-23, -2.6077032e-08, 1.4901161e-08, 1, 0.6359743, 1.0501236, -1.1673055)
[node name="PickableObject3" parent="." unique_id=879935619 instance=ExtResource("11_npf8s")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, 0, -2.6077032e-08, 1.4901161e-08, 1, 0.5142721, 1.0654817, -1.0473135)
[node name="PickableObject4" parent="." unique_id=198541902 instance=ExtResource("11_npf8s")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, -5.293956e-23, -2.6077032e-08, 1.4901161e-08, 1, 0.5276739, 1.0501236, -1.1673055)
[node name="Hamburger2" parent="." unique_id=1349934579 instance=ExtResource("10_qacki")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.9857153, 1.1424131, 0.9472374)
[node name="PickableObject5" parent="." unique_id=1021333509 instance=ExtResource("11_npf8s")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, 0, -2.6077032e-08, 1.4901161e-08, 1, 0.73287535, 1.0922265, -1.0473135)
[node name="PickableObject6" parent="." unique_id=1268843669 instance=ExtResource("11_npf8s")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, -5.293956e-23, -2.6077032e-08, 1.4901161e-08, 1, 0.7462772, 1.0768684, -1.1673055)
[node name="Sink" parent="." unique_id=2055277359 instance=ExtResource("12_8apyq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.3147688, 0.5, -1.4940417)
[node name="DirtStation" parent="." unique_id=160842153 instance=ExtResource("13_jnwcx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.0864775, 0.5, -1.244947)
[node name="Plate2" parent="." unique_id=356790445 instance=ExtResource("8_l1owj")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5730225, 1.1085004, 0.59790254)
[node name="CookedBurger" parent="." unique_id=1127807542 instance=ExtResource("14_1lg2m")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.30782473, 1.1446649, -1.0928738)
[node name="CookedBurger2" parent="." unique_id=160088590 instance=ExtResource("14_1lg2m")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.30671906, 1.0522771, -1.0928738)
[node name="CookedBurger3" parent="." unique_id=992183367 instance=ExtResource("14_1lg2m")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.3344773, 1.0492828, -0.7096845)
[node name="CookedBurger4" parent="." unique_id=1837607086 instance=ExtResource("14_1lg2m")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.30671906, 1.098119, -1.0928738)
[node name="BurgerBuns2" parent="." unique_id=1210358958 instance=ExtResource("6_bktvt")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.3596323, 1.0205106, -0.22482127)
[node name="PickableObject7" parent="." unique_id=641653545 instance=ExtResource("11_npf8s")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, 0, -2.6077032e-08, 1.4901161e-08, 1, -1.3556751, 1.0887735, 0.28881657)
[node name="PickableObject8" parent="." unique_id=1733819363 instance=ExtResource("11_npf8s")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, -5.293956e-23, -2.6077032e-08, 1.4901161e-08, 1, -1.3422732, 1.0734154, 0.16882455)
[node name="PickableObject9" parent="." unique_id=12419746 instance=ExtResource("11_npf8s")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, 0, -2.6077032e-08, 1.4901161e-08, 1, -1.4639754, 1.0887735, 0.28881657)
[node name="PickableObject10" parent="." unique_id=313160217 instance=ExtResource("11_npf8s")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, -5.293956e-23, -2.6077032e-08, 1.4901161e-08, 1, -1.4505737, 1.0734154, 0.16882455)
[node name="Counter" parent="." unique_id=1487893288 instance=ExtResource("15_yy81s")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7124918, 0.5, -1.4886917)
[node name="Counter2" parent="." unique_id=368890752 instance=ExtResource("15_yy81s")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.7648025, 0.5, -0.4458799)
[node name="Counter3" parent="." unique_id=1498817646 instance=ExtResource("15_yy81s")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.7648025, 0.5, 0.55367994)
[node name="Counter4" parent="." unique_id=906748771 instance=ExtResource("15_yy81s")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.7648025, 0.5, 1.5539298)
[node name="Hamburger3" parent="." unique_id=369573848 instance=ExtResource("10_qacki")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.7201865, 1.142413, 0.14773655)
[node name="Plate3" parent="." unique_id=2004250522 instance=ExtResource("8_l1owj")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5818124, 1.1085004, -0.4634577)
+54
View File
@@ -0,0 +1,54 @@
[gd_scene format=3 uid="uid://c1nv4w33fedj6"]
[ext_resource type="Script" uid="uid://b4ldkd3ngs0vp" path="res://scripts/main.gd" id="1_rtw2f"]
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="2_rtw2f"]
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/xr_origin.tscn" id="3_tbmy8"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="4_jk1qb"]
[ext_resource type="PackedScene" uid="uid://jispfagyh1di" path="res://ui/main_menu_panel.tscn" id="5_rtw2f"]
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="6_oa1go"]
[sub_resource type="Environment" id="Environment_bvwq1"]
background_mode = 2
sky = ExtResource("2_rtw2f")
ambient_light_color = Color(1, 1, 1, 1)
ambient_light_sky_contribution = 0.49
reflected_light_source = 2
ssr_enabled = true
ssao_enabled = true
ssil_enabled = true
sdfgi_enabled = true
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
size = Vector3(50, 0.1, 50)
[sub_resource type="BoxMesh" id="BoxMesh_24d3s"]
material = ExtResource("6_oa1go")
size = Vector3(50, 0.1, 50)
[node name="Main" type="Node3D" unique_id=1312265607]
script = ExtResource("1_rtw2f")
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
environment = SubResource("Environment_bvwq1")
[node name="XROrigin3D" parent="." unique_id=2055526621 instance=ExtResource("3_tbmy8")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36171648, 0, 0.81835127)
[node name="MainMenuPanel3D" parent="." unique_id=1448860532 instance=ExtResource("4_jk1qb")]
transform = Transform3D(5, 0, 0, 0, 5, 0, 0, 0, 5, 0.36171648, 2.0238447, -1.9758987)
screen_size = Vector2(0.6, 0.4)
scene = ExtResource("5_rtw2f")
viewport_size = Vector2(600, 400)
scene_properties_keys = PackedStringArray("main_menu_panel.gd")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1376644384]
transform = Transform3D(-0.8660254, -0.43301278, 0.24999999, 0.3022632, -0.05510214, 0.9516306, -0.39829266, 0.8997021, 0.17860365, 0, 0, 0)
[node name="Floor" type="StaticBody3D" parent="." unique_id=122279514]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floor" unique_id=958841648]
shape = SubResource("BoxShape3D_vlqg6")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor/CollisionShape3D" unique_id=1939997056]
mesh = SubResource("BoxMesh_24d3s")
+47 -38
View File
@@ -1,34 +1,40 @@
[gd_scene format=3 uid="uid://c30i6h32w8p47"] [gd_scene format=3 uid="uid://c30i6h32w8p47"]
[ext_resource type="Script" uid="uid://d1cefhe3yyyds" path="res://Scenes/multiplayer_world.gd" id="1_kdan8"] [ext_resource type="Script" uid="uid://b4ldkd3ngs0vp" path="res://scripts/main.gd" id="1_4vwpp"]
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://XROrigin.tscn" id="2_g30gi"] [ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/xr_origin.tscn" id="1_pjkx2"]
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://Textures/dev_material_3d.tres" id="3_75ecy"] [ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="2_pjkx2"]
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://Textures/sky/NightSkyHDRI009_16K.tres" id="5_c3xgf"] [ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="3_4vwpp"]
[ext_resource type="Script" uid="uid://biu4qr3nr1eny" path="res://test/mp_test_driver.gd" id="99_mptst"] [ext_resource type="Script" uid="uid://dw3bfum87xs55" path="res://net/stations_spawner.gd" id="5_36d77"]
[ext_resource type="PackedScene" uid="uid://cey1s10v2xufq" path="res://content/kitchen_layouts/small_line.tscn" id="6_uvo4r"]
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"] [sub_resource type="Environment" id="Environment_uvo4r"]
size = Vector3(15, 0.1, 15)
[sub_resource type="BoxMesh" id="BoxMesh_24d3s"]
material = ExtResource("3_75ecy")
size = Vector3(15, 0.1, 15)
[sub_resource type="Environment" id="Environment_bvwq1"]
background_mode = 2 background_mode = 2
sky = ExtResource("5_c3xgf") sky = ExtResource("3_4vwpp")
ambient_light_color = Color(1, 1, 1, 1)
ambient_light_sky_contribution = 0.89
reflected_light_source = 2 reflected_light_source = 2
ssr_enabled = true ssr_enabled = true
ssao_enabled = true ssao_enabled = true
ssil_enabled = true ssil_enabled = true
sdfgi_enabled = true sdfgi_enabled = true
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
size = Vector3(15, 0.1, 15)
[sub_resource type="BoxMesh" id="BoxMesh_24d3s"]
material = ExtResource("2_pjkx2")
size = Vector3(15, 0.1, 15)
[sub_resource type="BoxShape3D" id="BoxShape3D_arao0"] [sub_resource type="BoxShape3D" id="BoxShape3D_arao0"]
size = Vector3(15, 20, 0.1) size = Vector3(15, 20, 0.1)
[node name="Main" type="Node3D" unique_id=1312265607] [node name="Main" type="Node3D" unique_id=1312265607]
script = ExtResource("1_kdan8") script = ExtResource("1_4vwpp")
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("2_g30gi")] [node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
environment = SubResource("Environment_uvo4r")
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("1_pjkx2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36171648, 0, 0.81835127) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36171648, 0, 0.81835127)
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1376644384] [node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1376644384]
@@ -44,37 +50,40 @@ shape = SubResource("BoxShape3D_vlqg6")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00018164515, 0.0006352663, -0.002532661) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00018164515, 0.0006352663, -0.002532661)
mesh = SubResource("BoxMesh_24d3s") mesh = SubResource("BoxMesh_24d3s")
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250] [node name="InvisibleWalls" type="StaticBody3D" parent="." unique_id=4404969]
environment = SubResource("Environment_bvwq1")
[node name="WorldContent" type="Node3D" parent="." unique_id=291550153] [node name="CollisionShape3D" type="CollisionShape3D" parent="InvisibleWalls" unique_id=998476672]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.197384, 7.589958)
shape = SubResource("BoxShape3D_arao0")
[node name="Players" type="Node3D" parent="." unique_id=1595463693] [node name="CollisionShape3D2" type="CollisionShape3D" parent="InvisibleWalls" unique_id=340303902]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.197384, -7.509142)
shape = SubResource("BoxShape3D_arao0")
[node name="ItemsSpawner" type="MultiplayerSpawner" parent="." unique_id=627119248] [node name="CollisionShape3D3" type="CollisionShape3D" parent="InvisibleWalls" unique_id=1193703037]
spawn_path = NodePath("../WorldContent") transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -7.438612, 9.197384, -0.018813243)
shape = SubResource("BoxShape3D_arao0")
[node name="CollisionShape3D4" type="CollisionShape3D" parent="InvisibleWalls" unique_id=1431367494]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 7.502467, 9.197384, -0.018813023)
shape = SubResource("BoxShape3D_arao0")
[node name="PlayersSpawner" type="MultiplayerSpawner" parent="." unique_id=106645565] [node name="PlayersSpawner" type="MultiplayerSpawner" parent="." unique_id=106645565]
_spawnable_scenes = PackedStringArray("res://Player/net_player.tscn") _spawnable_scenes = PackedStringArray("res://Player/net_player.tscn")
spawn_path = NodePath("../Players") spawn_path = NodePath("../Players")
[node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=4404969] [node name="Players" type="Node3D" parent="." unique_id=1595463693]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" unique_id=998476672] [node name="ItemsSpawner" type="MultiplayerSpawner" parent="." unique_id=627119248]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.197384, 7.589958) _spawnable_scenes = PackedStringArray("uid://dpot5qie20vf6", "uid://b3m2ag8g5rj4r", "uid://c0lknik4noobs", "uid://b3m2ag8g5rj4r", "uid://cfc4ho67u4r5e", "uid://e4i6o5oriecx")
shape = SubResource("BoxShape3D_arao0") spawn_path = NodePath("../Items")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D" unique_id=340303902] [node name="Items" type="Node3D" parent="." unique_id=291550153]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.197384, -7.509142)
shape = SubResource("BoxShape3D_arao0")
[node name="CollisionShape3D3" type="CollisionShape3D" parent="StaticBody3D" unique_id=1193703037] [node name="StationsSpawner" type="MultiplayerSpawner" parent="." unique_id=240083159]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -7.438612, 9.197384, -0.018813243) _spawnable_scenes = PackedStringArray("uid://c6rift56ql3f8", "uid://efaec6ymgabo", "uid://bbg7dwsbxxh1t", "uid://cnjwtnhwh0i8q", "uid://j7caslh27nor", "uid://ck5tuftqmyiue", "uid://cwnwo4i28upap", "uid://dvrk268s7gkxh", "uid://caf0xanmxbshy")
shape = SubResource("BoxShape3D_arao0") spawn_path = NodePath("../Stations")
script = ExtResource("5_36d77")
kitchen_scene = ExtResource("6_uvo4r")
[node name="CollisionShape3D4" type="CollisionShape3D" parent="StaticBody3D" unique_id=1431367494] [node name="Stations" type="Node3D" parent="." unique_id=1991170324]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 7.502467, 9.197384, -0.018813023)
shape = SubResource("BoxShape3D_arao0")
[node name="TestDriver" type="Node" parent="."]
script = ExtResource("99_mptst")
+8 -8
View File
@@ -1,13 +1,13 @@
[gd_scene format=3 uid="uid://dbgu4r127ke5v"] [gd_scene format=3 uid="uid://dbgu4r127ke5v"]
[ext_resource type="Script" uid="uid://b4ldkd3ngs0vp" path="res://main.gd" id="1_1ymas"] [ext_resource type="Script" uid="uid://b4ldkd3ngs0vp" path="res://scripts/main.gd" id="1_1ymas"]
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://Textures/sky/NightSkyHDRI009_16K.tres" id="2_1jq86"] [ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="2_1jq86"]
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://XROrigin.tscn" id="3_bryd6"] [ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/xr_origin.tscn" id="3_bryd6"]
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://Textures/dev_material_3d.tres" id="4_kpgm6"] [ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="4_kpgm6"]
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://Stations/Hob.tscn" id="5_gfdi7"] [ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="5_gfdi7"]
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://Stations/sink.tscn" id="6_fmmg3"] [ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="6_fmmg3"]
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://Stations/Counter.tscn" id="7_jnxsa"] [ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://stations/Counter.tscn" id="7_jnxsa"]
[ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://Items/PickupCube.tscn" id="8_xl5nn"] [ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://items/pickupcube.tscn" id="8_xl5nn"]
[sub_resource type="Environment" id="Environment_bvwq1"] [sub_resource type="Environment" id="Environment_bvwq1"]
background_mode = 2 background_mode = 2
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://mmasxwqyqmib" uid="uid://mmasxwqyqmib"
path="res://.godot/imported/220175__gameaudio__pop-click.wav-1330523e09eacb15d341a14b80e4481e.sample" path="res://.godot/imported/220175__gameaudio__pop-click.wav-6ef2d3317a82c347b715936ede79653a.sample"
[deps] [deps]
source_file="res://Sounds/220175__gameaudio__pop-click.wav" source_file="res://sounds/220175__gameaudio__pop-click.wav"
dest_files=["res://.godot/imported/220175__gameaudio__pop-click.wav-1330523e09eacb15d341a14b80e4481e.sample"] dest_files=["res://.godot/imported/220175__gameaudio__pop-click.wav-6ef2d3317a82c347b715936ede79653a.sample"]
[params] [params]
+3 -3
View File
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://ecva70pect61" uid="uid://ecva70pect61"
path="res://.godot/imported/220178__gameaudio__click.wav-ca46bf33c1c48e1e526f04c43ca7d450.sample" path="res://.godot/imported/220178__gameaudio__click.wav-566ebf31c82573e187ff8a1db97a7861.sample"
[deps] [deps]
source_file="res://Sounds/220178__gameaudio__click.wav" source_file="res://sounds/220178__gameaudio__click.wav"
dest_files=["res://.godot/imported/220178__gameaudio__click.wav-ca46bf33c1c48e1e526f04c43ca7d450.sample"] dest_files=["res://.godot/imported/220178__gameaudio__click.wav-566ebf31c82573e187ff8a1db97a7861.sample"]
[params] [params]
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://b3wxawyrvuc6s" uid="uid://b3wxawyrvuc6s"
path="res://.godot/imported/220179__gameaudio__click-metal-ting.wav-b01c457287fe42298a36c3de7c536c68.sample" path="res://.godot/imported/220179__gameaudio__click-metal-ting.wav-82be282871110eef8fea8249619832d7.sample"
[deps] [deps]
source_file="res://Sounds/220179__gameaudio__click-metal-ting.wav" source_file="res://sounds/220179__gameaudio__click-metal-ting.wav"
dest_files=["res://.godot/imported/220179__gameaudio__click-metal-ting.wav-b01c457287fe42298a36c3de7c536c68.sample"] dest_files=["res://.godot/imported/220179__gameaudio__click-metal-ting.wav-82be282871110eef8fea8249619832d7.sample"]
[params] [params]
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://b7sr2sb1ks5en" uid="uid://b7sr2sb1ks5en"
path="res://.godot/imported/220180__gameaudio__click-pop.wav-9e467150046193d705dd830885c89cd1.sample" path="res://.godot/imported/220180__gameaudio__click-pop.wav-32216325683d314fa3adc66d13e633f4.sample"
[deps] [deps]
source_file="res://Sounds/220180__gameaudio__click-pop.wav" source_file="res://sounds/220180__gameaudio__click-pop.wav"
dest_files=["res://.godot/imported/220180__gameaudio__click-pop.wav-9e467150046193d705dd830885c89cd1.sample"] dest_files=["res://.godot/imported/220180__gameaudio__click-pop.wav-32216325683d314fa3adc66d13e633f4.sample"]
[params] [params]
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://1ccsqbju32ey" uid="uid://1ccsqbju32ey"
path="res://.godot/imported/220187__gameaudio__loosedeny-casual-1.wav-cb0e560d42c6026ded2d2e240e614433.sample" path="res://.godot/imported/220187__gameaudio__loosedeny-casual-1.wav-2e7c1356ffec0a1e5b732b21f42e21a0.sample"
[deps] [deps]
source_file="res://Sounds/220187__gameaudio__loosedeny-casual-1.wav" source_file="res://sounds/220187__gameaudio__loosedeny-casual-1.wav"
dest_files=["res://.godot/imported/220187__gameaudio__loosedeny-casual-1.wav-cb0e560d42c6026ded2d2e240e614433.sample"] dest_files=["res://.godot/imported/220187__gameaudio__loosedeny-casual-1.wav-2e7c1356ffec0a1e5b732b21f42e21a0.sample"]
[params] [params]
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://bdnsgt7xt3261" uid="uid://bdnsgt7xt3261"
path="res://.godot/imported/220194__gameaudio__click-heavy.wav-aca40ed286d93eb365d527a162fd3129.sample" path="res://.godot/imported/220194__gameaudio__click-heavy.wav-43269bff3c60e2451b470f929c6b6bb8.sample"
[deps] [deps]
source_file="res://Sounds/220194__gameaudio__click-heavy.wav" source_file="res://sounds/220194__gameaudio__click-heavy.wav"
dest_files=["res://.godot/imported/220194__gameaudio__click-heavy.wav-aca40ed286d93eb365d527a162fd3129.sample"] dest_files=["res://.godot/imported/220194__gameaudio__click-heavy.wav-43269bff3c60e2451b470f929c6b6bb8.sample"]
[params] [params]
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://daiv8ubwdbidf" uid="uid://daiv8ubwdbidf"
path="res://.godot/imported/220195__gameaudio__click-wooden-1.wav-9368ef861eabf2cf1d5bd0db33c616c8.sample" path="res://.godot/imported/220195__gameaudio__click-wooden-1.wav-f161e2c5a53d686c65d143b45f33acb1.sample"
[deps] [deps]
source_file="res://Sounds/220195__gameaudio__click-wooden-1.wav" source_file="res://sounds/220195__gameaudio__click-wooden-1.wav"
dest_files=["res://.godot/imported/220195__gameaudio__click-wooden-1.wav-9368ef861eabf2cf1d5bd0db33c616c8.sample"] dest_files=["res://.godot/imported/220195__gameaudio__click-wooden-1.wav-f161e2c5a53d686c65d143b45f33acb1.sample"]
[params] [params]
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://qed775b4j1gg" uid="uid://qed775b4j1gg"
path="res://.godot/imported/220196__gameaudio__click-wooden-2.wav-45bb63efefaf817b60155beec9343d74.sample" path="res://.godot/imported/220196__gameaudio__click-wooden-2.wav-372f3d1af9c561baf2360e14b5b7050b.sample"
[deps] [deps]
source_file="res://Sounds/220196__gameaudio__click-wooden-2.wav" source_file="res://sounds/220196__gameaudio__click-wooden-2.wav"
dest_files=["res://.godot/imported/220196__gameaudio__click-wooden-2.wav-45bb63efefaf817b60155beec9343d74.sample"] dest_files=["res://.godot/imported/220196__gameaudio__click-wooden-2.wav-372f3d1af9c561baf2360e14b5b7050b.sample"]
[params] [params]
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://bqtk1adk8umbx" uid="uid://bqtk1adk8umbx"
path="res://.godot/imported/220197__gameaudio__click-basic.wav-9f173e2b7206278e95710ab077d62c32.sample" path="res://.godot/imported/220197__gameaudio__click-basic.wav-61aa24994882b9ab5848ecead3d7aba9.sample"
[deps] [deps]
source_file="res://Sounds/220197__gameaudio__click-basic.wav" source_file="res://sounds/220197__gameaudio__click-basic.wav"
dest_files=["res://.godot/imported/220197__gameaudio__click-basic.wav-9f173e2b7206278e95710ab077d62c32.sample"] dest_files=["res://.godot/imported/220197__gameaudio__click-basic.wav-61aa24994882b9ab5848ecead3d7aba9.sample"]
[params] [params]
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://ysgfx76jkx2q" uid="uid://ysgfx76jkx2q"
path="res://.godot/imported/220198__gameaudio__click-with-two-parts.wav-089977567529b37b0fd9cd019eb7b3c2.sample" path="res://.godot/imported/220198__gameaudio__click-with-two-parts.wav-23adbbdcc4d995994bf9700f6b6e244d.sample"
[deps] [deps]
source_file="res://Sounds/220198__gameaudio__click-with-two-parts.wav" source_file="res://sounds/220198__gameaudio__click-with-two-parts.wav"
dest_files=["res://.godot/imported/220198__gameaudio__click-with-two-parts.wav-089977567529b37b0fd9cd019eb7b3c2.sample"] dest_files=["res://.godot/imported/220198__gameaudio__click-with-two-parts.wav-23adbbdcc4d995994bf9700f6b6e244d.sample"]
[params] [params]
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://dtyh22ccebiv5" uid="uid://dtyh22ccebiv5"
path="res://.godot/imported/220199__gameaudio__click-higher.wav-d1c1550d99a0cc873012c4010877005b.sample" path="res://.godot/imported/220199__gameaudio__click-higher.wav-0ea6f7a1d32e528aace111f0ce8b9631.sample"
[deps] [deps]
source_file="res://Sounds/220199__gameaudio__click-higher.wav" source_file="res://sounds/220199__gameaudio__click-higher.wav"
dest_files=["res://.godot/imported/220199__gameaudio__click-higher.wav-d1c1550d99a0cc873012c4010877005b.sample"] dest_files=["res://.godot/imported/220199__gameaudio__click-higher.wav-0ea6f7a1d32e528aace111f0ce8b9631.sample"]
[params] [params]
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://cywjbbeintjew" uid="uid://cywjbbeintjew"
path="res://.godot/imported/220208__gameaudio__click-pop-two-part.wav-04cb5eb3e0b3459771dbab42bbd24be9.sample" path="res://.godot/imported/220208__gameaudio__click-pop-two-part.wav-9e40de3d9bebd124d0fe54a4f4cc4db9.sample"
[deps] [deps]
source_file="res://Sounds/220208__gameaudio__click-pop-two-part.wav" source_file="res://sounds/220208__gameaudio__click-pop-two-part.wav"
dest_files=["res://.godot/imported/220208__gameaudio__click-pop-two-part.wav-04cb5eb3e0b3459771dbab42bbd24be9.sample"] dest_files=["res://.godot/imported/220208__gameaudio__click-pop-two-part.wav-9e40de3d9bebd124d0fe54a4f4cc4db9.sample"]
[params] [params]
@@ -3,12 +3,12 @@
importer="wav" importer="wav"
type="AudioStreamWAV" type="AudioStreamWAV"
uid="uid://claw3d2wnyr6a" uid="uid://claw3d2wnyr6a"
path="res://.godot/imported/220212__gameaudio__ping-bing.wav-2a1049829e71a0034c7e8d18745663f1.sample" path="res://.godot/imported/220212__gameaudio__ping-bing.wav-04a5460471fa8fe82fe5d9bc5d946bb0.sample"
[deps] [deps]
source_file="res://Sounds/220212__gameaudio__ping-bing.wav" source_file="res://sounds/220212__gameaudio__ping-bing.wav"
dest_files=["res://.godot/imported/220212__gameaudio__ping-bing.wav-2a1049829e71a0034c7e8d18745663f1.sample"] dest_files=["res://.godot/imported/220212__gameaudio__ping-bing.wav-04a5460471fa8fe82fe5d9bc5d946bb0.sample"]
[params] [params]
+3 -3
View File
@@ -3,12 +3,12 @@
importer="mp3" importer="mp3"
type="AudioStreamMP3" type="AudioStreamMP3"
uid="uid://clkjwcawdqvta" uid="uid://clkjwcawdqvta"
path="res://.godot/imported/money.mp3-95c717b8402507d80974f4f4287b0b63.mp3str" path="res://.godot/imported/money.mp3-e3eae11b0c1923c268268b900bde9157.mp3str"
[deps] [deps]
source_file="res://Sounds/money.mp3" source_file="res://sounds/money.mp3"
dest_files=["res://.godot/imported/money.mp3-95c717b8402507d80974f4f4287b0b63.mp3str"] dest_files=["res://.godot/imported/money.mp3-e3eae11b0c1923c268268b900bde9157.mp3str"]
[params] [params]
+7 -3
View File
@@ -1,14 +1,15 @@
[gd_scene format=3 uid="uid://c6rift56ql3f8"] [gd_scene format=3 uid="uid://c6rift56ql3f8"]
[ext_resource type="Script" uid="uid://0y6wnjcsum6" path="res://Stations/item_dispenser.gd" id="1_myl3s"] [ext_resource type="Script" uid="uid://0y6wnjcsum6" path="res://stations/item_dispenser.gd" id="1_myl3s"]
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="1_p30r1"] [ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="1_p30r1"]
[ext_resource type="PackedScene" uid="uid://c0lknik4noobs" path="res://Items/BurgerBuns.tscn" id="2_1q74o"] [ext_resource type="PackedScene" uid="uid://c0lknik4noobs" path="res://items/burger_buns.tscn" id="2_1q74o"]
[ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://Prefabs/slide_off_dome.tscn" id="4_rf1b2"] [ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="4_rf1b2"]
[sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"] [sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"]
radius = 0.3 radius = 0.3
[sub_resource type="CylinderShape3D" id="CylinderShape3D_24d3s"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_24d3s"]
height = 1.0
radius = 0.3 radius = 0.3
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vlqg6"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vlqg6"]
@@ -30,6 +31,7 @@ metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
shape = SubResource("SphereShape3D_xmbo2") shape = SubResource("SphereShape3D_xmbo2")
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1470079357] [node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1470079357]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
shape = SubResource("CylinderShape3D_24d3s") shape = SubResource("CylinderShape3D_24d3s")
[node name="SlideOffDome" parent="." unique_id=1427609426 instance=ExtResource("4_rf1b2")] [node name="SlideOffDome" parent="." unique_id=1427609426 instance=ExtResource("4_rf1b2")]
@@ -37,7 +39,9 @@ shape = SubResource("CylinderShape3D_24d3s")
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=1746426494] [node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=1746426494]
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=858311379] [node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=858311379]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
radius = 0.3 radius = 0.3
height = 1.0
sides = 32 sides = 32
[node name="CSGCombiner3DBuns" type="CSGCombiner3D" parent="CSGCombiner3D" unique_id=1459017790] [node name="CSGCombiner3DBuns" type="CSGCombiner3D" parent="CSGCombiner3D" unique_id=1459017790]
+4 -2
View File
@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://efaec6ymgabo"] [gd_scene format=3 uid="uid://efaec6ymgabo"]
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="1_dlkho"] [ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="1_dlkho"]
[ext_resource type="AudioStream" uid="uid://bqtk1adk8umbx" path="res://Sounds/220197__gameaudio__click-basic.wav" id="2_0aadn"] [ext_resource type="AudioStream" uid="uid://bqtk1adk8umbx" path="res://sounds/220197__gameaudio__click-basic.wav" id="2_0aadn"]
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"] [sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
size = Vector3(0.6, 1, 0.6) size = Vector3(0.6, 1, 0.6)
@@ -21,10 +21,11 @@ albedo_color = Color(1.1759251, 0.741115, 0.5692133, 1)
[node name="Counter" type="StaticBody3D" unique_id=1487893288 groups=["station"]] [node name="Counter" type="StaticBody3D" unique_id=1487893288 groups=["station"]]
[node name="CollisionShape3DCuttingBoard" type="CollisionShape3D" parent="." unique_id=706340473] [node name="CollisionShape3DCuttingBoard" type="CollisionShape3D" parent="." unique_id=706340473]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.49513447, 0)
shape = SubResource("BoxShape3D_24d3s") shape = SubResource("BoxShape3D_24d3s")
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=1647380272 groups=["station"]] [node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=1647380272 groups=["station"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5608841, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0560187, 0)
collision_layer = 65536 collision_layer = 65536
collision_mask = 65540 collision_mask = 65540
script = ExtResource("1_dlkho") script = ExtResource("1_dlkho")
@@ -39,6 +40,7 @@ shape = SubResource("BoxShape3D_1ntq7")
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="XRToolsSnapZone" unique_id=1786831079] [node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="XRToolsSnapZone" unique_id=1786831079]
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=451757283] [node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=451757283]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.49513447, 0)
use_collision = true use_collision = true
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D" unique_id=305755330] [node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D" unique_id=305755330]
+103 -22
View File
@@ -1,11 +1,19 @@
[gd_scene format=3 uid="uid://j7caslh27nor"] [gd_scene format=3 uid="uid://j7caslh27nor"]
[ext_resource type="Script" uid="uid://bsn8vhv5adxdo" path="res://Stations/hob.gd" id="1_7jc4g"] [ext_resource type="Script" uid="uid://bsn8vhv5adxdo" path="res://stations/hob.gd" id="1_34vy5"]
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="2_er1dp"] [ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="2_xy5oe"]
[ext_resource type="AudioStream" uid="uid://bqtk1adk8umbx" path="res://Sounds/220197__gameaudio__click-basic.wav" id="3_6oyg1"] [ext_resource type="AudioStream" uid="uid://bqtk1adk8umbx" path="res://sounds/220197__gameaudio__click-basic.wav" id="3_aqrs6"]
[ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://UI/progress_bar.tscn" id="3_7uuqv"] [ext_resource type="Material" uid="uid://d1djvskv4n4m3" path="res://textures/hob_off.tres" id="4_34vy5"]
[ext_resource type="Material" uid="uid://d1djvskv4n4m3" path="res://Textures/hob_off.tres" id="4_8qpxk"] [ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://ui/progress_bar.tscn" id="5_m4alr"]
[ext_resource type="Material" uid="uid://db7c7w4apwti7" path="res://Textures/hob_on.tres" id="6_m7l4u"] [ext_resource type="Material" uid="uid://db7c7w4apwti7" path="res://textures/hob_on.tres" id="6_xy5oe"]
[ext_resource type="Script" uid="uid://bu0g23cfrqy0m" path="res://stations/station_movement.gd" id="7_tjce5"]
[ext_resource type="Script" uid="uid://bfrlpbsqg5lqr" path="res://addons/godot-xr-tools/objects/pickable.gd" id="8_f2m64"]
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="9_7mmlt"]
[ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="10_jnfpx"]
[ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="11_4me6o"]
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="12_tlp5u"]
[ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="13_vttml"]
[ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://net/net_pickable.gd" id="14_glc7b"]
[sub_resource type="BoxShape3D" id="BoxShape3D_kdxnr"] [sub_resource type="BoxShape3D" id="BoxShape3D_kdxnr"]
size = Vector3(0.6, 1, 0.6) size = Vector3(0.6, 1, 0.6)
@@ -25,6 +33,12 @@ properties/1/replication_mode = 1
properties/2/path = NodePath(".:cooking_result") properties/2/path = NodePath(".:cooking_result")
properties/2/spawn = true properties/2/spawn = true
properties/2/replication_mode = 1 properties/2/replication_mode = 1
properties/3/path = NodePath(".:position")
properties/3/spawn = true
properties/3/replication_mode = 1
properties/4/path = NodePath(".:rotation")
properties/4/spawn = true
properties/4/replication_mode = 1
[sub_resource type="Animation" id="Animation_7uuqv"] [sub_resource type="Animation" id="Animation_7uuqv"]
length = 0.001 length = 0.001
@@ -38,7 +52,7 @@ tracks/0/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 1, "update": 1,
"values": [ExtResource("4_8qpxk")] "values": [ExtResource("4_34vy5")]
} }
tracks/1/type = "value" tracks/1/type = "value"
tracks/1/imported = false tracks/1/imported = false
@@ -50,7 +64,7 @@ tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 1, "update": 1,
"values": [ExtResource("4_8qpxk")] "values": [ExtResource("4_34vy5")]
} }
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
@@ -62,7 +76,7 @@ tracks/2/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 1, "update": 1,
"values": [ExtResource("4_8qpxk")] "values": [ExtResource("4_34vy5")]
} }
tracks/3/type = "value" tracks/3/type = "value"
tracks/3/imported = false tracks/3/imported = false
@@ -102,7 +116,7 @@ tracks/0/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 1, "update": 1,
"values": [ExtResource("6_m7l4u")] "values": [ExtResource("6_xy5oe")]
} }
tracks/1/type = "value" tracks/1/type = "value"
tracks/1/imported = false tracks/1/imported = false
@@ -114,7 +128,7 @@ tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 1, "update": 1,
"values": [ExtResource("6_m7l4u")] "values": [ExtResource("6_xy5oe")]
} }
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
@@ -126,7 +140,7 @@ tracks/2/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 1, "update": 1,
"values": [ExtResource("6_m7l4u")] "values": [ExtResource("6_xy5oe")]
} }
tracks/3/type = "value" tracks/3/type = "value"
tracks/3/imported = false tracks/3/imported = false
@@ -159,18 +173,50 @@ _data = {
&"hob": SubResource("Animation_6oyg1") &"hob": SubResource("Animation_6oyg1")
} }
[sub_resource type="BoxShape3D" id="BoxShape3D_m1xbq"]
size = Vector3(0.1, 0.1, 0.1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
albedo_color = Color(0.1764706, 1, 1, 1)
[sub_resource type="BoxMesh" id="BoxMesh_vlqg6"]
material = SubResource("StandardMaterial3D_24d3s")
size = Vector3(0.1, 0.1, 0.1)
[sub_resource type="Resource" id="Resource_lc22d"]
script = ExtResource("11_4me6o")
closed_pose = ExtResource("10_jnfpx")
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
[sub_resource type="Resource" id="Resource_qyiot"]
script = ExtResource("11_4me6o")
closed_pose = ExtResource("13_vttml")
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_cube"]
properties/0/path = NodePath(".:position")
properties/0/spawn = false
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
[node name="Hob" type="StaticBody3D" unique_id=1687971542 groups=["station"]] [node name="Hob" type="StaticBody3D" unique_id=1687971542 groups=["station"]]
script = ExtResource("1_7jc4g") script = ExtResource("1_34vy5")
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1283846023] [node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1283846023]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.50658906, 0)
shape = SubResource("BoxShape3D_kdxnr") shape = SubResource("BoxShape3D_kdxnr")
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=538157739 groups=["station"]] [node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=538157739 groups=["station"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5270121, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0336012, 0)
collision_layer = 65536 collision_layer = 65536
collision_mask = 65540 collision_mask = 65540
script = ExtResource("2_er1dp") script = ExtResource("2_xy5oe")
stash_sound = ExtResource("3_6oyg1") stash_sound = ExtResource("3_aqrs6")
snap_mode = 1 snap_mode = 1
metadata/_custom_type_script = "uid://cquqe4f1m1sw6" metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
@@ -182,6 +228,7 @@ shape = SubResource("BoxShape3D_7uuqv")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.022546828, -0.5270121, 0.36528283) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.022546828, -0.5270121, 0.36528283)
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=70901698] [node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=70901698]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.50658906, 0)
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1111505172] [node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1111505172]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.00894776) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.00894776)
@@ -199,21 +246,21 @@ transform = Transform3D(0.8943019, 0, 0, 0, 0.8943019, 0, 0, 0, 0.8943019, 0, 0.
inner_radius = 0.09153879 inner_radius = 0.09153879
outer_radius = 0.120084204 outer_radius = 0.120084204
sides = 32 sides = 32
material = ExtResource("4_8qpxk") material = ExtResource("4_34vy5")
[node name="CSGTorus3D2" type="CSGTorus3D" parent="CSGCombiner3D" unique_id=24541894] [node name="CSGTorus3D2" type="CSGTorus3D" parent="CSGCombiner3D" unique_id=24541894]
transform = Transform3D(0.8943019, 0, 0, 0, 0.8943019, 0, 0, 0, 0.8943019, 0, 0.5003869, -7.827557e-05) transform = Transform3D(0.8943019, 0, 0, 0, 0.8943019, 0, 0, 0, 0.8943019, 0, 0.5003869, -7.827557e-05)
inner_radius = 0.15036294 inner_radius = 0.15036294
outer_radius = 0.17592031 outer_radius = 0.17592031
sides = 32 sides = 32
material = ExtResource("4_8qpxk") material = ExtResource("4_34vy5")
[node name="CSGTorus3D" type="CSGTorus3D" parent="CSGCombiner3D" unique_id=1901978664] [node name="CSGTorus3D" type="CSGTorus3D" parent="CSGCombiner3D" unique_id=1901978664]
transform = Transform3D(0.8943019, 0, 0, 0, 0.8943019, 0, 0, 0, 0.8943019, 0, 0.5003869, -7.827557e-05) transform = Transform3D(0.8943019, 0, 0, 0, 0.8943019, 0, 0, 0, 0.8943019, 0, 0.5003869, -7.827557e-05)
inner_radius = 0.20426142 inner_radius = 0.20426142
outer_radius = 0.2321898 outer_radius = 0.2321898
sides = 32 sides = 32
material = ExtResource("4_8qpxk") material = ExtResource("4_34vy5")
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1107239311] [node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1107239311]
transform = Transform3D(0.8943019, 0, 0, 0, 0.8943019, 0, 0, 0, 0.8943019, 0, 0.4498226, -7.827557e-05) transform = Transform3D(0.8943019, 0, 0, 0, 0.8943019, 0, 0, 0, 0.8943019, 0, 0.4498226, -7.827557e-05)
@@ -265,14 +312,48 @@ size = Vector3(0.55, 0.096, 0.14)
[node name="Sync" type="MultiplayerSynchronizer" parent="." unique_id=768992259] [node name="Sync" type="MultiplayerSynchronizer" parent="." unique_id=768992259]
replication_config = SubResource("SceneReplicationConfig_np_hob") replication_config = SubResource("SceneReplicationConfig_np_hob")
[node name="ProgressBar3D" parent="." unique_id=654673176 instance=ExtResource("3_7uuqv")] [node name="ProgressBar3D" parent="." unique_id=654673176 instance=ExtResource("5_m4alr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.74736404, -0.09216304) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2539531, -0.09216304)
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1525460719] [node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1525460719]
libraries/ = SubResource("AnimationLibrary_ac5f3") libraries/ = SubResource("AnimationLibrary_ac5f3")
[node name="OmniLight3D" type="OmniLight3D" parent="." unique_id=1618457623] [node name="OmniLight3D" type="OmniLight3D" parent="." unique_id=1618457623]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5053487, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0119377, 0)
light_color = Color(1, 0.13725491, 0, 1) light_color = Color(1, 0.13725491, 0, 1)
light_energy = 0.0 light_energy = 0.0
omni_range = 0.5 omni_range = 0.5
[node name="Movement" type="Node3D" parent="." unique_id=1818087979]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.50658906, 0)
script = ExtResource("7_tjce5")
[node name="MoveHandle" type="RigidBody3D" parent="Movement" unique_id=1675596942 groups=["platalbe_item"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.92786825, 0)
collision_layer = 4
collision_mask = 196615
axis_lock_linear_y = true
axis_lock_angular_x = true
axis_lock_angular_z = true
mass = 0.004
gravity_scale = 0.0
linear_damp = 100.0
script = ExtResource("8_f2m64")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Movement/MoveHandle" unique_id=1023455695]
shape = SubResource("BoxShape3D_m1xbq")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Movement/MoveHandle" unique_id=1223689787]
mesh = SubResource("BoxMesh_vlqg6")
[node name="GrabPointHandLeft" parent="Movement/MoveHandle" unique_id=1571481674 instance=ExtResource("9_7mmlt")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.067650706, 0.04601878, -0.08606844)
hand_pose = SubResource("Resource_lc22d")
[node name="GrabPointHandRight" parent="Movement/MoveHandle" unique_id=514404634 instance=ExtResource("12_tlp5u")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06531982, 0.042291984, -0.08604182)
hand_pose = SubResource("Resource_qyiot")
[node name="NetPickable" type="MultiplayerSynchronizer" parent="Movement/MoveHandle" unique_id=1858332513]
replication_config = SubResource("SceneReplicationConfig_np_cube")
script = ExtResource("14_glc7b")
-3
View File
@@ -1,3 +0,0 @@
[gd_scene format=3 uid="uid://cwwnbx5uat3fw"]
[node name="CSGBox3D" type="CSGBox3D" unique_id=725518829]
@@ -1,9 +1,9 @@
[gd_scene format=3 uid="uid://bbg7dwsbxxh1t"] [gd_scene format=3 uid="uid://bbg7dwsbxxh1t"]
[ext_resource type="Script" uid="uid://0y6wnjcsum6" path="res://Stations/item_dispenser.gd" id="1_4m60m"] [ext_resource type="Script" uid="uid://0y6wnjcsum6" path="res://stations/item_dispenser.gd" id="1_4m60m"]
[ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://Items/PickupCube.tscn" id="2_nn8tr"] [ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://items/pickupcube.tscn" id="2_nn8tr"]
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="3_ahn1e"] [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"] [ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="4_nn8tr"]
[sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"] [sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"]
radius = 0.3 radius = 0.3
+2 -2
View File
@@ -7,8 +7,8 @@ func _ready() -> void:
snap_zone.has_picked_up.connect(_makeDirty) snap_zone.has_picked_up.connect(_makeDirty)
func _makeDirty(item) -> void: func _makeDirty(item) -> void:
if not NetworkManager.owns_world(): #if not NetworkManager.owns_world():
return #return
var plate: PlateController = item.get_node_or_null("PlateController") as PlateController var plate: PlateController = item.get_node_or_null("PlateController") as PlateController
if not plate: if not plate:
print("Dirt Station: held object is not a Plate") print("Dirt Station: held object is not a Plate")
+1 -1
View File
@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://cnjwtnhwh0i8q"] [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="Script" uid="uid://q7tpwmrbmu1m" path="res://stations/dirt_station.gd" id="1_hc1d4"]
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="2_v0ytd"] [ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="2_v0ytd"]
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"] [sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
+10 -7
View File
@@ -1,6 +1,6 @@
extends StaticBody3D extends StaticBody3D
const RECIPE_MANAGER = preload("res://RecipeManager.gd") const RECIPE_MANAGER = preload("res://scripts/recipe_Manager.gd")
@export var cook_speed = 1 @export var cook_speed = 1
@onready var snap_zone: XRToolsSnapZone = $XRToolsSnapZone @onready var snap_zone: XRToolsSnapZone = $XRToolsSnapZone
@@ -70,7 +70,7 @@ func _refresh_display() -> void:
func _on_object_picked_up(_item) -> void: func _on_object_picked_up(_item) -> void:
print("Hob: object picked up: ", _item) print("Hob: object picked up: ", _item)
# Find the CookableItem in held object # Find the FoodItem in held object
var _food_item = _item.get_node_or_null("FoodItem") as FoodItem var _food_item = _item.get_node_or_null("FoodItem") as FoodItem
if not _food_item: if not _food_item:
print("Hob: held object is not a FoodItem") print("Hob: held object is not a FoodItem")
@@ -94,8 +94,8 @@ func _on_object_dropped() -> void:
func convert_held_to_item(_item: String) -> void: func convert_held_to_item(_item: String) -> void:
if not NetworkManager.owns_world(): #if not NetworkManager.owns_world():
return #return
print("Hob converting ", _item) print("Hob converting ", _item)
var old_pickable = snap_zone.picked_up_object var old_pickable = snap_zone.picked_up_object
@@ -106,12 +106,15 @@ func convert_held_to_item(_item: String) -> void:
# Spawn the new item through the server so it replicates to every peer # Spawn the new item through the server so it replicates to every peer
# (including late joiners), in the old item's position. # (including late joiners), in the old item's position.
var original_transform = old_pickable.global_transform var original_transform = old_pickable.global_transform
var new_scene_instance = NetworkManager.spawn_item(RECIPE_MANAGER.get_item_scene(_item).resource_path, original_transform) #var new_scene_instance = NetworkManager.spawn_item(RECIPE_MANAGER.get_item_scene(_item).resource_path, original_transform)
var new_scene_instance = RECIPE_MANAGER.get_item_scene(_item).instantiate()
get_tree().root.add_child(new_scene_instance)
new_scene_instance.transform = original_transform
# Drop and free the old item and pick up the new one # Drop and free the old item and pick up the new one
print("Hob freeing old_pickable ", old_pickable) print("Hob freeing old_pickable ", old_pickable)
snap_zone.drop_object() snap_zone.drop_object()
NetworkManager.despawn_item(old_pickable) old_pickable.queue_free()
snap_zone.pick_up_object(new_scene_instance) snap_zone.pick_up_object(new_scene_instance)
+6 -3
View File
@@ -13,8 +13,11 @@ func _ready() -> void:
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void: func _process(delta: float) -> void:
if not NetworkManager.owns_world(): #if not NetworkManager.owns_world():
return #return
if not snap_zone.picked_up_object: if not snap_zone.picked_up_object:
var new_item = NetworkManager.spawn_item(item_scene.resource_path, snap_zone.global_transform) #var new_item = NetworkManager.spawn_item(item_scene.resource_path, snap_zone.global_transform)
var new_item = item_scene.instantiate()
get_tree().root.add_child(new_item)
new_item.transform = snap_zone.global_transform
snap_zone.pick_up_object(new_item) snap_zone.pick_up_object(new_item)
+7 -3
View File
@@ -1,14 +1,15 @@
[gd_scene format=3 uid="uid://ck5tuftqmyiue"] [gd_scene format=3 uid="uid://ck5tuftqmyiue"]
[ext_resource type="Script" uid="uid://0y6wnjcsum6" path="res://Stations/item_dispenser.gd" id="1_jm0ik"] [ext_resource type="Script" uid="uid://0y6wnjcsum6" path="res://stations/item_dispenser.gd" id="1_jm0ik"]
[ext_resource type="PackedScene" uid="uid://bp3v1jl8pctro" path="res://Containers/plate.tscn" id="2_tfo2i"] [ext_resource type="PackedScene" uid="uid://bp3v1jl8pctro" path="res://containers/plate.tscn" id="2_tfo2i"]
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="3_lr065"] [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"] [ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="4_tfo2i"]
[sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"] [sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"]
radius = 0.3 radius = 0.3
[sub_resource type="CylinderShape3D" id="CylinderShape3D_24d3s"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_24d3s"]
height = 1.0
radius = 0.3 radius = 0.3
[node name="PlateDispenser" type="StaticBody3D" unique_id=710538846] [node name="PlateDispenser" type="StaticBody3D" unique_id=710538846]
@@ -27,6 +28,7 @@ metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
shape = SubResource("SphereShape3D_xmbo2") shape = SubResource("SphereShape3D_xmbo2")
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=831688237] [node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=831688237]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
shape = SubResource("CylinderShape3D_24d3s") shape = SubResource("CylinderShape3D_24d3s")
[node name="SlideOffDome" parent="." unique_id=1427609426 instance=ExtResource("4_tfo2i")] [node name="SlideOffDome" parent="." unique_id=1427609426 instance=ExtResource("4_tfo2i")]
@@ -35,7 +37,9 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.061363697, 0)
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=696108271] [node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=696108271]
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1339763385] [node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1339763385]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
radius = 0.3 radius = 0.3
height = 1.0
sides = 32 sides = 32
[node name="Plates" type="Node3D" parent="." unique_id=1364909922] [node name="Plates" type="Node3D" parent="." unique_id=1364909922]
+8 -4
View File
@@ -1,15 +1,16 @@
[gd_scene format=3 uid="uid://cwnwo4i28upap"] [gd_scene format=3 uid="uid://cwnwo4i28upap"]
[ext_resource type="Script" uid="uid://0y6wnjcsum6" path="res://Stations/item_dispenser.gd" id="1_gkb3v"] [ext_resource type="Script" uid="uid://0y6wnjcsum6" path="res://stations/item_dispenser.gd" id="1_gkb3v"]
[ext_resource type="PackedScene" uid="uid://dpot5qie20vf6" path="res://Items/burger.tscn" id="2_mep2a"] [ext_resource type="PackedScene" uid="uid://dpot5qie20vf6" path="res://items/burger.tscn" id="2_mep2a"]
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="3_3xuvi"] [ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="3_3xuvi"]
[ext_resource type="Texture2D" uid="uid://cexxfyw03hr81" path="res://Textures/1.png" id="4_1f5le"] [ext_resource type="Texture2D" uid="uid://cexxfyw03hr81" path="res://textures/1.png" id="4_1f5le"]
[ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://Prefabs/slide_off_dome.tscn" id="5_mep2a"] [ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="5_mep2a"]
[sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"] [sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"]
radius = 0.3 radius = 0.3
[sub_resource type="CylinderShape3D" id="CylinderShape3D_24d3s"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_24d3s"]
height = 1.0
radius = 0.3 radius = 0.3
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_di04w"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_di04w"]
@@ -33,12 +34,15 @@ shape = SubResource("SphereShape3D_xmbo2")
[node name="SlideOffDome" parent="." unique_id=1427609426 instance=ExtResource("5_mep2a")] [node name="SlideOffDome" parent="." unique_id=1427609426 instance=ExtResource("5_mep2a")]
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=378049928] [node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=378049928]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
shape = SubResource("CylinderShape3D_24d3s") shape = SubResource("CylinderShape3D_24d3s")
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=1275577257] [node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=1275577257]
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1973748218] [node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1973748218]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.50180435, 0)
radius = 0.3 radius = 0.3
height = 1.0
sides = 32 sides = 32
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=590219609] [node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=590219609]
+9 -6
View File
@@ -1,8 +1,8 @@
[gd_scene format=4 uid="uid://dvrk268s7gkxh"] [gd_scene format=4 uid="uid://dvrk268s7gkxh"]
[ext_resource type="Script" uid="uid://byh5j25mwt3oc" path="res://Stations/sink.gd" id="1_7hh4b"] [ext_resource type="Script" uid="uid://byh5j25mwt3oc" path="res://stations/sink.gd" id="1_7hh4b"]
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="2_3ocod"] [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"] [ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://ui/progress_bar.tscn" id="4_1pinr"]
[sub_resource type="BoxShape3D" id="BoxShape3D_l02yb"] [sub_resource type="BoxShape3D" id="BoxShape3D_l02yb"]
size = Vector3(0.6, 0.9610596, 0.6) size = Vector3(0.6, 0.9610596, 0.6)
@@ -185,11 +185,11 @@ height = 0.04
script = ExtResource("1_7hh4b") script = ExtResource("1_7hh4b")
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=964735164] [node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=964735164]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.019470215, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4605298, 0)
shape = SubResource("BoxShape3D_l02yb") shape = SubResource("BoxShape3D_l02yb")
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=1762550988 groups=["station"]] [node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=1762550988 groups=["station"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.44614658, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.92614657, 0)
collision_layer = 65536 collision_layer = 65536
collision_mask = 65540 collision_mask = 65540
script = ExtResource("2_3ocod") script = ExtResource("2_3ocod")
@@ -204,6 +204,7 @@ shape = SubResource("BoxShape3D_ai6d4")
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="XRToolsSnapZone" unique_id=1926328538] [node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="XRToolsSnapZone" unique_id=1926328538]
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=311064646] [node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=311064646]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.48000002, 0)
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1147823280] [node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1147823280]
size = Vector3(0.6, 1, 0.6) size = Vector3(0.6, 1, 0.6)
@@ -238,9 +239,10 @@ size = Vector3(1, 1.2053223, 0.352417)
replication_config = SubResource("SceneReplicationConfig_np_sink") replication_config = SubResource("SceneReplicationConfig_np_sink")
[node name="ProgressBar3D" parent="." unique_id=654673176 instance=ExtResource("4_1pinr")] [node name="ProgressBar3D" parent="." unique_id=654673176 instance=ExtResource("4_1pinr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8164611, -0.035980098) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2964611, -0.035980098)
[node name="bubbles" type="CSGCombiner3D" parent="." unique_id=1624244242] [node name="bubbles" type="CSGCombiner3D" parent="." unique_id=1624244242]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.48000002, 0)
visible = false visible = false
[node name="CSGSphere3D" type="CSGSphere3D" parent="bubbles" unique_id=1363004819] [node name="CSGSphere3D" type="CSGSphere3D" parent="bubbles" unique_id=1363004819]
@@ -259,6 +261,7 @@ radius = 0.08
material = SubResource("StandardMaterial3D_0gbf8") material = SubResource("StandardMaterial3D_0gbf8")
[node name="water" type="CSGCombiner3D" parent="." unique_id=1050686091] [node name="water" type="CSGCombiner3D" parent="." unique_id=1050686091]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.48000002, 0)
visible = false visible = false
[node name="CSGBox3D" type="CSGBox3D" parent="water" unique_id=1224655006] [node name="CSGBox3D" type="CSGBox3D" parent="water" unique_id=1224655006]
@@ -273,7 +276,7 @@ libraries/ = SubResource("AnimationLibrary_u2x8c")
stream = SubResource("AudioStreamWAV_ai6d4") stream = SubResource("AudioStreamWAV_ai6d4")
[node name="GPUParticles3D" type="GPUParticles3D" parent="." unique_id=1688415718] [node name="GPUParticles3D" type="GPUParticles3D" parent="." unique_id=1688415718]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0002603531, 0.6479259, -0.03759767) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0002603531, 1.1279259, -0.03759767)
visible = false visible = false
process_material = SubResource("ParticleProcessMaterial_hrheb") process_material = SubResource("ParticleProcessMaterial_hrheb")
draw_pass_1 = SubResource("SphereMesh_bvwq1") draw_pass_1 = SubResource("SphereMesh_bvwq1")
+18
View File
@@ -0,0 +1,18 @@
extends Node3D
@onready var move_handle: XRToolsPickable = $MoveHandle
@onready var move_handle_rigid: RigidBody3D = $MoveHandle
@onready var hob: StaticBody3D = $".."
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
move_handle_rigid.linear_velocity = Vector3.ZERO
move_handle_rigid.angular_velocity = Vector3.ZERO
hob.global_position.x = move_handle.global_position.x
hob.global_position.z = move_handle.global_position.z
+1
View File
@@ -0,0 +1 @@
uid://bu0g23cfrqy0m
+2 -1
View File
@@ -1,7 +1,8 @@
class_name Table class_name Table
extends StaticBody3D extends StaticBody3D
const GAME_MANAGER = preload("res://GameManager.gd") const GAME_MANAGER = preload("res://scripts/game_manager.gd")
@export var thinking_duration: float = 3.0 @export var thinking_duration: float = 3.0
@export var primary_duration: float = 60.0 @export var primary_duration: float = 60.0
+16 -16
View File
@@ -1,10 +1,10 @@
[gd_scene format=3 uid="uid://caf0xanmxbshy"] [gd_scene format=3 uid="uid://caf0xanmxbshy"]
[ext_resource type="Script" uid="uid://caeikc7e3igkd" path="res://Stations/table.gd" id="1_2vcpj"] [ext_resource type="Script" uid="uid://caeikc7e3igkd" path="res://stations/table.gd" id="1_aecp7"]
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="1_8j1nt"] [ext_resource type="AudioStream" uid="uid://clkjwcawdqvta" path="res://sounds/money.mp3" id="2_5mi7y"]
[ext_resource type="AudioStream" uid="uid://clkjwcawdqvta" path="res://Sounds/money.mp3" id="2_jslhm"] [ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="3_03yai"]
[ext_resource type="AudioStream" uid="uid://daiv8ubwdbidf" path="res://Sounds/220195__gameaudio__click-wooden-1.wav" id="3_0s6ir"] [ext_resource type="AudioStream" uid="uid://daiv8ubwdbidf" path="res://sounds/220195__gameaudio__click-wooden-1.wav" id="4_grjry"]
[ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://UI/progress_bar.tscn" id="3_kjf1i"] [ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://ui/progress_bar.tscn" id="5_sldpd"]
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"] [sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
size = Vector3(0.6, 1, 0.6) size = Vector3(0.6, 1, 0.6)
@@ -27,8 +27,8 @@ properties/2/spawn = true
properties/2/replication_mode = 1 properties/2/replication_mode = 1
[node name="Table" type="StaticBody3D" unique_id=1863572470 groups=["station"]] [node name="Table" type="StaticBody3D" unique_id=1863572470 groups=["station"]]
script = ExtResource("1_2vcpj") script = ExtResource("1_aecp7")
money_sound = ExtResource("2_jslhm") money_sound = ExtResource("2_5mi7y")
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=228053941] [node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=228053941]
shape = SubResource("BoxShape3D_24d3s") shape = SubResource("BoxShape3D_24d3s")
@@ -37,8 +37,8 @@ shape = SubResource("BoxShape3D_24d3s")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.31874347, 0.5270121, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.31874347, 0.5270121, 0)
collision_layer = 65536 collision_layer = 65536
collision_mask = 65540 collision_mask = 65540
script = ExtResource("1_8j1nt") script = ExtResource("3_03yai")
stash_sound = ExtResource("3_0s6ir") stash_sound = ExtResource("4_grjry")
snap_mode = 1 snap_mode = 1
metadata/_custom_type_script = "uid://cquqe4f1m1sw6" metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
@@ -53,8 +53,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.013531357, -0.015141487, 0
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.34755045, 0.5270121, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.34755045, 0.5270121, 0)
collision_layer = 65536 collision_layer = 65536
collision_mask = 65540 collision_mask = 65540
script = ExtResource("1_8j1nt") script = ExtResource("3_03yai")
stash_sound = ExtResource("3_0s6ir") stash_sound = ExtResource("4_grjry")
snap_mode = 1 snap_mode = 1
metadata/_custom_type_script = "uid://cquqe4f1m1sw6" metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
@@ -69,8 +69,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.013531357, -0.015141487, 0
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.012355864, 0.5270121, 0.33038777) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.012355864, 0.5270121, 0.33038777)
collision_layer = 65536 collision_layer = 65536
collision_mask = 65540 collision_mask = 65540
script = ExtResource("1_8j1nt") script = ExtResource("3_03yai")
stash_sound = ExtResource("3_0s6ir") stash_sound = ExtResource("4_grjry")
snap_mode = 1 snap_mode = 1
metadata/_custom_type_script = "uid://cquqe4f1m1sw6" metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
@@ -85,8 +85,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.013531357, -0.015141487, 0
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.022546828, 0.5270121, -0.36528283) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.022546828, 0.5270121, -0.36528283)
collision_layer = 65536 collision_layer = 65536
collision_mask = 65540 collision_mask = 65540
script = ExtResource("1_8j1nt") script = ExtResource("3_03yai")
stash_sound = ExtResource("3_0s6ir") stash_sound = ExtResource("4_grjry")
snap_mode = 1 snap_mode = 1
metadata/_custom_type_script = "uid://cquqe4f1m1sw6" metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
@@ -192,7 +192,7 @@ text = "20.1s"
[node name="Sync" type="MultiplayerSynchronizer" parent="." unique_id=2000411505] [node name="Sync" type="MultiplayerSynchronizer" parent="." unique_id=2000411505]
replication_config = SubResource("SceneReplicationConfig_np_table") replication_config = SubResource("SceneReplicationConfig_np_table")
[node name="ProgressBar3D" parent="." unique_id=654673176 instance=ExtResource("3_kjf1i")] [node name="ProgressBar3D" parent="." unique_id=654673176 instance=ExtResource("5_sldpd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3676775, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3676775, 0)
y_billboard = true y_billboard = true
-59
View File
@@ -1,59 +0,0 @@
- Move recipes into a Yaml file that is read, and handles symetry through a Static manager class?
A `FoodItem` has an ID.
Example:
```yaml
combining: # The combinging of two items, entries always have a list of exactly two items
cooked_burger:
- cooked_burger
- burger_buns
dough:
- flour
- water
cooking:
cooked_burger:
ingredient: raw_burger
time: 3
charcoal:
ingredient: cooked_burger
time: 4
charcoal:
ingredient: toast
time: 2
augmenting: # Process of adding an item onto another without changing it's type, but toggling attributes.
cooked_burger:
has_tomato: sliced_tomato
has_cheese: cheese
salad:
has_tomato: sliced_tomato
has_olives: olives
chopping:
salad:
ingredient: lettuce
work: 50 # Wave arms faster makes work go faster
rolling:
pie_base:
ingredient: dough
work: 80
```
```py
on_area_enter(other):
var result = RecipeManager.getCombination(my_id, other_id)
if result:
convertInto(result)
```
- Counters are stations like hobs that convert items by chopping, rolling ect depending on `RecipeManager`,
and only converts items after hand gestures are done enough?
- Plates are lists of `FoodItems`?
Plate[`Hamburger`] accepts `Chips` => Plate[`Hamburger`, `Chips`]
Plate[`Hamburger`, `Chips`] accepts `Cheese` => Plate[`Hamburger(Cheese=true)`, `Chips`]
The logic for combining has to be expanded for plates.
- Plates have a property `is_dirty` they get after a customer clears the plate, and is disabled after being processed in `Sink`
+3 -3
View File
@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cexxfyw03hr81" uid="uid://cexxfyw03hr81"
path.s3tc="res://.godot/imported/1.png-1282cd758f0d245fa29065df8c6fe28d.s3tc.ctex" path.s3tc="res://.godot/imported/1.png-28d6e3d31e46c95f0dea1abf906c0f74.s3tc.ctex"
metadata={ metadata={
"imported_formats": ["s3tc_bptc"], "imported_formats": ["s3tc_bptc"],
"vram_texture": true "vram_texture": true
@@ -11,8 +11,8 @@ metadata={
[deps] [deps]
source_file="res://Textures/1.png" source_file="res://textures/1.png"
dest_files=["res://.godot/imported/1.png-1282cd758f0d245fa29065df8c6fe28d.s3tc.ctex"] dest_files=["res://.godot/imported/1.png-28d6e3d31e46c95f0dea1abf906c0f74.s3tc.ctex"]
[params] [params]
+3 -3
View File
@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cxsy4fi0iv1dx" uid="uid://cxsy4fi0iv1dx"
path.s3tc="res://.godot/imported/2.png-58b544529b3c8efe890c8b21f147e810.s3tc.ctex" path.s3tc="res://.godot/imported/2.png-3b4d648e04c4a84e8b8f6c622069553c.s3tc.ctex"
metadata={ metadata={
"imported_formats": ["s3tc_bptc"], "imported_formats": ["s3tc_bptc"],
"vram_texture": true "vram_texture": true
@@ -11,8 +11,8 @@ metadata={
[deps] [deps]
source_file="res://Textures/2.png" source_file="res://textures/2.png"
dest_files=["res://.godot/imported/2.png-58b544529b3c8efe890c8b21f147e810.s3tc.ctex"] dest_files=["res://.godot/imported/2.png-3b4d648e04c4a84e8b8f6c622069553c.s3tc.ctex"]
[params] [params]
+3 -3
View File
@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cxeeadx0c2ygg" uid="uid://cxeeadx0c2ygg"
path.s3tc="res://.godot/imported/3.png-ea971c9bd22bfef88dcd66b7417b5707.s3tc.ctex" path.s3tc="res://.godot/imported/3.png-ff3babb0d8b4fdc49e4a4961a679d180.s3tc.ctex"
metadata={ metadata={
"imported_formats": ["s3tc_bptc"], "imported_formats": ["s3tc_bptc"],
"vram_texture": true "vram_texture": true
@@ -11,8 +11,8 @@ metadata={
[deps] [deps]
source_file="res://Textures/3.png" source_file="res://textures/3.png"
dest_files=["res://.godot/imported/3.png-ea971c9bd22bfef88dcd66b7417b5707.s3tc.ctex"] dest_files=["res://.godot/imported/3.png-ff3babb0d8b4fdc49e4a4961a679d180.s3tc.ctex"]
[params] [params]
+3 -3
View File
@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://xpf60mxi3cf" uid="uid://xpf60mxi3cf"
path.s3tc="res://.godot/imported/4.png-352134ccf44954619410b58ec193bd16.s3tc.ctex" path.s3tc="res://.godot/imported/4.png-7c86e7f37dd6d943dc49fdd7899e8cb6.s3tc.ctex"
metadata={ metadata={
"imported_formats": ["s3tc_bptc"], "imported_formats": ["s3tc_bptc"],
"vram_texture": true "vram_texture": true
@@ -11,8 +11,8 @@ metadata={
[deps] [deps]
source_file="res://Textures/4.png" source_file="res://textures/4.png"
dest_files=["res://.godot/imported/4.png-352134ccf44954619410b58ec193bd16.s3tc.ctex"] dest_files=["res://.godot/imported/4.png-7c86e7f37dd6d943dc49fdd7899e8cb6.s3tc.ctex"]
[params] [params]
+3 -3
View File
@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://b7n8d4krwbcvl" uid="uid://b7n8d4krwbcvl"
path.s3tc="res://.godot/imported/5.png-be0d39347a68c1d063c92edeb31b0a20.s3tc.ctex" path.s3tc="res://.godot/imported/5.png-b386ff019a5e522d985ab44e8f6c88d9.s3tc.ctex"
metadata={ metadata={
"imported_formats": ["s3tc_bptc"], "imported_formats": ["s3tc_bptc"],
"vram_texture": true "vram_texture": true
@@ -11,8 +11,8 @@ metadata={
[deps] [deps]
source_file="res://Textures/5.png" source_file="res://textures/5.png"
dest_files=["res://.godot/imported/5.png-be0d39347a68c1d063c92edeb31b0a20.s3tc.ctex"] dest_files=["res://.godot/imported/5.png-b386ff019a5e522d985ab44e8f6c88d9.s3tc.ctex"]
[params] [params]
+3 -3
View File
@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://eqp04wybmg" uid="uid://eqp04wybmg"
path="res://.godot/imported/devTex.svg-7096dfe1fce7d6bfeb43d4ba1bd108ed.ctex" path="res://.godot/imported/devTex.svg-246e77b8f216572aac74f8f3d27707b4.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://Textures/devTex.svg" source_file="res://textures/devTex.svg"
dest_files=["res://.godot/imported/devTex.svg-7096dfe1fce7d6bfeb43d4ba1bd108ed.ctex"] dest_files=["res://.godot/imported/devTex.svg-246e77b8f216572aac74f8f3d27707b4.ctex"]
[params] [params]
+1 -1
View File
@@ -1,6 +1,6 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://cmia50cfqxxo4"] [gd_resource type="StandardMaterial3D" format=3 uid="uid://cmia50cfqxxo4"]
[ext_resource type="Texture2D" uid="uid://eqp04wybmg" path="res://Textures/devTex.svg" id="1_3jxsn"] [ext_resource type="Texture2D" uid="uid://eqp04wybmg" path="res://textures/devTex.svg" id="1_3jxsn"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0gbf8"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0gbf8"]
transparency = 1 transparency = 1
+3 -3
View File
@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://hfkxs3ncjc4m" uid="uid://hfkxs3ncjc4m"
path="res://.godot/imported/NightSkyHDRI009.png-5fecb5274d03e5767c649d4bae381a39.ctex" path="res://.godot/imported/NightSkyHDRI009.png-30c624de99c676c23642a0e7a463453d.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://Textures/sky/NightSkyHDRI009.png" source_file="res://textures/sky/NightSkyHDRI009.png"
dest_files=["res://.godot/imported/NightSkyHDRI009.png-5fecb5274d03e5767c649d4bae381a39.ctex"] dest_files=["res://.godot/imported/NightSkyHDRI009.png-30c624de99c676c23642a0e7a463453d.ctex"]
[params] [params]
+1 -1
View File
@@ -1,6 +1,6 @@
[gd_resource type="Sky" format=3 uid="uid://c1abtpwhdm2d5"] [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"] [sub_resource type="PanoramaSkyMaterial" id="acg_025sfqr4"]
panorama = ExtResource("acg_mft3ic9d") panorama = ExtResource("acg_mft3ic9d")
@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://ci0hjoabnf8nu" uid="uid://ci0hjoabnf8nu"
path.bptc="res://.godot/imported/NightSkyHDRI009_16K_HDR.exr-9a5d77664863ac9d0a6a2889b31099ca.bptc.ctex" path.bptc="res://.godot/imported/NightSkyHDRI009_16K_HDR.exr-43fd92962b13d105254e11ecfdaf0858.bptc.ctex"
metadata={ metadata={
"imported_formats": ["s3tc_bptc"], "imported_formats": ["s3tc_bptc"],
"vram_texture": true "vram_texture": true
@@ -11,8 +11,8 @@ metadata={
[deps] [deps]
source_file="res://Textures/sky/NightSkyHDRI009_16K_HDR.exr" source_file="res://textures/sky/NightSkyHDRI009_16K_HDR.exr"
dest_files=["res://.godot/imported/NightSkyHDRI009_16K_HDR.exr-9a5d77664863ac9d0a6a2889b31099ca.bptc.ctex"] dest_files=["res://.godot/imported/NightSkyHDRI009_16K_HDR.exr-43fd92962b13d105254e11ecfdaf0858.bptc.ctex"]
[params] [params]
@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://c64om8q11trnm" uid="uid://c64om8q11trnm"
path="res://.godot/imported/NightSkyHDRI009_16K_TONEMAPPED.jpg-8d036fe183f31a1e4946600f7e0a089a.ctex" path="res://.godot/imported/NightSkyHDRI009_16K_TONEMAPPED.jpg-772032c9d36bbd100929d978b6fbe78b.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://Textures/sky/NightSkyHDRI009_16K_TONEMAPPED.jpg" source_file="res://textures/sky/NightSkyHDRI009_16K_TONEMAPPED.jpg"
dest_files=["res://.godot/imported/NightSkyHDRI009_16K_TONEMAPPED.jpg-8d036fe183f31a1e4946600f7e0a089a.ctex"] dest_files=["res://.godot/imported/NightSkyHDRI009_16K_TONEMAPPED.jpg-772032c9d36bbd100929d978b6fbe78b.ctex"]
[params] [params]
+1 -2
View File
@@ -1,8 +1,7 @@
extends Control extends Control
@onready var _Restart_btn: Button = %Restart @onready var _Restart_btn: Button = %Restart
const GAME_MANAGER = preload("res://GameManager.gd") const GAME_MANAGER = preload("res://scripts/game_manager.gd")
func _ready() -> void: func _ready() -> void:
_Restart_btn.pressed.connect(_restart) _Restart_btn.pressed.connect(_restart)
+10 -10
View File
@@ -5,8 +5,8 @@ extends Control
## multiplayer game, or join one by IP, driving scene switches + NetworkManager ## multiplayer game, or join one by IP, driving scene switches + NetworkManager
## directly. ## directly.
const JON_SCENE := "res://Scenes/JonScene.tscn" const JON_SCENE := "res://Scenes/jon_scene.tscn"
const MULTIPLAYER_SCENE := "res://Scenes/multiPlayer.tscn" const MULTIPLAYER_SCENE := "res://Scenes/multiplayer.tscn"
const SETTINGS_PATH := "user://vryhungry_settings.cfg" const SETTINGS_PATH := "user://vryhungry_settings.cfg"
var _ip := "127.0.0.1" var _ip := "127.0.0.1"
@@ -24,6 +24,7 @@ var _ip := "127.0.0.1"
func _ready() -> void: func _ready() -> void:
print("Menu Panel _ready")
if _bypass_menu_for_cmdline(): if _bypass_menu_for_cmdline():
return return
for child in _keypad.get_children(): for child in _keypad.get_children():
@@ -37,12 +38,6 @@ func _ready() -> void:
_load_ip() _load_ip()
_show_root_view() _show_root_view()
_refresh_ip() _refresh_ip()
# Show why we're back here, if the last session ended unexpectedly
# (dropped connection, failed join). Pulled rather than pushed, since
# NetworkManager may have set this before this panel even existed.
var status := NetworkManager.take_status()
if not status.is_empty():
set_status(status)
## --server / --join <ip> on the command line skip straight to the multiplayer ## --server / --join <ip> on the command line skip straight to the multiplayer
@@ -65,11 +60,13 @@ func _bypass_menu_for_cmdline() -> bool:
func _show_root_view() -> void: func _show_root_view() -> void:
print("Menu Panel show root view")
_root_view.visible = true _root_view.visible = true
_join_view.visible = false _join_view.visible = false
func _show_join_view() -> void: func _show_join_view() -> void:
print("Menu Panel show join view")
_root_view.visible = false _root_view.visible = false
_join_view.visible = true _join_view.visible = true
set_status("Enter host IP, then Join") set_status("Enter host IP, then Join")
@@ -90,16 +87,19 @@ func _refresh_ip() -> void:
func _on_john_pressed() -> void: func _on_john_pressed() -> void:
print("Menu Panel press jon_scene")
NetworkManager.leave() NetworkManager.leave()
get_tree().change_scene_to_file.call_deferred(JON_SCENE) get_tree().change_scene_to_file.call_deferred(JON_SCENE)
func _on_host_pressed() -> void: func _on_host_pressed() -> void:
NetworkManager.request_host() print("Menu Panel press host")
get_tree().change_scene_to_file.call_deferred("res://Scenes/JonScene.tscn") NetworkManager.host()
get_tree().change_scene_to_file.call_deferred(MULTIPLAYER_SCENE)
func _on_join_pressed() -> void: func _on_join_pressed() -> void:
print("Menu Panel press host")
if _ip.is_empty(): if _ip.is_empty():
set_status("Enter an IP first") set_status("Enter an IP first")
return return
+42 -37
View File
@@ -1,97 +1,102 @@
[gd_scene load_steps=2 format=3] [gd_scene format=3 uid="uid://jispfagyh1di"]
[ext_resource type="Script" path="res://UI/main_menu_panel.gd" id="1_panel"] [ext_resource type="Script" uid="uid://crs47shds8bm4" path="res://ui/main_menu_panel.gd" id="1_panel"]
[node name="MainMenuPanel" type="Control"] [node name="MainMenuPanel" type="Control" unique_id=1716965055]
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_panel") script = ExtResource("1_panel")
[node name="Background" type="ColorRect" parent="."] [node name="Background" type="ColorRect" parent="." unique_id=417297929]
layout_mode = 1 layout_mode = 1
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.09, 0.1, 0.13, 1) color = Color(0.09, 0.1, 0.13, 1)
[node name="Margin" type="MarginContainer" parent="."] [node name="Margin" type="MarginContainer" parent="." unique_id=122841427]
layout_mode = 1 layout_mode = 1
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 24 theme_override_constants/margin_left = 24
theme_override_constants/margin_top = 16 theme_override_constants/margin_top = 16
theme_override_constants/margin_right = 24 theme_override_constants/margin_right = 24
theme_override_constants/margin_bottom = 16 theme_override_constants/margin_bottom = 16
[node name="Title" type="Label" parent="Margin"] [node name="Title" type="Label" parent="Margin" unique_id=1426156127]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 0 size_flags_vertical = 0
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "VRyHungry" text = "VRyHungry"
horizontal_alignment = 1 horizontal_alignment = 1
[node name="Status" type="Label" parent="Margin"] [node name="Status" type="Label" parent="Margin" unique_id=672946938]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
size_flags_vertical = 0 size_flags_vertical = 0
theme_override_colors/font_color = Color(0.8, 0.8, 0.5, 1) theme_override_colors/font_color = Color(0.8, 0.8, 0.5, 1)
theme_override_font_sizes/font_size = 16 theme_override_font_sizes/font_size = 16
text = ""
horizontal_alignment = 1 horizontal_alignment = 1
[node name="RootView" type="VBoxContainer" parent="Margin"] [node name="RootView" type="VBoxContainer" parent="Margin" unique_id=1020931014]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 14 theme_override_constants/separation = 14
[node name="Spacer" type="Control" parent="Margin/RootView"] [node name="Spacer" type="Control" parent="Margin/RootView" unique_id=1907673970]
custom_minimum_size = Vector2(0, 36) custom_minimum_size = Vector2(0, 36)
layout_mode = 2 layout_mode = 2
[node name="JohnButton" type="Button" parent="Margin/RootView"] [node name="JohnButton" type="Button" parent="Margin/RootView" unique_id=593797044]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2
custom_minimum_size = Vector2(0, 64) custom_minimum_size = Vector2(0, 64)
layout_mode = 2
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "Play John's Scene" text = "Play John's Scene"
[node name="HostButton" type="Button" parent="Margin/RootView"] [node name="HostButton" type="Button" parent="Margin/RootView" unique_id=2142523398]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2
custom_minimum_size = Vector2(0, 64) custom_minimum_size = Vector2(0, 64)
layout_mode = 2
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "Host Multiplayer" text = "Host Multiplayer"
[node name="JoinMenuButton" type="Button" parent="Margin/RootView"] [node name="JoinMenuButton" type="Button" parent="Margin/RootView" unique_id=1379606559]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2
custom_minimum_size = Vector2(0, 64) custom_minimum_size = Vector2(0, 64)
layout_mode = 2
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "Join Multiplayer" text = "Join Multiplayer"
[node name="JoinView" type="VBoxContainer" parent="Margin"] [node name="JoinView" type="VBoxContainer" parent="Margin" unique_id=1763078998]
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 10 theme_override_constants/separation = 10
[node name="Title" type="Label" parent="Margin/JoinView"] [node name="Title" type="Label" parent="Margin/JoinView" unique_id=309630334]
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 22
text = "Join Multiplayer" text = "Join Multiplayer"
horizontal_alignment = 1 horizontal_alignment = 1
[node name="IPLabel" type="Label" parent="Margin/JoinView"] [node name="IPLabel" type="Label" parent="Margin/JoinView" unique_id=108493382]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 34 theme_override_font_sizes/font_size = 34
text = "127.0.0.1" text = "127.0.0.1"
horizontal_alignment = 1 horizontal_alignment = 1
[node name="Keypad" type="GridContainer" parent="Margin/JoinView"] [node name="Keypad" type="GridContainer" parent="Margin/JoinView" unique_id=1454498030]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
@@ -99,106 +104,106 @@ theme_override_constants/h_separation = 8
theme_override_constants/v_separation = 8 theme_override_constants/v_separation = 8
columns = 3 columns = 3
[node name="B1" type="Button" parent="Margin/JoinView/Keypad"] [node name="B1" type="Button" parent="Margin/JoinView/Keypad" unique_id=535729591]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "1" text = "1"
[node name="B2" type="Button" parent="Margin/JoinView/Keypad"] [node name="B2" type="Button" parent="Margin/JoinView/Keypad" unique_id=439142035]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "2" text = "2"
[node name="B3" type="Button" parent="Margin/JoinView/Keypad"] [node name="B3" type="Button" parent="Margin/JoinView/Keypad" unique_id=20138366]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "3" text = "3"
[node name="B4" type="Button" parent="Margin/JoinView/Keypad"] [node name="B4" type="Button" parent="Margin/JoinView/Keypad" unique_id=1142576108]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "4" text = "4"
[node name="B5" type="Button" parent="Margin/JoinView/Keypad"] [node name="B5" type="Button" parent="Margin/JoinView/Keypad" unique_id=422202098]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "5" text = "5"
[node name="B6" type="Button" parent="Margin/JoinView/Keypad"] [node name="B6" type="Button" parent="Margin/JoinView/Keypad" unique_id=652822802]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "6" text = "6"
[node name="B7" type="Button" parent="Margin/JoinView/Keypad"] [node name="B7" type="Button" parent="Margin/JoinView/Keypad" unique_id=1644038518]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "7" text = "7"
[node name="B8" type="Button" parent="Margin/JoinView/Keypad"] [node name="B8" type="Button" parent="Margin/JoinView/Keypad" unique_id=2009764487]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "8" text = "8"
[node name="B9" type="Button" parent="Margin/JoinView/Keypad"] [node name="B9" type="Button" parent="Margin/JoinView/Keypad" unique_id=809575757]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "9" text = "9"
[node name="BDot" type="Button" parent="Margin/JoinView/Keypad"] [node name="BDot" type="Button" parent="Margin/JoinView/Keypad" unique_id=2136562018]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "." text = "."
[node name="B0" type="Button" parent="Margin/JoinView/Keypad"] [node name="B0" type="Button" parent="Margin/JoinView/Keypad" unique_id=2008425599]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 26 theme_override_font_sizes/font_size = 26
text = "0" text = "0"
[node name="BDel" type="Button" parent="Margin/JoinView/Keypad"] [node name="BDel" type="Button" parent="Margin/JoinView/Keypad" unique_id=413462771]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 22
text = "DEL" text = "DEL"
[node name="Buttons" type="HBoxContainer" parent="Margin/JoinView"] [node name="Buttons" type="HBoxContainer" parent="Margin/JoinView" unique_id=2121996996]
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 10 theme_override_constants/separation = 10
[node name="JoinButton" type="Button" parent="Margin/JoinView/Buttons"] [node name="JoinButton" type="Button" parent="Margin/JoinView/Buttons" unique_id=1797756998]
unique_name_in_owner = true unique_name_in_owner = true
custom_minimum_size = Vector2(0, 56)
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
custom_minimum_size = Vector2(0, 56)
theme_override_font_sizes/font_size = 24 theme_override_font_sizes/font_size = 24
text = "JOIN" text = "JOIN"
[node name="BackButton" type="Button" parent="Margin/JoinView/Buttons"] [node name="BackButton" type="Button" parent="Margin/JoinView/Buttons" unique_id=704422546]
unique_name_in_owner = true unique_name_in_owner = true
custom_minimum_size = Vector2(0, 56)
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
custom_minimum_size = Vector2(0, 56)
theme_override_font_sizes/font_size = 24 theme_override_font_sizes/font_size = 24
text = "BACK" text = "BACK"
+1 -1
View File
@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://bxbocxdaayvwx"] [gd_scene format=3 uid="uid://bxbocxdaayvwx"]
[ext_resource type="Script" uid="uid://bv7oracwmgre8" path="res://UI/progress_bar_3d.gd" id="1_ng8tm"] [ext_resource type="Script" uid="uid://bv7oracwmgre8" path="res://ui/progress_bar_3d.gd" id="1_ng8tm"]
[sub_resource type="ViewportTexture" id="ViewportTexture_copv3"] [sub_resource type="ViewportTexture" id="ViewportTexture_copv3"]
viewport_path = NodePath("Sprite3D/SubViewport") viewport_path = NodePath("Sprite3D/SubViewport")
@@ -1,4 +1,4 @@
[gd_scene load_steps=7 format=3 uid="uid://clujaf3u776a3"] [gd_scene format=3 uid="uid://clujaf3u776a3"]
[ext_resource type="Script" uid="uid://eavk7267igp7" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.gd" id="1"] [ext_resource type="Script" uid="uid://eavk7267igp7" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.gd" id="1"]
[ext_resource type="Script" uid="uid://cpl5yiyf1ypft" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d_body.gd" id="2"] [ext_resource type="Script" uid="uid://cpl5yiyf1ypft" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d_body.gd" id="2"]
@@ -7,41 +7,44 @@
resource_local_to_scene = true resource_local_to_scene = true
size = Vector2(3, 2) size = Vector2(3, 2)
[sub_resource type="ViewportTexture" id="ViewportTexture_ufe4n"] [sub_resource type="ViewportTexture" id="ViewportTexture_gvc48"]
viewport_path = NodePath("Viewport")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fvml0"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4gj7x"]
transparency = 1 transparency = 1
cull_mode = 2 cull_mode = 2
albedo_texture = SubResource("ViewportTexture_ufe4n") albedo_texture = SubResource("ViewportTexture_gvc48")
texture_filter = 1 texture_filter = 1
[sub_resource type="BoxShape3D" id="4"] [sub_resource type="BoxShape3D" id="4"]
resource_local_to_scene = true resource_local_to_scene = true
size = Vector3(3, 2, 0.02) size = Vector3(3, 2, 0.02)
[node name="Viewport2Din3D" type="Node3D"] [node name="Viewport2Din3D" type="Node3D" unique_id=1136024888]
script = ExtResource("1") script = ExtResource("1")
transparent = 1
alpha_scissor_threshold = 0.25 alpha_scissor_threshold = 0.25
unshaded = false unshaded = false
filter = true filter = true
scene_properties_keys = PackedStringArray()
[node name="Viewport" type="SubViewport" parent="."] [node name="Viewport" type="SubViewport" parent="." unique_id=1205536037]
disable_3d = true disable_3d = true
transparent_bg = true transparent_bg = true
gui_embed_subwindows = true gui_embed_subwindows = true
size = Vector2i(300, 200) size = Vector2i(300, 200)
render_target_update_mode = 1 render_target_update_mode = 1
[node name="Screen" type="MeshInstance3D" parent="."] [node name="Screen" type="MeshInstance3D" parent="." unique_id=1799394652]
mesh = SubResource("1") mesh = SubResource("1")
surface_material_override/0 = SubResource("StandardMaterial3D_fvml0") surface_material_override/0 = SubResource("StandardMaterial3D_4gj7x")
[node name="StaticBody3D" type="StaticBody3D" parent="."] [node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=959647424]
collision_layer = 5242881 collision_layer = 5242881
collision_mask = 0 collision_mask = 0
script = ExtResource("2") script = ExtResource("2")
viewport_size = Vector2(300, 200) viewport_size = Vector2(300, 200)
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"] [node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" unique_id=1695382741]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.01) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.01)
shape = SubResource("4") shape = SubResource("4")
+27
View File
@@ -0,0 +1,27 @@
[gd_scene format=3 uid="uid://cey1s10v2xufq"]
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="1_iwheq"]
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="2_ad3hj"]
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://stations/Counter.tscn" id="3_rsv28"]
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="4_drmjc"]
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="5_ad3hj"]
[ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://stations/plate_dispenser.tscn" id="6_rsv28"]
[node name="SmallLine" type="Node3D" unique_id=50655734]
[node name="Hob" parent="." unique_id=1687971542 instance=ExtResource("1_iwheq")]
[node name="Sink" parent="." unique_id=2055277359 instance=ExtResource("2_ad3hj")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 0)
[node name="Counter" parent="." unique_id=1487893288 instance=ExtResource("3_rsv28")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, 0)
[node name="RawBurgerDispenser" parent="." unique_id=235630131 instance=ExtResource("4_drmjc")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, 0, 0)
[node name="BurgerBunsDispenser" parent="." unique_id=1720683779 instance=ExtResource("5_ad3hj")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, 0, 0)
[node name="PlateDispenser" parent="." unique_id=710538846 instance=ExtResource("6_rsv28")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, 0, 0)
-96
View File
@@ -1,96 +0,0 @@
[gd_scene format=3 uid="uid://clw8ai6kngqxb"]
[ext_resource type="Script" uid="uid://b4ldkd3ngs0vp" path="res://main.gd" id="1_0xm2m"]
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://XROrigin.tscn" id="2_h2yge"]
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://Textures/dev_material_3d.tres" id="3_272bh"]
[ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://Items/PickupCube.tscn" id="3_h2yge"]
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://Stations/Hob.tscn" id="3_lquwl"]
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://Stations/Counter.tscn" id="4_7mycd"]
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://Textures/sky/NightSkyHDRI009_16K.tres" id="6_7mycd"]
[ext_resource type="PackedScene" uid="uid://dpot5qie20vf6" path="res://Items/burger.tscn" id="8_5vw27"]
[ext_resource type="PackedScene" uid="uid://bp3v1jl8pctro" path="res://Containers/plate.tscn" id="9_kek77"]
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
size = Vector3(5, 0.1, 5)
[sub_resource type="BoxMesh" id="BoxMesh_24d3s"]
material = ExtResource("3_272bh")
size = Vector3(5, 0.1, 5)
[sub_resource type="Environment" id="Environment_bvwq1"]
background_mode = 2
sky = ExtResource("6_7mycd")
reflected_light_source = 2
tonemap_mode = 3
ssr_enabled = true
ssao_enabled = true
ssil_enabled = true
sdfgi_enabled = true
[sub_resource type="BoxShape3D" id="BoxShape3D_kek77"]
size = Vector3(5.1, 10, 0.1)
[node name="Main" type="Node3D" unique_id=1312265607]
script = ExtResource("1_0xm2m")
[node name="XROrigin3D" parent="." unique_id=2055526621 instance=ExtResource("2_h2yge")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8820953, 0)
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1376644384]
transform = Transform3D(-0.8660254, -0.43301278, 0.24999999, 0.3022632, -0.05510214, 0.9516306, -0.39829266, 0.8997021, 0.17860365, 0, 0, 0)
[node name="Floor" type="StaticBody3D" parent="." unique_id=122279514]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floor" unique_id=958841648]
shape = SubResource("BoxShape3D_vlqg6")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor/CollisionShape3D" unique_id=1939997056]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00018164515, 0.0006352663, -0.002532661)
mesh = SubResource("BoxMesh_24d3s")
[node name="Hob" parent="." unique_id=1687971542 instance=ExtResource("3_lquwl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.29336345, 0.8981018, -1.484)
[node name="Counter" parent="." unique_id=1487893288 instance=ExtResource("4_7mycd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.73186195, 0.8981018, -1.484)
[node name="PickableObject" parent="." unique_id=1675596942 instance=ExtResource("3_h2yge")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, 0, -2.6077032e-08, 1.4901161e-08, 1, -0.70505303, 1.5761534, -1.0317149)
[node name="PickableObject2" parent="." unique_id=713087634 instance=ExtResource("3_h2yge")]
transform = Transform3D(1, 0, -2.2351742e-08, -2.9802322e-08, 1.0000001, 0, -2.6077032e-08, 1.4901161e-08, 1, 0.28315204, 1.5607953, -1.0657519)
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
environment = SubResource("Environment_bvwq1")
[node name="OmniLight3D" type="OmniLight3D" parent="." unique_id=812168256]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.2856425, 1.4939771, -1.4959787)
visible = false
light_color = Color(1, 0.38431373, 0, 1)
light_energy = 1.784
shadow_enabled = true
[node name="burger" parent="." unique_id=1554047278 instance=ExtResource("8_5vw27")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.482068, -1.2252241)
[node name="Plate" parent="." unique_id=190487773 instance=ExtResource("9_kek77")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.22971058, 1.699144, -1.8499806)
[node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=82945083]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" unique_id=1909896160]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.688614, 2.5070028)
shape = SubResource("BoxShape3D_kek77")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D" unique_id=39538720]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.688614, -2.5446289)
shape = SubResource("BoxShape3D_kek77")
[node name="CollisionShape3D3" type="CollisionShape3D" parent="StaticBody3D" unique_id=1984048740]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -2.525816, 4.688614, -0.018813243)
shape = SubResource("BoxShape3D_kek77")
[node name="CollisionShape3D4" type="CollisionShape3D" parent="StaticBody3D" unique_id=1484088721]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.525816, 4.688614, -0.018813023)
shape = SubResource("BoxShape3D_kek77")
+2 -1
View File
@@ -19,9 +19,10 @@ config/icon="res://icon.svg"
XRToolsUserSettings="*uid://bqgb8i74tm0t" XRToolsUserSettings="*uid://bqgb8i74tm0t"
XRToolsRumbleManager="*uid://by853dk86g1qw" XRToolsRumbleManager="*uid://by853dk86g1qw"
NetworkManager="*res://Net/network_manager.gd"
GlobalKeyEvents="*uid://c60unagog5oi1" GlobalKeyEvents="*uid://c60unagog5oi1"
Signals="*uid://fuux6cxfjwdc" Signals="*uid://fuux6cxfjwdc"
NetworkManager="*uid://da1xwj5tyeii6"
Main="uid://b4ldkd3ngs0vp"
[debug] [debug]

Some files were not shown because too many files have changed in this diff Show More