Compare commits
89 Commits
e4403e4a50
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
| cd466c73b5 | |||
| acb96933a7 | |||
| d895bc0a47 | |||
| 4f9e22f0b9 | |||
| d83e276c52 | |||
| 0bb00735b2 | |||
| 4a8d5b879e | |||
| 1a7f641974 | |||
| f0bb044d12 | |||
| 08c3950583 | |||
| 9f33ee68c2 | |||
| 20a437681a | |||
| c18b09ab31 | |||
| 3153df7baa | |||
| 8ecde66441 | |||
| d7ccab2e3c | |||
| f28c987a3a | |||
| 9e0c3ed174 | |||
| 5ced240c43 | |||
| e65243055c | |||
| c159d26d4e | |||
| 1e1aa15b68 | |||
| d6142ef592 | |||
| bd30f22e4e | |||
| ffa0cd46a4 | |||
| f7a5791509 | |||
| 55d0c72b59 | |||
| d47a8be10c | |||
| 66f53c4a5f | |||
| 28e4ac6016 | |||
| 2efeb2dd24 | |||
| 88dcfbafdf | |||
| b4a32b7a5e | |||
| 4f8c96d089 | |||
| a0a1c504c1 | |||
| 9ea7a045f4 | |||
| 58adbf83e2 | |||
| 6a591b9e3a | |||
| 70d41fc21b | |||
| 4bfb72d749 | |||
| 3ae1e089aa | |||
| bd43b0bd1e | |||
| 7648ecbac9 | |||
| bf31f85b02 | |||
| dbaad35e50 | |||
| 513ad23e09 | |||
| 9cdf72dc47 | |||
| cf4b4ac32e | |||
| f156379ff3 | |||
| d82f856b1a | |||
| ddf37cc0ae | |||
| aa4ffd6346 | |||
| 85960df6b2 | |||
| eae9e56da7 | |||
| 1196036973 | |||
| d4a724dddf | |||
| d5c162a51a | |||
| 1cf3afd440 | |||
| 97e09b9c12 | |||
| 528f66627b | |||
| 3646992e35 | |||
| c7840d3cc7 | |||
| dde627d05b | |||
| 661210eac8 | |||
| 2e8c12cb8a | |||
| 58f7da7481 | |||
| c3671c4489 | |||
| b24a3f99ee | |||
| 71c338da3c | |||
| ad9753c65d | |||
| 1117d90da6 | |||
| 10bb7cd5bf | |||
| 2e670129a5 | |||
| b169b5d05e | |||
| a5c7df29cc | |||
| 3f67b03a4e | |||
| 247a7e316d | |||
| ee169a62b6 | |||
| 6f01e20700 | |||
| 4242325c8a | |||
| 48c9845624 | |||
| 3d616bf4a5 | |||
| 89e72c161b | |||
| a606a2f93f | |||
| 0826f29265 | |||
| 8a93ae4816 | |||
| 257c838255 | |||
| 58e7792b62 | |||
| 8733d59084 |
@@ -0,0 +1,13 @@
|
|||||||
|
# Instructions
|
||||||
|
|
||||||
|
- Never do any commits.
|
||||||
|
- Keep answers short and concise.
|
||||||
|
- Don't do huge comments. Make them very short and only when necessary.
|
||||||
|
- Any comment that doesn't add more context than the code already provides should be omitted.
|
||||||
|
- Match the comment style of the rest of the project.
|
||||||
|
- Instead of commenting a block about what a function does, use short one-liner comments over sections of code within it. For example, where there are nested for loops and if statements, have one comment saying `# Find node based on criteria`.
|
||||||
|
- Always check syntax with the game engine.
|
||||||
|
- Read logs to confirm expected behavior when possible.
|
||||||
|
|
||||||
|
## About the project
|
||||||
|
- All players will always play as clients. The server will be headless.
|
||||||
+13
-9
@@ -19,9 +19,9 @@ var contained_items: Array[FoodItem] # Expose nice list of others to read
|
|||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
area_3d.body_entered.connect(_on_body_entered)
|
area_3d.body_entered.connect(_on_body_entered)
|
||||||
if not area_3d:
|
if not area_3d:
|
||||||
push_error("Area3D node not found in container.gd")
|
SweetLogger.warning("{0} missing area_3d reference", [name])
|
||||||
if not xr_pickable:
|
if not xr_pickable:
|
||||||
push_error("XRPickable node not found in container.gd")
|
SweetLogger.warning("{0} missing xr_pickable reference", [name])
|
||||||
|
|
||||||
|
|
||||||
# Absorbing items is a server decision (the container's holder is server-
|
# Absorbing items is a server decision (the container's holder is server-
|
||||||
@@ -29,31 +29,31 @@ func _ready() -> void:
|
|||||||
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)
|
SweetLogger.debug("Enabled: {0}", [enabled])
|
||||||
if not enabled:
|
if not enabled:
|
||||||
print("Container disabled in _on_body_entered body")
|
SweetLogger.debug("Disabled in _on_body_entered body")
|
||||||
return
|
return
|
||||||
if not body.is_in_group(target_group):
|
if not body.is_in_group(target_group):
|
||||||
return
|
return
|
||||||
print("Container _on_body_entered body: ", body)
|
SweetLogger.debug("Body: {0}", [body])
|
||||||
|
|
||||||
|
|
||||||
# If one of us is in a station
|
# If one of us is in a station
|
||||||
var picked_by = xr_pickable.get_picked_up_by()
|
var picked_by = xr_pickable.get_picked_up_by()
|
||||||
var body_pickable = body as XRToolsPickable
|
var body_pickable = body as XRToolsPickable
|
||||||
var body_picked_by = body_pickable.get_picked_up_by() if body_pickable else null
|
var body_picked_by = body_pickable.get_picked_up_by() if body_pickable else null
|
||||||
if (picked_by and picked_by.is_in_group("station")) or (body_picked_by and body_picked_by.is_in_group("station")):
|
if (picked_by and picked_by.is_in_group("station_zone")) or (body_picked_by and body_picked_by.is_in_group("station_zone")):
|
||||||
|
|
||||||
# If enough space, add item
|
# If enough space, add item
|
||||||
var food_item = body.get_node("FoodItem")
|
var food_item = body.get_node("FoodItem")
|
||||||
print("Container in station found %s of type %s: %s" % [target_group, FoodItem.Type.keys()[food_item.type], body.name])
|
SweetLogger.debug("In station found {0} of type {1}: {2}", [target_group, FoodItem.Type.keys()[food_item.type], body.name], "container.gd", "_on_body_entered")
|
||||||
var meal_count := contained_items.filter(func(f): return f.type == FoodItem.Type.MEAL).size()
|
var meal_count := contained_items.filter(func(f): return f.type == FoodItem.Type.MEAL).size()
|
||||||
var side_count := contained_items.filter(func(f): return f.type == FoodItem.Type.SIDE).size()
|
var side_count := contained_items.filter(func(f): return f.type == FoodItem.Type.SIDE).size()
|
||||||
if food_item.type == FoodItem.Type.MEAL and meal_count < meal_positions.size():
|
if food_item.type == FoodItem.Type.MEAL and meal_count < meal_positions.size():
|
||||||
print("Container adding meal")
|
SweetLogger.debug("Adding meal")
|
||||||
_add_item(body)
|
_add_item(body)
|
||||||
if food_item.type == FoodItem.Type.SIDE and side_count < side_positions.size():
|
if food_item.type == FoodItem.Type.SIDE and side_count < side_positions.size():
|
||||||
print("Container adding side")
|
SweetLogger.debug("Adding side")
|
||||||
_add_item(body)
|
_add_item(body)
|
||||||
|
|
||||||
|
|
||||||
@@ -91,6 +91,10 @@ func _add_item(item: Node3D) -> void:
|
|||||||
plate_controller.contained_ids = updated
|
plate_controller.contained_ids = updated
|
||||||
|
|
||||||
NetworkManager.despawn_item(item)
|
NetworkManager.despawn_item(item)
|
||||||
|
# In case the container is on a table that needs to register this addition,
|
||||||
|
# ask all table in scene to absorb any new items.
|
||||||
|
SweetLogger.debug("Group call absorb_items()")
|
||||||
|
get_tree().call_group("table", "absorb_items")
|
||||||
|
|
||||||
|
|
||||||
func erase_item(item: FoodItem) -> void:
|
func erase_item(item: FoodItem) -> void:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -13,10 +13,12 @@ extends Node
|
|||||||
## the cosmetic result via the setter below.
|
## the cosmetic result via the setter below.
|
||||||
@export var contained_ids: Array[String] = []: set = _set_contained_ids
|
@export var contained_ids: Array[String] = []: set = _set_contained_ids
|
||||||
|
|
||||||
|
func get_food_items() -> Array[FoodItem]:
|
||||||
|
return container.contained_items
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
if not dirty_node:
|
if not dirty_node:
|
||||||
push_error("Plate is missing its dirty_node")
|
SweetLogger.warning("{0} missing dirty_node reference", [name])
|
||||||
dirty_node.visible = is_dirty
|
dirty_node.visible = is_dirty
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,45 +0,0 @@
|
|||||||
class_name GameManager
|
|
||||||
extends Node
|
|
||||||
|
|
||||||
static var money: int
|
|
||||||
static var meals_in_play: Array[String]
|
|
||||||
static var sides_in_play: Array[String]
|
|
||||||
|
|
||||||
enum GameState {
|
|
||||||
RUNNING,
|
|
||||||
GAME_OVER
|
|
||||||
}
|
|
||||||
static var game_state: GameState = GameState.RUNNING
|
|
||||||
|
|
||||||
|
|
||||||
static func _restart():
|
|
||||||
print("restart Game")
|
|
||||||
game_state = GameState.RUNNING
|
|
||||||
|
|
||||||
|
|
||||||
static func get_random_meal() -> String:
|
|
||||||
if meals_in_play.size() == 0:
|
|
||||||
push_error("GameManager: get_random_meal() called but meals_in_play is empty")
|
|
||||||
return ""
|
|
||||||
var rand_index = randi() % meals_in_play.size()
|
|
||||||
print("GameManager: get_random_meal() returning ", meals_in_play[rand_index])
|
|
||||||
return meals_in_play[rand_index]
|
|
||||||
|
|
||||||
|
|
||||||
static func get_random_side() -> String:
|
|
||||||
if sides_in_play.size() == 0:
|
|
||||||
push_error("GameManager: get_random_side() called but sides_in_play is empty")
|
|
||||||
return ""
|
|
||||||
var rand_index = randi() % sides_in_play.size()
|
|
||||||
print("GameManager: get_random_side() returning ", sides_in_play[rand_index])
|
|
||||||
return sides_in_play[rand_index]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static func game_over():
|
|
||||||
print("Game Over")
|
|
||||||
game_state = GameState.GAME_OVER
|
|
||||||
Signals.game_over.emit()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+15
-55
@@ -1,94 +1,54 @@
|
|||||||
[gd_scene format=3 uid="uid://c0lknik4noobs"]
|
[gd_scene format=3 uid="uid://c0lknik4noobs"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1_g1t48"]
|
[ext_resource type="PackedScene" uid="uid://d8jo0402pgl6" path="res://abstract/food_item.tscn" id="1_food_item"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="2_rwqhn"]
|
|
||||||
[ext_resource type="Animation" uid="uid://s1vqcxyqcvea" path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.res" id="3_qaxva"]
|
|
||||||
[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="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://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="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
|
||||||
radius = 0.107910156
|
radius = 0.107910156
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_wkb0k"]
|
|
||||||
script = ExtResource("4_wb51u")
|
|
||||||
closed_pose = ExtResource("3_qaxva")
|
|
||||||
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_j68hc"]
|
|
||||||
script = ExtResource("4_wb51u")
|
|
||||||
closed_pose = ExtResource("6_ftab3")
|
|
||||||
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hoqox"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hoqox"]
|
||||||
albedo_color = Color(0.6784191, 0.54546416, 0.016760282, 1)
|
albedo_color = Color(0.6784191, 0.54546416, 0.016760282, 1)
|
||||||
|
|
||||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_buns"]
|
[node name="BurgerBuns" unique_id=1088240294 instance=ExtResource("1_food_item")]
|
||||||
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="BurgerBuns" unique_id=1088240294 instance=ExtResource("1_g1t48")]
|
|
||||||
second_hand_grab = 1
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="." index="0"]
|
[node name="CollisionShape3D" parent="." index="0"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.05776599, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.05776599, 0)
|
||||||
shape = SubResource("CylinderShape3D_vlqg6")
|
shape = SubResource("CylinderShape3D_vlqg6")
|
||||||
|
|
||||||
[node name="GrabPointHandRight" parent="." index="1" unique_id=141610509 instance=ExtResource("2_rwqhn")]
|
[node name="GrabPointHandLeft" parent="." index="1"]
|
||||||
transform = Transform3D(0.9978254, -0.06591213, 0, 0.06591213, 0.9978254, 0, 0, 0, 1, 0.08952884, 0.07439406, -0.056857675)
|
|
||||||
hand_pose = SubResource("Resource_wkb0k")
|
|
||||||
|
|
||||||
[node name="GrabPointHandLeft" parent="." index="2" unique_id=826213104 instance=ExtResource("5_wqyr2")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.08001605, 0.07612594, -0.05340144)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.08001605, 0.07612594, -0.05340144)
|
||||||
hand_pose = SubResource("Resource_j68hc")
|
|
||||||
|
|
||||||
[node name="CSGCombiner3DBuns" type="CSGCombiner3D" parent="." index="3" unique_id=178629624]
|
[node name="GrabPointHandRight" parent="." index="2"]
|
||||||
|
transform = Transform3D(0.9978254, -0.06591213, 0, 0.06591213, 0.9978254, 0, 0, 0, 1, 0.08952884, 0.07439406, -0.056857675)
|
||||||
|
|
||||||
|
[node name="FoodItem" parent="." index="3"]
|
||||||
|
id = "burger_buns"
|
||||||
|
type = 2
|
||||||
|
sell_value = 1
|
||||||
|
|
||||||
|
[node name="CSGCombiner3DBuns" type="CSGCombiner3D" parent="Model" index="0" unique_id=178629624]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.021904588, 0.025076538, -0.0044593215)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.021904588, 0.025076538, -0.0044593215)
|
||||||
autosmooth = true
|
autosmooth = true
|
||||||
smoothing_angle = 138.9
|
smoothing_angle = 138.9
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3DBuns" index="0" unique_id=110174152]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Model/CSGCombiner3DBuns" index="0" unique_id=110174152]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_hoqox")
|
material = SubResource("StandardMaterial3D_hoqox")
|
||||||
|
|
||||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="CSGCombiner3DBuns" index="1" unique_id=2003491826]
|
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="Model/CSGCombiner3DBuns" index="1" unique_id=2003491826]
|
||||||
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_hoqox")
|
material = SubResource("StandardMaterial3D_hoqox")
|
||||||
|
|
||||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="CSGCombiner3DBuns/CSGCylinder3D3" index="0" unique_id=391028348]
|
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="Model/CSGCombiner3DBuns/CSGCylinder3D3" index="0" unique_id=391028348]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
cone = true
|
cone = true
|
||||||
material = SubResource("StandardMaterial3D_hoqox")
|
material = SubResource("StandardMaterial3D_hoqox")
|
||||||
|
|
||||||
[node name="FoodItem" parent="." index="4" unique_id=123456789 instance=ExtResource("8_t9y3x")]
|
|
||||||
id = "burger_buns"
|
|
||||||
type = 2
|
|
||||||
|
|
||||||
[node name="CombinableItem" parent="." index="5" unique_id=996936271 instance=ExtResource("7_wb51u")]
|
|
||||||
|
|
||||||
[node name="NetPickable" type="MultiplayerSynchronizer" parent="." index="6" unique_id=2086885420]
|
|
||||||
replication_config = SubResource("SceneReplicationConfig_np_buns")
|
|
||||||
script = ExtResource("20_netpk")
|
|
||||||
|
|
||||||
[node name="DespawningItem" parent="." index="7" unique_id=303090111 instance=ExtResource("10_46e7r")]
|
|
||||||
|
|||||||
+7
-52
@@ -1,15 +1,6 @@
|
|||||||
[gd_scene format=3 uid="uid://cucc3gaqu2nab"]
|
[gd_scene format=3 uid="uid://cucc3gaqu2nab"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1_r73y2"]
|
[ext_resource type="PackedScene" uid="uid://d8jo0402pgl6" path="res://abstract/food_item.tscn" id="1_food_item"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="2_nfmuy"]
|
|
||||||
[ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="3_bsb6f"]
|
|
||||||
[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="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://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="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
|
||||||
@@ -24,52 +15,16 @@ top_radius = 0.1
|
|||||||
bottom_radius = 0.1
|
bottom_radius = 0.1
|
||||||
height = 0.1
|
height = 0.1
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_lc22d"]
|
[node name="PickableObject" unique_id=1675596942 instance=ExtResource("1_food_item")]
|
||||||
script = ExtResource("4_mgacb")
|
|
||||||
closed_pose = ExtResource("3_bsb6f")
|
|
||||||
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_qyiot"]
|
|
||||||
script = ExtResource("4_mgacb")
|
|
||||||
closed_pose = ExtResource("6_cp3eg")
|
|
||||||
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
|
|
||||||
|
|
||||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_charcoal"]
|
|
||||||
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="PickableObject" unique_id=1675596942 instance=ExtResource("1_r73y2")]
|
|
||||||
second_hand_grab = 1
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="." index="0"]
|
[node name="CollisionShape3D" parent="." index="0"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||||
shape = SubResource("CylinderShape3D_gkni8")
|
shape = SubResource("CylinderShape3D_gkni8")
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="1" unique_id=1223689787]
|
[node name="FoodItem" parent="." index="3"]
|
||||||
mesh = SubResource("CylinderMesh_vebgy")
|
|
||||||
|
|
||||||
[node name="GrabPointHandLeft" parent="." index="2" unique_id=1571481674 instance=ExtResource("2_nfmuy")]
|
|
||||||
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="." index="3" unique_id=514404634 instance=ExtResource("5_vw7i6")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06531982, 0.042291984, -0.08604182)
|
|
||||||
hand_pose = SubResource("Resource_qyiot")
|
|
||||||
|
|
||||||
[node name="FoodItem" parent="." index="4" unique_id=345678912 instance=ExtResource("7_mde49")]
|
|
||||||
id = "charcoal"
|
id = "charcoal"
|
||||||
type = 2
|
type = 2
|
||||||
|
sell_value = 1
|
||||||
|
|
||||||
[node name="CombinableItem" parent="." index="5" unique_id=996936271 instance=ExtResource("8_wmrff")]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Model" index="0" unique_id=1223689787]
|
||||||
|
mesh = SubResource("CylinderMesh_vebgy")
|
||||||
[node name="NetPickable" type="MultiplayerSynchronizer" parent="." index="6" unique_id=1070495412]
|
|
||||||
replication_config = SubResource("SceneReplicationConfig_np_charcoal")
|
|
||||||
script = ExtResource("20_netpk")
|
|
||||||
|
|
||||||
[node name="DespawningItem" parent="." index="7" unique_id=303090111 instance=ExtResource("10_6ypk4")]
|
|
||||||
|
|||||||
+7
-52
@@ -1,15 +1,6 @@
|
|||||||
[gd_scene format=3 uid="uid://e4i6o5oriecx"]
|
[gd_scene format=3 uid="uid://e4i6o5oriecx"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1_dbtw8"]
|
[ext_resource type="PackedScene" uid="uid://d8jo0402pgl6" path="res://abstract/food_item.tscn" id="1_food_item"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="2_pxnkq"]
|
|
||||||
[ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="3_iqyul"]
|
|
||||||
[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="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://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="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)
|
||||||
@@ -21,52 +12,16 @@ albedo_color = Color(0.1764706, 1, 1, 1)
|
|||||||
material = SubResource("StandardMaterial3D_24d3s")
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
size = Vector3(0.1, 0.1, 0.1)
|
size = Vector3(0.1, 0.1, 0.1)
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_lc22d"]
|
[node name="PickableObject" unique_id=1675596942 groups=["platalbe_item"] instance=ExtResource("1_food_item")]
|
||||||
script = ExtResource("4_hc3f7")
|
|
||||||
closed_pose = ExtResource("3_iqyul")
|
|
||||||
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_qyiot"]
|
|
||||||
script = ExtResource("4_hc3f7")
|
|
||||||
closed_pose = ExtResource("6_bdp75")
|
|
||||||
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="PickableObject" unique_id=1675596942 groups=["platalbe_item"] instance=ExtResource("1_dbtw8")]
|
|
||||||
second_hand_grab = 1
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="." index="0"]
|
[node name="CollisionShape3D" parent="." index="0"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||||
shape = SubResource("BoxShape3D_m1xbq")
|
shape = SubResource("BoxShape3D_m1xbq")
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="1" unique_id=1223689787]
|
[node name="FoodItem" parent="." index="3"]
|
||||||
mesh = SubResource("BoxMesh_vlqg6")
|
|
||||||
|
|
||||||
[node name="GrabPointHandLeft" parent="." index="2" unique_id=1571481674 instance=ExtResource("2_pxnkq")]
|
|
||||||
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="." index="3" unique_id=514404634 instance=ExtResource("5_a0a5b")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06531982, 0.042291984, -0.08604182)
|
|
||||||
hand_pose = SubResource("Resource_qyiot")
|
|
||||||
|
|
||||||
[node name="FoodItem" parent="." index="4" unique_id=63948206 instance=ExtResource("11_vjw41")]
|
|
||||||
id = "cube"
|
id = "cube"
|
||||||
type = 1
|
type = 1
|
||||||
|
sell_value = 1
|
||||||
|
|
||||||
[node name="CombinableItem" parent="." index="5" unique_id=996936271 instance=ExtResource("7_bdp75")]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Model" index="0" unique_id=1223689787]
|
||||||
|
mesh = SubResource("BoxMesh_vlqg6")
|
||||||
[node name="NetPickable" type="MultiplayerSynchronizer" parent="." index="6" unique_id=1858332513]
|
|
||||||
replication_config = SubResource("SceneReplicationConfig_np_cube")
|
|
||||||
script = ExtResource("20_netpk")
|
|
||||||
|
|
||||||
[node name="DespawningItem" parent="." index="7" unique_id=303090111 instance=ExtResource("10_uygc5")]
|
|
||||||
|
|||||||
+12
-52
@@ -1,15 +1,7 @@
|
|||||||
[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://d8jo0402pgl6" path="res://abstract/food_item.tscn" id="1_food_item"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cexxfyw03hr81" path="res://textures/1.png" id="2_r8jvx"]
|
[ext_resource type="Texture2D" uid="uid://7jt8macx4f5m" 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="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="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="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="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
|
||||||
@@ -18,54 +10,22 @@ radius = 0.08544922
|
|||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bvwq1"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bvwq1"]
|
||||||
albedo_texture = ExtResource("2_r8jvx")
|
albedo_texture = ExtResource("2_r8jvx")
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_lc22d"]
|
[node name="raw_burger" unique_id=1675596942 instance=ExtResource("1_food_item")]
|
||||||
script = ExtResource("5_w8sii")
|
|
||||||
closed_pose = ExtResource("4_bw8vh")
|
|
||||||
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_qyiot"]
|
|
||||||
script = ExtResource("5_w8sii")
|
|
||||||
closed_pose = ExtResource("7_wqxjj")
|
|
||||||
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
|
|
||||||
|
|
||||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_burger"]
|
|
||||||
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="raw_burger" unique_id=1675596942 instance=ExtResource("1_fco8w")]
|
|
||||||
second_hand_grab = 1
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="." index="0"]
|
[node name="CollisionShape3D" parent="." index="0"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.00077831745, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.00077831745, 0)
|
||||||
shape = SubResource("CylinderShape3D_fco8w")
|
shape = SubResource("CylinderShape3D_fco8w")
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="." index="1" unique_id=59319982]
|
[node name="FoodItem" parent="." index="3" unique_id=63948206]
|
||||||
|
id = "raw_burger"
|
||||||
|
type = 2
|
||||||
|
sell_value = 1
|
||||||
|
|
||||||
|
[node name="CombinableItem" parent="." index="8"]
|
||||||
|
enabled = false
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Model" parent_id_path=PackedInt32Array(1015960306) index="0" unique_id=59319982]
|
||||||
radius = 0.08300781
|
radius = 0.08300781
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_bvwq1")
|
material = SubResource("StandardMaterial3D_bvwq1")
|
||||||
|
|
||||||
[node name="GrabPointHandLeft" parent="." index="2" unique_id=1571481674 instance=ExtResource("3_qixic")]
|
|
||||||
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="." index="3" unique_id=514404634 instance=ExtResource("6_mvnl5")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06531982, 0.042291984, -0.08604182)
|
|
||||||
hand_pose = SubResource("Resource_qyiot")
|
|
||||||
|
|
||||||
[node name="FoodItem" parent="." index="4" unique_id=63948206 instance=ExtResource("10_yxtxs")]
|
|
||||||
id = "raw_burger"
|
|
||||||
type = 2
|
|
||||||
|
|
||||||
[node name="NetPickable" type="MultiplayerSynchronizer" parent="." index="5" unique_id=1382968688]
|
|
||||||
replication_config = SubResource("SceneReplicationConfig_np_burger")
|
|
||||||
script = ExtResource("20_netpk")
|
|
||||||
|
|
||||||
[node name="DespawningItem" parent="." index="6" unique_id=303090111 instance=ExtResource("10_l4hsd")]
|
|
||||||
|
|||||||
@@ -0,0 +1,214 @@
|
|||||||
|
[gd_scene format=3 uid="uid://duwrbvwcqcuk3"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://d8jo0402pgl6" path="res://abstract/food_item.tscn" id="1_food_item"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_m1xbq"]
|
||||||
|
size = Vector3(0.1, 0.1, 0.1)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vlqg6"]
|
||||||
|
albedo_color = Color(1, 0.26, 0.26, 1)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
||||||
|
albedo_color = Color(0.66, 0.58300006, 0.19800001, 1)
|
||||||
|
|
||||||
|
[node name="Chips" unique_id=1675596942 groups=["platalbe_item"] instance=ExtResource("1_food_item")]
|
||||||
|
collision_layer = 4
|
||||||
|
collision_mask = 196615
|
||||||
|
freeze_mode = 1
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="." index="0"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||||
|
shape = SubResource("BoxShape3D_m1xbq")
|
||||||
|
|
||||||
|
[node name="GrabPointHandLeft" parent="." index="1"]
|
||||||
|
transform = Transform3D(0.99971306, 0.023955148, 0, -0.023955148, 0.99971306, 0, 0, 0, 1, -0.042430807, 0.04601878, -0.066400535)
|
||||||
|
|
||||||
|
[node name="GrabPointHandRight" parent="." index="2"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.039321173, 0.042291984, -0.06561862)
|
||||||
|
|
||||||
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Model" unique_id=965503334]
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Model/CSGCombiner3D" unique_id=816650852]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.7, 0, -0.008749997, 0)
|
||||||
|
radius = 0.055
|
||||||
|
height = 0.10250001
|
||||||
|
sides = 32
|
||||||
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Model/CSGCombiner3D/CSGCylinder3D" unique_id=387203621]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00010003522, 0.004754007, -0.0005688625)
|
||||||
|
operation = 2
|
||||||
|
radius = 0.05
|
||||||
|
height = 0.0934961
|
||||||
|
sides = 32
|
||||||
|
|
||||||
|
[node name="CSGBox3D" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=93328108]
|
||||||
|
transform = Transform3D(0.7620723, -0.15403531, 0.62890285, 0.14065021, 0.98747945, 0.07142768, -0.632031, 0.034022264, 0.77419585, 0, 0.023602298, 0)
|
||||||
|
size = Vector3(0.01, 0.1472046, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D2" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=916963062]
|
||||||
|
transform = Transform3D(0.8856182, 0, -0.46441403, 0, 1, 0, 0.46441403, 0, 0.8856182, -0.025303185, 0.017004399, -0.011429907)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.012324219)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D3" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=2028227382]
|
||||||
|
transform = Transform3D(0.9982952, 0.058366816, 0, -0.058366816, 0.9982952, 0, 0, 0, 1, 0.01182463, 0.014508067, -0.020026028)
|
||||||
|
size = Vector3(0.005488281, 0.12901612, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D4" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=281966004]
|
||||||
|
transform = Transform3D(0.7529522, 0.17319141, -0.63487613, -0.17018878, 0.98317415, 0.06636462, 0.6356876, 0.058079403, 0.7697584, 0.030878175, 0.017004376, 0.0073254704)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D5" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1396476812]
|
||||||
|
transform = Transform3D(0.9059609, 0.09732082, -0.4120236, 0.057229556, 0.93613446, 0.3469537, 0.41947538, -0.33790648, 0.8425318, 0.022142533, 0.013039222, 0.0003975192)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D6" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=799991689]
|
||||||
|
transform = Transform3D(0.84679973, -0.153204, -0.5093709, 0.13128299, 0.9881946, -0.07896996, 0.5154561, 0, 0.856916, -0.035753187, 0.02232056, 0.006355174)
|
||||||
|
size = Vector3(0.010739746, 0.14464112, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D7" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1801209773]
|
||||||
|
transform = Transform3D(0.97630554, 0.034820024, 0.21357699, 0, 0.98696935, -0.16090819, -0.21639681, 0.15709558, 0.96358365, 0.013860466, 0.019146731, 0.016792327)
|
||||||
|
size = Vector3(0.01, 0.13829346, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D8" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1457970557]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.014735691, 0.014813228, 0.009678945)
|
||||||
|
size = Vector3(0.01, 0.12962647, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D9" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1215031746]
|
||||||
|
transform = Transform3D(0.98743933, -0.15799865, 0, 0.15799865, 0.98743933, 0, 0, 0, 1, -0.00090237334, 0.017004391, -0.023620732)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D10" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=532075410]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.021327257, 0.013287356, 0.022823062)
|
||||||
|
size = Vector3(0.010739746, 0.12657471, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D11" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=2073146495]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03040018, 0.009017946, 0.020780522)
|
||||||
|
size = Vector3(0.01, 0.11803589, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D12" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=75858017]
|
||||||
|
transform = Transform3D(0.97359693, 0, 0.22827391, 0.051342297, 0.9743782, -0.21897686, -0.22242515, 0.22491528, 0.9486517, -0.0036671162, 0.017004391, 0.02201752)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D13" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=632405164]
|
||||||
|
transform = Transform3D(0.77419585, 0, 0.6329461, 0, 0.52134585, 0, -0.6329461, 0, 0.77419585, 0, -0.007927237, 0)
|
||||||
|
size = Vector3(0.01, 0.1472046, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D14" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1656744815]
|
||||||
|
transform = Transform3D(-0.8283986, -0.2356963, 0.46195662, -0.27667236, 0.7057101, 0.1542864, -0.48704025, 0, -0.8733795, 0.021192847, -0.004947574, 0.01600693)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D15" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1543269420]
|
||||||
|
transform = Transform3D(-0.91507524, 0.2995426, 0.023545321, 0.40246198, 0.68106806, -0.010355539, -0.025721962, -5.579416e-10, -0.99966913, -0.01809039, 0.0024462799, 0.0042534657)
|
||||||
|
size = Vector3(0.005488281, 0.15618286, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D16" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=254315930]
|
||||||
|
transform = Transform3D(-0.92201805, 0, 0.38714674, 0, 0.7440292, 0, -0.38714674, 0, -0.92201805, -0.03251951, -0.0049475897, 0.0013081154)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D17" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1486469355]
|
||||||
|
transform = Transform3D(-0.99966913, 0, 0.025721963, 0, 0.7440292, 0, -0.025721963, 0, -0.99966913, -0.023322525, -0.0049475795, -0.00594615)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D18" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=630552823]
|
||||||
|
transform = Transform3D(-0.83532625, 0.10253985, 0.5321998, 0.116231225, 0.7369294, -0.07405278, -0.5373271, 0, -0.84337395, 0.032662854, -0.0009921952, -0.0025184364)
|
||||||
|
size = Vector3(0.010739746, 0.14464112, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D19" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=239318459]
|
||||||
|
transform = Transform3D(-0.9815485, 0, -0.19121267, 0, 0.74402916, 0, 0.19121267, 0, -0.9815485, -0.016665924, -0.0033536162, -0.014228297)
|
||||||
|
size = Vector3(0.01, 0.13829346, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D20" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=928371372]
|
||||||
|
transform = Transform3D(-0.99966913, 0, 0.025721963, 0, 0.7440292, 0, -0.025721963, 0, -0.99966913, 0.011737803, -0.00657787, -0.006381719)
|
||||||
|
size = Vector3(0.01, 0.12962647, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D21" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=226684342]
|
||||||
|
transform = Transform3D(-0.99966913, 0, 0.025721963, 0, 0.7440292, 0, -0.025721963, 0, -0.99966913, 0.0084346505, -0.0049475795, 0.026858818)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D22" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1692336606]
|
||||||
|
transform = Transform3D(-0.99966913, 0, 0.025721963, 0, 0.7440292, 0, -0.025721963, 0, -0.99966913, 0.01866528, -0.0077131614, -0.019351937)
|
||||||
|
size = Vector3(0.010739746, 0.12657471, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D23" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1460106852]
|
||||||
|
transform = Transform3D(-0.99966913, 0, 0.025721963, 0, 0.7440292, 0, -0.025721963, 0, -0.99966913, -0.03309758, -0.010889728, -0.018640606)
|
||||||
|
size = Vector3(0.01, 0.11803589, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D24" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=814233916]
|
||||||
|
transform = Transform3D(-0.9791465, 0, -0.20315555, 0, 0.74402934, 0, 0.20315555, 0, -0.9791465, 0.0009902613, -0.0049475795, -0.019000916)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D25" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1206566850]
|
||||||
|
transform = Transform3D(0.9997566, 0, -0.022063702, 0, 0.7440293, 0, 0.022063702, 0, 0.9997566, 0.034941338, -0.0049475897, -0.015364999)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D26" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=782469494]
|
||||||
|
transform = Transform3D(0.9394602, 0, 0.34265807, 0, 0.7440292, 0, -0.34265807, 0, 0.9394602, 0.029045265, -0.0049475795, -0.0052434783)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D27" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=615899037]
|
||||||
|
transform = Transform3D(0.9816637, 0, -0.19062132, 0, 0.74402916, 0, 0.19062132, 0, 0.9816637, -0.024296898, -0.0009921952, 0.012097965)
|
||||||
|
size = Vector3(0.010739746, 0.14464112, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D28" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1440223352]
|
||||||
|
transform = Transform3D(0.84304994, 0, 0.537835, 0, 0.74402916, 0, -0.537835, 0, 0.84304994, 0.025889535, -0.0033536162, 0.0049027367)
|
||||||
|
size = Vector3(0.01, 0.13829346, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D29" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1162134484]
|
||||||
|
transform = Transform3D(0.9394602, 0, 0.34265807, 0, 0.7440292, 0, -0.34265807, 0, 0.9394602, -0.0034128763, -0.00657787, 0.0080187)
|
||||||
|
size = Vector3(0.01, 0.12962647, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D30" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=939036040]
|
||||||
|
transform = Transform3D(0.9394602, 0, 0.34265807, 0, 0.7440292, 0, -0.34265807, 0, 0.9394602, -0.0018274263, -0.0049475795, -0.028005121)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D31" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1952616270]
|
||||||
|
transform = Transform3D(0.9394602, 0, 0.34265807, 0, 0.7440292, 0, -0.34265807, 0, 0.9394602, -0.0051014535, -0.0077131614, 0.022625728)
|
||||||
|
size = Vector3(0.010739746, 0.12657471, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D32" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=1868626634]
|
||||||
|
transform = Transform3D(0.9394602, 0, 0.34265807, 0, 0.7440292, 0, -0.34265807, 0, 0.9394602, 0.042794522, -0.010889728, 0.0029820204)
|
||||||
|
size = Vector3(0.01, 0.11803589, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D33" type="CSGBox3D" parent="Model/CSGCombiner3D" unique_id=529418367]
|
||||||
|
transform = Transform3D(0.8364357, 0, 0.54806507, 0, 0.74402934, 0, -0.54806507, 0, 0.8364357, 0.011213522, -0.0049475795, 0.015817564)
|
||||||
|
size = Vector3(0.01, 0.1340088, 0.01)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
|
||||||
|
[node name="FoodItem" parent="." index="3"]
|
||||||
|
id = "chips"
|
||||||
|
type = 1
|
||||||
|
sell_value = 2
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
[gd_scene format=3 uid="uid://bpvp20hiagxxb"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://d8jo0402pgl6" path="res://abstract/food_item.tscn" id="1_food_item"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_of0s8"]
|
||||||
|
size = Vector3(0.10456543, 0.1, 0.035327148)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_of0s8"]
|
||||||
|
albedo_color = Color(0.7546, 0.77, 0.30799997, 1)
|
||||||
|
|
||||||
|
[node name="ChoppedPotato" unique_id=1675596942 instance=ExtResource("1_food_item")]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="." index="0"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0.0022827126, 0.010339355, -0.0028051804)
|
||||||
|
shape = SubResource("BoxShape3D_of0s8")
|
||||||
|
|
||||||
|
[node name="GrabPointHandLeft" parent="." index="1"]
|
||||||
|
transform = Transform3D(0.4877618, 0.85191125, -0.19062005, -0.8708042, 0.49020204, -0.0374375, 0.06154889, 0.1842533, 0.98094976, 0.028727118, 0.03771837, -0.06794037)
|
||||||
|
|
||||||
|
[node name="GrabPointHandRight" parent="." index="2"]
|
||||||
|
transform = Transform3D(0.35819444, -0.933647, 0, 0.92118585, 0.35341373, -0.16283518, 0.1520306, 0.05832667, 0.98665327, -0.02374028, 0.05081141, -0.06576714)
|
||||||
|
|
||||||
|
[node name="FoodItem" parent="." index="3"]
|
||||||
|
id = "chopped_potato"
|
||||||
|
type = 2
|
||||||
|
sell_value = 0
|
||||||
|
|
||||||
|
[node name="CombinableItem" parent="." index="8"]
|
||||||
|
enabled = false
|
||||||
|
|
||||||
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Model" index="0" unique_id=1632388374]
|
||||||
|
|
||||||
|
[node name="CSGBox3D3" type="CSGBox3D" parent="Model/CSGCombiner3D" index="0" unique_id=333574743]
|
||||||
|
transform = Transform3D(0.9982952, 0.058366816, 0, 2.5512945e-09, -4.363687e-08, -1, -0.058366816, 0.9982952, -4.371139e-08, 0.017540446, 0.012680878, -0.007841777)
|
||||||
|
size = Vector3(0.012, 0.0737854, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D10" type="CSGBox3D" parent="Model/CSGCombiner3D" index="1" unique_id=1055117011]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, -0.043418147, 0.013074134, 0.00018549338)
|
||||||
|
size = Vector3(0.012, 0.048638918, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D11" type="CSGBox3D" parent="Model/CSGCombiner3D" index="2" unique_id=12997588]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0.0347388, 0, -0.0042848364)
|
||||||
|
size = Vector3(0.012, 0.11803589, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D16" type="CSGBox3D" parent="Model/CSGCombiner3D" index="3" unique_id=520084094]
|
||||||
|
transform = Transform3D(-0.9220182, 0, 0.38714683, 0.38714683, -3.2522554e-08, 0.9220182, 1.6922723e-08, 0.7440293, 4.030269e-08, -0.03251951, 0, -0.0066871783)
|
||||||
|
size = Vector3(0.012, 0.1340088, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D18" type="CSGBox3D" parent="Model/CSGCombiner3D" index="4" unique_id=1713154750]
|
||||||
|
transform = Transform3D(-0.83532625, 0.10253985, 0.5321998, 0.5373272, -3.183022e-08, 0.8433741, 0.11623128, 0.7369294, -0.07405276, 0.012299374, 0, -0.0027317838)
|
||||||
|
size = Vector3(0.012, 0.14464112, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D19" type="CSGBox3D" parent="Model/CSGCombiner3D" index="5" unique_id=1856457460]
|
||||||
|
transform = Transform3D(-0.9815485, 0, -0.19121267, -0.19121267, -3.2522546e-08, 0.9815485, -8.358171e-09, 0.74402916, 4.2904848e-08, 0.0047408585, 0.015360672, -0.0050932043)
|
||||||
|
size = Vector3(0.012, 0.13829346, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D21" type="CSGBox3D" parent="Model/CSGCombiner3D" index="6" unique_id=1085994272]
|
||||||
|
transform = Transform3D(-0.99966913, 0, 0.025721963, 0.025721963, -3.252255e-08, 0.99966913, 1.1243427e-09, 0.7440292, 4.3696925e-08, 0.0084346505, -1.2525464e-10, -0.0038216766)
|
||||||
|
size = Vector3(0.012, 0.14171143, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D24" type="CSGBox3D" parent="Model/CSGCombiner3D" index="7" unique_id=799603447]
|
||||||
|
transform = Transform3D(-0.95734614, -0.16150172, -0.19071358, -0.19483496, -0.0018292161, 0.980833, -0.21337205, 0.7262875, -0.039937917, -0.015636567, 0.016941056, -0.0038651554)
|
||||||
|
size = Vector3(0.012, 0.1340088, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D26" type="CSGBox3D" parent="Model/CSGCombiner3D" index="8" unique_id=129671681]
|
||||||
|
transform = Transform3D(0.9394602, 0, 0.34265804, 0.34265804, -3.252255e-08, -0.9394602, 1.497806e-08, 0.7440292, -4.106511e-08, 0.033136886, 0.017579898, -0.0066871676)
|
||||||
|
size = Vector3(0.012, 0.1340088, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D27" type="CSGBox3D" parent="Model/CSGCombiner3D" index="9" unique_id=17129382]
|
||||||
|
transform = Transform3D(0.9816637, 0, -0.19062133, -0.19062132, -3.2522546e-08, -0.98166364, -8.332322e-09, 0.74402916, -4.2909882e-08, -0.019075055, -4.3606386e-05, -0.0027317842)
|
||||||
|
size = Vector3(0.012, 0.14464112, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D28" type="CSGBox3D" parent="Model/CSGCombiner3D" index="10" unique_id=1557637409]
|
||||||
|
transform = Transform3D(0.84304994, 0, 0.537835, 0.537835, -3.2522546e-08, -0.84304994, 2.3509514e-08, 0.74402916, -3.6850885e-08, 0.047794472, 0.016187795, -0.0034102863)
|
||||||
|
size = Vector3(0.012, 0.11199341, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D30" type="CSGBox3D" parent="Model/CSGCombiner3D" index="11" unique_id=1187654453]
|
||||||
|
transform = Transform3D(0.9394602, 0, 0.34265804, 0.34265804, -3.252255e-08, -0.9394602, 1.497806e-08, 0.7440292, -4.106511e-08, -0.005314119, 0, 0.009267362)
|
||||||
|
size = Vector3(0.012, 0.1340088, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D32" type="CSGBox3D" parent="Model/CSGCombiner3D" index="12" unique_id=733217969]
|
||||||
|
transform = Transform3D(0.9394602, 0, 0.34265804, 0.34265804, -3.252255e-08, -0.9394602, 1.497806e-08, 0.7440292, -4.106511e-08, 0.050648127, 9.4238846e-11, -0.0005330723)
|
||||||
|
size = Vector3(0.012, 0.1122406, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
|
|
||||||
|
[node name="CSGBox3D29" type="CSGBox3D" parent="Model/CSGCombiner3D" index="13" unique_id=1376406225]
|
||||||
|
transform = Transform3D(0.9816637, 0, -0.19062133, -0.19062132, -3.2522546e-08, -0.98166364, -8.332322e-09, 0.74402916, -4.2909882e-08, -0.04667829, -4.360572e-05, -0.0065923333)
|
||||||
|
size = Vector3(0.012, 0.10369263, 0.012)
|
||||||
|
material = SubResource("StandardMaterial3D_of0s8")
|
||||||
@@ -1,15 +1,6 @@
|
|||||||
[gd_scene format=3 uid="uid://cfc4ho67u4r5e"]
|
[gd_scene format=3 uid="uid://cfc4ho67u4r5e"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1_ut7mg"]
|
[ext_resource type="PackedScene" uid="uid://d8jo0402pgl6" path="res://abstract/food_item.tscn" id="1_food_item"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="3_pkevi"]
|
|
||||||
[ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="4_dq7qw"]
|
|
||||||
[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="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://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="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
|
||||||
@@ -18,56 +9,19 @@ radius = 0.08300781
|
|||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6l01i"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6l01i"]
|
||||||
albedo_color = Color(0.29, 0.101500005, 0, 1)
|
albedo_color = Color(0.29, 0.101500005, 0, 1)
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_lc22d"]
|
[node name="CookedBurger" unique_id=1675596942 instance=ExtResource("1_food_item")]
|
||||||
script = ExtResource("5_ychvb")
|
|
||||||
closed_pose = ExtResource("4_dq7qw")
|
|
||||||
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_qyiot"]
|
|
||||||
script = ExtResource("5_ychvb")
|
|
||||||
closed_pose = ExtResource("7_rl64h")
|
|
||||||
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
|
|
||||||
|
|
||||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_cookedburger"]
|
|
||||||
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="CookedBurger" unique_id=1675596942 instance=ExtResource("1_ut7mg")]
|
|
||||||
second_hand_grab = 1
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="." index="0"]
|
[node name="CollisionShape3D" parent="." index="0"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0072289705, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0072289705, 0)
|
||||||
shape = SubResource("CylinderShape3D_fco8w")
|
shape = SubResource("CylinderShape3D_fco8w")
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="." index="1" unique_id=59319982]
|
[node name="FoodItem" parent="." index="3"]
|
||||||
|
id = "cooked_burger"
|
||||||
|
type = 2
|
||||||
|
sell_value = 1
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Model" index="0" unique_id=59319982]
|
||||||
radius = 0.08300781
|
radius = 0.08300781
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_6l01i")
|
material = SubResource("StandardMaterial3D_6l01i")
|
||||||
|
|
||||||
[node name="GrabPointHandLeft" parent="." index="2" unique_id=1571481674 instance=ExtResource("3_pkevi")]
|
|
||||||
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="." index="3" unique_id=514404634 instance=ExtResource("6_etdv2")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06531982, 0.042291984, -0.08604182)
|
|
||||||
hand_pose = SubResource("Resource_qyiot")
|
|
||||||
|
|
||||||
[node name="FoodItem" parent="." index="4" unique_id=234567891 instance=ExtResource("10_zz42p")]
|
|
||||||
id = "cooked_burger"
|
|
||||||
type = 2
|
|
||||||
|
|
||||||
[node name="CombinableItem" parent="." index="5" unique_id=996936271 instance=ExtResource("10_ut7mg")]
|
|
||||||
|
|
||||||
[node name="NetPickable" type="MultiplayerSynchronizer" parent="." index="6" unique_id=925955029]
|
|
||||||
replication_config = SubResource("SceneReplicationConfig_np_cookedburger")
|
|
||||||
script = ExtResource("20_netpk")
|
|
||||||
|
|
||||||
[node name="DespawningItem" parent="." index="7" unique_id=303090111 instance=ExtResource("10_6p8pj")]
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
[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_fh0f6"]
|
||||||
[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_yy3y8"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b5ukku8i0hilb" path="res://prefabs/despawning_item.tscn" id="9_ej8jm"]
|
[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="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.10392761
|
height = 0.10392761
|
||||||
|
|||||||
@@ -0,0 +1,130 @@
|
|||||||
|
[gd_scene format=3 uid="uid://dgk88esxip5xi"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://d8jo0402pgl6" path="res://abstract/food_item.tscn" id="1_food_item"]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_fco8w"]
|
||||||
|
height = 0.29805934
|
||||||
|
radius = 0.025390625
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_s6exe"]
|
||||||
|
interpolation_mode = 2
|
||||||
|
offsets = PackedFloat32Array(0.0088495575, 0.76106197)
|
||||||
|
colors = PackedColorArray(0.6, 0.6, 0.6, 1, 1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_22jur"]
|
||||||
|
|
||||||
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_3lf03"]
|
||||||
|
noise = SubResource("FastNoiseLite_22jur")
|
||||||
|
color_ramp = SubResource("Gradient_s6exe")
|
||||||
|
normalize = false
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
||||||
|
albedo_color = Color(0.54, 0.39384004, 0.22680002, 1)
|
||||||
|
albedo_texture = SubResource("NoiseTexture2D_3lf03")
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vlqg6"]
|
||||||
|
albedo_color = Color(0.6, 0.6, 0.6, 1)
|
||||||
|
metallic = 1.0
|
||||||
|
metallic_specular = 1.0
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
|
||||||
|
size = Vector3(0.01, 0.062841795, 0.18769531)
|
||||||
|
|
||||||
|
[node name="Knife" unique_id=1675596942 groups=["chopping_tool"] instance=ExtResource("1_food_item")]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="." index="0"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 2.8164342e-09, -0.0644325)
|
||||||
|
shape = SubResource("CylinderShape3D_fco8w")
|
||||||
|
|
||||||
|
[node name="GrabPointHandLeft" parent="." index="1" unique_id=1571481674]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.80581045, 0.5921736, 0, -0.5921736, 0.80581045, -0.0055686757, -0.027660534, -0.06972287)
|
||||||
|
|
||||||
|
[node name="GrabPointHandRight" parent="." index="2" unique_id=514404634]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.7906625, 0.6122523, 0, -0.6122523, 0.7906625, -0.00973678, -0.036154382, -0.07772979)
|
||||||
|
|
||||||
|
[node name="DespawningItem" parent="." index="5" unique_id=303090111]
|
||||||
|
enabled = false
|
||||||
|
|
||||||
|
[node name="CombinableItem" parent="." index="6" unique_id=996936271]
|
||||||
|
enabled = false
|
||||||
|
|
||||||
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Model" parent_id_path=PackedInt32Array(1015960306) index="0" unique_id=1632388374]
|
||||||
|
transform = Transform3D(0.45, 0, 0, 0, 0.45, 0, 0, 0, 0.45, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Model/CSGCombiner3D" index="0" unique_id=73312047]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 1.9443882e-09, 0.044482417)
|
||||||
|
radius = 0.05
|
||||||
|
height = 0.28896484
|
||||||
|
sides = 16
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D2" type="CSGBox3D" parent="Model/CSGCombiner3D/CSGCylinder3D" index="0" unique_id=1092536616]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.3711392e-08, -1, 0, 1, -4.3711392e-08, -0.06291181, -0.003074348, 0.003173826)
|
||||||
|
operation = 2
|
||||||
|
size = Vector3(0.06698901, 0.08496094, 0.3070221)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3D3" type="CSGBox3D" parent="Model/CSGCombiner3D/CSGCylinder3D" index="1" unique_id=611507380]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.3711392e-08, -1, 0, 1, -4.3711392e-08, 0.057669085, -0.00014465302, 0.003173826)
|
||||||
|
operation = 2
|
||||||
|
size = Vector3(0.051974364, 0.08496094, 0.30897522)
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Model/CSGCombiner3D/CSGCylinder3D" index="2" unique_id=1981876218]
|
||||||
|
transform = Transform3D(-4.3711392e-08, 1, 0, 4.3711392e-08, 1.9106857e-15, -1, -1, -4.3711392e-08, -4.3711392e-08, 0.0014698628, 0.062123798, 0.00029686643)
|
||||||
|
radius = 0.016
|
||||||
|
height = 0.06318359
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="Model/CSGCombiner3D/CSGCylinder3D" index="3" unique_id=1905314362]
|
||||||
|
transform = Transform3D(-4.3711392e-08, 1, 0, 4.3711392e-08, 1.9106857e-15, -1, -1, -4.3711392e-08, -4.3711392e-08, 0.0014698628, -0.049634382, 0.00029686154)
|
||||||
|
radius = 0.016
|
||||||
|
height = 0.06318359
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="Model/CSGCombiner3D/CSGCylinder3D" index="4" unique_id=905243368]
|
||||||
|
transform = Transform3D(-6.070399e-08, 1, 0, 1.3887457, 4.3711392e-08, 8.7422784e-08, 1.21408e-07, 3.8213714e-15, -1, 0.0017506231, -0.10254226, -0.07109782)
|
||||||
|
operation = 2
|
||||||
|
radius = 0.032226563
|
||||||
|
height = 0.07854004
|
||||||
|
sides = 32
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Model/CSGCombiner3D/CSGCylinder3D" index="5" unique_id=1873534320]
|
||||||
|
transform = Transform3D(-1.0240791e-07, 1, 0, 2.34282, 4.3711392e-08, 8.7422784e-08, 2.0481582e-07, 3.8213714e-15, -1, 0.0017506231, 0.089636564, -0.07143875)
|
||||||
|
operation = 2
|
||||||
|
radius = 0.032226563
|
||||||
|
height = 0.07854004
|
||||||
|
sides = 32
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Model/CSGCombiner3D/CSGCylinder3D" index="6" unique_id=471254428]
|
||||||
|
transform = Transform3D(-1.0240791e-07, 1, 0, 2.34282, 4.3711392e-08, 8.7422784e-08, 2.0481582e-07, 3.8213714e-15, -1, 0.0017506231, -0.079547666, -0.07143876)
|
||||||
|
operation = 2
|
||||||
|
radius = 0.032226563
|
||||||
|
height = 0.07854004
|
||||||
|
sides = 32
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
|
[node name="CSGBox3DBlade" type="CSGBox3D" parent="Model/CSGCombiner3D" index="1" unique_id=94519802]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.005445559, -0.18191797)
|
||||||
|
size = Vector3(0.007, 0.08954346, 0.6364492)
|
||||||
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="CSGTorus3D" type="CSGTorus3D" parent="Model/CSGCombiner3D/CSGBox3DBlade" index="0" unique_id=555698965]
|
||||||
|
transform = Transform3D(-4.3711392e-08, 1, 0, -1, -4.3711392e-08, 0, 0, 0, 0.90598416, 0, 0.25891897, -0.12508947)
|
||||||
|
operation = 2
|
||||||
|
outer_radius = 0.3
|
||||||
|
sides = 64
|
||||||
|
|
||||||
|
[node name="CSGBox3D5" type="CSGBox3D" parent="Model/CSGCombiner3D/CSGBox3DBlade/CSGTorus3D" index="0" unique_id=720590378]
|
||||||
|
transform = Transform3D(-4.3710607e-08, -0.9973613, 0.0724587, 0.99998987, -4.3595673e-08, 3.1672265e-09, 0, 0.034851935, 0.47972566, 0.25730363, -0.003919763, 0.23939973)
|
||||||
|
operation = 2
|
||||||
|
size = Vector3(0.40247935, 0.2781372, 0.97288764)
|
||||||
|
|
||||||
|
[node name="Area3D" type="Area3D" parent="." index="9" unique_id=1995926098 groups=["chopping_tool"]]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.05011083)
|
||||||
|
collision_layer = 513
|
||||||
|
collision_mask = 0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D" index="0" unique_id=1593629505]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.018579103, -0.1395939)
|
||||||
|
shape = SubResource("BoxShape3D_vlqg6")
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
[gd_scene format=3 uid="uid://drwuhqb3pjtiy"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://d8jo0402pgl6" path="res://abstract/food_item.tscn" id="1_food_item"]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_fco8w"]
|
||||||
|
height = 0.16196387
|
||||||
|
radius = 0.07080078
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_d4wpw"]
|
||||||
|
albedo_color = Color(0.48, 0.34336, 0.1872, 1)
|
||||||
|
|
||||||
|
[node name="Potato" unique_id=1675596942 instance=ExtResource("1_food_item")]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="." index="0"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 1.2261836e-10, -0.0028051808)
|
||||||
|
shape = SubResource("CylinderShape3D_fco8w")
|
||||||
|
|
||||||
|
[node name="GrabPointHandLeft" parent="." index="1"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -0.5343598, -0.84525716, 0, 0.84525716, -0.5343598, -0.03287975, 0.03671424, 0.10207943)
|
||||||
|
|
||||||
|
[node name="GrabPointHandRight" parent="." index="2"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -0.7457213, -0.66625804, 0, 0.66625804, -0.7457213, 0.03408891, 0.014529038, 0.10517749)
|
||||||
|
|
||||||
|
[node name="FoodItem" parent="." index="3"]
|
||||||
|
id = "potato"
|
||||||
|
type = 2
|
||||||
|
sell_value = 0
|
||||||
|
|
||||||
|
[node name="CombinableItem" parent="." index="8"]
|
||||||
|
enabled = false
|
||||||
|
|
||||||
|
[node name="CSGCombiner3DPotato" type="CSGCombiner3D" parent="Model" index="0" unique_id=1632388374]
|
||||||
|
|
||||||
|
[node name="CSGSphere3D" type="CSGSphere3D" parent="Model/CSGCombiner3DPotato" index="0" unique_id=125051486]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.03307341)
|
||||||
|
radius = 0.06
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Model/CSGCombiner3DPotato" index="1" unique_id=837168454]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.03243477)
|
||||||
|
radius = 0.053
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
@@ -23,6 +23,9 @@ const PLAYER_SCENE := preload("res://Player/net_player.tscn")
|
|||||||
var xr_interface: XRInterface
|
var xr_interface: XRInterface
|
||||||
var _populated := false
|
var _populated := false
|
||||||
|
|
||||||
|
@export var items_spawner: MultiplayerSpawner
|
||||||
|
@export var players_spawner: MultiplayerSpawner
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
xr_interface = XRServer.find_interface("OpenXR")
|
xr_interface = XRServer.find_interface("OpenXR")
|
||||||
@@ -30,7 +33,7 @@ func _ready() -> void:
|
|||||||
DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED)
|
DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED)
|
||||||
get_viewport().use_xr = true
|
get_viewport().use_xr = true
|
||||||
|
|
||||||
NetworkManager.register_world(self, $PlayersSpawner, $ItemsSpawner)
|
NetworkManager.register_world(self, players_spawner, items_spawner)
|
||||||
NetworkManager.player_joined.connect(_on_player_joined)
|
NetworkManager.player_joined.connect(_on_player_joined)
|
||||||
NetworkManager.player_left.connect(_on_player_left)
|
NetworkManager.player_left.connect(_on_player_left)
|
||||||
NetworkManager.session_started.connect(_on_session_started)
|
NetworkManager.session_started.connect(_on_session_started)
|
||||||
@@ -65,7 +68,6 @@ func _exit_tree() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_session_started(_is_server: bool) -> void:
|
func _on_session_started(_is_server: bool) -> void:
|
||||||
NetworkManager.gate_existing_stations()
|
|
||||||
_populate_world_if_owner()
|
_populate_world_if_owner()
|
||||||
|
|
||||||
|
|
||||||
@@ -94,20 +96,29 @@ func _populate_world_if_owner() -> void:
|
|||||||
layout.queue_free()
|
layout.queue_free()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
_init_recipes()
|
||||||
_populated = true
|
_populated = true
|
||||||
GameManager.meals_in_play = ["hamburger"]
|
|
||||||
var stations := layout.get_stations()
|
var stations := layout.get_stations()
|
||||||
var items := layout.get_items()
|
var items := layout.get_items()
|
||||||
layout.queue_free()
|
layout.queue_free()
|
||||||
_remove_authored(authored)
|
_remove_authored(authored)
|
||||||
NetworkManager.log_line("Populating world: %d stations, %d items" % [stations.size(), items.size()])
|
NetworkManager.log_line("Populating world: %d stations, %d items" % [stations.size(), items.size()])
|
||||||
|
# One frame between spawns - MultiplayerSpawner corrupts replication when
|
||||||
|
# several nodes register for sync in the same frame (godotengine/godot#96914).
|
||||||
for d in stations:
|
for d in stations:
|
||||||
NetworkManager.spawn_item(d["scene"], d["xform"], d["name"], d["props"])
|
NetworkManager.spawn_item(d["scene"], d["xform"], d["name"], d["props"])
|
||||||
|
await get_tree().process_frame
|
||||||
for d in items:
|
for d in items:
|
||||||
NetworkManager.spawn_item(d["scene"], d["xform"], d["name"], d["props"])
|
NetworkManager.spawn_item(d["scene"], d["xform"], d["name"], d["props"])
|
||||||
|
await get_tree().process_frame
|
||||||
NetworkManager.log_line("World populated")
|
NetworkManager.log_line("World populated")
|
||||||
|
|
||||||
|
|
||||||
|
func _init_recipes():
|
||||||
|
GameManager.set_meals_in_play(["hamburger"])
|
||||||
|
GameManager.set_sides_in_play(["cube"])
|
||||||
|
|
||||||
|
|
||||||
# Free the authored template nodes. Done immediately rather than with
|
# Free the authored template nodes. Done immediately rather than with
|
||||||
# queue_free() so the names are released before the replicated copies are
|
# queue_free() so the names are released before the replicated copies are
|
||||||
# spawned under the same ones.
|
# spawned under the same ones.
|
||||||
@@ -141,9 +152,9 @@ func _on_player_left(peer_id: int) -> void:
|
|||||||
|
|
||||||
func _on_session_ended() -> void:
|
func _on_session_ended() -> void:
|
||||||
NetworkManager.log_line("Session ended, returning to main menu")
|
NetworkManager.log_line("Session ended, returning to main menu")
|
||||||
get_tree().change_scene_to_file("res://Scenes/mainMenu.tscn")
|
get_tree().change_scene_to_file("res://scenes/mainMenu.tscn")
|
||||||
|
|
||||||
|
|
||||||
func _on_connection_failed() -> void:
|
func _on_connection_failed() -> void:
|
||||||
NetworkManager.log_line("Connection failed, returning to main menu")
|
NetworkManager.log_line("Connection failed, returning to main menu")
|
||||||
get_tree().change_scene_to_file("res://Scenes/mainMenu.tscn")
|
get_tree().change_scene_to_file("res://scenes/mainMenu.tscn")
|
||||||
+53
-37
@@ -18,12 +18,18 @@ var _pickable: XRToolsPickable
|
|||||||
# 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: RigidBody3D.FreezeMode
|
||||||
|
|
||||||
# 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
|
||||||
|
|
||||||
|
# Intent set by external game logic (e.g. a station enabling/disabling a tool),
|
||||||
|
# independent of hold state. apply_held_state() is the sole writer of the
|
||||||
|
# pickable's actual `enabled` property, so this is how other systems express
|
||||||
|
# "should be enabled" without fighting that reconciliation every tick.
|
||||||
|
var _tool_enabled: bool = true
|
||||||
|
|
||||||
# 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.
|
||||||
@@ -33,8 +39,24 @@ 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")
|
SweetLogger.error("{0} must be a child of an XRToolsPickable", [name])
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# Configure Multiplayer Synchronizer
|
||||||
|
# This overwrites any changes made in the inspector.
|
||||||
|
replication_config = SceneReplicationConfig.new()
|
||||||
|
var properties: Array[NodePath] = [".:position", ".:quaternion", ".:enabled", ".:visible"]
|
||||||
|
for property_path in properties:
|
||||||
|
replication_config.add_property(property_path)
|
||||||
|
replication_config.property_set_replication_mode(property_path, SceneReplicationConfig.REPLICATION_MODE_ALWAYS)
|
||||||
|
replication_config.property_set_spawn(property_path, false)
|
||||||
|
# Unlike the properties above, this one is replicated at spawn too, so a
|
||||||
|
# late joiner sees the current holder immediately.
|
||||||
|
var held_by_path := NodePath("NetPickable:net_held_by")
|
||||||
|
replication_config.add_property(held_by_path)
|
||||||
|
replication_config.property_set_replication_mode(held_by_path, SceneReplicationConfig.REPLICATION_MODE_ALWAYS)
|
||||||
|
replication_config.property_set_spawn(held_by_path, true)
|
||||||
|
|
||||||
_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)
|
||||||
@@ -47,13 +69,22 @@ func _ready() -> void:
|
|||||||
apply_held_state.call_deferred()
|
apply_held_state.call_deferred()
|
||||||
|
|
||||||
|
|
||||||
|
## Called by external game logic (e.g. Counter._enable_tool/_disable_tool) to
|
||||||
|
## express whether this item should be usable right now, independent of hold
|
||||||
|
## state. Reapplies immediately so the change takes effect without waiting for
|
||||||
|
## the next net_held_by tick.
|
||||||
|
func set_tool_enabled(value: bool) -> void:
|
||||||
|
if _tool_enabled == value:
|
||||||
|
return
|
||||||
|
_tool_enabled = value
|
||||||
|
apply_held_state()
|
||||||
|
|
||||||
|
|
||||||
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)" % [
|
SweetLogger.debug("{0} net_held_by: {1} -> {2} (local state: {3}, authority={4})", [_pickable.name, old, value, _holder_desc(), get_multiplayer_authority()])
|
||||||
_pickable.name, old, value, _holder_desc(), get_multiplayer_authority()
|
|
||||||
])
|
|
||||||
apply_held_state()
|
apply_held_state()
|
||||||
|
|
||||||
|
|
||||||
@@ -71,7 +102,7 @@ func _set_net_held_by(value: int) -> void:
|
|||||||
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_inside_tree() and 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
|
||||||
@@ -84,12 +115,7 @@ func apply_held_state() -> void:
|
|||||||
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(
|
SweetLogger.debug("{0}: reclaiming ownership, restoring freeze_mode {1}->{2} collision_mask {3}->{4}", [_pickable.name, _pickable.freeze_mode, _original_freeze_mode, _pickable.collision_mask, _pickable.original_collision_mask])
|
||||||
"%s: reclaiming ownership, restoring freeze_mode %d->%d collision_mask %d->%d" % [
|
|
||||||
_pickable.name, _pickable.freeze_mode, _original_freeze_mode,
|
|
||||||
_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
|
||||||
@@ -102,12 +128,11 @@ func apply_held_state() -> void:
|
|||||||
# 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:
|
var want_enabled_authority := _original_enabled and _tool_enabled
|
||||||
|
if _pickable.enabled != want_enabled_authority:
|
||||||
if NetworkManager.is_online():
|
if NetworkManager.is_online():
|
||||||
print("%s: reclaiming ownership, restoring enabled %s->%s" % [
|
SweetLogger.debug("{0}: reclaiming ownership, restoring enabled {1}->{2}", [_pickable.name, _pickable.enabled, want_enabled_authority])
|
||||||
_pickable.name, _pickable.enabled, _original_enabled
|
_pickable.enabled = want_enabled_authority
|
||||||
])
|
|
||||||
_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
|
||||||
@@ -119,21 +144,14 @@ func apply_held_state() -> void:
|
|||||||
# 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(
|
SweetLogger.debug("{0}: ignoring non-authority sync (net_held_by={1}) — still actively held by our own hand (grab-race guard)", [_pickable.name, net_held_by])
|
||||||
"%s: ignoring non-authority sync (net_held_by=%d) — still actively held by our own hand (grab-race guard)" % [
|
|
||||||
_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(
|
# Jon's note: When we get this warning, it usually mean a client-side snapzone is not disabled, and is fighting the server over the item.
|
||||||
"%s: was held by %s on this peer, but authority now says peer %d owns it — force-dropping" % [
|
SweetLogger.warning("{0}: was held by {1} on this peer, but authority now says peer {2} 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
|
||||||
@@ -141,14 +159,14 @@ func apply_held_state() -> void:
|
|||||||
# 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) and _tool_enabled
|
||||||
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(): # This was spamming that Knife was frozen every frame.
|
||||||
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
|
||||||
@@ -165,10 +183,10 @@ func _on_picked_up(_p) -> void:
|
|||||||
# 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()])
|
SweetLogger.debug("{0} picked up by {1} (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])
|
SweetLogger.debug("{0} grabbed by hand (authority was peer {1}), requesting authority", [_pickable.name, net_held_by])
|
||||||
NetworkManager.request_item_authority_from(_pickable.get_path())
|
NetworkManager.request_item_authority_from(_pickable.get_path())
|
||||||
|
|
||||||
|
|
||||||
@@ -177,12 +195,10 @@ func _on_dropped(_p) -> void:
|
|||||||
# 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])
|
SweetLogger.debug("{0} dropped locally, but we aren't its authority (peer {1} 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)" % [
|
SweetLogger.debug("{0} dropped, reporting release to server (lin={1} ang={2})", [_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(
|
||||||
@@ -205,5 +221,5 @@ func _holder_desc() -> String:
|
|||||||
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)" % (str(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()]
|
||||||
|
|||||||
+13
-60
@@ -154,7 +154,7 @@ func _despawn_static_item(path: NodePath) -> void:
|
|||||||
func _spawn_item_from_data(data: Variant) -> Node:
|
func _spawn_item_from_data(data: Variant) -> Node:
|
||||||
var scene: PackedScene = load(data["scene"])
|
var scene: PackedScene = load(data["scene"])
|
||||||
if not scene:
|
if not scene:
|
||||||
push_error("spawn_item: could not load scene %s" % str(data.get("scene")))
|
SweetLogger.error("Could not load scene {0}", [str(data.get("scene"))])
|
||||||
return null
|
return null
|
||||||
var inst := scene.instantiate()
|
var inst := scene.instantiate()
|
||||||
if inst is Node3D:
|
if inst is Node3D:
|
||||||
@@ -163,42 +163,8 @@ func _spawn_item_from_data(data: Variant) -> Node:
|
|||||||
inst.name = data["name"]
|
inst.name = data["name"]
|
||||||
for key in data.get("props", {}):
|
for key in data.get("props", {}):
|
||||||
inst.set(key, data["props"][key])
|
inst.set(key, data["props"][key])
|
||||||
if not owns_world():
|
|
||||||
_gate_station(inst)
|
|
||||||
return inst
|
return inst
|
||||||
|
|
||||||
|
|
||||||
# Stations run their own logic and auto-grab (XRToolsSnapZone with
|
|
||||||
# snap_mode=RANGE) identically on every peer by default, which would let each
|
|
||||||
# peer independently grab/simulate the same shared object. Disable both on
|
|
||||||
# every peer except the one that owns world logic; the server-authoritative
|
|
||||||
# item-authority RPCs are what let clients still grab a server-held item by
|
|
||||||
# hand. Runs before the node enters the tree, so its own _ready() sees the
|
|
||||||
# final (disabled) state.
|
|
||||||
func _gate_station(node: Node) -> void:
|
|
||||||
if not (node is StaticBody3D):
|
|
||||||
return
|
|
||||||
for child in node.get_children():
|
|
||||||
if child is XRToolsSnapZone:
|
|
||||||
child.enabled = false
|
|
||||||
child.set_process(false)
|
|
||||||
node.set_process(false)
|
|
||||||
log_line("gated station (non-owner peer): %s" % node.name)
|
|
||||||
|
|
||||||
|
|
||||||
## Gate every station already sitting in the scene tree, for peers that don't
|
|
||||||
## own world logic. Stations that arrive through spawn_item() are gated as they
|
|
||||||
## are built (see _spawn_item_from_data), but ones baked into a scene file never
|
|
||||||
## pass through there — leaving a client running its own snap zones, which then
|
|
||||||
## grab items straight out of the local hand and fight the server's
|
|
||||||
## authoritative placement. Idempotent, so it's safe on every session start.
|
|
||||||
func gate_existing_stations() -> void:
|
|
||||||
if owns_world():
|
|
||||||
return
|
|
||||||
for station in get_tree().get_nodes_in_group("station"):
|
|
||||||
_gate_station(station)
|
|
||||||
|
|
||||||
|
|
||||||
# --- Item grab-authority transfer -----------------------------------------
|
# --- Item grab-authority transfer -----------------------------------------
|
||||||
|
|
||||||
## Called by NetPickable when this peer grabs an item by hand. Godot rejects
|
## Called by NetPickable when this peer grabs an item by hand. Godot rejects
|
||||||
@@ -280,14 +246,16 @@ func _do_release_item_authority(item_path: NodePath, lin: Vector3, ang: Vector3,
|
|||||||
_try_snap_into_station.call_deferred(item)
|
_try_snap_into_station.call_deferred(item)
|
||||||
|
|
||||||
|
|
||||||
# All station snap zones in the world (every XRToolsSnapZone child of a node in
|
# All station snap zones in the world (every XRToolsSnapZone under a node in the
|
||||||
# the "station" group — some stations, e.g. Table, have more than one).
|
# "station" group — some stations, e.g. Table, have more than one). Derived from
|
||||||
|
# the station body rather than from the "station_zone" group directly, so zones
|
||||||
|
# that are deliberately not server-placeable (the player's Hatch) stay out.
|
||||||
func _station_snap_zones() -> Array:
|
func _station_snap_zones() -> Array:
|
||||||
var zones := []
|
var zones := []
|
||||||
for station in get_tree().get_nodes_in_group("station"):
|
for station in get_tree().get_nodes_in_group("station"):
|
||||||
for child in station.get_children():
|
for zone in station.find_children("*", "XRToolsSnapZone", true, false):
|
||||||
if child is XRToolsSnapZone:
|
if not zones.has(zone):
|
||||||
zones.append(child)
|
zones.append(zone)
|
||||||
return zones
|
return zones
|
||||||
|
|
||||||
|
|
||||||
@@ -331,7 +299,7 @@ func _try_snap_into_station(item: Node) -> void:
|
|||||||
var by: Node = null
|
var by: Node = null
|
||||||
if item.has_method("get_picked_up_by"):
|
if item.has_method("get_picked_up_by"):
|
||||||
by = item.get_picked_up_by()
|
by = item.get_picked_up_by()
|
||||||
log_line("skipped snapping %s: already held by %s (grab-race guard)" % [item.name, by.get_path() if by else "?"])
|
log_line("skipped snapping %s: already held by %s (grab-race guard)" % [item.name, str(by.get_path()) if by else "?"])
|
||||||
return
|
return
|
||||||
for zone in _station_snap_zones():
|
for zone in _station_snap_zones():
|
||||||
if is_instance_valid(zone.picked_up_object):
|
if is_instance_valid(zone.picked_up_object):
|
||||||
@@ -389,7 +357,7 @@ func is_server() -> bool:
|
|||||||
func is_online() -> bool:
|
func is_online() -> bool:
|
||||||
var p := multiplayer.multiplayer_peer
|
var p := multiplayer.multiplayer_peer
|
||||||
return p != null and not (p is OfflineMultiplayerPeer)
|
return p != null and not (p is OfflineMultiplayerPeer)
|
||||||
|
|
||||||
|
|
||||||
## True on the machine that owns authoritative world logic: the server when
|
## True on the machine that owns authoritative world logic: the server when
|
||||||
## online, or the single player when offline. Station logic and spawning should
|
## online, or the single player when offline. Station logic and spawning should
|
||||||
@@ -398,22 +366,6 @@ func owns_world() -> bool:
|
|||||||
return not is_online() or is_server()
|
return not is_online() or is_server()
|
||||||
|
|
||||||
|
|
||||||
# --- Station work-progress seam -------------------------------------------
|
|
||||||
|
|
||||||
## Reusable entry point for a client to contribute work to a station (e.g. a
|
|
||||||
## future chopping/gesture station). The client detects the gesture locally and
|
|
||||||
## calls this; the server validates and accumulates. Timer-driven stations like
|
|
||||||
## the Hob don't need it, but it is the drop-in seam for input-driven ones.
|
|
||||||
@rpc("any_peer", "reliable")
|
|
||||||
func submit_work(station_path: NodePath, amount: float) -> void:
|
|
||||||
if not is_server():
|
|
||||||
return
|
|
||||||
var station := get_node_or_null(station_path)
|
|
||||||
if station and station.has_method("add_work"):
|
|
||||||
log_line("submit_work: peer %d contributed %.2f to %s" % [multiplayer.get_remote_sender_id(), amount, station.name])
|
|
||||||
station.add_work(multiplayer.get_remote_sender_id(), amount)
|
|
||||||
|
|
||||||
|
|
||||||
## Called by the world scene once it's ready, passing its spawners. Must run
|
## Called by the world scene once it's ready, passing its spawners. Must run
|
||||||
## before world_ready()/host()/join() on every peer so the custom spawn
|
## before world_ready()/host()/join() on every peer so the custom spawn
|
||||||
## function is installed before any spawn packet can arrive.
|
## function is installed before any spawn packet can arrive.
|
||||||
@@ -522,7 +474,8 @@ func _on_player_absent(peer_id: int) -> void:
|
|||||||
# --- Command-line driven test bootstrap -----------------------------------
|
# --- Command-line driven test bootstrap -----------------------------------
|
||||||
|
|
||||||
func _handle_cmdline() -> void:
|
func _handle_cmdline() -> void:
|
||||||
var args := OS.get_cmdline_user_args()
|
SweetLogger.debug("->[]")
|
||||||
|
var args := OS.get_cmdline_args()
|
||||||
if args.has("--server"):
|
if args.has("--server"):
|
||||||
log_line("cmdline: --server")
|
log_line("cmdline: --server")
|
||||||
host()
|
host()
|
||||||
@@ -553,7 +506,7 @@ func log_line(s: String) -> void:
|
|||||||
if p != null and p.get_connection_status() == MultiplayerPeer.CONNECTION_CONNECTED:
|
if p != null and p.get_connection_status() == MultiplayerPeer.CONNECTION_CONNECTED:
|
||||||
id = multiplayer.get_unique_id()
|
id = multiplayer.get_unique_id()
|
||||||
var line := "[NET %d] %s" % [id, s]
|
var line := "[NET %d] %s" % [id, s]
|
||||||
print(line)
|
SweetLogger.info(line, [], "network_manager.gd", "log_line")
|
||||||
if _log_file:
|
if _log_file:
|
||||||
_log_file.store_line(line)
|
_log_file.store_line(line)
|
||||||
_log_file.flush()
|
_log_file.flush()
|
||||||
|
|||||||
+2
-2
@@ -151,5 +151,5 @@ static func get_items_old() -> Array[Dictionary]:
|
|||||||
return items
|
return items
|
||||||
|
|
||||||
|
|
||||||
static func _item(scene: String, name: String, pos: Vector3) -> Dictionary:
|
static func _item(scene: String, item_name: String, pos: Vector3) -> Dictionary:
|
||||||
return {"scene": scene, "name": name, "xform": Transform3D(Basis(), pos), "props": {}}
|
return {"scene": scene, "name": item_name, "xform": Transform3D(Basis(), pos), "props": {}}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=5 format=3]
|
[gd_scene format=3 uid="uid://c58ns7csdahjy"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Player/net_player.gd" id="1_np001"]
|
[ext_resource type="Script" uid="uid://bncuxh7j7ix5q" path="res://Player/net_player.gd" id="1_np001"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bq86r4yll8po" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn" id="2_np002"]
|
[ext_resource type="PackedScene" uid="uid://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"]
|
||||||
|
|
||||||
@@ -28,17 +28,16 @@ properties/5/path = NodePath("RightHand:quaternion")
|
|||||||
properties/5/spawn = false
|
properties/5/spawn = false
|
||||||
properties/5/replication_mode = 1
|
properties/5/replication_mode = 1
|
||||||
|
|
||||||
[node name="NetPlayer" type="Node3D"]
|
[node name="NetPlayer" type="Node3D" unique_id=70287099]
|
||||||
script = ExtResource("1_np001")
|
script = ExtResource("1_np001")
|
||||||
|
|
||||||
[node name="Head" type="MeshInstance3D" parent="."]
|
[node name="Head" type="MeshInstance3D" parent="." unique_id=56588259]
|
||||||
mesh = SubResource("CapsuleMesh_np004")
|
mesh = SubResource("CapsuleMesh_np004")
|
||||||
|
|
||||||
[node name="LeftHand" parent="." instance=ExtResource("2_np002")]
|
[node name="LeftHand" parent="." unique_id=1703673184 instance=ExtResource("2_np002")]
|
||||||
|
|
||||||
[node name="RightHand" parent="." instance=ExtResource("3_np003")]
|
[node name="RightHand" parent="." unique_id=325341465 instance=ExtResource("3_np003")]
|
||||||
|
|
||||||
[node name="Sync" type="MultiplayerSynchronizer" parent="."]
|
[node name="Sync" type="MultiplayerSynchronizer" parent="." unique_id=529459963]
|
||||||
root_path = NodePath("..")
|
|
||||||
replication_config = SubResource("SceneReplicationConfig_np005")
|
|
||||||
replication_interval = 0.033
|
replication_interval = 0.033
|
||||||
|
replication_config = SubResource("SceneReplicationConfig_np005")
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
extends Node
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
$"..".visible = false
|
||||||
|
|
||||||
|
# Listen for the game over signal from GameManager
|
||||||
|
Signals.game_state_changed.connect(_on_game_state_changed)
|
||||||
|
|
||||||
|
func _on_game_state_changed(new_state: GameManager.GameState) -> void:
|
||||||
|
if new_state == GameManager.GameState.GAME_OVER:
|
||||||
|
$"..".visible = true
|
||||||
|
else:
|
||||||
|
$"..".visible = false
|
||||||
@@ -0,0 +1,214 @@
|
|||||||
|
[gd_scene format=3 uid="uid://j5s5wus7tuhb"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bq86r4yll8po" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn" id="1_jr1t4"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://xqimcf20s2jp" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn" id="2_gshht"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="2_q1xvu"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="3_rd8py"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="4_6xr3x"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="4_rd8py"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cmxe1av5nsxyq" path="res://UI/shop_menu_3d.tscn" id="5_7rrtu"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cqhw276realc" path="res://addons/godot-xr-tools/functions/function_pointer.tscn" id="6_ptr"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="7_1fmci"]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_1fmci"]
|
||||||
|
animation = &"Grip"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_itrmp"]
|
||||||
|
animation = &"Grip"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_nrfrd"]
|
||||||
|
filter_enabled = true
|
||||||
|
filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_73fu8"]
|
||||||
|
animation = &"Grip 5"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ouruy"]
|
||||||
|
filter_enabled = true
|
||||||
|
filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_i0gvw"]
|
||||||
|
graph_offset = Vector2(-536, 11)
|
||||||
|
nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_1fmci")
|
||||||
|
nodes/ClosedHand1/position = Vector2(-600, 300)
|
||||||
|
nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_itrmp")
|
||||||
|
nodes/ClosedHand2/position = Vector2(-360, 300)
|
||||||
|
nodes/Grip/node = SubResource("AnimationNodeBlend2_nrfrd")
|
||||||
|
nodes/Grip/position = Vector2(0, 20)
|
||||||
|
nodes/OpenHand/node = SubResource("AnimationNodeAnimation_73fu8")
|
||||||
|
nodes/OpenHand/position = Vector2(-600, 100)
|
||||||
|
nodes/Trigger/node = SubResource("AnimationNodeBlend2_ouruy")
|
||||||
|
nodes/Trigger/position = Vector2(-360, 20)
|
||||||
|
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1fmci"]
|
||||||
|
transparency = 1
|
||||||
|
albedo_color = Color(1, 1, 1, 0.5882353)
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_5mmou"]
|
||||||
|
animation = &"Grip"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_yfij0"]
|
||||||
|
animation = &"Grip"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_2ebvs"]
|
||||||
|
filter_enabled = true
|
||||||
|
filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_l8v2a"]
|
||||||
|
animation = &"Grip 5"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_qpjda"]
|
||||||
|
filter_enabled = true
|
||||||
|
filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_37hbl"]
|
||||||
|
graph_offset = Vector2(-552.664, 107.301)
|
||||||
|
nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_5mmou")
|
||||||
|
nodes/ClosedHand1/position = Vector2(-600, 300)
|
||||||
|
nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_yfij0")
|
||||||
|
nodes/ClosedHand2/position = Vector2(-360, 300)
|
||||||
|
nodes/Grip/node = SubResource("AnimationNodeBlend2_2ebvs")
|
||||||
|
nodes/Grip/position = Vector2(0, 40)
|
||||||
|
nodes/OpenHand/node = SubResource("AnimationNodeAnimation_l8v2a")
|
||||||
|
nodes/OpenHand/position = Vector2(-600, 100)
|
||||||
|
nodes/Trigger/node = SubResource("AnimationNodeBlend2_qpjda")
|
||||||
|
nodes/Trigger/position = Vector2(-360, 40)
|
||||||
|
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||||
|
|
||||||
|
[node name="XROrigin3D" type="XROrigin3D" unique_id=2055526621]
|
||||||
|
|
||||||
|
[node name="XRCamera3D" type="XRCamera3D" parent="." unique_id=983614103]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.49626195, 0)
|
||||||
|
|
||||||
|
[node name="XRControllerLeftHand" type="XRController3D" parent="." unique_id=1171100950]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, 0, 0)
|
||||||
|
tracker = &"left_hand"
|
||||||
|
|
||||||
|
[node name="LeftHand" parent="XRControllerLeftHand" unique_id=1805508372 instance=ExtResource("1_jr1t4")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.009340696, -0.0074635968, 0.024033919)
|
||||||
|
|
||||||
|
[node name="Hand_low_L" parent="XRControllerLeftHand/LeftHand" index="0"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.01, 0, 0.05)
|
||||||
|
|
||||||
|
[node name="Skeleton3D" parent="XRControllerLeftHand/LeftHand/Hand_low_L/Armature" index="0" unique_id=242151480]
|
||||||
|
bones/1/rotation = Quaternion(0.323537, -2.5658142e-05, -0.027220426, 0.9458239)
|
||||||
|
bones/2/rotation = Quaternion(-0.09044407, -0.04151748, -0.16629349, 0.98104167)
|
||||||
|
bones/3/rotation = Quaternion(-0.04661986, 0.02097099, 0.010327632, 0.9986392)
|
||||||
|
bones/5/rotation = Quaternion(-0.0012845465, -0.011608094, -0.016825877, 0.99979025)
|
||||||
|
bones/6/rotation = Quaternion(0.10292491, -0.009932083, -0.007944166, 0.9946078)
|
||||||
|
bones/7/rotation = Quaternion(-0.012859, -0.023610815, -0.32325828, 0.9459289)
|
||||||
|
bones/8/rotation = Quaternion(0.012057539, -0.009291937, -0.24747224, 0.96877545)
|
||||||
|
bones/10/rotation = Quaternion(-0.035753887, -0.0004000325, 0.0063676415, 0.9993403)
|
||||||
|
bones/11/rotation = Quaternion(-0.0026496367, -0.0011447113, -0.12599176, 0.9920271)
|
||||||
|
bones/12/rotation = Quaternion(0.039422527, 0.0019339261, -0.22807404, 0.97284347)
|
||||||
|
bones/13/rotation = Quaternion(-0.012339468, -0.008812943, -0.28066906, 0.9596848)
|
||||||
|
bones/15/rotation = Quaternion(-0.070265576, 0.010190836, -0.024330735, 0.9971795)
|
||||||
|
bones/16/rotation = Quaternion(-0.032063447, -0.002236244, -0.06863657, 0.99712384)
|
||||||
|
bones/17/rotation = Quaternion(0.025345208, 0.008124622, -0.2490055, 0.9681363)
|
||||||
|
bones/18/rotation = Quaternion(0.0025223217, 0.007880732, -0.2432038, 0.9699399)
|
||||||
|
bones/20/rotation = Quaternion(-0.09173688, 0.020302717, -0.010182976, 0.9955242)
|
||||||
|
bones/21/rotation = Quaternion(-0.06251818, -0.00022572002, -0.115392834, 0.99135065)
|
||||||
|
bones/22/rotation = Quaternion(0.058578636, 0.021648303, -0.26990518, 0.9608596)
|
||||||
|
bones/23/rotation = Quaternion(0.006871769, -0.0035727466, -0.21195254, 0.97724926)
|
||||||
|
|
||||||
|
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XRControllerLeftHand/LeftHand/Hand_low_L/Armature/Skeleton3D" index="1" unique_id=774348011]
|
||||||
|
transform = Transform3D(0.5408296, 0.8408128, -0.023173608, -0.08262672, 0.08052427, 0.99332196, 0.83706397, -0.5353032, 0.11302349, 0.039901964, 0.040282845, -0.15009598)
|
||||||
|
bone_name = "Index_Tip_L"
|
||||||
|
bone_idx = 9
|
||||||
|
|
||||||
|
[node name="Poke" parent="XRControllerLeftHand/LeftHand/Hand_low_L/Armature/Skeleton3D/BoneAttachment3D" unique_id=259928841 instance=ExtResource("7_1fmci")]
|
||||||
|
|
||||||
|
[node name="AnimationTree" parent="XRControllerLeftHand/LeftHand" index="1"]
|
||||||
|
tree_root = SubResource("AnimationNodeBlendTree_i0gvw")
|
||||||
|
|
||||||
|
[node name="MovementDirect" parent="XRControllerLeftHand" unique_id=1865515938 instance=ExtResource("2_q1xvu")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.009340696, -0.0074635968, 0.024033919)
|
||||||
|
strafe = true
|
||||||
|
|
||||||
|
[node name="FunctionPickup" parent="XRControllerLeftHand" unique_id=2133415351 instance=ExtResource("3_rd8py")]
|
||||||
|
grab_collision_mask = 327748
|
||||||
|
|
||||||
|
[node name="FunctionPointer" parent="XRControllerLeftHand" unique_id=315304316 instance=ExtResource("6_ptr")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.02, 0.05, -0.1)
|
||||||
|
show_laser = 2
|
||||||
|
laser_length = 1
|
||||||
|
laser_material = SubResource("StandardMaterial3D_1fmci")
|
||||||
|
laser_hit_material = SubResource("StandardMaterial3D_1fmci")
|
||||||
|
show_target = true
|
||||||
|
target_radius = 0.009
|
||||||
|
target_material = SubResource("StandardMaterial3D_1fmci")
|
||||||
|
|
||||||
|
[node name="ShopMenu3D" parent="XRControllerLeftHand" unique_id=331240263 instance=ExtResource("5_7rrtu")]
|
||||||
|
transform = Transform3D(0.17921828, 0.016751308, -0.00045015282, -0.0125175975, 0.13704088, 0.116030626, 0.011140855, -0.11549542, 0.13761066, 0.27515364, 0.031010807, -0.013297826)
|
||||||
|
|
||||||
|
[node name="XRControllerRightHand" type="XRController3D" parent="." unique_id=202756852]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, 0)
|
||||||
|
tracker = &"right_hand"
|
||||||
|
|
||||||
|
[node name="RightHand" parent="XRControllerRightHand" unique_id=1112462503 instance=ExtResource("2_gshht")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0074635968, 0.024033919)
|
||||||
|
|
||||||
|
[node name="Hand_low_R" parent="XRControllerRightHand/RightHand" index="0"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.01, 0, 0.05)
|
||||||
|
|
||||||
|
[node name="Skeleton3D" parent="XRControllerRightHand/RightHand/Hand_low_R/Armature" index="0" unique_id=976194013]
|
||||||
|
bones/1/rotation = Quaternion(0.323537, 2.5658142e-05, 0.027220426, 0.9458239)
|
||||||
|
bones/2/rotation = Quaternion(-0.09044407, 0.04151748, 0.16629349, 0.98104167)
|
||||||
|
bones/3/rotation = Quaternion(-0.04661986, -0.020970985, -0.010327632, 0.9986392)
|
||||||
|
bones/5/rotation = Quaternion(-0.0012845465, 0.011608096, 0.01682588, 0.99979025)
|
||||||
|
bones/6/rotation = Quaternion(0.10292492, 0.009932085, 0.007944188, 0.9946078)
|
||||||
|
bones/7/rotation = Quaternion(-0.012859004, 0.023610815, 0.32325834, 0.94592875)
|
||||||
|
bones/8/rotation = Quaternion(0.012057537, 0.0092919255, 0.24747224, 0.96877545)
|
||||||
|
bones/10/rotation = Quaternion(-0.035753887, 0.00040003238, -0.0063676336, 0.9993403)
|
||||||
|
bones/11/rotation = Quaternion(-0.0026496367, 0.0011447114, 0.1259918, 0.9920271)
|
||||||
|
bones/12/rotation = Quaternion(0.03942253, -0.0019339275, 0.2280741, 0.97284347)
|
||||||
|
bones/13/rotation = Quaternion(-0.012339467, 0.008812944, 0.28066906, 0.9596848)
|
||||||
|
bones/15/rotation = Quaternion(-0.07026557, -0.010190836, 0.024330745, 0.99717957)
|
||||||
|
bones/16/rotation = Quaternion(-0.032063447, 0.002236245, 0.06863657, 0.99712384)
|
||||||
|
bones/17/rotation = Quaternion(0.025345206, -0.00812462, 0.24900547, 0.9681363)
|
||||||
|
bones/18/rotation = Quaternion(0.0025223275, -0.007880732, 0.24320383, 0.9699399)
|
||||||
|
bones/20/rotation = Quaternion(-0.09173688, -0.020302719, 0.010182976, 0.9955242)
|
||||||
|
bones/21/rotation = Quaternion(-0.06251817, 0.00022572096, 0.115392834, 0.99135065)
|
||||||
|
bones/22/rotation = Quaternion(0.058578644, -0.021648303, 0.26990518, 0.9608596)
|
||||||
|
bones/23/rotation = Quaternion(0.0068717655, 0.0035727452, 0.21195254, 0.97724926)
|
||||||
|
|
||||||
|
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XRControllerRightHand/RightHand/Hand_low_R/Armature/Skeleton3D" index="1" unique_id=497290142]
|
||||||
|
transform = Transform3D(0.5408295, -0.8408129, 0.023173586, 0.08262676, 0.08052423, 0.99332196, -0.83706397, -0.53530306, 0.11302352, -0.03990197, 0.040282845, -0.15009597)
|
||||||
|
bone_name = "Index_Tip_R"
|
||||||
|
bone_idx = 9
|
||||||
|
|
||||||
|
[node name="Poke" parent="XRControllerRightHand/RightHand/Hand_low_R/Armature/Skeleton3D/BoneAttachment3D" unique_id=303927399 instance=ExtResource("7_1fmci")]
|
||||||
|
|
||||||
|
[node name="AnimationTree" parent="XRControllerRightHand/RightHand" index="1"]
|
||||||
|
tree_root = SubResource("AnimationNodeBlendTree_37hbl")
|
||||||
|
|
||||||
|
[node name="MovementTurn" parent="XRControllerRightHand" unique_id=154529119 instance=ExtResource("4_rd8py")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0074635968, 0.024033919)
|
||||||
|
turn_mode = 2
|
||||||
|
smooth_turn_speed = 3.5
|
||||||
|
|
||||||
|
[node name="FunctionPickup" parent="XRControllerRightHand" unique_id=1876210450 instance=ExtResource("3_rd8py")]
|
||||||
|
grab_collision_mask = 327748
|
||||||
|
|
||||||
|
[node name="FunctionPointer" parent="XRControllerRightHand" unique_id=2017919314 instance=ExtResource("6_ptr")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.02, 0.05, -0.1)
|
||||||
|
show_laser = 2
|
||||||
|
laser_length = 1
|
||||||
|
laser_material = SubResource("StandardMaterial3D_1fmci")
|
||||||
|
laser_hit_material = SubResource("StandardMaterial3D_1fmci")
|
||||||
|
show_target = true
|
||||||
|
target_radius = 0.009
|
||||||
|
target_material = SubResource("StandardMaterial3D_1fmci")
|
||||||
|
|
||||||
|
[node name="ShopMenu3D" parent="XRControllerRightHand" unique_id=246744456 instance=ExtResource("5_7rrtu")]
|
||||||
|
transform = Transform3D(0.17912053, -0.017761359, -0.0006130421, 0.014117808, 0.138435, 0.11417722, -0.010794867, -0.11366743, 0.13915166, -0.11845571, 0.038174443, -0.038154215)
|
||||||
|
|
||||||
|
[node name="PlayerBody" parent="." unique_id=1444632058 instance=ExtResource("4_6xr3x")]
|
||||||
|
collision_mask = 1017
|
||||||
|
player_calibrate_height = false
|
||||||
|
|
||||||
|
[editable path="XRControllerLeftHand/LeftHand"]
|
||||||
|
[editable path="XRControllerLeftHand/LeftHand/Hand_low_L"]
|
||||||
|
[editable path="XRControllerRightHand/RightHand"]
|
||||||
|
[editable path="XRControllerRightHand/RightHand/Hand_low_R"]
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
extends Node
|
||||||
|
class_name BuildModeController
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready() -> void:
|
||||||
|
Signals.game_state_changed.connect(_on_game_state_changed)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_game_state_changed(new_state: GameManager.GameState) -> void:
|
||||||
|
SweetLogger.info("Game state changed to {0}", [GameManager.GameState.keys()[new_state]], "build_mode_controller.gd", "_on_game_state_changed")
|
||||||
|
if new_state == GameManager.GameState.BUILDING:
|
||||||
|
despawn_unheld_pickables()
|
||||||
|
if not NetworkManager.owns_world():
|
||||||
|
return
|
||||||
|
if new_state == GameManager.GameState.BUILDING:
|
||||||
|
_set_stations_enabled(false)
|
||||||
|
elif new_state == GameManager.GameState.RUNNING:
|
||||||
|
_set_stations_enabled(true)
|
||||||
|
|
||||||
|
|
||||||
|
# Only single-snap_zone Station-derived stations use the generic `enabled`
|
||||||
|
# toggle here. Table is Station-derived too now (SharedInventoryStation), but
|
||||||
|
# it has multiple snap_zones and manages their enabling itself via its own
|
||||||
|
# FSM (_set_snap_zones_enabled) - toggling only the base `snap_zone` here
|
||||||
|
# would desync it from the rest of Table's zones, so it's excluded.
|
||||||
|
func _set_stations_enabled(value: bool) -> void:
|
||||||
|
for station in get_tree().get_nodes_in_group("station"):
|
||||||
|
if station is Station and not station is Table:
|
||||||
|
station.enabled = value
|
||||||
|
|
||||||
|
|
||||||
|
# Despawn all despawnable pickables unless it's in a "persistent_inventory"
|
||||||
|
# snap_zone. Permanent fixtures (e.g. a station's knife) opt out entirely by
|
||||||
|
# having no DespawningItem child, or a disabled one.
|
||||||
|
func despawn_unheld_pickables():
|
||||||
|
var root = get_tree().get_root()
|
||||||
|
var pickables: Array[Node] = []
|
||||||
|
_collect_pickables(root, pickables)
|
||||||
|
for pickable in pickables:
|
||||||
|
var despawning_item := pickable.get_node_or_null("DespawningItem") as DespawningItem
|
||||||
|
if not despawning_item or not despawning_item.enabled:
|
||||||
|
continue
|
||||||
|
var held_by: Node = pickable.get_picked_up_by()
|
||||||
|
if not held_by:
|
||||||
|
NetworkManager.despawn_item(pickable)
|
||||||
|
continue
|
||||||
|
if not held_by.is_in_group("persistent_inventory"):
|
||||||
|
SweetLogger.debug("Despawn unheld pickable held_by: {0}, pickable: {1}", [held_by, pickable])
|
||||||
|
pickable.drop()
|
||||||
|
NetworkManager.despawn_item(pickable)
|
||||||
|
|
||||||
|
|
||||||
|
func _collect_pickables(node: Node, out_array: Array) -> void:
|
||||||
|
if node is XRToolsPickable:
|
||||||
|
out_array.append(node)
|
||||||
|
for child in node.get_children():
|
||||||
|
if child is Node:
|
||||||
|
_collect_pickables(child, out_array)
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
[gd_scene format=3 uid="uid://bnwb7imcotkod"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bsdpd18i1i17s" path="res://prefabs/build_mode_controller.gd" id="1_7i0c4"]
|
||||||
|
|
||||||
|
[node name="BuildModeController" type="Node" unique_id=552013109]
|
||||||
|
script = ExtResource("1_7i0c4")
|
||||||
+15
-23
@@ -1,7 +1,7 @@
|
|||||||
class_name CombinableItem
|
class_name CombinableItem
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
const RECIPE_MANAGER = preload("res://RecipeManager.gd")
|
@export var enabled: bool = true
|
||||||
|
|
||||||
@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
|
||||||
@@ -12,16 +12,18 @@ var _food_item: FoodItem
|
|||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
print("CombinableItem _ready(): ", _pickable.name)
|
SweetLogger.debug("{0} ready", [_pickable.name])
|
||||||
_food_item = get_parent().get_node_or_null("FoodItem") as FoodItem
|
_food_item = get_parent().get_node_or_null("FoodItem") as FoodItem
|
||||||
if not _food_item:
|
if not _food_item:
|
||||||
push_error("CombinableItem is missing FoodItem reference. must be a sibling of a FoodItem on ", get_parent().name, ".")
|
SweetLogger.warning("{0} missing FoodItem reference, must be a sibling of a FoodItem", [get_parent().name])
|
||||||
|
|
||||||
if not _pickable:
|
if not _pickable:
|
||||||
push_error("CombineZone must be a grand child of an XRToolsPickable.")
|
SweetLogger.error("{0} must be a grandchild of an XRToolsPickable", [get_parent().name])
|
||||||
return
|
return
|
||||||
if not _food_item:
|
if not _food_item:
|
||||||
push_error("CombineZone requires a FoodItem sibling on ", _pickable.name, ".")
|
SweetLogger.warning("{0} requires a FoodItem sibling", [_pickable.name])
|
||||||
|
return
|
||||||
|
if not enabled:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Detect items whether held (layer 17 "Held Objects") or loose
|
# Detect items whether held (layer 17 "Held Objects") or loose
|
||||||
@@ -42,8 +44,8 @@ func _ready() -> void:
|
|||||||
# Enable the trigger only while snapped into a snap zone (not hand-held).
|
# Enable the trigger only while snapped into a snap zone (not hand-held).
|
||||||
func _on_item_picked_up(_item: Node3D) -> void:
|
func _on_item_picked_up(_item: Node3D) -> void:
|
||||||
var by := _pickable.get_picked_up_by()
|
var by := _pickable.get_picked_up_by()
|
||||||
var snapped: bool = by != null and by.has_method("is_xr_class") and by.is_xr_class("XRToolsSnapZone")
|
var is_snapped: bool = by != null and by.has_method("is_xr_class") and by.is_xr_class("XRToolsSnapZone")
|
||||||
set_deferred("monitoring", snapped)
|
set_deferred("monitoring", is_snapped)
|
||||||
|
|
||||||
func _on_item_dropped(_item: Node3D) -> void:
|
func _on_item_dropped(_item: Node3D) -> void:
|
||||||
set_deferred("monitoring", false)
|
set_deferred("monitoring", false)
|
||||||
@@ -54,24 +56,24 @@ 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")
|
SweetLogger.debug("Other is our own pickable")
|
||||||
return
|
return
|
||||||
|
|
||||||
var other := _find_food_item(body)
|
var other := Helper.find_food_item(body)
|
||||||
if not other:
|
if not other:
|
||||||
print("CombinableItem _on_body_entered: other is not a foodItem")
|
SweetLogger.debug("Other is not a FoodItem")
|
||||||
return
|
return
|
||||||
|
|
||||||
var result: PackedScene = RECIPE_MANAGER.get_combination_result(_food_item.id, other.id)
|
var result: PackedScene = RecipeManager.get_combination_result(_food_item.id, other.id)
|
||||||
if not result:
|
if not result:
|
||||||
print("CombinableItem _on_body_entered: There is no recipe for %s + %s" % [_food_item.id, other.id])
|
SweetLogger.debug("There is no recipe for {0} + {1}", [_food_item.id, other.id])
|
||||||
return
|
return
|
||||||
|
|
||||||
_combine(body, result)
|
_combine(body, result)
|
||||||
|
|
||||||
# Instantiate the result of combination and free the two ingredient items
|
# Instantiate the result of combination and free the two ingredient items
|
||||||
func _combine(other_body: Node3D, result: PackedScene) -> void:
|
func _combine(other_body: Node3D, result: PackedScene) -> void:
|
||||||
print("CombinableItem _combine: combining %s + %s into %s" % [_food_item.id, _find_food_item(other_body).id, result.resource_path])
|
SweetLogger.debug("Combining {0} + {1} into {2}", [_food_item.id, Helper.find_food_item(other_body).id, result.resource_path])
|
||||||
|
|
||||||
# Get Snapzone
|
# Get Snapzone
|
||||||
var snap_zone := _pickable.get_picked_up_by()
|
var snap_zone := _pickable.get_picked_up_by()
|
||||||
@@ -91,13 +93,3 @@ func _combine(other_body: Node3D, result: PackedScene) -> void:
|
|||||||
|
|
||||||
# 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)
|
||||||
|
|
||||||
|
|
||||||
# Find a FoodItem among the direct children of [param node].
|
|
||||||
func _find_food_item(node: Node) -> FoodItem:
|
|
||||||
if not node:
|
|
||||||
return null
|
|
||||||
for child in node.get_children():
|
|
||||||
if child is FoodItem:
|
|
||||||
return child
|
|
||||||
return null
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ extends Node
|
|||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
if not turns_into:
|
if not turns_into:
|
||||||
push_error("Cooking Error: 'turns_into' PackedScene is missing on ", name, ". Please assign a scene in the Inspector.")
|
SweetLogger.warning("{0} missing turns_into reference", [name])
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[gd_scene format=3 uid="uid://7earnjgdmwgx"]
|
[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="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"]
|
[ext_resource type="PackedScene" uid="uid://cucc3gaqu2nab" path="res://items/Charcoal.tscn" id="2_rpt7j"]
|
||||||
|
|
||||||
[node name="CookableItem" type="Node" unique_id=280820828]
|
[node name="CookableItem" type="Node" unique_id=280820828]
|
||||||
script = ExtResource("1_6hwx6")
|
script = ExtResource("1_6hwx6")
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
[gd_scene format=3 uid="uid://dm70ynyuw1a5u"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bbr5arulbeuvq" path="res://scenes/day_controller.gd" id="1_lna8j"]
|
||||||
|
|
||||||
|
[node name="DayController" type="Node" unique_id=1418639156]
|
||||||
|
script = ExtResource("1_lna8j")
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
extends Node
|
extends Node
|
||||||
class_name DespawningItem
|
class_name DespawningItem
|
||||||
|
|
||||||
|
@export var enabled: bool = true
|
||||||
|
|
||||||
@export var time_to_despawn: float = 8
|
@export var time_to_despawn: float = 8
|
||||||
|
|
||||||
# The minimum speed required to reset despawn timer.
|
# The minimum speed required to reset despawn timer.
|
||||||
@@ -15,14 +17,17 @@ var _time_left: float = time_to_despawn
|
|||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
if not _pickable:
|
if not _pickable:
|
||||||
push_error("DespawningItem must be a grand child of an XRToolsPickable.")
|
SweetLogger.error("{0} must be a grandchild of an XRToolsPickable", [name])
|
||||||
return
|
return
|
||||||
if not _rigid:
|
if not _rigid:
|
||||||
push_error("DespawningItem must be a grand child of an RigidBody3D.")
|
SweetLogger.error("{0} must be a grandchild of a RigidBody3D", [name])
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
|
if not enabled:
|
||||||
|
return
|
||||||
|
|
||||||
# Despawning is a world decision, so only the owner of world logic runs the
|
# Despawning is a world decision, so only the owner of world logic runs the
|
||||||
# clock. Every peer used to run its own copy: the countdown drifted between
|
# clock. Every peer used to run its own copy: the countdown drifted between
|
||||||
# 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
|
||||||
@@ -41,7 +46,7 @@ func _process(delta: float) -> void:
|
|||||||
# Count down to zero and despawn
|
# Count down to zero and despawn
|
||||||
_time_left -= delta
|
_time_left -= delta
|
||||||
if _time_left <= 0:
|
if _time_left <= 0:
|
||||||
print("DespawningItem despawning!" , get_parent())
|
SweetLogger.debug("Despawning {0}", [get_parent()])
|
||||||
NetworkManager.despawn_item(get_parent())
|
NetworkManager.despawn_item(get_parent())
|
||||||
# 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.
|
||||||
@@ -53,11 +58,7 @@ func _process(delta: float) -> void:
|
|||||||
_set_visible(int(_time_left * 5.0) % 2 == 0)
|
_set_visible(int(_time_left * 5.0) % 2 == 0)
|
||||||
|
|
||||||
|
|
||||||
# `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,
|
|
||||||
# only warn when there is nobody else to disagree with.
|
|
||||||
func _set_visible(value: bool) -> void:
|
func _set_visible(value: bool) -> void:
|
||||||
if NetworkManager.is_online():
|
if not NetworkManager.owns_world():
|
||||||
get_parent().visible = true
|
|
||||||
return
|
return
|
||||||
get_parent().visible = value
|
get_parent().visible = value
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -7,3 +7,4 @@ enum Type { MEAL, SIDE, INGREDIENT, NONE }
|
|||||||
@export var id: String
|
@export var id: String
|
||||||
@export var type: Type = Type.NONE
|
@export var type: Type = Type.NONE
|
||||||
@export var sell_value = 1
|
@export var sell_value = 1
|
||||||
|
var is_absorbed = false # Used by tables to keep track of whether the item has been registered as delivered already
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
extends Node3D
|
||||||
|
|
||||||
|
@export var kitchen_scene: PackedScene
|
||||||
|
@export var hob_scene: PackedScene
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
|
||||||
|
if not kitchen_scene:
|
||||||
|
SweetLogger.warning("{0} missing kitchen_scene reference", [name])
|
||||||
|
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
|
||||||
|
if NetworkManager.owns_world():
|
||||||
|
SweetLogger.debug("Initializing on server")
|
||||||
|
# Later we will do procedural generation here.
|
||||||
|
# For now we just load a scene.
|
||||||
|
NetworkManager.call_deferred("spawn_item", kitchen_scene.resource_path, transform)
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
[gd_scene format=3 uid="uid://t83yi6hxti2x"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fyd2rjramhbb" path="res://prefabs/kitchen_instantiator.gd" id="1_jitfr"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://damrxtlt7uswf" path="res://content/station_layouts/small_line.tscn" id="2_3awg0"]
|
||||||
|
|
||||||
|
[node name="KitchenInstantiator" type="Node3D" unique_id=291701321]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0, 0, 0)
|
||||||
|
script = ExtResource("1_jitfr")
|
||||||
|
kitchen_scene = ExtResource("2_3awg0")
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
# RecipeManager
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
`RecipeManager` is a static Godot class that centralizes recipe data for food item combinations and allows runtime lookup of result scenes.
|
|
||||||
|
|
||||||
The manager loads a single YAML file at startup: `res://recipes.yaml`, using the installed `addons/yaml` addon.
|
|
||||||
|
|
||||||
## Responsibilities
|
|
||||||
|
|
||||||
- Load recipe definitions from `recipes.yaml`.
|
|
||||||
- Provide symmetric lookups for two-item combining recipes so `A + B` and `B + A` map to the same result.
|
|
||||||
- Resolve item IDs to their corresponding scene resources.
|
|
||||||
- Print all loaded combining recipes when the application starts.
|
|
||||||
|
|
||||||
## Data structure in `recipes.yaml`
|
|
||||||
|
|
||||||
The recipe YAML file contains two top-level sections:
|
|
||||||
|
|
||||||
- `items`: maps item IDs to their scene path and optional metadata.
|
|
||||||
- `combining`: maps result item IDs to one or more recipe pairs.
|
|
||||||
|
|
||||||
Example structure:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
items:
|
|
||||||
hamburger:
|
|
||||||
scene: res://Items/hamburger.tscn
|
|
||||||
type: meal
|
|
||||||
burger_buns:
|
|
||||||
scene: res://Items/BurgerBuns.tscn
|
|
||||||
type: ingredient
|
|
||||||
|
|
||||||
combining:
|
|
||||||
hamburger:
|
|
||||||
- [cooked_burger, burger_buns]
|
|
||||||
- [charcoal, charcoal]
|
|
||||||
charcoal:
|
|
||||||
- [cube, cube]
|
|
||||||
```
|
|
||||||
|
|
||||||
### `items`
|
|
||||||
|
|
||||||
Each entry under `items` uses the item ID as the key.
|
|
||||||
The manager reads the `scene` field for each item and uses it to resolve the packed scene for recipe results.
|
|
||||||
|
|
||||||
### `combining`
|
|
||||||
|
|
||||||
Each entry under `combining` represents a result item ID, and its value is a list of recipe pairs.
|
|
||||||
Each recipe pair is a two-item array of ingredient IDs.
|
|
||||||
This allows a single result item to have multiple valid recipes.
|
|
||||||
|
|
||||||
The manager normalizes each ingredient pair using a sorted key string internally, so lookups are symmetric.
|
|
||||||
|
|
||||||
## Runtime behavior
|
|
||||||
|
|
||||||
- `FoodItem.id` is used when combining items to look up the recipe result.
|
|
||||||
- `RecipeManager.get_combination(first_id, second_id)` computes a canonical key for the pair and returns the resulting item's scene.
|
|
||||||
- On startup, `main.gd` calls `RecipeManager.print_all_recipes()`, which logs each combining recipe in the form:
|
|
||||||
|
|
||||||
`ingredient_a + ingredient_b -> result_id`
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
- `RecipeManager` prefers the installed YAML addon to parse `recipes.yaml` when it is available.
|
|
||||||
- If the addon is unavailable in the current runtime, the manager falls back to a lightweight built-in parser for the simple `items`/`combining` file format.
|
|
||||||
- Scene paths now live in the YAML data instead of being hardcoded in the manager.
|
|
||||||
- Because `RecipeManager` is static, it can be used from any script without creating an instance.
|
|
||||||
+28
-28
@@ -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://d1cefhe3yyyds" path="res://Net/multiplayer_world.gd" id="1_nlnup"]
|
||||||
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://XROrigin.tscn" id="2_8pfaf"]
|
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/XROrigin.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_old.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/testworldLoad.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/GameOvercontroler.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)
|
||||||
@@ -38,7 +38,8 @@ sdfgi_enabled = true
|
|||||||
size = Vector3(16, 10, 0.1)
|
size = Vector3(16, 10, 0.1)
|
||||||
|
|
||||||
[node name="Main" type="Node3D" unique_id=1312265607]
|
[node name="Main" type="Node3D" unique_id=1312265607]
|
||||||
script = ExtResource("1_m3h4l")
|
script = ExtResource("1_nlnup")
|
||||||
|
populate_from_layout = false
|
||||||
|
|
||||||
[node name="XROrigin3D" parent="." unique_id=2055526621 instance=ExtResource("2_8pfaf")]
|
[node name="XROrigin3D" parent="." unique_id=2055526621 instance=ExtResource("2_8pfaf")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0)
|
||||||
@@ -47,8 +48,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0)
|
|||||||
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)
|
||||||
|
|
||||||
[node name="Table" parent="." unique_id=1863572470 instance=ExtResource("16_g2k6a")]
|
[node name="Table" parent="." unique_id=1863572470 instance=ExtResource("16_g2k6a")]
|
||||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.739665, 0.47583598, -1.1895752)
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.739665, -0.023897558, -1.1895752)
|
||||||
primary_duration = 35.0
|
|
||||||
|
|
||||||
[node name="Floor" type="StaticBody3D" parent="." unique_id=122279514]
|
[node name="Floor" type="StaticBody3D" parent="." unique_id=122279514]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
|
||||||
@@ -64,10 +64,10 @@ mesh = SubResource("BoxMesh_24d3s")
|
|||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -1.2)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -1.2)
|
||||||
|
|
||||||
[node name="Hob2" parent="." unique_id=496572049 instance=ExtResource("4_3lufs")]
|
[node name="Hob2" parent="." unique_id=496572049 instance=ExtResource("4_3lufs")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, 0.5, -1.2)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, 0.00026646256, -1.2)
|
||||||
|
|
||||||
[node name="Hob3" parent="." unique_id=421567982 instance=ExtResource("4_3lufs")]
|
[node name="Hob3" parent="." unique_id=421567982 instance=ExtResource("4_3lufs")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, 0.5, -1.2)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, 0.00026646256, -1.2)
|
||||||
|
|
||||||
[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")
|
||||||
@@ -76,31 +76,31 @@ environment = SubResource("Environment_bvwq1")
|
|||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8, 0.015, -1.2)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8, 0.015, -1.2)
|
||||||
|
|
||||||
[node name="Sink" parent="." unique_id=2055277359 instance=ExtResource("12_ah4xa")]
|
[node name="Sink" parent="." unique_id=2055277359 instance=ExtResource("12_ah4xa")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5997182, 0.5, -1.2)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5997182, 0.00026646256, -1.2)
|
||||||
|
|
||||||
[node name="Sink2" parent="." unique_id=1692612192 instance=ExtResource("12_ah4xa")]
|
[node name="Sink2" parent="." unique_id=1692612192 instance=ExtResource("12_ah4xa")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1997182, 0.5, -1.2)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1997182, 0.00026646256, -1.2)
|
||||||
|
|
||||||
[node name="DirtStation" parent="." unique_id=160842153 instance=ExtResource("13_46xi2")]
|
[node name="DirtStation" parent="." unique_id=160842153 instance=ExtResource("13_46xi2")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8000001, 0.5, -1.2)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8000001, 0.5, -1.2)
|
||||||
|
|
||||||
[node name="Counter2" parent="." unique_id=368890752 instance=ExtResource("15_tpcje")]
|
[node name="Counter2" parent="." unique_id=368890752 instance=ExtResource("15_tpcje")]
|
||||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.8, 0.5, -0.6)
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.8, 0.00026646256, -0.6)
|
||||||
|
|
||||||
[node name="Counter3" parent="." unique_id=1498817646 instance=ExtResource("15_tpcje")]
|
[node name="Counter3" parent="." unique_id=1498817646 instance=ExtResource("15_tpcje")]
|
||||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.8, 0.5, 0)
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.8, 0.00026646256, 0)
|
||||||
|
|
||||||
[node name="Counter4" parent="." unique_id=906748771 instance=ExtResource("15_tpcje")]
|
[node name="Counter4" parent="." unique_id=906748771 instance=ExtResource("15_tpcje")]
|
||||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.8, 0.5, 0.6)
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.8, 0.00026646256, 0.6)
|
||||||
|
|
||||||
[node name="Counter5" parent="." unique_id=1487893288 instance=ExtResource("15_tpcje")]
|
[node name="Counter5" parent="." unique_id=1487893288 instance=ExtResource("15_tpcje")]
|
||||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -0.6, 0.5, 1.2)
|
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -0.6, 0.00026646256, 1.2)
|
||||||
|
|
||||||
[node name="Counter6" parent="." unique_id=1154936647 instance=ExtResource("15_tpcje")]
|
[node name="Counter6" parent="." unique_id=1154936647 instance=ExtResource("15_tpcje")]
|
||||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0.5, 1.2)
|
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0.00026646256, 1.2)
|
||||||
|
|
||||||
[node name="Counter7" parent="." unique_id=990260272 instance=ExtResource("15_tpcje")]
|
[node name="Counter7" parent="." unique_id=990260272 instance=ExtResource("15_tpcje")]
|
||||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0.6, 0.5, 1.2)
|
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0.6, 0.00026646256, 1.2)
|
||||||
|
|
||||||
[node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=315740174]
|
[node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=315740174]
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
extends Node
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
$"..".visible = false
|
|
||||||
|
|
||||||
# Listen for the game over signal from GameManager
|
|
||||||
Signals.game_over.connect(_on_game_over)
|
|
||||||
|
|
||||||
func _on_game_over() -> void:
|
|
||||||
$"..".visible = true
|
|
||||||
+379
-60
@@ -1,22 +1,27 @@
|
|||||||
[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://d1cefhe3yyyds" path="res://Net/multiplayer_world.gd" id="1_57ppd"]
|
||||||
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://XROrigin.tscn" id="2_o1b3t"]
|
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/XROrigin.tscn" id="2_o1b3t"]
|
||||||
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="3_irf4n"]
|
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="3_irf4n"]
|
||||||
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="4_ctden"]
|
|
||||||
[ext_resource type="Script" uid="uid://ctsqvhicswj8m" path="res://scenes/add_spawnables.gd" id="5_n8fyw"]
|
|
||||||
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="7_n8fyw"]
|
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="7_n8fyw"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="9_sq0s2"]
|
[ext_resource type="PackedScene" uid="uid://q37nqadkibbp" path="res://environment/door.tscn" id="10_l51r2"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="11_ctden"]
|
[ext_resource type="PackedScene" uid="uid://b3m2ag8g5rj4r" path="res://items/hamburger.tscn" id="11_c8vo7"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bbg7dwsbxxh1t" path="res://scenes/cube_side_dispense.tscn" id="12_57ppd"]
|
[ext_resource type="PackedScene" uid="uid://da6yrsnxvsrif" path="res://environment/wall.tscn" id="11_slo47"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://stations/plate_dispenser.tscn" id="13_irf4n"]
|
[ext_resource type="PackedScene" uid="uid://bp3v1jl8pctro" path="res://Containers/plate.tscn" id="12_1f3bw"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="13_o1b3t"]
|
[ext_resource type="PackedScene" uid="uid://dlw5geheupgpt" path="res://stations/hatch.tscn" id="12_dpf3b"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://items/PickupCube.tscn" id="13_1f3bw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="13_yjosk"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob_old.tscn" id="14_2ndvi"]
|
||||||
[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://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="14_di04w"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cnjwtnhwh0i8q" path="res://stations/dirt_station.tscn" id="14_irf4n"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://stations/Counter.tscn" id="15_di04w"]
|
[ext_resource type="PackedScene" uid="uid://efaec6ymgabo" path="res://stations/Counter.tscn" id="15_di04w"]
|
||||||
[ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://ui/game_over_panel.tscn" id="15_eoxxy"]
|
[ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://UI/game_over_panel.tscn" id="15_eoxxy"]
|
||||||
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="16_di04w"]
|
[ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://stations/plate_dispenser.tscn" id="15_qxyk8"]
|
||||||
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://scenes/GameOvercontroler.gd" id="16_n8fyw"]
|
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://prefabs/GameOvercontroler.gd" id="16_n8fyw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="16_u5c1m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="17_y7baw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="18_wvcs1"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://duwrbvwcqcuk3" path="res://items/chips.tscn" id="22_2ndvi"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dgk88esxip5xi" path="res://items/knife.tscn" id="23_qxyk8"]
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_bvwq1"]
|
[sub_resource type="Environment" id="Environment_bvwq1"]
|
||||||
background_mode = 2
|
background_mode = 2
|
||||||
@@ -40,6 +45,24 @@ 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)
|
||||||
|
|
||||||
|
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_vlqg6"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
||||||
|
albedo_color = Color(0.35, 0.12250001, 0.12250001, 1)
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id="PlaneMesh_vlqg6"]
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
size = Vector2(6, 10)
|
||||||
|
center_offset = Vector3(3, 0, 0)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yqrpd"]
|
||||||
|
albedo_color = Color(0.35, 0.35, 0.35, 1)
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id="PlaneMesh_kk3mq"]
|
||||||
|
material = SubResource("StandardMaterial3D_yqrpd")
|
||||||
|
size = Vector2(6, 10)
|
||||||
|
center_offset = Vector3(-3, 0, 0)
|
||||||
|
|
||||||
[node name="Main" type="Node3D" unique_id=1312265607]
|
[node name="Main" type="Node3D" unique_id=1312265607]
|
||||||
script = ExtResource("1_57ppd")
|
script = ExtResource("1_57ppd")
|
||||||
|
|
||||||
@@ -47,16 +70,17 @@ script = ExtResource("1_57ppd")
|
|||||||
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("2_o1b3t")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.0094595, 0.9667189, -0.15640831)
|
transform = Transform3D(1.3113416e-07, 0, 1, 0, 1, 0, -1, 0, 1.3113416e-07, -2.4543328, 1.247834, 4.698895)
|
||||||
|
|
||||||
[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="Players" type="Node3D" parent="." unique_id=1772076868]
|
||||||
|
|
||||||
|
[node name="Stations" type="Node3D" parent="." unique_id=730717613]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.8000001, 0, 1.8000001)
|
||||||
|
|
||||||
[node name="ItemsSpawner" type="MultiplayerSpawner" parent="." unique_id=2051771581]
|
[node name="ItemsSpawner" type="MultiplayerSpawner" parent="." unique_id=2051771581]
|
||||||
_spawnable_scenes = PackedStringArray("uid://cwwnbx5uat3fw")
|
|
||||||
spawn_path = NodePath("../WorldContent")
|
spawn_path = NodePath("../WorldContent")
|
||||||
script = ExtResource("5_n8fyw")
|
|
||||||
|
|
||||||
[node name="PlayersSpawner" type="MultiplayerSpawner" parent="." unique_id=619815427]
|
[node name="PlayersSpawner" type="MultiplayerSpawner" parent="." unique_id=619815427]
|
||||||
_spawnable_scenes = PackedStringArray("res://Player/net_player.tscn")
|
_spawnable_scenes = PackedStringArray("res://Player/net_player.tscn")
|
||||||
@@ -72,7 +96,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
|
|||||||
shape = SubResource("BoxShape3D_vlqg6")
|
shape = SubResource("BoxShape3D_vlqg6")
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor/CollisionShape3D" unique_id=1939997056]
|
[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)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.001, -0.003)
|
||||||
mesh = SubResource("BoxMesh_24d3s")
|
mesh = SubResource("BoxMesh_24d3s")
|
||||||
|
|
||||||
[node name="InvisibleWalls" type="StaticBody3D" parent="." unique_id=315740174]
|
[node name="InvisibleWalls" type="StaticBody3D" parent="." unique_id=315740174]
|
||||||
@@ -93,48 +117,8 @@ 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")]
|
|
||||||
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="." unique_id=1687971542 instance=ExtResource("4_ctden")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.35077858, 0.50655985, -1.2833805)
|
|
||||||
|
|
||||||
[node name="Hob2" parent="." unique_id=1368146287 instance=ExtResource("4_ctden")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.24922144, 0.50655985, -1.2833805)
|
|
||||||
|
|
||||||
[node name="Sink" parent="." unique_id=2055277359 instance=ExtResource("13_o1b3t")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.84685254, 0.51461196, -1.2828919)
|
|
||||||
|
|
||||||
[node name="DirtStation" parent="." unique_id=160842153 instance=ExtResource("14_irf4n")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.3978771, 0.50655985, -1.2598276)
|
|
||||||
|
|
||||||
[node name="Counter" parent="." unique_id=1487893288 instance=ExtResource("15_di04w")]
|
|
||||||
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")]
|
|
||||||
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")]
|
|
||||||
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")]
|
|
||||||
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")]
|
|
||||||
transform = Transform3D(-1, 0, 4.371139e-08, 0, 1, 0, -4.371139e-08, 0, -1, -0.12681937, 2.3841858e-07, 3.538899)
|
|
||||||
|
|
||||||
[node name="BurgerBunsDispenser" parent="." unique_id=1720683779 instance=ExtResource("9_sq0s2")]
|
|
||||||
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")]
|
|
||||||
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")]
|
|
||||||
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="GameOverPanel" parent="." unique_id=1234658657 instance=ExtResource("14_di04w")]
|
||||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0281777, 2.8122003, 0)
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.428178, 2.8122003, 3)
|
||||||
scene = ExtResource("15_eoxxy")
|
scene = ExtResource("15_eoxxy")
|
||||||
viewport_size = Vector2(900, 600)
|
viewport_size = Vector2(900, 600)
|
||||||
transparent = 0
|
transparent = 0
|
||||||
@@ -144,5 +128,340 @@ scene_properties_keys = PackedStringArray("game_over_panel.gd")
|
|||||||
[node name="controler" type="Node" parent="GameOverPanel" unique_id=803158176]
|
[node name="controler" type="Node" parent="GameOverPanel" unique_id=803158176]
|
||||||
script = ExtResource("16_n8fyw")
|
script = ExtResource("16_n8fyw")
|
||||||
|
|
||||||
[node name="CubeSideDispenser2" parent="." unique_id=200950572 instance=ExtResource("12_57ppd")]
|
[node name="Resturant" type="Node3D" parent="." unique_id=1083608050]
|
||||||
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, 1.6212463e-05, -0.010500789, 0.0014204979)
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="Resturant" unique_id=1814285538]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Resturant/StaticBody3D" unique_id=1661443874]
|
||||||
|
shape = SubResource("WorldBoundaryShape3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Resturant" unique_id=888732490]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0.01, 0)
|
||||||
|
mesh = SubResource("PlaneMesh_vlqg6")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Resturant" unique_id=836421800]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0.01, 0)
|
||||||
|
mesh = SubResource("PlaneMesh_kk3mq")
|
||||||
|
|
||||||
|
[node name="Door" parent="Resturant" unique_id=964400290 instance=ExtResource("10_l51r2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 0)
|
||||||
|
|
||||||
|
[node name="Walls" type="Node3D" parent="Resturant" unique_id=1804204696]
|
||||||
|
|
||||||
|
[node name="Wall" parent="Resturant/Walls" unique_id=434181749 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6000001, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall2" parent="Resturant/Walls" unique_id=1183111925 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall3" parent="Resturant/Walls" unique_id=1561473949 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall4" parent="Resturant/Walls" unique_id=1593528497 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall5" parent="Resturant/Walls" unique_id=2071060763 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall6" parent="Resturant/Walls" unique_id=1607012472 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall7" parent="Resturant/Walls" unique_id=990512055 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall8" parent="Resturant/Walls" unique_id=751907897 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.200001, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall9" parent="Resturant/Walls" unique_id=358743133 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000004, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall10" parent="Resturant/Walls" unique_id=1374842161 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall11" parent="Resturant/Walls" unique_id=1408132826 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall12" parent="Resturant/Walls" unique_id=1937209307 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall13" parent="Resturant/Walls" unique_id=1714975985 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall14" parent="Resturant/Walls" unique_id=1732121903 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall15" parent="Resturant/Walls" unique_id=1311494308 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall16" parent="Resturant/Walls" unique_id=364484178 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall17" parent="Resturant/Walls" unique_id=485501605 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.3999999, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall18" parent="Resturant/Walls" unique_id=378206350 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall19" parent="Resturant/Walls" unique_id=294380188 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall20" parent="Resturant/Walls" unique_id=1122365254 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall21" parent="Resturant/Walls" unique_id=111446334 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall22" parent="Resturant/Walls" unique_id=999769595 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000001, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall23" parent="Resturant/Walls" unique_id=1832835858 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall24" parent="Resturant/Walls" unique_id=927052367 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall25" parent="Resturant/Walls" unique_id=1163278593 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2000003, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall26" parent="Resturant/Walls" unique_id=1074868471 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall27" parent="Resturant/Walls" unique_id=510219954 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall28" parent="Resturant/Walls" unique_id=1615161517 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall29" parent="Resturant/Walls" unique_id=11605666 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall30" parent="Resturant/Walls" unique_id=2032513926 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall31" parent="Resturant/Walls" unique_id=1308803807 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall32" parent="Resturant/Walls" unique_id=493869823 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall33" parent="Resturant/Walls" unique_id=699535234 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall34" parent="Resturant/Walls" unique_id=238973326 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.3999999, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall35" parent="Resturant/Walls" unique_id=836717647 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall36" parent="Resturant/Walls" unique_id=446988148 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall37" parent="Resturant/Walls" unique_id=49950412 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall38" parent="Resturant/Walls" unique_id=607255208 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall39" parent="Resturant/Walls" unique_id=1089866573 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000001, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall40" parent="Resturant/Walls" unique_id=2078240231 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall41" parent="Resturant/Walls" unique_id=592669722 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall42" parent="Resturant/Walls" unique_id=1393176200 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2000003, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall43" parent="Resturant/Walls" unique_id=1885346301 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall44" parent="Resturant/Walls" unique_id=2021916640 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall45" parent="Resturant/Walls" unique_id=1289086279 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall46" parent="Resturant/Walls" unique_id=396503450 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 1.2000003)
|
||||||
|
|
||||||
|
[node name="Wall47" parent="Resturant/Walls" unique_id=300373285 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 0.6000004)
|
||||||
|
|
||||||
|
[node name="Wall49" parent="Resturant/Walls" unique_id=1072273787 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 1.8000002)
|
||||||
|
|
||||||
|
[node name="Wall50" parent="Resturant/Walls" unique_id=896022741 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 2.4000006)
|
||||||
|
|
||||||
|
[node name="Wall51" parent="Resturant/Walls" unique_id=2089599721 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -1.7999992)
|
||||||
|
|
||||||
|
[node name="Wall52" parent="Resturant/Walls" unique_id=965479737 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -2.3999996)
|
||||||
|
|
||||||
|
[node name="Wall53" parent="Resturant/Walls" unique_id=43762332 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -3)
|
||||||
|
|
||||||
|
[node name="Wall54" parent="Resturant/Walls" unique_id=921007094 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -1.1999998)
|
||||||
|
|
||||||
|
[node name="Wall55" parent="Resturant/Walls" unique_id=2144411980 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, -0.5999994)
|
||||||
|
|
||||||
|
[node name="Wall56" parent="Resturant/Walls" unique_id=370330637 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 4.2000003)
|
||||||
|
|
||||||
|
[node name="Wall57" parent="Resturant/Walls" unique_id=537562206 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 3.6000004)
|
||||||
|
|
||||||
|
[node name="Wall58" parent="Resturant/Walls" unique_id=1918288432 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 3.0000002)
|
||||||
|
|
||||||
|
[node name="Wall59" parent="Resturant/Walls" unique_id=944759951 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 4.8000007)
|
||||||
|
|
||||||
|
[node name="Wall60" parent="Resturant/Walls" unique_id=1128237563 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 5.4000006)
|
||||||
|
|
||||||
|
[node name="Wall61" parent="Resturant/Walls" unique_id=1755969864 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -3.5999994)
|
||||||
|
|
||||||
|
[node name="Wall62" parent="Resturant/Walls" unique_id=949006312 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -4.2)
|
||||||
|
|
||||||
|
[node name="Wall63" parent="Resturant/Walls" unique_id=1826688195 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -4.799999)
|
||||||
|
|
||||||
|
[node name="Wall64" parent="Resturant/Walls" unique_id=116523059 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -5.3999996)
|
||||||
|
|
||||||
|
[node name="Wall65" parent="Resturant/Walls" unique_id=711153775 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 1.2000003)
|
||||||
|
|
||||||
|
[node name="Wall66" parent="Resturant/Walls" unique_id=741047 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 0.6000004)
|
||||||
|
|
||||||
|
[node name="Wall67" parent="Resturant/Walls" unique_id=664067327 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 1.8000002)
|
||||||
|
|
||||||
|
[node name="Wall68" parent="Resturant/Walls" unique_id=1294537251 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 2.4000006)
|
||||||
|
|
||||||
|
[node name="Wall69" parent="Resturant/Walls" unique_id=1152383 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -1.7999992)
|
||||||
|
|
||||||
|
[node name="Wall70" parent="Resturant/Walls" unique_id=1710172322 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -2.3999996)
|
||||||
|
|
||||||
|
[node name="Wall71" parent="Resturant/Walls" unique_id=597518110 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -3)
|
||||||
|
|
||||||
|
[node name="Wall72" parent="Resturant/Walls" unique_id=1028573693 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -1.1999998)
|
||||||
|
|
||||||
|
[node name="Wall73" parent="Resturant/Walls" unique_id=1232042046 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, -0.5999994)
|
||||||
|
|
||||||
|
[node name="Wall74" parent="Resturant/Walls" unique_id=1159091046 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 4.2000003)
|
||||||
|
|
||||||
|
[node name="Wall75" parent="Resturant/Walls" unique_id=904470924 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 3.6000004)
|
||||||
|
|
||||||
|
[node name="Wall76" parent="Resturant/Walls" unique_id=1709758099 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 3.0000002)
|
||||||
|
|
||||||
|
[node name="Wall77" parent="Resturant/Walls" unique_id=1252446997 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 4.8000007)
|
||||||
|
|
||||||
|
[node name="Wall78" parent="Resturant/Walls" unique_id=1207579491 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 5.4000006)
|
||||||
|
|
||||||
|
[node name="Wall79" parent="Resturant/Walls" unique_id=1798073342 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -3.5999994)
|
||||||
|
|
||||||
|
[node name="Wall80" parent="Resturant/Walls" unique_id=36005990 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -4.2)
|
||||||
|
|
||||||
|
[node name="Wall81" parent="Resturant/Walls" unique_id=79516947 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -4.799999)
|
||||||
|
|
||||||
|
[node name="Wall82" parent="Resturant/Walls" unique_id=1363235805 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -5.3999996)
|
||||||
|
|
||||||
|
[node name="Hatches" type="Node3D" parent="Resturant" unique_id=1561045769]
|
||||||
|
|
||||||
|
[node name="ServingCounter" parent="Resturant/Hatches" unique_id=1341321603 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter2" parent="Resturant/Hatches" unique_id=1325232371 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8000001, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter3" parent="Resturant/Hatches" unique_id=539914523 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter4" parent="Resturant/Hatches" unique_id=2078770951 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter5" parent="Resturant/Hatches" unique_id=2019049083 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0)
|
||||||
|
|
||||||
|
[node name="Table2" parent="Resturant" unique_id=1457688277 instance=ExtResource("13_yjosk")]
|
||||||
|
transform = Transform3D(1, 0, -1.7484555e-07, 0, 1, 0, 1.7484555e-07, 0, 1, 0.5999999, -0.035479546, -3)
|
||||||
|
|
||||||
|
[node name="Hob" parent="Resturant" unique_id=172418174 instance=ExtResource("14_2ndvi")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, 4.2000003, 0.024520457, 1.7999992)
|
||||||
|
|
||||||
|
[node name="Hob2" parent="Resturant" unique_id=980569400 instance=ExtResource("14_2ndvi")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, 4.200001, 0.024520457, 1.1999999)
|
||||||
|
|
||||||
|
[node name="Counter" parent="Resturant" unique_id=1487893288 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.200001, 0.024520457, 2.3999996)
|
||||||
|
|
||||||
|
[node name="Counter2" parent="Resturant" unique_id=5128912 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.200001, 0.024520457, 3)
|
||||||
|
|
||||||
|
[node name="Counter3" parent="Resturant" unique_id=1298458612 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.2000003, 0.024520457, 0.5999999)
|
||||||
|
|
||||||
|
[node name="Counter4" parent="Resturant" unique_id=1764980142 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, 1, 0, 1, 0, -1, 0, 1.3113416e-07, 4.7683716e-07, 0.024520457, 2.3999996)
|
||||||
|
|
||||||
|
[node name="Counter5" parent="Resturant" unique_id=1015820252 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, 1, 0, 1, 0, -1, 0, 1.3113416e-07, 4.7683716e-07, 0.024520457, 3)
|
||||||
|
|
||||||
|
[node name="PlateDispenser" parent="Resturant" unique_id=710538846 instance=ExtResource("15_qxyk8")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.6)
|
||||||
|
|
||||||
|
[node name="Sink" parent="Resturant" unique_id=2055277359 instance=ExtResource("16_u5c1m")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0.6, -0.035479546, -0.6)
|
||||||
|
|
||||||
|
[node name="Counter6" parent="Resturant" unique_id=2141915043 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742277e-08, 0, 1, 0, -8.742277e-08, 0, -1, 4.7683716e-07, 0.024520457, -0.6000006)
|
||||||
|
|
||||||
|
[node name="RawBurgerDispenser" parent="Resturant" unique_id=235630131 instance=ExtResource("17_y7baw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.2)
|
||||||
|
|
||||||
|
[node name="BurgerBunsDispenser" parent="Resturant" unique_id=1720683779 instance=ExtResource("18_wvcs1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.8000001)
|
||||||
|
|
||||||
|
[node name="Table3" parent="Resturant" unique_id=1863572470 instance=ExtResource("13_yjosk")]
|
||||||
|
transform = Transform3D(-1, 0, 2.6226832e-07, 0, 1, 0, -2.6226832e-07, 0, -1, 3, -0.035479546, -3)
|
||||||
|
|
||||||
|
[node name="Hamburger" parent="." unique_id=1675596942 instance=ExtResource("11_c8vo7")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8000001, -0.6)
|
||||||
|
|
||||||
|
[node name="Plate" parent="." unique_id=190487773 instance=ExtResource("12_1f3bw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3800001, -0.6)
|
||||||
|
|
||||||
|
[node name="PickableObject" parent="." unique_id=1084951838 instance=ExtResource("13_1f3bw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1.2, -0.6)
|
||||||
|
|
||||||
|
[node name="Chips" parent="." unique_id=1028364693 instance=ExtResource("22_2ndvi")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1.2, -0.6)
|
||||||
|
|
||||||
|
[node name="Knife" parent="." unique_id=1789694138 instance=ExtResource("23_qxyk8")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, 3)
|
||||||
|
|||||||
@@ -0,0 +1,501 @@
|
|||||||
|
[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="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/XROrigin.tscn" id="2_o1b3t"]
|
||||||
|
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="3_irf4n"]
|
||||||
|
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="7_n8fyw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://q37nqadkibbp" path="res://scenes/door.tscn" id="10_l51r2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b3m2ag8g5rj4r" path="res://items/hamburger.tscn" id="11_c8vo7"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://da6yrsnxvsrif" path="res://scenes/wall.tscn" id="11_slo47"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bp3v1jl8pctro" path="res://Containers/plate.tscn" id="12_1f3bw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bbg7dwsbxxh1t" path="res://scenes/cube_side_dispense.tscn" id="12_57ppd"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dlw5geheupgpt" path="res://stations/hatch.tscn" id="12_dpf3b"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://items/PickupCube.tscn" id="13_1f3bw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="13_yjosk"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="14_2ndvi"]
|
||||||
|
[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="15_di04w"]
|
||||||
|
[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_qxyk8"]
|
||||||
|
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://scenes/GameOvercontroler.gd" id="16_n8fyw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="16_u5c1m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="17_y7baw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="18_wvcs1"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://duwrbvwcqcuk3" path="res://items/chips.tscn" id="22_2ndvi"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dgk88esxip5xi" path="res://items/knife.tscn" id="23_qxyk8"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://drwuhqb3pjtiy" path="res://items/potato.tscn" id="24_u5c1m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bpvp20hiagxxb" path="res://items/chopped_potato.tscn" id="25_y7baw"]
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_bvwq1"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = ExtResource("7_n8fyw")
|
||||||
|
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("3_irf4n")
|
||||||
|
size = Vector3(20, 0.1, 20)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
|
||||||
|
size = Vector3(20, 10, 0.1)
|
||||||
|
|
||||||
|
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_vlqg6"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
||||||
|
albedo_color = Color(0.35, 0.12250001, 0.12250001, 1)
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id="PlaneMesh_vlqg6"]
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
size = Vector2(6, 10)
|
||||||
|
center_offset = Vector3(3, 0, 0)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yqrpd"]
|
||||||
|
albedo_color = Color(0.35, 0.35, 0.35, 1)
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id="PlaneMesh_kk3mq"]
|
||||||
|
material = SubResource("StandardMaterial3D_yqrpd")
|
||||||
|
size = Vector2(6, 10)
|
||||||
|
center_offset = Vector3(-3, 0, 0)
|
||||||
|
|
||||||
|
[node name="Main" type="Node3D" unique_id=1312265607]
|
||||||
|
script = ExtResource("1_57ppd")
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
|
||||||
|
environment = SubResource("Environment_bvwq1")
|
||||||
|
|
||||||
|
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("2_o1b3t")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -1.8943893, 0.9667189, -4.301105)
|
||||||
|
|
||||||
|
[node name="WorldContent" type="Node3D" parent="." unique_id=262398468]
|
||||||
|
|
||||||
|
[node name="Players" type="Node3D" parent="." unique_id=1772076868]
|
||||||
|
|
||||||
|
[node name="Stations" type="Node3D" parent="." unique_id=730717613]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.8000001, 0, 1.8000001)
|
||||||
|
|
||||||
|
[node name="ItemsSpawner" type="MultiplayerSpawner" parent="." unique_id=2051771581]
|
||||||
|
spawn_path = NodePath("../WorldContent")
|
||||||
|
|
||||||
|
[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]
|
||||||
|
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, -0.001, -0.003)
|
||||||
|
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="Counter2" parent="." unique_id=368890752 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 1.6896921)
|
||||||
|
|
||||||
|
[node name="Counter4" parent="." unique_id=1748373996 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 1.0913646)
|
||||||
|
|
||||||
|
[node name="Counter3" parent="." unique_id=1498817646 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 2.2925892)
|
||||||
|
|
||||||
|
[node name="GameOverPanel" parent="." unique_id=1234658657 instance=ExtResource("14_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.428178, 2.8122003, 3)
|
||||||
|
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, -3.8484511, 0, 2.9119425)
|
||||||
|
|
||||||
|
[node name="Resturant" type="Node3D" parent="." unique_id=1083608050]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.6212463e-05, -0.010500789, 0.0014204979)
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="Resturant" unique_id=1814285538]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Resturant/StaticBody3D" unique_id=1661443874]
|
||||||
|
shape = SubResource("WorldBoundaryShape3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Resturant" unique_id=888732490]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0.01, 0)
|
||||||
|
mesh = SubResource("PlaneMesh_vlqg6")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Resturant" unique_id=836421800]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0.01, 0)
|
||||||
|
mesh = SubResource("PlaneMesh_kk3mq")
|
||||||
|
|
||||||
|
[node name="Door" parent="Resturant" unique_id=964400290 instance=ExtResource("10_l51r2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 0)
|
||||||
|
|
||||||
|
[node name="Walls" type="Node3D" parent="Resturant" unique_id=1804204696]
|
||||||
|
|
||||||
|
[node name="Wall" parent="Resturant/Walls" unique_id=434181749 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6000001, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall2" parent="Resturant/Walls" unique_id=1183111925 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall3" parent="Resturant/Walls" unique_id=1561473949 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall4" parent="Resturant/Walls" unique_id=1593528497 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall5" parent="Resturant/Walls" unique_id=2071060763 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall6" parent="Resturant/Walls" unique_id=1607012472 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall7" parent="Resturant/Walls" unique_id=990512055 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall8" parent="Resturant/Walls" unique_id=751907897 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.200001, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall9" parent="Resturant/Walls" unique_id=358743133 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000004, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall10" parent="Resturant/Walls" unique_id=1374842161 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall11" parent="Resturant/Walls" unique_id=1408132826 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall12" parent="Resturant/Walls" unique_id=1937209307 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall13" parent="Resturant/Walls" unique_id=1714975985 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall14" parent="Resturant/Walls" unique_id=1732121903 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall15" parent="Resturant/Walls" unique_id=1311494308 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall16" parent="Resturant/Walls" unique_id=364484178 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall17" parent="Resturant/Walls" unique_id=485501605 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.3999999, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall18" parent="Resturant/Walls" unique_id=378206350 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall19" parent="Resturant/Walls" unique_id=294380188 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall20" parent="Resturant/Walls" unique_id=1122365254 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall21" parent="Resturant/Walls" unique_id=111446334 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall22" parent="Resturant/Walls" unique_id=999769595 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000001, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall23" parent="Resturant/Walls" unique_id=1832835858 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall24" parent="Resturant/Walls" unique_id=927052367 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall25" parent="Resturant/Walls" unique_id=1163278593 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2000003, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall26" parent="Resturant/Walls" unique_id=1074868471 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall27" parent="Resturant/Walls" unique_id=510219954 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall28" parent="Resturant/Walls" unique_id=1615161517 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall29" parent="Resturant/Walls" unique_id=11605666 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall30" parent="Resturant/Walls" unique_id=2032513926 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall31" parent="Resturant/Walls" unique_id=1308803807 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall32" parent="Resturant/Walls" unique_id=493869823 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall33" parent="Resturant/Walls" unique_id=699535234 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall34" parent="Resturant/Walls" unique_id=238973326 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.3999999, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall35" parent="Resturant/Walls" unique_id=836717647 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall36" parent="Resturant/Walls" unique_id=446988148 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall37" parent="Resturant/Walls" unique_id=49950412 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall38" parent="Resturant/Walls" unique_id=607255208 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall39" parent="Resturant/Walls" unique_id=1089866573 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000001, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall40" parent="Resturant/Walls" unique_id=2078240231 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall41" parent="Resturant/Walls" unique_id=592669722 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall42" parent="Resturant/Walls" unique_id=1393176200 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2000003, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall43" parent="Resturant/Walls" unique_id=1885346301 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall44" parent="Resturant/Walls" unique_id=2021916640 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall45" parent="Resturant/Walls" unique_id=1289086279 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall46" parent="Resturant/Walls" unique_id=396503450 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 1.2000003)
|
||||||
|
|
||||||
|
[node name="Wall47" parent="Resturant/Walls" unique_id=300373285 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 0.6000004)
|
||||||
|
|
||||||
|
[node name="Wall49" parent="Resturant/Walls" unique_id=1072273787 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 1.8000002)
|
||||||
|
|
||||||
|
[node name="Wall50" parent="Resturant/Walls" unique_id=896022741 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 2.4000006)
|
||||||
|
|
||||||
|
[node name="Wall51" parent="Resturant/Walls" unique_id=2089599721 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -1.7999992)
|
||||||
|
|
||||||
|
[node name="Wall52" parent="Resturant/Walls" unique_id=965479737 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -2.3999996)
|
||||||
|
|
||||||
|
[node name="Wall53" parent="Resturant/Walls" unique_id=43762332 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -3)
|
||||||
|
|
||||||
|
[node name="Wall54" parent="Resturant/Walls" unique_id=921007094 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -1.1999998)
|
||||||
|
|
||||||
|
[node name="Wall55" parent="Resturant/Walls" unique_id=2144411980 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, -0.5999994)
|
||||||
|
|
||||||
|
[node name="Wall56" parent="Resturant/Walls" unique_id=370330637 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 4.2000003)
|
||||||
|
|
||||||
|
[node name="Wall57" parent="Resturant/Walls" unique_id=537562206 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 3.6000004)
|
||||||
|
|
||||||
|
[node name="Wall58" parent="Resturant/Walls" unique_id=1918288432 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 3.0000002)
|
||||||
|
|
||||||
|
[node name="Wall59" parent="Resturant/Walls" unique_id=944759951 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 4.8000007)
|
||||||
|
|
||||||
|
[node name="Wall60" parent="Resturant/Walls" unique_id=1128237563 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 5.4000006)
|
||||||
|
|
||||||
|
[node name="Wall61" parent="Resturant/Walls" unique_id=1755969864 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -3.5999994)
|
||||||
|
|
||||||
|
[node name="Wall62" parent="Resturant/Walls" unique_id=949006312 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -4.2)
|
||||||
|
|
||||||
|
[node name="Wall63" parent="Resturant/Walls" unique_id=1826688195 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -4.799999)
|
||||||
|
|
||||||
|
[node name="Wall64" parent="Resturant/Walls" unique_id=116523059 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -5.3999996)
|
||||||
|
|
||||||
|
[node name="Wall65" parent="Resturant/Walls" unique_id=711153775 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 1.2000003)
|
||||||
|
|
||||||
|
[node name="Wall66" parent="Resturant/Walls" unique_id=741047 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 0.6000004)
|
||||||
|
|
||||||
|
[node name="Wall67" parent="Resturant/Walls" unique_id=664067327 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 1.8000002)
|
||||||
|
|
||||||
|
[node name="Wall68" parent="Resturant/Walls" unique_id=1294537251 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 2.4000006)
|
||||||
|
|
||||||
|
[node name="Wall69" parent="Resturant/Walls" unique_id=1152383 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -1.7999992)
|
||||||
|
|
||||||
|
[node name="Wall70" parent="Resturant/Walls" unique_id=1710172322 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -2.3999996)
|
||||||
|
|
||||||
|
[node name="Wall71" parent="Resturant/Walls" unique_id=597518110 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -3)
|
||||||
|
|
||||||
|
[node name="Wall72" parent="Resturant/Walls" unique_id=1028573693 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -1.1999998)
|
||||||
|
|
||||||
|
[node name="Wall73" parent="Resturant/Walls" unique_id=1232042046 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, -0.5999994)
|
||||||
|
|
||||||
|
[node name="Wall74" parent="Resturant/Walls" unique_id=1159091046 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 4.2000003)
|
||||||
|
|
||||||
|
[node name="Wall75" parent="Resturant/Walls" unique_id=904470924 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 3.6000004)
|
||||||
|
|
||||||
|
[node name="Wall76" parent="Resturant/Walls" unique_id=1709758099 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 3.0000002)
|
||||||
|
|
||||||
|
[node name="Wall77" parent="Resturant/Walls" unique_id=1252446997 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 4.8000007)
|
||||||
|
|
||||||
|
[node name="Wall78" parent="Resturant/Walls" unique_id=1207579491 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 5.4000006)
|
||||||
|
|
||||||
|
[node name="Wall79" parent="Resturant/Walls" unique_id=1798073342 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -3.5999994)
|
||||||
|
|
||||||
|
[node name="Wall80" parent="Resturant/Walls" unique_id=36005990 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -4.2)
|
||||||
|
|
||||||
|
[node name="Wall81" parent="Resturant/Walls" unique_id=79516947 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -4.799999)
|
||||||
|
|
||||||
|
[node name="Wall82" parent="Resturant/Walls" unique_id=1363235805 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -5.3999996)
|
||||||
|
|
||||||
|
[node name="Hatches" type="Node3D" parent="Resturant" unique_id=1561045769]
|
||||||
|
|
||||||
|
[node name="ServingCounter" parent="Resturant/Hatches" unique_id=1341321603 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter2" parent="Resturant/Hatches" unique_id=1325232371 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8000001, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter3" parent="Resturant/Hatches" unique_id=539914523 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter4" parent="Resturant/Hatches" unique_id=2078770951 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter5" parent="Resturant/Hatches" unique_id=2019049083 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0)
|
||||||
|
|
||||||
|
[node name="Table2" parent="Resturant" unique_id=1457688277 instance=ExtResource("13_yjosk")]
|
||||||
|
transform = Transform3D(1, 0, -1.7484555e-07, 0, 1, 0, 1.7484555e-07, 0, 1, 0.5999999, 0.48000002, -3)
|
||||||
|
thinking_duration = null
|
||||||
|
ordering_duration = null
|
||||||
|
primary_duration = null
|
||||||
|
friend_duration = null
|
||||||
|
eating_duration = null
|
||||||
|
|
||||||
|
[node name="Hob" parent="Resturant" unique_id=172418174 instance=ExtResource("14_2ndvi")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, 4.2000003, 0.54, 1.7999992)
|
||||||
|
|
||||||
|
[node name="Hob2" parent="Resturant" unique_id=980569400 instance=ExtResource("14_2ndvi")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, 4.200001, 0.54, 1.1999999)
|
||||||
|
|
||||||
|
[node name="Counter" parent="Resturant" unique_id=1487893288 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.200001, 0.54, 2.3999996)
|
||||||
|
|
||||||
|
[node name="Counter2" parent="Resturant" unique_id=5128912 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.200001, 0.54, 3)
|
||||||
|
|
||||||
|
[node name="Counter3" parent="Resturant" unique_id=1298458612 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.2000003, 0.54, 0.5999999)
|
||||||
|
|
||||||
|
[node name="Counter4" parent="Resturant" unique_id=1764980142 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, 1, 0, 1, 0, -1, 0, 1.3113416e-07, 4.7683716e-07, 0.54, 2.3999996)
|
||||||
|
|
||||||
|
[node name="Counter5" parent="Resturant" unique_id=1015820252 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, 1, 0, 1, 0, -1, 0, 1.3113416e-07, 4.7683716e-07, 0.54, 3)
|
||||||
|
|
||||||
|
[node name="PlateDispenser" parent="Resturant" unique_id=710538846 instance=ExtResource("15_qxyk8")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.6)
|
||||||
|
|
||||||
|
[node name="Sink" parent="Resturant" unique_id=2055277359 instance=ExtResource("16_u5c1m")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0.6, 0.48000002, -0.6)
|
||||||
|
|
||||||
|
[node name="Counter6" parent="Resturant" unique_id=2141915043 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742277e-08, 0, 1, 0, -8.742277e-08, 0, -1, 4.7683716e-07, 0.54, -0.6000006)
|
||||||
|
|
||||||
|
[node name="RawBurgerDispenser" parent="Resturant" unique_id=235630131 instance=ExtResource("17_y7baw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.2)
|
||||||
|
|
||||||
|
[node name="BurgerBunsDispenser" parent="Resturant" unique_id=1720683779 instance=ExtResource("18_wvcs1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.8000001)
|
||||||
|
|
||||||
|
[node name="Table3" parent="Resturant" unique_id=1863572470 instance=ExtResource("13_yjosk")]
|
||||||
|
transform = Transform3D(-1, 0, 2.6226832e-07, 0, 1, 0, -2.6226832e-07, 0, -1, 3, 0.48000002, -3)
|
||||||
|
thinking_duration = null
|
||||||
|
ordering_duration = null
|
||||||
|
primary_duration = null
|
||||||
|
friend_duration = null
|
||||||
|
eating_duration = null
|
||||||
|
|
||||||
|
[node name="Hamburger" parent="." unique_id=1675596942 instance=ExtResource("11_c8vo7")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8000001, -0.6)
|
||||||
|
|
||||||
|
[node name="Plate" parent="." unique_id=190487773 instance=ExtResource("12_1f3bw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3800001, -0.6)
|
||||||
|
|
||||||
|
[node name="PickableObject" parent="." unique_id=1084951838 instance=ExtResource("13_1f3bw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1.2, -0.6)
|
||||||
|
|
||||||
|
[node name="Chips" parent="." unique_id=1028364693 instance=ExtResource("22_2ndvi")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1.2, -0.6)
|
||||||
|
|
||||||
|
[node name="Knife" parent="." unique_id=1789694138 instance=ExtResource("23_qxyk8")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, 3)
|
||||||
|
|
||||||
|
[node name="Potato" parent="." unique_id=275760487 instance=ExtResource("24_u5c1m")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9600005, 1.2, 2.2800002)
|
||||||
|
|
||||||
|
[node name="ChoppedPotato" parent="." unique_id=1564262551 instance=ExtResource("25_y7baw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9, 1.2, 1.8000001)
|
||||||
|
|
||||||
|
[node name="Chips2" parent="." unique_id=2054749156 instance=ExtResource("22_2ndvi")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9600003, 1.2, 1.08)
|
||||||
@@ -0,0 +1,501 @@
|
|||||||
|
[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="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/XROrigin.tscn" id="2_o1b3t"]
|
||||||
|
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="3_irf4n"]
|
||||||
|
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="7_n8fyw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://q37nqadkibbp" path="res://scenes/door.tscn" id="10_l51r2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b3m2ag8g5rj4r" path="res://items/hamburger.tscn" id="11_c8vo7"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://da6yrsnxvsrif" path="res://scenes/wall.tscn" id="11_slo47"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bp3v1jl8pctro" path="res://Containers/plate.tscn" id="12_1f3bw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bbg7dwsbxxh1t" path="res://scenes/cube_side_dispense.tscn" id="12_57ppd"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dlw5geheupgpt" path="res://stations/hatch.tscn" id="12_dpf3b"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://items/PickupCube.tscn" id="13_1f3bw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="13_yjosk"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="14_2ndvi"]
|
||||||
|
[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="15_di04w"]
|
||||||
|
[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_qxyk8"]
|
||||||
|
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://scenes/GameOvercontroler.gd" id="16_n8fyw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="16_u5c1m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="17_y7baw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="18_wvcs1"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://duwrbvwcqcuk3" path="res://items/chips.tscn" id="22_2ndvi"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dgk88esxip5xi" path="res://items/knife.tscn" id="23_qxyk8"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://drwuhqb3pjtiy" path="res://items/potato.tscn" id="24_u5c1m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bpvp20hiagxxb" path="res://items/chopped_potato.tscn" id="25_y7baw"]
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_bvwq1"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = ExtResource("7_n8fyw")
|
||||||
|
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("3_irf4n")
|
||||||
|
size = Vector3(20, 0.1, 20)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
|
||||||
|
size = Vector3(20, 10, 0.1)
|
||||||
|
|
||||||
|
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_vlqg6"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
||||||
|
albedo_color = Color(0.35, 0.12250001, 0.12250001, 1)
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id="PlaneMesh_vlqg6"]
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
size = Vector2(6, 10)
|
||||||
|
center_offset = Vector3(3, 0, 0)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yqrpd"]
|
||||||
|
albedo_color = Color(0.35, 0.35, 0.35, 1)
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id="PlaneMesh_kk3mq"]
|
||||||
|
material = SubResource("StandardMaterial3D_yqrpd")
|
||||||
|
size = Vector2(6, 10)
|
||||||
|
center_offset = Vector3(-3, 0, 0)
|
||||||
|
|
||||||
|
[node name="Main" type="Node3D" unique_id=1312265607]
|
||||||
|
script = ExtResource("1_57ppd")
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
|
||||||
|
environment = SubResource("Environment_bvwq1")
|
||||||
|
|
||||||
|
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("2_o1b3t")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -1.8943893, 0.9667189, -4.301105)
|
||||||
|
|
||||||
|
[node name="WorldContent" type="Node3D" parent="." unique_id=262398468]
|
||||||
|
|
||||||
|
[node name="Players" type="Node3D" parent="." unique_id=1772076868]
|
||||||
|
|
||||||
|
[node name="Stations" type="Node3D" parent="." unique_id=730717613]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.8000001, 0, 1.8000001)
|
||||||
|
|
||||||
|
[node name="ItemsSpawner" type="MultiplayerSpawner" parent="." unique_id=2051771581]
|
||||||
|
spawn_path = NodePath("../WorldContent")
|
||||||
|
|
||||||
|
[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]
|
||||||
|
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, -0.001, -0.003)
|
||||||
|
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="Counter2" parent="." unique_id=368890752 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 1.6896921)
|
||||||
|
|
||||||
|
[node name="Counter4" parent="." unique_id=1748373996 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 1.0913646)
|
||||||
|
|
||||||
|
[node name="Counter3" parent="." unique_id=1498817646 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 2.2925892)
|
||||||
|
|
||||||
|
[node name="GameOverPanel" parent="." unique_id=1234658657 instance=ExtResource("14_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.428178, 2.8122003, 3)
|
||||||
|
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, -3.8484511, 0, 2.9119425)
|
||||||
|
|
||||||
|
[node name="Resturant" type="Node3D" parent="." unique_id=1083608050]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.6212463e-05, -0.010500789, 0.0014204979)
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="Resturant" unique_id=1814285538]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Resturant/StaticBody3D" unique_id=1661443874]
|
||||||
|
shape = SubResource("WorldBoundaryShape3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Resturant" unique_id=888732490]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0.01, 0)
|
||||||
|
mesh = SubResource("PlaneMesh_vlqg6")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Resturant" unique_id=836421800]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0.01, 0)
|
||||||
|
mesh = SubResource("PlaneMesh_kk3mq")
|
||||||
|
|
||||||
|
[node name="Door" parent="Resturant" unique_id=964400290 instance=ExtResource("10_l51r2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 0)
|
||||||
|
|
||||||
|
[node name="Walls" type="Node3D" parent="Resturant" unique_id=1804204696]
|
||||||
|
|
||||||
|
[node name="Wall" parent="Resturant/Walls" unique_id=434181749 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6000001, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall2" parent="Resturant/Walls" unique_id=1183111925 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall3" parent="Resturant/Walls" unique_id=1561473949 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall4" parent="Resturant/Walls" unique_id=1593528497 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall5" parent="Resturant/Walls" unique_id=2071060763 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall6" parent="Resturant/Walls" unique_id=1607012472 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall7" parent="Resturant/Walls" unique_id=990512055 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall8" parent="Resturant/Walls" unique_id=751907897 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.200001, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall9" parent="Resturant/Walls" unique_id=358743133 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000004, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall10" parent="Resturant/Walls" unique_id=1374842161 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall11" parent="Resturant/Walls" unique_id=1408132826 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall12" parent="Resturant/Walls" unique_id=1937209307 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall13" parent="Resturant/Walls" unique_id=1714975985 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall14" parent="Resturant/Walls" unique_id=1732121903 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall15" parent="Resturant/Walls" unique_id=1311494308 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall16" parent="Resturant/Walls" unique_id=364484178 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall17" parent="Resturant/Walls" unique_id=485501605 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.3999999, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall18" parent="Resturant/Walls" unique_id=378206350 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall19" parent="Resturant/Walls" unique_id=294380188 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall20" parent="Resturant/Walls" unique_id=1122365254 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall21" parent="Resturant/Walls" unique_id=111446334 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall22" parent="Resturant/Walls" unique_id=999769595 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000001, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall23" parent="Resturant/Walls" unique_id=1832835858 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall24" parent="Resturant/Walls" unique_id=927052367 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall25" parent="Resturant/Walls" unique_id=1163278593 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2000003, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall26" parent="Resturant/Walls" unique_id=1074868471 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall27" parent="Resturant/Walls" unique_id=510219954 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall28" parent="Resturant/Walls" unique_id=1615161517 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall29" parent="Resturant/Walls" unique_id=11605666 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall30" parent="Resturant/Walls" unique_id=2032513926 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall31" parent="Resturant/Walls" unique_id=1308803807 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall32" parent="Resturant/Walls" unique_id=493869823 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall33" parent="Resturant/Walls" unique_id=699535234 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall34" parent="Resturant/Walls" unique_id=238973326 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.3999999, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall35" parent="Resturant/Walls" unique_id=836717647 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall36" parent="Resturant/Walls" unique_id=446988148 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall37" parent="Resturant/Walls" unique_id=49950412 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall38" parent="Resturant/Walls" unique_id=607255208 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall39" parent="Resturant/Walls" unique_id=1089866573 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000001, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall40" parent="Resturant/Walls" unique_id=2078240231 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall41" parent="Resturant/Walls" unique_id=592669722 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall42" parent="Resturant/Walls" unique_id=1393176200 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2000003, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall43" parent="Resturant/Walls" unique_id=1885346301 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall44" parent="Resturant/Walls" unique_id=2021916640 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall45" parent="Resturant/Walls" unique_id=1289086279 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall46" parent="Resturant/Walls" unique_id=396503450 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 1.2000003)
|
||||||
|
|
||||||
|
[node name="Wall47" parent="Resturant/Walls" unique_id=300373285 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 0.6000004)
|
||||||
|
|
||||||
|
[node name="Wall49" parent="Resturant/Walls" unique_id=1072273787 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 1.8000002)
|
||||||
|
|
||||||
|
[node name="Wall50" parent="Resturant/Walls" unique_id=896022741 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 2.4000006)
|
||||||
|
|
||||||
|
[node name="Wall51" parent="Resturant/Walls" unique_id=2089599721 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -1.7999992)
|
||||||
|
|
||||||
|
[node name="Wall52" parent="Resturant/Walls" unique_id=965479737 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -2.3999996)
|
||||||
|
|
||||||
|
[node name="Wall53" parent="Resturant/Walls" unique_id=43762332 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -3)
|
||||||
|
|
||||||
|
[node name="Wall54" parent="Resturant/Walls" unique_id=921007094 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -1.1999998)
|
||||||
|
|
||||||
|
[node name="Wall55" parent="Resturant/Walls" unique_id=2144411980 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, -0.5999994)
|
||||||
|
|
||||||
|
[node name="Wall56" parent="Resturant/Walls" unique_id=370330637 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 4.2000003)
|
||||||
|
|
||||||
|
[node name="Wall57" parent="Resturant/Walls" unique_id=537562206 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 3.6000004)
|
||||||
|
|
||||||
|
[node name="Wall58" parent="Resturant/Walls" unique_id=1918288432 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 3.0000002)
|
||||||
|
|
||||||
|
[node name="Wall59" parent="Resturant/Walls" unique_id=944759951 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 4.8000007)
|
||||||
|
|
||||||
|
[node name="Wall60" parent="Resturant/Walls" unique_id=1128237563 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 5.4000006)
|
||||||
|
|
||||||
|
[node name="Wall61" parent="Resturant/Walls" unique_id=1755969864 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -3.5999994)
|
||||||
|
|
||||||
|
[node name="Wall62" parent="Resturant/Walls" unique_id=949006312 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -4.2)
|
||||||
|
|
||||||
|
[node name="Wall63" parent="Resturant/Walls" unique_id=1826688195 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -4.799999)
|
||||||
|
|
||||||
|
[node name="Wall64" parent="Resturant/Walls" unique_id=116523059 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -5.3999996)
|
||||||
|
|
||||||
|
[node name="Wall65" parent="Resturant/Walls" unique_id=711153775 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 1.2000003)
|
||||||
|
|
||||||
|
[node name="Wall66" parent="Resturant/Walls" unique_id=741047 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 0.6000004)
|
||||||
|
|
||||||
|
[node name="Wall67" parent="Resturant/Walls" unique_id=664067327 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 1.8000002)
|
||||||
|
|
||||||
|
[node name="Wall68" parent="Resturant/Walls" unique_id=1294537251 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 2.4000006)
|
||||||
|
|
||||||
|
[node name="Wall69" parent="Resturant/Walls" unique_id=1152383 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -1.7999992)
|
||||||
|
|
||||||
|
[node name="Wall70" parent="Resturant/Walls" unique_id=1710172322 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -2.3999996)
|
||||||
|
|
||||||
|
[node name="Wall71" parent="Resturant/Walls" unique_id=597518110 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -3)
|
||||||
|
|
||||||
|
[node name="Wall72" parent="Resturant/Walls" unique_id=1028573693 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -1.1999998)
|
||||||
|
|
||||||
|
[node name="Wall73" parent="Resturant/Walls" unique_id=1232042046 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, -0.5999994)
|
||||||
|
|
||||||
|
[node name="Wall74" parent="Resturant/Walls" unique_id=1159091046 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 4.2000003)
|
||||||
|
|
||||||
|
[node name="Wall75" parent="Resturant/Walls" unique_id=904470924 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 3.6000004)
|
||||||
|
|
||||||
|
[node name="Wall76" parent="Resturant/Walls" unique_id=1709758099 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 3.0000002)
|
||||||
|
|
||||||
|
[node name="Wall77" parent="Resturant/Walls" unique_id=1252446997 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 4.8000007)
|
||||||
|
|
||||||
|
[node name="Wall78" parent="Resturant/Walls" unique_id=1207579491 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 5.4000006)
|
||||||
|
|
||||||
|
[node name="Wall79" parent="Resturant/Walls" unique_id=1798073342 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -3.5999994)
|
||||||
|
|
||||||
|
[node name="Wall80" parent="Resturant/Walls" unique_id=36005990 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -4.2)
|
||||||
|
|
||||||
|
[node name="Wall81" parent="Resturant/Walls" unique_id=79516947 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -4.799999)
|
||||||
|
|
||||||
|
[node name="Wall82" parent="Resturant/Walls" unique_id=1363235805 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -5.3999996)
|
||||||
|
|
||||||
|
[node name="Hatches" type="Node3D" parent="Resturant" unique_id=1561045769]
|
||||||
|
|
||||||
|
[node name="ServingCounter" parent="Resturant/Hatches" unique_id=1341321603 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter2" parent="Resturant/Hatches" unique_id=1325232371 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8000001, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter3" parent="Resturant/Hatches" unique_id=539914523 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter4" parent="Resturant/Hatches" unique_id=2078770951 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter5" parent="Resturant/Hatches" unique_id=2019049083 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0)
|
||||||
|
|
||||||
|
[node name="Table2" parent="Resturant" unique_id=1457688277 instance=ExtResource("13_yjosk")]
|
||||||
|
transform = Transform3D(1, 0, -1.7484555e-07, 0, 1, 0, 1.7484555e-07, 0, 1, 0.5999999, 0.48000002, -3)
|
||||||
|
thinking_duration = null
|
||||||
|
ordering_duration = null
|
||||||
|
primary_duration = null
|
||||||
|
friend_duration = null
|
||||||
|
eating_duration = null
|
||||||
|
|
||||||
|
[node name="Hob" parent="Resturant" unique_id=172418174 instance=ExtResource("14_2ndvi")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, 4.2000003, 0.54, 1.7999992)
|
||||||
|
|
||||||
|
[node name="Hob2" parent="Resturant" unique_id=980569400 instance=ExtResource("14_2ndvi")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, 4.200001, 0.54, 1.1999999)
|
||||||
|
|
||||||
|
[node name="Counter" parent="Resturant" unique_id=1487893288 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.200001, 0.54, 2.3999996)
|
||||||
|
|
||||||
|
[node name="Counter2" parent="Resturant" unique_id=5128912 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.200001, 0.54, 3)
|
||||||
|
|
||||||
|
[node name="Counter3" parent="Resturant" unique_id=1298458612 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.2000003, 0.54, 0.5999999)
|
||||||
|
|
||||||
|
[node name="Counter4" parent="Resturant" unique_id=1764980142 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, 1, 0, 1, 0, -1, 0, 1.3113416e-07, 4.7683716e-07, 0.54, 2.3999996)
|
||||||
|
|
||||||
|
[node name="Counter5" parent="Resturant" unique_id=1015820252 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, 1, 0, 1, 0, -1, 0, 1.3113416e-07, 4.7683716e-07, 0.54, 3)
|
||||||
|
|
||||||
|
[node name="PlateDispenser" parent="Resturant" unique_id=710538846 instance=ExtResource("15_qxyk8")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.6)
|
||||||
|
|
||||||
|
[node name="Sink" parent="Resturant" unique_id=2055277359 instance=ExtResource("16_u5c1m")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0.6, 0.48000002, -0.6)
|
||||||
|
|
||||||
|
[node name="Counter6" parent="Resturant" unique_id=2141915043 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742277e-08, 0, 1, 0, -8.742277e-08, 0, -1, 4.7683716e-07, 0.54, -0.6000006)
|
||||||
|
|
||||||
|
[node name="RawBurgerDispenser" parent="Resturant" unique_id=235630131 instance=ExtResource("17_y7baw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.2)
|
||||||
|
|
||||||
|
[node name="BurgerBunsDispenser" parent="Resturant" unique_id=1720683779 instance=ExtResource("18_wvcs1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.8000001)
|
||||||
|
|
||||||
|
[node name="Table3" parent="Resturant" unique_id=1863572470 instance=ExtResource("13_yjosk")]
|
||||||
|
transform = Transform3D(-1, 0, 2.6226832e-07, 0, 1, 0, -2.6226832e-07, 0, -1, 3, 0.48000002, -3)
|
||||||
|
thinking_duration = null
|
||||||
|
ordering_duration = null
|
||||||
|
primary_duration = null
|
||||||
|
friend_duration = null
|
||||||
|
eating_duration = null
|
||||||
|
|
||||||
|
[node name="Hamburger" parent="." unique_id=1675596942 instance=ExtResource("11_c8vo7")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8000001, -0.6)
|
||||||
|
|
||||||
|
[node name="Plate" parent="." unique_id=190487773 instance=ExtResource("12_1f3bw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3800001, -0.6)
|
||||||
|
|
||||||
|
[node name="PickableObject" parent="." unique_id=1084951838 instance=ExtResource("13_1f3bw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1.2, -0.6)
|
||||||
|
|
||||||
|
[node name="Chips" parent="." unique_id=1028364693 instance=ExtResource("22_2ndvi")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1.2, -0.6)
|
||||||
|
|
||||||
|
[node name="Knife" parent="." unique_id=1789694138 instance=ExtResource("23_qxyk8")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, 3)
|
||||||
|
|
||||||
|
[node name="Potato" parent="." unique_id=275760487 instance=ExtResource("24_u5c1m")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9600005, 1.2, 2.2800002)
|
||||||
|
|
||||||
|
[node name="ChoppedPotato" parent="." unique_id=1564262551 instance=ExtResource("25_y7baw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9, 1.2, 1.8000001)
|
||||||
|
|
||||||
|
[node name="Chips2" parent="." unique_id=2054749156 instance=ExtResource("22_2ndvi")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9600003, 1.2, 1.08)
|
||||||
@@ -0,0 +1,501 @@
|
|||||||
|
[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="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/XROrigin.tscn" id="2_o1b3t"]
|
||||||
|
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="3_irf4n"]
|
||||||
|
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="7_n8fyw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://q37nqadkibbp" path="res://scenes/door.tscn" id="10_l51r2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b3m2ag8g5rj4r" path="res://items/hamburger.tscn" id="11_c8vo7"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://da6yrsnxvsrif" path="res://scenes/wall.tscn" id="11_slo47"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bp3v1jl8pctro" path="res://Containers/plate.tscn" id="12_1f3bw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bbg7dwsbxxh1t" path="res://scenes/cube_side_dispense.tscn" id="12_57ppd"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dlw5geheupgpt" path="res://stations/hatch.tscn" id="12_dpf3b"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://items/PickupCube.tscn" id="13_1f3bw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="13_yjosk"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="14_2ndvi"]
|
||||||
|
[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="15_di04w"]
|
||||||
|
[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_qxyk8"]
|
||||||
|
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://scenes/GameOvercontroler.gd" id="16_n8fyw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="16_u5c1m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="17_y7baw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="18_wvcs1"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://duwrbvwcqcuk3" path="res://items/chips.tscn" id="22_2ndvi"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dgk88esxip5xi" path="res://items/knife.tscn" id="23_qxyk8"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://drwuhqb3pjtiy" path="res://items/potato.tscn" id="24_u5c1m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bpvp20hiagxxb" path="res://items/chopped_potato.tscn" id="25_y7baw"]
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_bvwq1"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = ExtResource("7_n8fyw")
|
||||||
|
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("3_irf4n")
|
||||||
|
size = Vector3(20, 0.1, 20)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
|
||||||
|
size = Vector3(20, 10, 0.1)
|
||||||
|
|
||||||
|
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_vlqg6"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
||||||
|
albedo_color = Color(0.35, 0.12250001, 0.12250001, 1)
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id="PlaneMesh_vlqg6"]
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
size = Vector2(6, 10)
|
||||||
|
center_offset = Vector3(3, 0, 0)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yqrpd"]
|
||||||
|
albedo_color = Color(0.35, 0.35, 0.35, 1)
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id="PlaneMesh_kk3mq"]
|
||||||
|
material = SubResource("StandardMaterial3D_yqrpd")
|
||||||
|
size = Vector2(6, 10)
|
||||||
|
center_offset = Vector3(-3, 0, 0)
|
||||||
|
|
||||||
|
[node name="Main" type="Node3D" unique_id=1312265607]
|
||||||
|
script = ExtResource("1_57ppd")
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
|
||||||
|
environment = SubResource("Environment_bvwq1")
|
||||||
|
|
||||||
|
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("2_o1b3t")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -1.8943893, 0.9667189, -4.301105)
|
||||||
|
|
||||||
|
[node name="WorldContent" type="Node3D" parent="." unique_id=262398468]
|
||||||
|
|
||||||
|
[node name="Players" type="Node3D" parent="." unique_id=1772076868]
|
||||||
|
|
||||||
|
[node name="Stations" type="Node3D" parent="." unique_id=730717613]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.8000001, 0, 1.8000001)
|
||||||
|
|
||||||
|
[node name="ItemsSpawner" type="MultiplayerSpawner" parent="." unique_id=2051771581]
|
||||||
|
spawn_path = NodePath("../WorldContent")
|
||||||
|
|
||||||
|
[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]
|
||||||
|
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, -0.001, -0.003)
|
||||||
|
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="Counter2" parent="." unique_id=368890752 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 1.6896921)
|
||||||
|
|
||||||
|
[node name="Counter4" parent="." unique_id=1748373996 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 1.0913646)
|
||||||
|
|
||||||
|
[node name="Counter3" parent="." unique_id=1498817646 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 2.2925892)
|
||||||
|
|
||||||
|
[node name="GameOverPanel" parent="." unique_id=1234658657 instance=ExtResource("14_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.428178, 2.8122003, 3)
|
||||||
|
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, -3.8484511, 0, 2.9119425)
|
||||||
|
|
||||||
|
[node name="Resturant" type="Node3D" parent="." unique_id=1083608050]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.6212463e-05, -0.010500789, 0.0014204979)
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="Resturant" unique_id=1814285538]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Resturant/StaticBody3D" unique_id=1661443874]
|
||||||
|
shape = SubResource("WorldBoundaryShape3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Resturant" unique_id=888732490]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0.01, 0)
|
||||||
|
mesh = SubResource("PlaneMesh_vlqg6")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Resturant" unique_id=836421800]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0.01, 0)
|
||||||
|
mesh = SubResource("PlaneMesh_kk3mq")
|
||||||
|
|
||||||
|
[node name="Door" parent="Resturant" unique_id=964400290 instance=ExtResource("10_l51r2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 0)
|
||||||
|
|
||||||
|
[node name="Walls" type="Node3D" parent="Resturant" unique_id=1804204696]
|
||||||
|
|
||||||
|
[node name="Wall" parent="Resturant/Walls" unique_id=434181749 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6000001, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall2" parent="Resturant/Walls" unique_id=1183111925 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall3" parent="Resturant/Walls" unique_id=1561473949 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall4" parent="Resturant/Walls" unique_id=1593528497 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall5" parent="Resturant/Walls" unique_id=2071060763 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall6" parent="Resturant/Walls" unique_id=1607012472 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall7" parent="Resturant/Walls" unique_id=990512055 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall8" parent="Resturant/Walls" unique_id=751907897 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.200001, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall9" parent="Resturant/Walls" unique_id=358743133 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000004, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall10" parent="Resturant/Walls" unique_id=1374842161 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall11" parent="Resturant/Walls" unique_id=1408132826 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall12" parent="Resturant/Walls" unique_id=1937209307 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall13" parent="Resturant/Walls" unique_id=1714975985 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall14" parent="Resturant/Walls" unique_id=1732121903 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall15" parent="Resturant/Walls" unique_id=1311494308 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall16" parent="Resturant/Walls" unique_id=364484178 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall17" parent="Resturant/Walls" unique_id=485501605 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.3999999, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall18" parent="Resturant/Walls" unique_id=378206350 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall19" parent="Resturant/Walls" unique_id=294380188 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall20" parent="Resturant/Walls" unique_id=1122365254 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall21" parent="Resturant/Walls" unique_id=111446334 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall22" parent="Resturant/Walls" unique_id=999769595 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000001, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall23" parent="Resturant/Walls" unique_id=1832835858 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall24" parent="Resturant/Walls" unique_id=927052367 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall25" parent="Resturant/Walls" unique_id=1163278593 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2000003, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall26" parent="Resturant/Walls" unique_id=1074868471 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall27" parent="Resturant/Walls" unique_id=510219954 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall28" parent="Resturant/Walls" unique_id=1615161517 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall29" parent="Resturant/Walls" unique_id=11605666 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall30" parent="Resturant/Walls" unique_id=2032513926 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall31" parent="Resturant/Walls" unique_id=1308803807 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall32" parent="Resturant/Walls" unique_id=493869823 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall33" parent="Resturant/Walls" unique_id=699535234 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall34" parent="Resturant/Walls" unique_id=238973326 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.3999999, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall35" parent="Resturant/Walls" unique_id=836717647 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall36" parent="Resturant/Walls" unique_id=446988148 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall37" parent="Resturant/Walls" unique_id=49950412 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall38" parent="Resturant/Walls" unique_id=607255208 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall39" parent="Resturant/Walls" unique_id=1089866573 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000001, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall40" parent="Resturant/Walls" unique_id=2078240231 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall41" parent="Resturant/Walls" unique_id=592669722 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall42" parent="Resturant/Walls" unique_id=1393176200 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2000003, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall43" parent="Resturant/Walls" unique_id=1885346301 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall44" parent="Resturant/Walls" unique_id=2021916640 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall45" parent="Resturant/Walls" unique_id=1289086279 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall46" parent="Resturant/Walls" unique_id=396503450 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 1.2000003)
|
||||||
|
|
||||||
|
[node name="Wall47" parent="Resturant/Walls" unique_id=300373285 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 0.6000004)
|
||||||
|
|
||||||
|
[node name="Wall49" parent="Resturant/Walls" unique_id=1072273787 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 1.8000002)
|
||||||
|
|
||||||
|
[node name="Wall50" parent="Resturant/Walls" unique_id=896022741 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 2.4000006)
|
||||||
|
|
||||||
|
[node name="Wall51" parent="Resturant/Walls" unique_id=2089599721 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -1.7999992)
|
||||||
|
|
||||||
|
[node name="Wall52" parent="Resturant/Walls" unique_id=965479737 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -2.3999996)
|
||||||
|
|
||||||
|
[node name="Wall53" parent="Resturant/Walls" unique_id=43762332 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -3)
|
||||||
|
|
||||||
|
[node name="Wall54" parent="Resturant/Walls" unique_id=921007094 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -1.1999998)
|
||||||
|
|
||||||
|
[node name="Wall55" parent="Resturant/Walls" unique_id=2144411980 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, -0.5999994)
|
||||||
|
|
||||||
|
[node name="Wall56" parent="Resturant/Walls" unique_id=370330637 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 4.2000003)
|
||||||
|
|
||||||
|
[node name="Wall57" parent="Resturant/Walls" unique_id=537562206 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 3.6000004)
|
||||||
|
|
||||||
|
[node name="Wall58" parent="Resturant/Walls" unique_id=1918288432 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 3.0000002)
|
||||||
|
|
||||||
|
[node name="Wall59" parent="Resturant/Walls" unique_id=944759951 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 4.8000007)
|
||||||
|
|
||||||
|
[node name="Wall60" parent="Resturant/Walls" unique_id=1128237563 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 5.4000006)
|
||||||
|
|
||||||
|
[node name="Wall61" parent="Resturant/Walls" unique_id=1755969864 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -3.5999994)
|
||||||
|
|
||||||
|
[node name="Wall62" parent="Resturant/Walls" unique_id=949006312 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -4.2)
|
||||||
|
|
||||||
|
[node name="Wall63" parent="Resturant/Walls" unique_id=1826688195 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -4.799999)
|
||||||
|
|
||||||
|
[node name="Wall64" parent="Resturant/Walls" unique_id=116523059 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -5.3999996)
|
||||||
|
|
||||||
|
[node name="Wall65" parent="Resturant/Walls" unique_id=711153775 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 1.2000003)
|
||||||
|
|
||||||
|
[node name="Wall66" parent="Resturant/Walls" unique_id=741047 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 0.6000004)
|
||||||
|
|
||||||
|
[node name="Wall67" parent="Resturant/Walls" unique_id=664067327 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 1.8000002)
|
||||||
|
|
||||||
|
[node name="Wall68" parent="Resturant/Walls" unique_id=1294537251 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 2.4000006)
|
||||||
|
|
||||||
|
[node name="Wall69" parent="Resturant/Walls" unique_id=1152383 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -1.7999992)
|
||||||
|
|
||||||
|
[node name="Wall70" parent="Resturant/Walls" unique_id=1710172322 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -2.3999996)
|
||||||
|
|
||||||
|
[node name="Wall71" parent="Resturant/Walls" unique_id=597518110 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -3)
|
||||||
|
|
||||||
|
[node name="Wall72" parent="Resturant/Walls" unique_id=1028573693 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -1.1999998)
|
||||||
|
|
||||||
|
[node name="Wall73" parent="Resturant/Walls" unique_id=1232042046 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, -0.5999994)
|
||||||
|
|
||||||
|
[node name="Wall74" parent="Resturant/Walls" unique_id=1159091046 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 4.2000003)
|
||||||
|
|
||||||
|
[node name="Wall75" parent="Resturant/Walls" unique_id=904470924 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 3.6000004)
|
||||||
|
|
||||||
|
[node name="Wall76" parent="Resturant/Walls" unique_id=1709758099 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 3.0000002)
|
||||||
|
|
||||||
|
[node name="Wall77" parent="Resturant/Walls" unique_id=1252446997 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 4.8000007)
|
||||||
|
|
||||||
|
[node name="Wall78" parent="Resturant/Walls" unique_id=1207579491 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 5.4000006)
|
||||||
|
|
||||||
|
[node name="Wall79" parent="Resturant/Walls" unique_id=1798073342 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -3.5999994)
|
||||||
|
|
||||||
|
[node name="Wall80" parent="Resturant/Walls" unique_id=36005990 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -4.2)
|
||||||
|
|
||||||
|
[node name="Wall81" parent="Resturant/Walls" unique_id=79516947 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -4.799999)
|
||||||
|
|
||||||
|
[node name="Wall82" parent="Resturant/Walls" unique_id=1363235805 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -5.3999996)
|
||||||
|
|
||||||
|
[node name="Hatches" type="Node3D" parent="Resturant" unique_id=1561045769]
|
||||||
|
|
||||||
|
[node name="ServingCounter" parent="Resturant/Hatches" unique_id=1341321603 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter2" parent="Resturant/Hatches" unique_id=1325232371 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8000001, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter3" parent="Resturant/Hatches" unique_id=539914523 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter4" parent="Resturant/Hatches" unique_id=2078770951 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter5" parent="Resturant/Hatches" unique_id=2019049083 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0)
|
||||||
|
|
||||||
|
[node name="Table2" parent="Resturant" unique_id=1457688277 instance=ExtResource("13_yjosk")]
|
||||||
|
transform = Transform3D(1, 0, -1.7484555e-07, 0, 1, 0, 1.7484555e-07, 0, 1, 0.5999999, 0.48000002, -3)
|
||||||
|
thinking_duration = null
|
||||||
|
ordering_duration = null
|
||||||
|
primary_duration = null
|
||||||
|
friend_duration = null
|
||||||
|
eating_duration = null
|
||||||
|
|
||||||
|
[node name="Hob" parent="Resturant" unique_id=172418174 instance=ExtResource("14_2ndvi")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, 4.2000003, 0.54, 1.7999992)
|
||||||
|
|
||||||
|
[node name="Hob2" parent="Resturant" unique_id=980569400 instance=ExtResource("14_2ndvi")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, 4.200001, 0.54, 1.1999999)
|
||||||
|
|
||||||
|
[node name="Counter" parent="Resturant" unique_id=1487893288 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.200001, 0.54, 2.3999996)
|
||||||
|
|
||||||
|
[node name="Counter2" parent="Resturant" unique_id=5128912 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.200001, 0.54, 3)
|
||||||
|
|
||||||
|
[node name="Counter3" parent="Resturant" unique_id=1298458612 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.2000003, 0.54, 0.5999999)
|
||||||
|
|
||||||
|
[node name="Counter4" parent="Resturant" unique_id=1764980142 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, 1, 0, 1, 0, -1, 0, 1.3113416e-07, 4.7683716e-07, 0.54, 2.3999996)
|
||||||
|
|
||||||
|
[node name="Counter5" parent="Resturant" unique_id=1015820252 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, 1, 0, 1, 0, -1, 0, 1.3113416e-07, 4.7683716e-07, 0.54, 3)
|
||||||
|
|
||||||
|
[node name="PlateDispenser" parent="Resturant" unique_id=710538846 instance=ExtResource("15_qxyk8")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.6)
|
||||||
|
|
||||||
|
[node name="Sink" parent="Resturant" unique_id=2055277359 instance=ExtResource("16_u5c1m")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0.6, 0.48000002, -0.6)
|
||||||
|
|
||||||
|
[node name="Counter6" parent="Resturant" unique_id=2141915043 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742277e-08, 0, 1, 0, -8.742277e-08, 0, -1, 4.7683716e-07, 0.54, -0.6000006)
|
||||||
|
|
||||||
|
[node name="RawBurgerDispenser" parent="Resturant" unique_id=235630131 instance=ExtResource("17_y7baw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.2)
|
||||||
|
|
||||||
|
[node name="BurgerBunsDispenser" parent="Resturant" unique_id=1720683779 instance=ExtResource("18_wvcs1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.8000001)
|
||||||
|
|
||||||
|
[node name="Table3" parent="Resturant" unique_id=1863572470 instance=ExtResource("13_yjosk")]
|
||||||
|
transform = Transform3D(-1, 0, 2.6226832e-07, 0, 1, 0, -2.6226832e-07, 0, -1, 3, 0.48000002, -3)
|
||||||
|
thinking_duration = null
|
||||||
|
ordering_duration = null
|
||||||
|
primary_duration = null
|
||||||
|
friend_duration = null
|
||||||
|
eating_duration = null
|
||||||
|
|
||||||
|
[node name="Hamburger" parent="." unique_id=1675596942 instance=ExtResource("11_c8vo7")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8000001, -0.6)
|
||||||
|
|
||||||
|
[node name="Plate" parent="." unique_id=190487773 instance=ExtResource("12_1f3bw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3800001, -0.6)
|
||||||
|
|
||||||
|
[node name="PickableObject" parent="." unique_id=1084951838 instance=ExtResource("13_1f3bw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1.2, -0.6)
|
||||||
|
|
||||||
|
[node name="Chips" parent="." unique_id=1028364693 instance=ExtResource("22_2ndvi")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1.2, -0.6)
|
||||||
|
|
||||||
|
[node name="Knife" parent="." unique_id=1789694138 instance=ExtResource("23_qxyk8")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, 3)
|
||||||
|
|
||||||
|
[node name="Potato" parent="." unique_id=275760487 instance=ExtResource("24_u5c1m")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9600005, 1.2, 2.2800002)
|
||||||
|
|
||||||
|
[node name="ChoppedPotato" parent="." unique_id=1564262551 instance=ExtResource("25_y7baw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9, 1.2, 1.8000001)
|
||||||
|
|
||||||
|
[node name="Chips2" parent="." unique_id=2054749156 instance=ExtResource("22_2ndvi")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9600003, 1.2, 1.08)
|
||||||
@@ -0,0 +1,501 @@
|
|||||||
|
[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="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/XROrigin.tscn" id="2_o1b3t"]
|
||||||
|
[ext_resource type="Material" uid="uid://cmia50cfqxxo4" path="res://textures/dev_material_3d.tres" id="3_irf4n"]
|
||||||
|
[ext_resource type="Sky" uid="uid://c1abtpwhdm2d5" path="res://textures/sky/NightSkyHDRI009_16K.tres" id="7_n8fyw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://q37nqadkibbp" path="res://scenes/door.tscn" id="10_l51r2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b3m2ag8g5rj4r" path="res://items/hamburger.tscn" id="11_c8vo7"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://da6yrsnxvsrif" path="res://scenes/wall.tscn" id="11_slo47"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bp3v1jl8pctro" path="res://Containers/plate.tscn" id="12_1f3bw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bbg7dwsbxxh1t" path="res://scenes/cube_side_dispense.tscn" id="12_57ppd"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dlw5geheupgpt" path="res://stations/hatch.tscn" id="12_dpf3b"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://items/PickupCube.tscn" id="13_1f3bw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="13_yjosk"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://j7caslh27nor" path="res://stations/Hob.tscn" id="14_2ndvi"]
|
||||||
|
[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="15_di04w"]
|
||||||
|
[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_qxyk8"]
|
||||||
|
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://scenes/GameOvercontroler.gd" id="16_n8fyw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="16_u5c1m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="17_y7baw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="18_wvcs1"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://duwrbvwcqcuk3" path="res://items/chips.tscn" id="22_2ndvi"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dgk88esxip5xi" path="res://items/knife.tscn" id="23_qxyk8"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://drwuhqb3pjtiy" path="res://items/potato.tscn" id="24_u5c1m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bpvp20hiagxxb" path="res://items/chopped_potato.tscn" id="25_y7baw"]
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_bvwq1"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = ExtResource("7_n8fyw")
|
||||||
|
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("3_irf4n")
|
||||||
|
size = Vector3(20, 0.1, 20)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
|
||||||
|
size = Vector3(20, 10, 0.1)
|
||||||
|
|
||||||
|
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_vlqg6"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
||||||
|
albedo_color = Color(0.35, 0.12250001, 0.12250001, 1)
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id="PlaneMesh_vlqg6"]
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
size = Vector2(6, 10)
|
||||||
|
center_offset = Vector3(3, 0, 0)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yqrpd"]
|
||||||
|
albedo_color = Color(0.35, 0.35, 0.35, 1)
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id="PlaneMesh_kk3mq"]
|
||||||
|
material = SubResource("StandardMaterial3D_yqrpd")
|
||||||
|
size = Vector2(6, 10)
|
||||||
|
center_offset = Vector3(-3, 0, 0)
|
||||||
|
|
||||||
|
[node name="Main" type="Node3D" unique_id=1312265607]
|
||||||
|
script = ExtResource("1_57ppd")
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
|
||||||
|
environment = SubResource("Environment_bvwq1")
|
||||||
|
|
||||||
|
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("2_o1b3t")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -1.8943893, 0.9667189, -4.301105)
|
||||||
|
|
||||||
|
[node name="WorldContent" type="Node3D" parent="." unique_id=262398468]
|
||||||
|
|
||||||
|
[node name="Players" type="Node3D" parent="." unique_id=1772076868]
|
||||||
|
|
||||||
|
[node name="Stations" type="Node3D" parent="." unique_id=730717613]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.8000001, 0, 1.8000001)
|
||||||
|
|
||||||
|
[node name="ItemsSpawner" type="MultiplayerSpawner" parent="." unique_id=2051771581]
|
||||||
|
spawn_path = NodePath("../WorldContent")
|
||||||
|
|
||||||
|
[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]
|
||||||
|
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, -0.001, -0.003)
|
||||||
|
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="Counter2" parent="." unique_id=368890752 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 1.6896921)
|
||||||
|
|
||||||
|
[node name="Counter4" parent="." unique_id=1748373996 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 1.0913646)
|
||||||
|
|
||||||
|
[node name="Counter3" parent="." unique_id=1498817646 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.9477215, 0.5115016, 2.2925892)
|
||||||
|
|
||||||
|
[node name="GameOverPanel" parent="." unique_id=1234658657 instance=ExtResource("14_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.428178, 2.8122003, 3)
|
||||||
|
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, -3.8484511, 0, 2.9119425)
|
||||||
|
|
||||||
|
[node name="Resturant" type="Node3D" parent="." unique_id=1083608050]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.6212463e-05, -0.010500789, 0.0014204979)
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="Resturant" unique_id=1814285538]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Resturant/StaticBody3D" unique_id=1661443874]
|
||||||
|
shape = SubResource("WorldBoundaryShape3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Resturant" unique_id=888732490]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0.01, 0)
|
||||||
|
mesh = SubResource("PlaneMesh_vlqg6")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Resturant" unique_id=836421800]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0.01, 0)
|
||||||
|
mesh = SubResource("PlaneMesh_kk3mq")
|
||||||
|
|
||||||
|
[node name="Door" parent="Resturant" unique_id=964400290 instance=ExtResource("10_l51r2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 0)
|
||||||
|
|
||||||
|
[node name="Walls" type="Node3D" parent="Resturant" unique_id=1804204696]
|
||||||
|
|
||||||
|
[node name="Wall" parent="Resturant/Walls" unique_id=434181749 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6000001, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall2" parent="Resturant/Walls" unique_id=1183111925 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall3" parent="Resturant/Walls" unique_id=1561473949 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall4" parent="Resturant/Walls" unique_id=1593528497 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall5" parent="Resturant/Walls" unique_id=2071060763 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall6" parent="Resturant/Walls" unique_id=1607012472 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall7" parent="Resturant/Walls" unique_id=990512055 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall8" parent="Resturant/Walls" unique_id=751907897 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.200001, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall9" parent="Resturant/Walls" unique_id=358743133 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000004, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall10" parent="Resturant/Walls" unique_id=1374842161 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall11" parent="Resturant/Walls" unique_id=1408132826 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, 0)
|
||||||
|
|
||||||
|
[node name="Wall12" parent="Resturant/Walls" unique_id=1937209307 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall13" parent="Resturant/Walls" unique_id=1714975985 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall14" parent="Resturant/Walls" unique_id=1732121903 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall15" parent="Resturant/Walls" unique_id=1311494308 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall16" parent="Resturant/Walls" unique_id=364484178 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall17" parent="Resturant/Walls" unique_id=485501605 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.3999999, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall18" parent="Resturant/Walls" unique_id=378206350 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall19" parent="Resturant/Walls" unique_id=294380188 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall20" parent="Resturant/Walls" unique_id=1122365254 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall21" parent="Resturant/Walls" unique_id=111446334 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1999998, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall22" parent="Resturant/Walls" unique_id=999769595 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000001, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall23" parent="Resturant/Walls" unique_id=1832835858 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0000002, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall24" parent="Resturant/Walls" unique_id=927052367 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall25" parent="Resturant/Walls" unique_id=1163278593 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2000003, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall26" parent="Resturant/Walls" unique_id=1074868471 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall27" parent="Resturant/Walls" unique_id=510219954 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall28" parent="Resturant/Walls" unique_id=1615161517 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, -6)
|
||||||
|
|
||||||
|
[node name="Wall29" parent="Resturant/Walls" unique_id=11605666 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.60000014, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall30" parent="Resturant/Walls" unique_id=2032513926 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3841858e-07, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall31" parent="Resturant/Walls" unique_id=1308803807 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5999999, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall32" parent="Resturant/Walls" unique_id=493869823 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall33" parent="Resturant/Walls" unique_id=699535234 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall34" parent="Resturant/Walls" unique_id=238973326 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.3999999, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall35" parent="Resturant/Walls" unique_id=836717647 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall36" parent="Resturant/Walls" unique_id=446988148 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall37" parent="Resturant/Walls" unique_id=49950412 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall38" parent="Resturant/Walls" unique_id=607255208 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1999998, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall39" parent="Resturant/Walls" unique_id=1089866573 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6000001, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall40" parent="Resturant/Walls" unique_id=2078240231 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0000002, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall41" parent="Resturant/Walls" unique_id=592669722 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall42" parent="Resturant/Walls" unique_id=1393176200 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2000003, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall43" parent="Resturant/Walls" unique_id=1885346301 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall44" parent="Resturant/Walls" unique_id=2021916640 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall45" parent="Resturant/Walls" unique_id=1289086279 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 6)
|
||||||
|
|
||||||
|
[node name="Wall46" parent="Resturant/Walls" unique_id=396503450 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 1.2000003)
|
||||||
|
|
||||||
|
[node name="Wall47" parent="Resturant/Walls" unique_id=300373285 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 0.6000004)
|
||||||
|
|
||||||
|
[node name="Wall49" parent="Resturant/Walls" unique_id=1072273787 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 1.8000002)
|
||||||
|
|
||||||
|
[node name="Wall50" parent="Resturant/Walls" unique_id=896022741 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 2.4000006)
|
||||||
|
|
||||||
|
[node name="Wall51" parent="Resturant/Walls" unique_id=2089599721 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -1.7999992)
|
||||||
|
|
||||||
|
[node name="Wall52" parent="Resturant/Walls" unique_id=965479737 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -2.3999996)
|
||||||
|
|
||||||
|
[node name="Wall53" parent="Resturant/Walls" unique_id=43762332 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -3)
|
||||||
|
|
||||||
|
[node name="Wall54" parent="Resturant/Walls" unique_id=921007094 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -1.1999998)
|
||||||
|
|
||||||
|
[node name="Wall55" parent="Resturant/Walls" unique_id=2144411980 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, -0.5999994)
|
||||||
|
|
||||||
|
[node name="Wall56" parent="Resturant/Walls" unique_id=370330637 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 4.2000003)
|
||||||
|
|
||||||
|
[node name="Wall57" parent="Resturant/Walls" unique_id=537562206 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 3.6000004)
|
||||||
|
|
||||||
|
[node name="Wall58" parent="Resturant/Walls" unique_id=1918288432 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 3.0000002)
|
||||||
|
|
||||||
|
[node name="Wall59" parent="Resturant/Walls" unique_id=944759951 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 4.8000007)
|
||||||
|
|
||||||
|
[node name="Wall60" parent="Resturant/Walls" unique_id=1128237563 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8, 0, 5.4000006)
|
||||||
|
|
||||||
|
[node name="Wall61" parent="Resturant/Walls" unique_id=1755969864 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -3.5999994)
|
||||||
|
|
||||||
|
[node name="Wall62" parent="Resturant/Walls" unique_id=949006312 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -4.2)
|
||||||
|
|
||||||
|
[node name="Wall63" parent="Resturant/Walls" unique_id=1826688195 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -4.799999)
|
||||||
|
|
||||||
|
[node name="Wall64" parent="Resturant/Walls" unique_id=116523059 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.8000007, 0, -5.3999996)
|
||||||
|
|
||||||
|
[node name="Wall65" parent="Resturant/Walls" unique_id=711153775 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 1.2000003)
|
||||||
|
|
||||||
|
[node name="Wall66" parent="Resturant/Walls" unique_id=741047 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 0.6000004)
|
||||||
|
|
||||||
|
[node name="Wall67" parent="Resturant/Walls" unique_id=664067327 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 1.8000002)
|
||||||
|
|
||||||
|
[node name="Wall68" parent="Resturant/Walls" unique_id=1294537251 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 2.4000006)
|
||||||
|
|
||||||
|
[node name="Wall69" parent="Resturant/Walls" unique_id=1152383 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -1.7999992)
|
||||||
|
|
||||||
|
[node name="Wall70" parent="Resturant/Walls" unique_id=1710172322 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -2.3999996)
|
||||||
|
|
||||||
|
[node name="Wall71" parent="Resturant/Walls" unique_id=597518110 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -3)
|
||||||
|
|
||||||
|
[node name="Wall72" parent="Resturant/Walls" unique_id=1028573693 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -1.1999998)
|
||||||
|
|
||||||
|
[node name="Wall73" parent="Resturant/Walls" unique_id=1232042046 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, -0.5999994)
|
||||||
|
|
||||||
|
[node name="Wall74" parent="Resturant/Walls" unique_id=1159091046 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 4.2000003)
|
||||||
|
|
||||||
|
[node name="Wall75" parent="Resturant/Walls" unique_id=904470924 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 3.6000004)
|
||||||
|
|
||||||
|
[node name="Wall76" parent="Resturant/Walls" unique_id=1709758099 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 3.0000002)
|
||||||
|
|
||||||
|
[node name="Wall77" parent="Resturant/Walls" unique_id=1252446997 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 4.8000007)
|
||||||
|
|
||||||
|
[node name="Wall78" parent="Resturant/Walls" unique_id=1207579491 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.8, 0, 5.4000006)
|
||||||
|
|
||||||
|
[node name="Wall79" parent="Resturant/Walls" unique_id=1798073342 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -3.5999994)
|
||||||
|
|
||||||
|
[node name="Wall80" parent="Resturant/Walls" unique_id=36005990 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -4.2)
|
||||||
|
|
||||||
|
[node name="Wall81" parent="Resturant/Walls" unique_id=79516947 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -4.799999)
|
||||||
|
|
||||||
|
[node name="Wall82" parent="Resturant/Walls" unique_id=1363235805 instance=ExtResource("11_slo47")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4.7999997, 0, -5.3999996)
|
||||||
|
|
||||||
|
[node name="Hatches" type="Node3D" parent="Resturant" unique_id=1561045769]
|
||||||
|
|
||||||
|
[node name="ServingCounter" parent="Resturant/Hatches" unique_id=1341321603 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter2" parent="Resturant/Hatches" unique_id=1325232371 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8000001, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter3" parent="Resturant/Hatches" unique_id=539914523 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter4" parent="Resturant/Hatches" unique_id=2078770951 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 0, 0)
|
||||||
|
|
||||||
|
[node name="ServingCounter5" parent="Resturant/Hatches" unique_id=2019049083 instance=ExtResource("12_dpf3b")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0)
|
||||||
|
|
||||||
|
[node name="Table2" parent="Resturant" unique_id=1457688277 instance=ExtResource("13_yjosk")]
|
||||||
|
transform = Transform3D(1, 0, -1.7484555e-07, 0, 1, 0, 1.7484555e-07, 0, 1, 0.5999999, 0.48000002, -3)
|
||||||
|
thinking_duration = null
|
||||||
|
ordering_duration = null
|
||||||
|
primary_duration = null
|
||||||
|
friend_duration = null
|
||||||
|
eating_duration = null
|
||||||
|
|
||||||
|
[node name="Hob" parent="Resturant" unique_id=172418174 instance=ExtResource("14_2ndvi")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, 4.2000003, 0.54, 1.7999992)
|
||||||
|
|
||||||
|
[node name="Hob2" parent="Resturant" unique_id=980569400 instance=ExtResource("14_2ndvi")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, 4.200001, 0.54, 1.1999999)
|
||||||
|
|
||||||
|
[node name="Counter" parent="Resturant" unique_id=1487893288 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.200001, 0.54, 2.3999996)
|
||||||
|
|
||||||
|
[node name="Counter2" parent="Resturant" unique_id=5128912 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.200001, 0.54, 3)
|
||||||
|
|
||||||
|
[node name="Counter3" parent="Resturant" unique_id=1298458612 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 4.2000003, 0.54, 0.5999999)
|
||||||
|
|
||||||
|
[node name="Counter4" parent="Resturant" unique_id=1764980142 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, 1, 0, 1, 0, -1, 0, 1.3113416e-07, 4.7683716e-07, 0.54, 2.3999996)
|
||||||
|
|
||||||
|
[node name="Counter5" parent="Resturant" unique_id=1015820252 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(1.3113416e-07, 0, 1, 0, 1, 0, -1, 0, 1.3113416e-07, 4.7683716e-07, 0.54, 3)
|
||||||
|
|
||||||
|
[node name="PlateDispenser" parent="Resturant" unique_id=710538846 instance=ExtResource("15_qxyk8")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.6)
|
||||||
|
|
||||||
|
[node name="Sink" parent="Resturant" unique_id=2055277359 instance=ExtResource("16_u5c1m")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0.6, 0.48000002, -0.6)
|
||||||
|
|
||||||
|
[node name="Counter6" parent="Resturant" unique_id=2141915043 instance=ExtResource("15_di04w")]
|
||||||
|
transform = Transform3D(-1, 0, 8.742277e-08, 0, 1, 0, -8.742277e-08, 0, -1, 4.7683716e-07, 0.54, -0.6000006)
|
||||||
|
|
||||||
|
[node name="RawBurgerDispenser" parent="Resturant" unique_id=235630131 instance=ExtResource("17_y7baw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.2)
|
||||||
|
|
||||||
|
[node name="BurgerBunsDispenser" parent="Resturant" unique_id=1720683779 instance=ExtResource("18_wvcs1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.8000001)
|
||||||
|
|
||||||
|
[node name="Table3" parent="Resturant" unique_id=1863572470 instance=ExtResource("13_yjosk")]
|
||||||
|
transform = Transform3D(-1, 0, 2.6226832e-07, 0, 1, 0, -2.6226832e-07, 0, -1, 3, 0.48000002, -3)
|
||||||
|
thinking_duration = null
|
||||||
|
ordering_duration = null
|
||||||
|
primary_duration = null
|
||||||
|
friend_duration = null
|
||||||
|
eating_duration = null
|
||||||
|
|
||||||
|
[node name="Hamburger" parent="." unique_id=1675596942 instance=ExtResource("11_c8vo7")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8000001, -0.6)
|
||||||
|
|
||||||
|
[node name="Plate" parent="." unique_id=190487773 instance=ExtResource("12_1f3bw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3800001, -0.6)
|
||||||
|
|
||||||
|
[node name="PickableObject" parent="." unique_id=1084951838 instance=ExtResource("13_1f3bw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1.2, -0.6)
|
||||||
|
|
||||||
|
[node name="Chips" parent="." unique_id=1028364693 instance=ExtResource("22_2ndvi")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1.2, -0.6)
|
||||||
|
|
||||||
|
[node name="Knife" parent="." unique_id=1789694138 instance=ExtResource("23_qxyk8")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, 3)
|
||||||
|
|
||||||
|
[node name="Potato" parent="." unique_id=275760487 instance=ExtResource("24_u5c1m")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9600005, 1.2, 2.2800002)
|
||||||
|
|
||||||
|
[node name="ChoppedPotato" parent="." unique_id=1564262551 instance=ExtResource("25_y7baw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9, 1.2, 1.8000001)
|
||||||
|
|
||||||
|
[node name="Chips2" parent="." unique_id=2054749156 instance=ExtResource("22_2ndvi")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9600003, 1.2, 1.08)
|
||||||
@@ -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 +0,0 @@
|
|||||||
uid://ctsqvhicswj8m
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
[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="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="PackedScene" uid="uid://mpapt5mkbuao" path="res://Prefabs/slide_off_dome.tscn" id="4_nn8tr"]
|
|
||||||
|
|
||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"]
|
|
||||||
radius = 0.3
|
|
||||||
|
|
||||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_24d3s"]
|
|
||||||
radius = 0.29541016
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
|
||||||
albedo_color = Color(0.1764706, 1, 1, 1)
|
|
||||||
|
|
||||||
[sub_resource type="BoxMesh" id="BoxMesh_irf4n"]
|
|
||||||
material = SubResource("StandardMaterial3D_24d3s")
|
|
||||||
size = Vector3(0.1, 0.1, 0.1)
|
|
||||||
|
|
||||||
[node name="CubeSideDispenser2" type="StaticBody3D" unique_id=200950572]
|
|
||||||
script = ExtResource("1_4m60m")
|
|
||||||
item_scene = ExtResource("2_nn8tr")
|
|
||||||
|
|
||||||
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=1018021004]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00070536137, 1.0440714, -0.002165556)
|
|
||||||
collision_layer = 65536
|
|
||||||
collision_mask = 65536
|
|
||||||
script = ExtResource("3_ahn1e")
|
|
||||||
snap_mode = 1
|
|
||||||
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="XRToolsSnapZone" unique_id=182042233]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.15291119, 0)
|
|
||||||
shape = SubResource("SphereShape3D_xmbo2")
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1974757539]
|
|
||||||
shape = SubResource("CylinderShape3D_24d3s")
|
|
||||||
|
|
||||||
[node name="SlideOffDome" parent="." unique_id=1427609426 instance=ExtResource("4_nn8tr")]
|
|
||||||
|
|
||||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=1172420592]
|
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1073546772]
|
|
||||||
radius = 0.3
|
|
||||||
sides = 32
|
|
||||||
|
|
||||||
[node name="Cubes" type="Node3D" parent="." unique_id=100532970]
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Cubes" unique_id=2040729886]
|
|
||||||
transform = Transform3D(0.9709369, 0, 0.23933554, 0, 1, 0, -0.23933554, 0, 0.9709369, -0.0038359165, 1.0421022, -0.1349423)
|
|
||||||
mesh = SubResource("BoxMesh_irf4n")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Cubes" unique_id=2119335322]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.1336323, 1.0421022, 0.049409628)
|
|
||||||
mesh = SubResource("BoxMesh_irf4n")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Cubes" unique_id=896999260]
|
|
||||||
transform = Transform3D(0.94914126, 0, -0.31485054, 0, 1, 0, 0.31485054, 0, 0.94914126, 0.021345377, 1.0421022, 0.13508391)
|
|
||||||
mesh = SubResource("BoxMesh_irf4n")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D4" type="MeshInstance3D" parent="Cubes" unique_id=1055210121]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.14830339, 1.0421022, 0.054090023)
|
|
||||||
mesh = SubResource("BoxMesh_irf4n")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D5" type="MeshInstance3D" parent="Cubes" unique_id=1800524097]
|
|
||||||
transform = Transform3D(0.966823, 0, -0.2554472, 0, 1, 0, 0.2554472, 0, 0.966823, 0.12695658, 1.0421022, -0.07926583)
|
|
||||||
mesh = SubResource("BoxMesh_irf4n")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D6" type="MeshInstance3D" parent="Cubes" unique_id=192094054]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.11111963, 1.0421022, -0.094003916)
|
|
||||||
mesh = SubResource("BoxMesh_irf4n")
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
class_name DayController
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
# DayController Emits singals to spawn customers.
|
||||||
|
|
||||||
|
var day_time_remaining: float = 0.0
|
||||||
|
var customers_spawned: int = 0
|
||||||
|
var customers_served: int = 0
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
GameManager.set_game_state(GameManager.GameState.BUILDING)
|
||||||
|
Signals.game_state_changed.connect(_on_game_state_changed)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_game_state_changed(new_state: GameManager.GameState) -> void:
|
||||||
|
if new_state == GameManager.GameState.RUNNING:
|
||||||
|
start_next_day()
|
||||||
|
|
||||||
|
|
||||||
|
# Returns 0-1 progress of the day time
|
||||||
|
func get_day_progression() -> float:
|
||||||
|
return 1 - (day_time_remaining / GameManager.day_length_seconds)
|
||||||
|
|
||||||
|
|
||||||
|
func _reset_values() -> void:
|
||||||
|
day_time_remaining = GameManager.day_length_seconds
|
||||||
|
customers_spawned = 0
|
||||||
|
customers_served = 0
|
||||||
|
|
||||||
|
|
||||||
|
func start_next_day() -> void:
|
||||||
|
SweetLogger.info("Starting next day")
|
||||||
|
_reset_values()
|
||||||
|
GameManager.set_customers_per_day(GameManager.customers_per_day + GameManager.customers_count_increase_per_day)
|
||||||
|
GameManager.set_day_number(GameManager.day_number + 1)
|
||||||
|
|
||||||
|
|
||||||
|
func finish_current_day() -> void:
|
||||||
|
SweetLogger.info("Finishing current day")
|
||||||
|
_reset_values()
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
if GameManager.game_state != GameManager.GameState.RUNNING:
|
||||||
|
return
|
||||||
|
|
||||||
|
day_time_remaining -= delta
|
||||||
|
var customers_at_this_time = GameManager.customers_per_day * get_day_progression()
|
||||||
|
#print("DayController: customers_at_this_time: ", customers_at_this_time)
|
||||||
|
if customers_spawned < customers_at_this_time:
|
||||||
|
customers_spawned += 1
|
||||||
|
SweetLogger.debug("Spawning customer")
|
||||||
|
Signals.request_customer_spawn.emit()
|
||||||
|
# If day complete
|
||||||
|
if GameManager.customers_per_day == customers_served and customers_spawned == GameManager.customers_per_day:
|
||||||
|
SweetLogger.info("Day complete")
|
||||||
|
finish_current_day()
|
||||||
+8
-116
@@ -1,20 +1,9 @@
|
|||||||
[gd_scene format=3 uid="uid://c1nv4w33fedj6"]
|
[gd_scene format=3 uid="uid://c1nv4w33fedj6"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b4ldkd3ngs0vp" path="res://main.gd" id="1_72gy5"]
|
[ext_resource type="Script" uid="uid://d1cefhe3yyyds" path="res://Net/multiplayer_world.gd" id="1_jfr2g"]
|
||||||
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://XROrigin.tscn" id="2_8wkh3"]
|
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/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="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="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" 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"]
|
[ext_resource type="PackedScene" path="res://UI/main_menu_panel.tscn" id="17_panel"]
|
||||||
|
|
||||||
@@ -35,7 +24,8 @@ ssil_enabled = true
|
|||||||
sdfgi_enabled = true
|
sdfgi_enabled = true
|
||||||
|
|
||||||
[node name="Main" type="Node3D" unique_id=1312265607]
|
[node name="Main" type="Node3D" unique_id=1312265607]
|
||||||
script = ExtResource("1_72gy5")
|
script = ExtResource("1_jfr2g")
|
||||||
|
populate_from_layout = false
|
||||||
|
|
||||||
[node name="XROrigin3D" parent="." unique_id=2055526621 instance=ExtResource("2_8wkh3")]
|
[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)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36171648, 0, 0.81835127)
|
||||||
@@ -60,107 +50,9 @@ shape = SubResource("BoxShape3D_vlqg6")
|
|||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor/CollisionShape3D" unique_id=1939997056]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor/CollisionShape3D" unique_id=1939997056]
|
||||||
mesh = SubResource("BoxMesh_24d3s")
|
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]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
|
||||||
environment = SubResource("Environment_bvwq1")
|
environment = SubResource("Environment_bvwq1")
|
||||||
|
|
||||||
[node name="BurgerBuns" parent="." unique_id=1088240294 instance=ExtResource("6_bktvt")]
|
[node name="WorldContent" type="Node3D" parent="." unique_id=1660879286]
|
||||||
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")]
|
[node name="Players" type="Node3D" parent="." unique_id=494935131]
|
||||||
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)
|
|
||||||
|
|||||||
+30
-4
@@ -1,9 +1,15 @@
|
|||||||
[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://d1cefhe3yyyds" path="res://Net/multiplayer_world.gd" id="1_kdan8"]
|
||||||
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://XROrigin.tscn" id="2_g30gi"]
|
[ext_resource type="PackedScene" uid="uid://j5s5wus7tuhb" path="res://prefabs/XROrigin.tscn" id="2_g30gi"]
|
||||||
[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="3_75ecy"]
|
||||||
[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="5_c3xgf"]
|
||||||
|
[ext_resource type="Script" uid="uid://fyd2rjramhbb" path="res://prefabs/kitchen_instantiator.gd" id="6_pw2j5"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://damrxtlt7uswf" path="res://content/station_layouts/small_line.tscn" id="7_0sjqq"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dm70ynyuw1a5u" path="res://prefabs/day_controller.tscn" id="9_5wx0o"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bnwb7imcotkod" path="res://prefabs/build_mode_controller.tscn" id="10_464r1"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://3i1xb74cfsh5" path="res://test/vr_spectator_camera.tscn" id="11_5wx0o"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dxe05wp60jg3l" path="res://scenes/queue_controller.tscn" id="11_de1dy"]
|
||||||
[ext_resource type="Script" uid="uid://biu4qr3nr1eny" path="res://test/mp_test_driver.gd" id="99_mptst"]
|
[ext_resource type="Script" uid="uid://biu4qr3nr1eny" path="res://test/mp_test_driver.gd" id="99_mptst"]
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
|
||||||
@@ -25,8 +31,13 @@ sdfgi_enabled = true
|
|||||||
[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]
|
[sub_resource type="Resource" id="Resource_464r1"]
|
||||||
|
metadata/__load_path__ = "res://stations/Hob_old.tscn"
|
||||||
|
|
||||||
|
[node name="Main" type="Node3D" unique_id=1312265607 node_paths=PackedStringArray("items_spawner", "players_spawner")]
|
||||||
script = ExtResource("1_kdan8")
|
script = ExtResource("1_kdan8")
|
||||||
|
items_spawner = NodePath("ItemsSpawner")
|
||||||
|
players_spawner = NodePath("PlayersSpawner")
|
||||||
|
|
||||||
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("2_g30gi")]
|
[node name="XROrigin3D" parent="." unique_id=2055526621 groups=["local_xr_origin"] instance=ExtResource("2_g30gi")]
|
||||||
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)
|
||||||
@@ -55,7 +66,7 @@ environment = SubResource("Environment_bvwq1")
|
|||||||
spawn_path = NodePath("../WorldContent")
|
spawn_path = NodePath("../WorldContent")
|
||||||
|
|
||||||
[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("uid://c58ns7csdahjy")
|
||||||
spawn_path = NodePath("../Players")
|
spawn_path = NodePath("../Players")
|
||||||
|
|
||||||
[node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=4404969]
|
[node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=4404969]
|
||||||
@@ -78,3 +89,18 @@ shape = SubResource("BoxShape3D_arao0")
|
|||||||
|
|
||||||
[node name="TestDriver" type="Node" parent="." unique_id=580575192]
|
[node name="TestDriver" type="Node" parent="." unique_id=580575192]
|
||||||
script = ExtResource("99_mptst")
|
script = ExtResource("99_mptst")
|
||||||
|
|
||||||
|
[node name="KitchenInstantiator" type="Node3D" parent="." unique_id=1328198547]
|
||||||
|
transform = Transform3D(1, 0, -1.7484555e-07, 0, 1, 0, 1.7484555e-07, 0, 1, 0, 0, -1.2)
|
||||||
|
script = ExtResource("6_pw2j5")
|
||||||
|
kitchen_scene = ExtResource("7_0sjqq")
|
||||||
|
hob_scene = SubResource("Resource_464r1")
|
||||||
|
|
||||||
|
[node name="DayController" parent="." unique_id=1418639156 instance=ExtResource("9_5wx0o")]
|
||||||
|
|
||||||
|
[node name="BuildModeController" parent="." unique_id=552013109 instance=ExtResource("10_464r1")]
|
||||||
|
|
||||||
|
[node name="QueueController" parent="." unique_id=326512876 instance=ExtResource("11_de1dy")]
|
||||||
|
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 7.2000003)
|
||||||
|
|
||||||
|
[node name="VRSpectatorCamera" parent="." unique_id=310823561 instance=ExtResource("11_5wx0o")]
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,63 @@
|
|||||||
|
class_name QueueController
|
||||||
|
extends Node3D
|
||||||
|
|
||||||
|
@export var queue_patience: float = 120
|
||||||
|
|
||||||
|
@export var progress_bar_3d: ProgressBar3D
|
||||||
|
@export var label_3d: Label3D
|
||||||
|
|
||||||
|
|
||||||
|
var _customers: Array[float] = [] # Temp. Array of their patience
|
||||||
|
var _tables: Array[Node3D] = []
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
progress_bar_3d.override_fill_color(Color.YELLOW)
|
||||||
|
progress_bar_3d.exponential = true
|
||||||
|
Signals.request_customer_spawn.connect(_on_request_customer_spawn)
|
||||||
|
Signals.game_state_changed.connect(_on_game_state_changed)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_game_state_changed(new_state: GameManager.GameState) -> void:
|
||||||
|
if new_state == GameManager.GameState.RUNNING:
|
||||||
|
_rebuild_table_list()
|
||||||
|
|
||||||
|
func _on_request_customer_spawn() -> void:
|
||||||
|
spawn_customer()
|
||||||
|
|
||||||
|
|
||||||
|
func spawn_customer() -> void:
|
||||||
|
_customers.append(queue_patience)
|
||||||
|
|
||||||
|
|
||||||
|
func _rebuild_table_list() -> void:
|
||||||
|
_tables.clear()
|
||||||
|
_tables.append_array(get_tree().get_nodes_in_group("table"))
|
||||||
|
SweetLogger.debug("Rebuild table list complete: {0}", [_tables])
|
||||||
|
|
||||||
|
|
||||||
|
func _try_to_assign_customers() -> void:
|
||||||
|
for customer in _customers:
|
||||||
|
for table: Table in _tables:
|
||||||
|
var result: bool = table.try_consume_customer()
|
||||||
|
if result == true:
|
||||||
|
_customers.pop_front()
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
# Process customers patience
|
||||||
|
for i in range(0, _customers.size()):
|
||||||
|
_customers[i] -= delta
|
||||||
|
if _customers[i] <= 0:
|
||||||
|
GameManager.game_over()
|
||||||
|
|
||||||
|
_try_to_assign_customers()
|
||||||
|
|
||||||
|
# Update visuals
|
||||||
|
if not _customers.is_empty():
|
||||||
|
label_3d.text = "Customers in queue: " + str(_customers.size())
|
||||||
|
progress_bar_3d.set_progress(_customers.front() / queue_patience)
|
||||||
|
else:
|
||||||
|
progress_bar_3d.set_progress(0)
|
||||||
|
label_3d.text = "No Customers"
|
||||||
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
[gd_scene format=3 uid="uid://dxe05wp60jg3l"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://dww2icfivdsai" path="res://scenes/queue_controller.gd" id="1_ieivv"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://UI/progress_bar.tscn" id="2_fn3y7"]
|
||||||
|
|
||||||
|
[node name="QueueController" type="Node3D" unique_id=326512876 node_paths=PackedStringArray("progress_bar_3d", "label_3d")]
|
||||||
|
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
|
||||||
|
script = ExtResource("1_ieivv")
|
||||||
|
progress_bar_3d = NodePath("ProgressBar3D")
|
||||||
|
label_3d = NodePath("Label3D")
|
||||||
|
|
||||||
|
[node name="ProgressBar3D" parent="." unique_id=654673176 instance=ExtResource("2_fn3y7")]
|
||||||
|
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 2.4, 0)
|
||||||
|
exponential = true
|
||||||
|
|
||||||
|
[node name="Label3D" type="Label3D" parent="." unique_id=994715754]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.147749, 0)
|
||||||
|
text = "X customers in queue"
|
||||||
+68
-17
@@ -1,13 +1,21 @@
|
|||||||
[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://d1cefhe3yyyds" path="res://Net/multiplayer_world.gd" id="1_atgwk"]
|
||||||
[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/XROrigin.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_old.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://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://bnwb7imcotkod" path="res://prefabs/build_mode_controller.tscn" id="9_hooyg"]
|
||||||
[ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://Items/PickupCube.tscn" id="8_xl5nn"]
|
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="11_gaw43"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cwnwo4i28upap" path="res://stations/raw_burger_dispenser.tscn" id="12_hooyg"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="12_n58f2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c6rift56ql3f8" path="res://stations/BurgerBunsDispenser.tscn" id="13_cqmpj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://UI/game_over_panel.tscn" id="13_hooyg"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://ck5tuftqmyiue" path="res://stations/plate_dispenser.tscn" id="14_bjwcu"]
|
||||||
|
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://prefabs/GameOvercontroler.gd" id="14_cqmpj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dxe05wp60jg3l" path="res://scenes/queue_controller.tscn" id="15_cqmpj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dm70ynyuw1a5u" path="res://prefabs/day_controller.tscn" id="17_bjwcu"]
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_bvwq1"]
|
[sub_resource type="Environment" id="Environment_bvwq1"]
|
||||||
background_mode = 2
|
background_mode = 2
|
||||||
@@ -32,17 +40,49 @@ size = Vector3(20, 0.1, 20)
|
|||||||
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_1ymas")
|
script = ExtResource("1_atgwk")
|
||||||
|
|
||||||
[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 instance=ExtResource("3_bryd6")]
|
[node name="XROrigin3D" parent="." unique_id=2055526621 instance=ExtResource("3_bryd6")]
|
||||||
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, 2.4)
|
||||||
|
|
||||||
[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)
|
||||||
|
|
||||||
|
[node name="WorldContent" type="Node3D" parent="." unique_id=1945394545]
|
||||||
|
|
||||||
|
[node name="Players" type="Node3D" parent="." unique_id=177940558]
|
||||||
|
|
||||||
|
[node name="Stations" type="Node3D" parent="." unique_id=1243299496]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.8000001, 0, 1.8000001)
|
||||||
|
|
||||||
|
[node name="ItemsSpawner" type="MultiplayerSpawner" parent="." unique_id=201060343]
|
||||||
|
spawn_path = NodePath("../WorldContent")
|
||||||
|
|
||||||
|
[node name="PlayersSpawner" type="MultiplayerSpawner" parent="." unique_id=1840881658]
|
||||||
|
_spawnable_scenes = PackedStringArray("uid://c58ns7csdahjy")
|
||||||
|
spawn_path = NodePath("../Players")
|
||||||
|
|
||||||
|
[node name="GameOverPanel" parent="." unique_id=522901881 instance=ExtResource("12_n58f2")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.7718225, 2.8122003, 1.8000003)
|
||||||
|
scene = ExtResource("13_hooyg")
|
||||||
|
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=1442195864]
|
||||||
|
script = ExtResource("14_cqmpj")
|
||||||
|
|
||||||
|
[node name="BuildModeController" parent="." unique_id=552013109 instance=ExtResource("9_hooyg")]
|
||||||
|
|
||||||
|
[node name="QueueController" parent="." unique_id=326512876 instance=ExtResource("15_cqmpj")]
|
||||||
|
transform = Transform3D(-1, 0, -1.509958e-07, 0, 1, 0, 1.509958e-07, 0, -1, -1.2, 0, 4.8)
|
||||||
|
|
||||||
|
[node name="DayController" parent="." unique_id=1418639156 instance=ExtResource("17_bjwcu")]
|
||||||
|
|
||||||
[node name="Floor" type="StaticBody3D" parent="." unique_id=122279514]
|
[node name="Floor" type="StaticBody3D" parent="." unique_id=122279514]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
|
||||||
|
|
||||||
@@ -72,13 +112,24 @@ transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 9.93
|
|||||||
shape = SubResource("BoxShape3D_24d3s")
|
shape = SubResource("BoxShape3D_24d3s")
|
||||||
|
|
||||||
[node name="Hob" parent="." unique_id=1687971542 instance=ExtResource("5_gfdi7")]
|
[node name="Hob" parent="." unique_id=1687971542 instance=ExtResource("5_gfdi7")]
|
||||||
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("6_fmmg3")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.24685252, 0.51461196, -1.2828919)
|
|
||||||
|
|
||||||
[node name="Counter" parent="." unique_id=1487893288 instance=ExtResource("7_jnxsa")]
|
[node name="Counter" parent="." unique_id=1487893288 instance=ExtResource("7_jnxsa")]
|
||||||
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.6, 0, 0)
|
||||||
|
|
||||||
[node name="PickableObject" parent="." unique_id=1675596942 instance=ExtResource("8_xl5nn")]
|
[node name="Table" parent="." unique_id=1863572470 instance=ExtResource("11_gaw43")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.87560004, 1.5534955, -1.2869046)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8, 0, 1.8)
|
||||||
|
|
||||||
|
[node name="Table2" parent="." unique_id=987495548 instance=ExtResource("11_gaw43")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8, 0, 2.4)
|
||||||
|
|
||||||
|
[node name="Table3" parent="." unique_id=113648557 instance=ExtResource("11_gaw43")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8, 0, 3)
|
||||||
|
|
||||||
|
[node name="RawBurgerDispenser" parent="." unique_id=383615587 instance=ExtResource("12_hooyg")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, 0)
|
||||||
|
|
||||||
|
[node name="BurgerBunsDispenser" parent="." unique_id=1410160280 instance=ExtResource("13_cqmpj")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="PlateDispenser" parent="." unique_id=53391541 instance=ExtResource("14_bjwcu")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000001, 0, 0.6)
|
||||||
|
|||||||
@@ -0,0 +1,127 @@
|
|||||||
|
[gd_scene format=3 uid="uid://dbgu4r127ke5v"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://d1cefhe3yyyds" path="res://scenes/multiplayer_world.gd" id="1_atgwk"]
|
||||||
|
[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://prefabs/XROrigin.tscn" id="3_bryd6"]
|
||||||
|
[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://efaec6ymgabo" path="res://stations/Counter.tscn" id="7_jnxsa"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://drwuhqb3pjtiy" path="res://items/potato.tscn" id="8_1qeqw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dlw5geheupgpt" path="res://stations/hatch.tscn" id="8_atgwk"]
|
||||||
|
[ext_resource type="Script" uid="uid://bsdpd18i1i17s" path="res://prefabs/build_mode_controller.gd" id="9_atgwk"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dvrk268s7gkxh" path="res://stations/sink.tscn" id="10_dhas4"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://caf0xanmxbshy" path="res://stations/table.tscn" id="11_gaw43"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="12_n58f2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://xtcei2uvd5li" path="res://UI/game_over_panel.tscn" id="13_hooyg"]
|
||||||
|
[ext_resource type="Script" uid="uid://cwijoksyou1ey" path="res://scenes/GameOvercontroler.gd" id="14_cqmpj"]
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_bvwq1"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = ExtResource("2_1jq86")
|
||||||
|
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("4_kpgm6")
|
||||||
|
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]
|
||||||
|
script = ExtResource("1_atgwk")
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1177077250]
|
||||||
|
environment = SubResource("Environment_bvwq1")
|
||||||
|
|
||||||
|
[node name="XROrigin3D" parent="." unique_id=2055526621 instance=ExtResource("3_bryd6")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9667189, 2.4)
|
||||||
|
|
||||||
|
[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="WorldContent" type="Node3D" parent="." unique_id=1945394545]
|
||||||
|
|
||||||
|
[node name="Players" type="Node3D" parent="." unique_id=177940558]
|
||||||
|
|
||||||
|
[node name="Stations" type="Node3D" parent="." unique_id=1243299496]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.8000001, 0, 1.8000001)
|
||||||
|
|
||||||
|
[node name="ItemsSpawner" type="MultiplayerSpawner" parent="." unique_id=201060343]
|
||||||
|
spawn_path = NodePath("../WorldContent")
|
||||||
|
|
||||||
|
[node name="PlayersSpawner" type="MultiplayerSpawner" parent="." unique_id=1840881658]
|
||||||
|
_spawnable_scenes = PackedStringArray("res://Player/net_player.tscn")
|
||||||
|
spawn_path = NodePath("../Players")
|
||||||
|
|
||||||
|
[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="Hob" parent="." unique_id=1687971542 instance=ExtResource("5_gfdi7")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.507, 0)
|
||||||
|
|
||||||
|
[node name="Counter" parent="." unique_id=1487893288 instance=ExtResource("7_jnxsa")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, 0.512, 0)
|
||||||
|
|
||||||
|
[node name="Potato" parent="." unique_id=962444046 instance=ExtResource("8_1qeqw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.273382, 1.5940565, -0.036002517)
|
||||||
|
|
||||||
|
[node name="Hatch" parent="." unique_id=1341321603 instance=ExtResource("8_atgwk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, 0, 0)
|
||||||
|
|
||||||
|
[node name="Hatch2" parent="." unique_id=1755144529 instance=ExtResource("8_atgwk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, 0)
|
||||||
|
|
||||||
|
[node name="BuildModeController" type="Node" parent="." unique_id=1876729190]
|
||||||
|
script = ExtResource("9_atgwk")
|
||||||
|
|
||||||
|
[node name="Sink" parent="." unique_id=1559059799 instance=ExtResource("10_dhas4")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0.5, 0)
|
||||||
|
|
||||||
|
[node name="Table" parent="." unique_id=1863572470 instance=ExtResource("11_gaw43")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0.5, 1.8)
|
||||||
|
|
||||||
|
[node name="GameOverPanel" parent="." unique_id=522901881 instance=ExtResource("12_n58f2")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.428178, 2.8122003, 3)
|
||||||
|
scene = ExtResource("13_hooyg")
|
||||||
|
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=1442195864]
|
||||||
|
script = ExtResource("14_cqmpj")
|
||||||
@@ -0,0 +1,207 @@
|
|||||||
|
extends TileMapLayer
|
||||||
|
|
||||||
|
@export var tile_map: TileMapLayer
|
||||||
|
|
||||||
|
@export_enum("Small", "medeam", "large") var map_size: int
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready() -> void:
|
||||||
|
|
||||||
|
tile_map.clear()
|
||||||
|
|
||||||
|
var mane_size = Vector2i(randi_range(16,20), randi_range(12,16))
|
||||||
|
if map_size == 1:
|
||||||
|
mane_size = Vector2i(randi_range(20,26), randi_range(12,18))
|
||||||
|
if map_size == 2:
|
||||||
|
mane_size = Vector2i(randi_range(26,32), randi_range(18,24))
|
||||||
|
|
||||||
|
#mane_size = Vector2i(10, 10)
|
||||||
|
|
||||||
|
var walls = draw_room(mane_size)
|
||||||
|
var next_room = Vector2i(randi_range(mane_size[0]/2,(mane_size[0]/3)*2), randi_range(mane_size[1]/2,(mane_size[1]/3)*2))
|
||||||
|
|
||||||
|
var good = []
|
||||||
|
for x in range(mane_size[0]):
|
||||||
|
for y in range(mane_size[1]):
|
||||||
|
if test_pos(Vector2i(x, y), next_room, walls, mane_size):
|
||||||
|
#tile_map.set_cell(Vector2i(x,y), 0, Vector2i(1,4))
|
||||||
|
good.append([x,y])
|
||||||
|
|
||||||
|
if good.size()>0:
|
||||||
|
for wall in draw_room(next_room, good.pick_random()):
|
||||||
|
walls.append(wall)
|
||||||
|
|
||||||
|
|
||||||
|
for i in range(8):
|
||||||
|
|
||||||
|
next_room = Vector2i(randi_range(4,mane_size[0]/(1+i)), randi_range(4, mane_size[1]/(1+i)))
|
||||||
|
good = []
|
||||||
|
if next_room[0]>4 and next_room[1]>4:
|
||||||
|
for x in range(mane_size[0]):
|
||||||
|
for y in range(mane_size[1]):
|
||||||
|
if test_pos(Vector2i(x, y), next_room, walls, mane_size):
|
||||||
|
#tile_map.set_cell(Vector2i(x,y), 0, Vector2i(5,3))
|
||||||
|
good.append([x,y])
|
||||||
|
|
||||||
|
if good.size()>0:
|
||||||
|
for wall in draw_room(next_room, good.pick_random()):
|
||||||
|
walls.append(wall)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func overLap(pos1, len1, pos2, len2):
|
||||||
|
#print("pos1: ", pos1, " len1: ", len1, " pos2: ", pos2, " len2: ", len2)
|
||||||
|
if pos1 <= pos2 and pos1+len1 >= pos2: return true
|
||||||
|
if pos2 <= pos1 and pos2+len2 >= pos1: return true
|
||||||
|
return false
|
||||||
|
|
||||||
|
|
||||||
|
func overLapWall(wall, pos, size):
|
||||||
|
var totle = 0
|
||||||
|
var wall_tiles = []
|
||||||
|
for i in range(wall["len"]):
|
||||||
|
if wall["der"][1] == 0:wall_tiles.append(wall["pos"]+Vector2i(i,0))
|
||||||
|
else:wall_tiles.append(wall["pos"]+Vector2i(0,i))
|
||||||
|
|
||||||
|
for x in range(size[0]+1):
|
||||||
|
for y in range(size[1]+1):
|
||||||
|
if Vector2i(x+pos[0], y+pos[1]) in wall_tiles: totle+=1
|
||||||
|
|
||||||
|
return totle
|
||||||
|
|
||||||
|
func test_pos(pos, size, walls, mane_size):
|
||||||
|
|
||||||
|
if pos[0]+size[0] > mane_size[0]:return false
|
||||||
|
if pos[1]+size[1] > mane_size[1]:return false
|
||||||
|
|
||||||
|
var overlap = 0
|
||||||
|
for wall in walls:
|
||||||
|
overlap += overLapWall(wall, pos, size)
|
||||||
|
if wall["der"][1] == 0:#horisontal wall
|
||||||
|
if overLap(wall["pos"][0], wall["len"], pos[0], size[0]):
|
||||||
|
if wall["pos"][1]+1 == pos[1]: return false
|
||||||
|
if wall["pos"][1]+2 == pos[1]: return false
|
||||||
|
if wall["pos"][1]-1 == pos[1]: return false
|
||||||
|
if wall["pos"][1]-2 == pos[1]: return false
|
||||||
|
|
||||||
|
if wall["pos"][1]+1 == pos[1]+size[1]: return false
|
||||||
|
if wall["pos"][1]+2 == pos[1]+size[1]: return false
|
||||||
|
if wall["pos"][1]-1 == pos[1]+size[1]: return false
|
||||||
|
if wall["pos"][1]-2 == pos[1]+size[1]: return false
|
||||||
|
|
||||||
|
|
||||||
|
else:#virtical wall
|
||||||
|
if overLap(wall["pos"][1], wall["len"], pos[1], size[1]):
|
||||||
|
if wall["pos"][0]+1 == pos[0]: return false
|
||||||
|
if wall["pos"][0]+2 == pos[0]: return false
|
||||||
|
if wall["pos"][0]-1 == pos[0]: return false
|
||||||
|
if wall["pos"][0]-2 == pos[0]: return false
|
||||||
|
|
||||||
|
if wall["pos"][0]+1 == pos[0]+size[0]: return false
|
||||||
|
if wall["pos"][0]+2 == pos[0]+size[0]: return false
|
||||||
|
if wall["pos"][0]-1 == pos[0]+size[0]: return false
|
||||||
|
if wall["pos"][0]-2 == pos[0]+size[0]: return false
|
||||||
|
|
||||||
|
#if pos[1]+size[1] > wall["len"]:return false
|
||||||
|
|
||||||
|
if overlap < 3: return false
|
||||||
|
|
||||||
|
|
||||||
|
return true
|
||||||
|
|
||||||
|
|
||||||
|
func get_next(size, walls):
|
||||||
|
var offset = [-1,-1]
|
||||||
|
|
||||||
|
walls.shuffle()
|
||||||
|
SweetLogger.debug("Size: {0}", [size])
|
||||||
|
|
||||||
|
for wall in walls:
|
||||||
|
SweetLogger.debug("Wall: {0}", [wall])
|
||||||
|
if wall["der"][1] == 0:
|
||||||
|
SweetLogger.debug("Horizontal wall")
|
||||||
|
if size[0]<wall["len"]-6:
|
||||||
|
SweetLogger.debug("Length 6 less can go anywhere")
|
||||||
|
if wall["der"][0] == 1:offset[1] = wall["pos"][1]
|
||||||
|
else: offset[1] = wall["pos"][1]-size[1]
|
||||||
|
|
||||||
|
offset[0] = randi_range(0, wall["len"]-size[0])
|
||||||
|
if offset[0]>wall["pos"][0] and offset[0]<wall["pos"][0]+3:offset[0]=wall["pos"][0]+3
|
||||||
|
if size[0]+offset[0]>wall["pos"][0]+wall["len"]-3:offset[0] = wall["len"]-(3+size[0])
|
||||||
|
|
||||||
|
elif size[0]<=wall["len"]-3:
|
||||||
|
SweetLogger.debug("3 less needs to be on a corner")
|
||||||
|
if wall["der"][0] == 1:offset[1] = wall["pos"][1]
|
||||||
|
else: offset[1] = wall["pos"][1]-size[1]
|
||||||
|
|
||||||
|
if randi_range(0, 1):offset[0]=wall["pos"][0]+wall["len"]-size[0]
|
||||||
|
else:offset[0] = wall["pos"][0]
|
||||||
|
else:
|
||||||
|
SweetLogger.debug("Vertical wall")
|
||||||
|
if size[1]<wall["len"]-6:
|
||||||
|
SweetLogger.debug("Length 6 less can go anywhere")
|
||||||
|
if wall["der"][1] == 1:offset[0] = wall["pos"][0]
|
||||||
|
else: offset[0] = wall["pos"][0]-size[0]
|
||||||
|
|
||||||
|
offset[1] = randi_range(0, wall["len"]-size[1])
|
||||||
|
if offset[1]>wall["pos"][1] and offset[1]<wall["pos"][1]+3:offset[1]=wall["pos"][1]+3
|
||||||
|
if size[1]+offset[1]>wall["len"]-3:offset[1] = wall["len"]-(3+size[1])
|
||||||
|
|
||||||
|
elif size[1]<=wall["len"]-3:
|
||||||
|
SweetLogger.debug("3 less needs to be on a corner")
|
||||||
|
if wall["der"][1] == 1:offset[0] = wall["pos"][0]
|
||||||
|
else: offset[0] = wall["pos"][0]-size[0]
|
||||||
|
SweetLogger.debug("Offset: {0}", [offset])
|
||||||
|
|
||||||
|
if randi() % 2:offset[1]=wall["pos"][1]+wall["len"]-size[1]
|
||||||
|
else:offset[1] = wall["pos"][1]
|
||||||
|
|
||||||
|
|
||||||
|
if offset[0] != -1:break
|
||||||
|
|
||||||
|
return offset
|
||||||
|
|
||||||
|
|
||||||
|
func draw_room(Size, offset=Vector2i(0, 0)):
|
||||||
|
var walls = []
|
||||||
|
offset = Vector2i(offset[0], offset[1])
|
||||||
|
SweetLogger.debug("Size: {0} offset: {1}", [Size, offset])
|
||||||
|
|
||||||
|
for i in range(Size[0]):
|
||||||
|
tile_map.set_cell(Vector2i(i+offset[0],offset[1]), 0, Vector2i(1,1))
|
||||||
|
walls.append({"pos": offset, "der":Vector2i(1, 0), "len":Size[0]})
|
||||||
|
|
||||||
|
for i in range(Size[0]):
|
||||||
|
tile_map.set_cell(Vector2i(i+offset[0],Size[1]+offset[1]), 0, Vector2i(1,1))
|
||||||
|
walls.append({"pos": Vector2i(offset[0],Size[1]+offset[1]), "der":Vector2i(-1, 0), "len":Size[0]})
|
||||||
|
|
||||||
|
for i in range(Size[1]):
|
||||||
|
tile_map.set_cell(Vector2i(offset[0],i+offset[1]), 0, Vector2i(2,1))
|
||||||
|
walls.append({"pos": offset, "der":Vector2i(0, 1), "len":Size[1]})
|
||||||
|
|
||||||
|
for i in range(Size[1]):
|
||||||
|
tile_map.set_cell(Vector2i(Size[0]+offset[0],i+offset[1]), 0, Vector2i(2,1))
|
||||||
|
walls.append({"pos": Vector2i(Size[0]+offset[0],offset[1]), "der":Vector2i(0, -1), "len":Size[1]})
|
||||||
|
|
||||||
|
for x in range(Size[0]-1):
|
||||||
|
for y in range(Size[1]-1):
|
||||||
|
tile_map.erase_cell(Vector2i(x+1+offset[0],y+1+offset[1]))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
tile_map.set_cell(Vector2i(offset[0],offset[1]), 0, Vector2i(5,1))
|
||||||
|
tile_map.set_cell(Vector2i(Size[0]+offset[0],offset[1]), 0, Vector2i(6,1))
|
||||||
|
tile_map.set_cell(Vector2i(offset[0],Size[1]+offset[1]), 0, Vector2i(4,1))
|
||||||
|
tile_map.set_cell(Vector2i(Size[0]+offset[0],Size[1]+offset[1]), 0, Vector2i(3,1))
|
||||||
|
return walls
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func set_room(tile_pos, size, pos):
|
||||||
|
for x in size[0]:
|
||||||
|
for y in size[1]:
|
||||||
|
tile_map.set_cell(Vector2i(x+pos[0],y+pos[1]), 0, tile_pos)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
extends Node
|
|
||||||
|
|
||||||
signal game_over
|
|
||||||
signal restart_game
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://mmasxwqyqmib"
|
uid="uid://b7pl7bdo4rsfp"
|
||||||
path="res://.godot/imported/220175__gameaudio__pop-click.wav-6ef2d3317a82c347b715936ede79653a.sample"
|
path="res://.godot/imported/220175__gameaudio__pop-click.wav-6ef2d3317a82c347b715936ede79653a.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://ecva70pect61"
|
uid="uid://i53cyyyflr4r"
|
||||||
path="res://.godot/imported/220178__gameaudio__click.wav-566ebf31c82573e187ff8a1db97a7861.sample"
|
path="res://.godot/imported/220178__gameaudio__click.wav-566ebf31c82573e187ff8a1db97a7861.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://b3wxawyrvuc6s"
|
uid="uid://davhgl28oomi1"
|
||||||
path="res://.godot/imported/220179__gameaudio__click-metal-ting.wav-82be282871110eef8fea8249619832d7.sample"
|
path="res://.godot/imported/220179__gameaudio__click-metal-ting.wav-82be282871110eef8fea8249619832d7.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://b7sr2sb1ks5en"
|
uid="uid://cm384ry7fn132"
|
||||||
path="res://.godot/imported/220180__gameaudio__click-pop.wav-32216325683d314fa3adc66d13e633f4.sample"
|
path="res://.godot/imported/220180__gameaudio__click-pop.wav-32216325683d314fa3adc66d13e633f4.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://1ccsqbju32ey"
|
uid="uid://cg6njyg3mhp5s"
|
||||||
path="res://.godot/imported/220187__gameaudio__loosedeny-casual-1.wav-2e7c1356ffec0a1e5b732b21f42e21a0.sample"
|
path="res://.godot/imported/220187__gameaudio__loosedeny-casual-1.wav-2e7c1356ffec0a1e5b732b21f42e21a0.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://bdnsgt7xt3261"
|
uid="uid://cofj78s5xfxft"
|
||||||
path="res://.godot/imported/220194__gameaudio__click-heavy.wav-43269bff3c60e2451b470f929c6b6bb8.sample"
|
path="res://.godot/imported/220194__gameaudio__click-heavy.wav-43269bff3c60e2451b470f929c6b6bb8.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://daiv8ubwdbidf"
|
uid="uid://dllgyc8jh83an"
|
||||||
path="res://.godot/imported/220195__gameaudio__click-wooden-1.wav-f161e2c5a53d686c65d143b45f33acb1.sample"
|
path="res://.godot/imported/220195__gameaudio__click-wooden-1.wav-f161e2c5a53d686c65d143b45f33acb1.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://qed775b4j1gg"
|
uid="uid://bk114r1jcdhjg"
|
||||||
path="res://.godot/imported/220196__gameaudio__click-wooden-2.wav-372f3d1af9c561baf2360e14b5b7050b.sample"
|
path="res://.godot/imported/220196__gameaudio__click-wooden-2.wav-372f3d1af9c561baf2360e14b5b7050b.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://bqtk1adk8umbx"
|
uid="uid://dmyuqe5058sv3"
|
||||||
path="res://.godot/imported/220197__gameaudio__click-basic.wav-61aa24994882b9ab5848ecead3d7aba9.sample"
|
path="res://.godot/imported/220197__gameaudio__click-basic.wav-61aa24994882b9ab5848ecead3d7aba9.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://ysgfx76jkx2q"
|
uid="uid://etrjsxvei0a0"
|
||||||
path="res://.godot/imported/220198__gameaudio__click-with-two-parts.wav-23adbbdcc4d995994bf9700f6b6e244d.sample"
|
path="res://.godot/imported/220198__gameaudio__click-with-two-parts.wav-23adbbdcc4d995994bf9700f6b6e244d.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://dtyh22ccebiv5"
|
uid="uid://c8nvulcvmivin"
|
||||||
path="res://.godot/imported/220199__gameaudio__click-higher.wav-0ea6f7a1d32e528aace111f0ce8b9631.sample"
|
path="res://.godot/imported/220199__gameaudio__click-higher.wav-0ea6f7a1d32e528aace111f0ce8b9631.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://cywjbbeintjew"
|
uid="uid://daj38lvbypncb"
|
||||||
path="res://.godot/imported/220208__gameaudio__click-pop-two-part.wav-9e40de3d9bebd124d0fe54a4f4cc4db9.sample"
|
path="res://.godot/imported/220208__gameaudio__click-pop-two-part.wav-9e40de3d9bebd124d0fe54a4f4cc4db9.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="wav"
|
importer="wav"
|
||||||
type="AudioStreamWAV"
|
type="AudioStreamWAV"
|
||||||
uid="uid://claw3d2wnyr6a"
|
uid="uid://xfcfxi6cat38"
|
||||||
path="res://.godot/imported/220212__gameaudio__ping-bing.wav-04a5460471fa8fe82fe5d9bc5d946bb0.sample"
|
path="res://.godot/imported/220212__gameaudio__ping-bing.wav-04a5460471fa8fe82fe5d9bc5d946bb0.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="mp3"
|
importer="mp3"
|
||||||
type="AudioStreamMP3"
|
type="AudioStreamMP3"
|
||||||
uid="uid://clkjwcawdqvta"
|
uid="uid://ck72h06t8hyyk"
|
||||||
path="res://.godot/imported/money.mp3-e3eae11b0c1923c268268b900bde9157.mp3str"
|
path="res://.godot/imported/money.mp3-e3eae11b0c1923c268268b900bde9157.mp3str"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/money.mp3-e3eae11b0c1923c268268b900bde9157.mp
|
|||||||
[params]
|
[params]
|
||||||
|
|
||||||
loop=false
|
loop=false
|
||||||
loop_offset=0.0
|
loop_offset=0
|
||||||
bpm=0.0
|
bpm=0
|
||||||
beat_count=0
|
beat_count=0
|
||||||
bar_beats=4
|
bar_beats=4
|
||||||
|
|||||||
@@ -1,65 +1,72 @@
|
|||||||
[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="PackedScene" uid="uid://cbs8jiqe8rcmn" path="res://abstract/station.tscn" id="1_station"]
|
||||||
[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/BurgerBuns.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"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dmyuqe5058sv3" path="res://sounds/220197__gameaudio__click-basic.wav" id="4_u2p81"]
|
||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"]
|
|
||||||
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"]
|
||||||
albedo_color = Color(0.6784191, 0.54546416, 0.016760282, 1)
|
albedo_color = Color(0.6784191, 0.54546416, 0.016760282, 1)
|
||||||
|
|
||||||
[node name="BurgerBunsDispenser" type="StaticBody3D" unique_id=1720683779]
|
[node name="BurgerBunsDispenser" unique_id=707500902 instance=ExtResource("1_station")]
|
||||||
script = ExtResource("1_myl3s")
|
|
||||||
item_scene = ExtResource("2_1q74o")
|
|
||||||
|
|
||||||
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=805334513]
|
[node name="StationMovement" parent="." index="0" unique_id=946873975 node_paths=PackedStringArray("station")]
|
||||||
|
station = NodePath("../BurgerBunsDispenser")
|
||||||
|
|
||||||
|
[node name="SnapZone" parent="." index="5" unique_id=1315859105]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00070536137, 1.0162505, -0.002165556)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00070536137, 1.0162505, -0.002165556)
|
||||||
collision_layer = 65536
|
collision_layer = 65536
|
||||||
collision_mask = 65536
|
collision_mask = 65536
|
||||||
script = ExtResource("1_p30r1")
|
|
||||||
snap_mode = 1
|
snap_mode = 1
|
||||||
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="XRToolsSnapZone" unique_id=1104626493]
|
[node name="BurgerBunsDispenser" type="StaticBody3D" parent="." index="6" unique_id=1720683779 node_paths=PackedStringArray("notification_audio", "ambient_audio", "snap_zone", "synchronizer") groups=["station"]]
|
||||||
shape = SubResource("SphereShape3D_xmbo2")
|
script = ExtResource("1_myl3s")
|
||||||
|
item_scene = ExtResource("2_1q74o")
|
||||||
|
pickup_sound = ExtResource("4_u2p81")
|
||||||
|
notification_audio = NodePath("../AudioStreamPlayer3DNotification")
|
||||||
|
ambient_audio = NodePath("../AudioStreamPlayer3DAmbient")
|
||||||
|
snap_zone = NodePath("../SnapZone")
|
||||||
|
synchronizer = NodePath("../MultiplayerSynchronizer")
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1470079357]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="BurgerBunsDispenser" index="0" 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="BurgerBunsDispenser" index="1" unique_id=1427609426 instance=ExtResource("4_rf1b2")]
|
||||||
|
|
||||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=1746426494]
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="BurgerBunsDispenser" index="2" unique_id=1746426494]
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=858311379]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D" index="0" 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="BurgerBunsDispenser/CSGCombiner3D" index="1" unique_id=1459017790]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.16038476, 1.0341886, -0.09012994)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.16038476, 1.0341886, -0.09012994)
|
||||||
autosmooth = true
|
autosmooth = true
|
||||||
smoothing_angle = 138.9
|
smoothing_angle = 138.9
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns" unique_id=1328221793]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns" index="0" unique_id=1328221793]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns" unique_id=686624728]
|
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns" index="1" unique_id=686624728]
|
||||||
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns/CSGCylinder3D3" unique_id=1113894081]
|
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns/CSGCylinder3D3" index="0" unique_id=1113894081]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
@@ -67,26 +74,26 @@ sides = 16
|
|||||||
cone = true
|
cone = true
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCombiner3DBuns2" type="CSGCombiner3D" parent="CSGCombiner3D" unique_id=1636439623]
|
[node name="CSGCombiner3DBuns2" type="CSGCombiner3D" parent="BurgerBunsDispenser/CSGCombiner3D" index="2" unique_id=1636439623]
|
||||||
transform = Transform3D(0.42896286, 0, -0.90332216, 0, 1, 0, 0.90332216, 0, 0.42896286, 0.13564643, 1.0341886, 0.20497215)
|
transform = Transform3D(0.42896286, 0, -0.90332216, 0, 1, 0, 0.90332216, 0, 0.42896286, 0.13564643, 1.0341886, 0.20497215)
|
||||||
autosmooth = true
|
autosmooth = true
|
||||||
smoothing_angle = 138.9
|
smoothing_angle = 138.9
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns2" unique_id=190780737]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns2" index="0" unique_id=190780737]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns2" unique_id=557804311]
|
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns2" index="1" unique_id=557804311]
|
||||||
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns2/CSGCylinder3D3" unique_id=605379447]
|
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns2/CSGCylinder3D3" index="0" unique_id=605379447]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
@@ -94,26 +101,26 @@ sides = 16
|
|||||||
cone = true
|
cone = true
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCombiner3DBuns3" type="CSGCombiner3D" parent="CSGCombiner3D" unique_id=1594575583]
|
[node name="CSGCombiner3DBuns3" type="CSGCombiner3D" parent="BurgerBunsDispenser/CSGCombiner3D" index="3" unique_id=1594575583]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.17070979, 1.0341885, 0.07147646)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.17070979, 1.0341885, 0.07147646)
|
||||||
autosmooth = true
|
autosmooth = true
|
||||||
smoothing_angle = 138.9
|
smoothing_angle = 138.9
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns3" unique_id=1686142490]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns3" index="0" unique_id=1686142490]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns3" unique_id=1773290691]
|
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns3" index="1" unique_id=1773290691]
|
||||||
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns3/CSGCylinder3D3" unique_id=801922493]
|
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns3/CSGCylinder3D3" index="0" unique_id=801922493]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
@@ -121,26 +128,26 @@ sides = 16
|
|||||||
cone = true
|
cone = true
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCombiner3DBuns4" type="CSGCombiner3D" parent="CSGCombiner3D" unique_id=2055085730]
|
[node name="CSGCombiner3DBuns4" type="CSGCombiner3D" parent="BurgerBunsDispenser/CSGCombiner3D" index="4" unique_id=2055085730]
|
||||||
transform = Transform3D(0.95670986, 0, 0.29104328, 0, 1, 0, -0.29104328, 0, 0.95670986, -0.08665481, 1.0341886, -0.10344604)
|
transform = Transform3D(0.95670986, 0, 0.29104328, 0, 1, 0, -0.29104328, 0, 0.95670986, -0.08665481, 1.0341886, -0.10344604)
|
||||||
autosmooth = true
|
autosmooth = true
|
||||||
smoothing_angle = 138.9
|
smoothing_angle = 138.9
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns4" unique_id=547208858]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns4" index="0" unique_id=547208858]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns4" unique_id=185898007]
|
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns4" index="1" unique_id=185898007]
|
||||||
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns4/CSGCylinder3D3" unique_id=2117029178]
|
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns4/CSGCylinder3D3" index="0" unique_id=2117029178]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
@@ -148,26 +155,26 @@ sides = 16
|
|||||||
cone = true
|
cone = true
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCombiner3DBuns5" type="CSGCombiner3D" parent="CSGCombiner3D" unique_id=546748728]
|
[node name="CSGCombiner3DBuns5" type="CSGCombiner3D" parent="BurgerBunsDispenser/CSGCombiner3D" index="5" unique_id=546748728]
|
||||||
transform = Transform3D(0.20608562, 0, -0.978534, 0, 1, 0, 0.978534, 0, 0.20608562, -0.047733016, 1.0341886, 0.19433105)
|
transform = Transform3D(0.20608562, 0, -0.978534, 0, 1, 0, 0.978534, 0, 0.20608562, -0.047733016, 1.0341886, 0.19433105)
|
||||||
autosmooth = true
|
autosmooth = true
|
||||||
smoothing_angle = 138.9
|
smoothing_angle = 138.9
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns5" unique_id=102374914]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns5" index="0" unique_id=102374914]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.004122257, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns5" unique_id=189923990]
|
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns5" index="1" unique_id=189923990]
|
||||||
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
transform = Transform3D(0.82770383, -0.5611652, 0, 0.5611652, 0.82770383, 0, 0, 0, 1, -0.048392475, 0.029736161, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="CSGCombiner3D/CSGCombiner3DBuns5/CSGCylinder3D3" unique_id=1980594001]
|
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="BurgerBunsDispenser/CSGCombiner3D/CSGCombiner3DBuns5/CSGCylinder3D3" index="0" unique_id=1980594001]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.040259957, 0)
|
||||||
radius = 0.085
|
radius = 0.085
|
||||||
height = 0.04
|
height = 0.04
|
||||||
|
|||||||
+69
-29
@@ -1,13 +1,19 @@
|
|||||||
[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://cql13y8da4auf" path="res://stations/counter.gd" id="1_oapbh"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bqtk1adk8umbx" path="res://Sounds/220197__gameaudio__click-basic.wav" id="2_0aadn"]
|
[ext_resource type="PackedScene" uid="uid://cbs8jiqe8rcmn" path="res://abstract/station.tscn" id="1_station"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dmyuqe5058sv3" path="res://sounds/220197__gameaudio__click-basic.wav" id="2_0aadn"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dllgyc8jh83an" path="res://sounds/220195__gameaudio__click-wooden-1.wav" id="2_lg82m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dgk88esxip5xi" path="res://items/knife.tscn" id="3_3gvdi"]
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
|
||||||
size = Vector3(0.6, 1, 0.6)
|
size = Vector3(0.48521727, 0.040039063, 0.41994628)
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_1ntq7"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_3gvdi"]
|
||||||
size = Vector3(0.6, 0.12802735, 0.6)
|
size = Vector3(0.6, 0.9960913, 0.6)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
|
||||||
|
size = Vector3(0.3, 0.05, 0.3)
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
||||||
albedo_color = Color(0.49, 0.3854667, 0.29400003, 1)
|
albedo_color = Color(0.49, 0.3854667, 0.29400003, 1)
|
||||||
@@ -18,73 +24,107 @@ albedo_color = Color(0.66595805, 0.53976387, 0.4331022, 1)
|
|||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vlqg6"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vlqg6"]
|
||||||
albedo_color = Color(1.1759251, 0.741115, 0.5692133, 1)
|
albedo_color = Color(1.1759251, 0.741115, 0.5692133, 1)
|
||||||
|
|
||||||
[node name="Counter" type="StaticBody3D" unique_id=1487893288 groups=["station"]]
|
[node name="Counter" unique_id=707500902 instance=ExtResource("1_station")]
|
||||||
|
|
||||||
[node name="CollisionShape3DCuttingBoard" type="CollisionShape3D" parent="." unique_id=706340473]
|
[node name="StationMovement" parent="." index="0" unique_id=946873975 node_paths=PackedStringArray("station")]
|
||||||
shape = SubResource("BoxShape3D_24d3s")
|
station = NodePath("../Counter")
|
||||||
|
|
||||||
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=1647380272 groups=["station"]]
|
[node name="ProgressBar3D" parent="." index="4" unique_id=654673176]
|
||||||
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.2838624, -0.18)
|
||||||
|
|
||||||
|
[node name="SnapZone" parent="." index="5" unique_id=1315859105]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0647464, 0)
|
||||||
collision_layer = 65536
|
collision_layer = 65536
|
||||||
collision_mask = 65540
|
|
||||||
script = ExtResource("1_dlkho")
|
|
||||||
stash_sound = ExtResource("2_0aadn")
|
stash_sound = ExtResource("2_0aadn")
|
||||||
snap_mode = 1
|
snap_mode = 1
|
||||||
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="XRToolsSnapZone" unique_id=969340130]
|
[node name="Counter" type="StaticBody3D" parent="." index="6" unique_id=1487893288 node_paths=PackedStringArray("audio", "knife", "progress_bar", "notification_audio", "ambient_audio", "snap_zone", "synchronizer") groups=["station"]]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.002, 0)
|
script = ExtResource("1_oapbh")
|
||||||
shape = SubResource("BoxShape3D_1ntq7")
|
audio = NodePath("AudioStreamPlayer3D")
|
||||||
|
chop_audio = ExtResource("2_lg82m")
|
||||||
|
knife = NodePath("Knife")
|
||||||
|
progress_bar = NodePath("../ProgressBar3D")
|
||||||
|
pickup_sound = ExtResource("2_0aadn")
|
||||||
|
drop_sound = ExtResource("2_0aadn")
|
||||||
|
notification_audio = NodePath("../AudioStreamPlayer3DNotification")
|
||||||
|
ambient_audio = NodePath("../AudioStreamPlayer3DAmbient")
|
||||||
|
snap_zone = NodePath("../SnapZone")
|
||||||
|
synchronizer = NodePath("../MultiplayerSynchronizer")
|
||||||
|
|
||||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="XRToolsSnapZone" unique_id=1786831079]
|
[node name="CollisionShape3DCuttingBoard" type="CollisionShape3D" parent="Counter" index="0" unique_id=706340473]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00088502467, 1.0178218, 0.0009101778)
|
||||||
|
shape = SubResource("BoxShape3D_24d3s")
|
||||||
|
|
||||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=451757283]
|
[node name="CollisionShape3DCounter" type="CollisionShape3D" parent="Counter" index="1" unique_id=895680269]
|
||||||
use_collision = true
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5070981, 0)
|
||||||
|
shape = SubResource("BoxShape3D_3gvdi")
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D" unique_id=305755330]
|
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="Counter" index="2" unique_id=1941838513]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5038623, 0)
|
||||||
|
|
||||||
|
[node name="GestureArea" type="Area3D" parent="Counter" index="3" unique_id=398687137]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0438623, 0)
|
||||||
|
collision_layer = 0
|
||||||
|
collision_mask = 65536
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Counter/GestureArea" index="0" unique_id=1450988028]
|
||||||
|
shape = SubResource("BoxShape3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="Knife" parent="Counter" index="4" unique_id=1675596942 instance=ExtResource("3_3gvdi")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2838624, 0)
|
||||||
|
gravity_scale = 0.0
|
||||||
|
freeze = true
|
||||||
|
release_mode = 1
|
||||||
|
|
||||||
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Counter" index="5" unique_id=451757283]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5038623, 0)
|
||||||
|
|
||||||
|
[node name="CSGBox3D" type="CSGBox3D" parent="Counter/CSGCombiner3D" index="0" unique_id=305755330]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.046, -0.025)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.046, -0.025)
|
||||||
size = Vector3(0.6, 0.908, 0.55)
|
size = Vector3(0.6, 0.908, 0.55)
|
||||||
material = SubResource("StandardMaterial3D_24d3s")
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
[node name="CSGBox3D7" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1086568272]
|
[node name="CSGBox3D7" type="CSGBox3D" parent="Counter/CSGCombiner3D" index="1" unique_id=1086568272]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.39999902, 0.22965088)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.39999902, 0.22965088)
|
||||||
operation = 2
|
operation = 2
|
||||||
size = Vector3(0.6, 0.22992969, 0.14069825)
|
size = Vector3(0.6, 0.22992969, 0.14069825)
|
||||||
material = SubResource("StandardMaterial3D_24d3s")
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
[node name="CSGBox3D2" type="CSGBox3D" parent="CSGCombiner3D" unique_id=43663195]
|
[node name="CSGBox3D2" type="CSGBox3D" parent="Counter/CSGCombiner3D" index="2" unique_id=43663195]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
size = Vector3(0.6, 0.202, 0.6)
|
size = Vector3(0.6, 0.202, 0.6)
|
||||||
|
|
||||||
[node name="CSGBox3D3" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1210567516]
|
[node name="CSGBox3D3" type="CSGBox3D" parent="Counter/CSGCombiner3D" index="3" unique_id=1210567516]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5617909, 0.060281754)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5617909, 0.060281754)
|
||||||
operation = 2
|
operation = 2
|
||||||
size = Vector3(0.6, 0.12051563, 0.6402156)
|
size = Vector3(0.6, 0.12051563, 0.6402156)
|
||||||
|
|
||||||
[node name="CSGBox3D4" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1533996708]
|
[node name="CSGBox3D4" type="CSGBox3D" parent="Counter/CSGCombiner3D" index="4" unique_id=1533996708]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.15, 0.08, 0.26034504)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.15, 0.08, 0.26034504)
|
||||||
size = Vector3(0.25, 0.6, 0.024)
|
size = Vector3(0.25, 0.6, 0.024)
|
||||||
material = SubResource("StandardMaterial3D_pt8vn")
|
material = SubResource("StandardMaterial3D_pt8vn")
|
||||||
|
|
||||||
[node name="CSGBox3D5" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1983709234]
|
[node name="CSGBox3D5" type="CSGBox3D" parent="Counter/CSGCombiner3D" index="5" unique_id=1983709234]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.15, 0.08, 0.26034504)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.15, 0.08, 0.26034504)
|
||||||
size = Vector3(0.25, 0.6, 0.024)
|
size = Vector3(0.25, 0.6, 0.024)
|
||||||
material = SubResource("StandardMaterial3D_pt8vn")
|
material = SubResource("StandardMaterial3D_pt8vn")
|
||||||
|
|
||||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="CSGCombiner3D" unique_id=1785057925]
|
[node name="CSGSphere3D" type="CSGSphere3D" parent="Counter/CSGCombiner3D" index="6" unique_id=1785057925]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.057649717, 0.12459713, 0.29140875)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.057649717, 0.12459713, 0.29140875)
|
||||||
radius = 0.025492515
|
radius = 0.025492515
|
||||||
|
|
||||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="CSGCombiner3D" unique_id=1224446005]
|
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Counter/CSGCombiner3D" index="7" unique_id=1224446005]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.060837455, 0.12459713, 0.29140875)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.060837455, 0.12459713, 0.29140875)
|
||||||
radius = 0.025492515
|
radius = 0.025492515
|
||||||
|
|
||||||
[node name="CSGBox3D6" type="CSGBox3D" parent="CSGCombiner3D" unique_id=187377667]
|
[node name="CSGBox3D6" type="CSGBox3D" parent="Counter/CSGCombiner3D" index="8" unique_id=187377667]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.514, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.514, 0)
|
||||||
size = Vector3(0.48251343, 0.037231445, 0.42160034)
|
size = Vector3(0.48251343, 0.037231445, 0.42160034)
|
||||||
material = SubResource("StandardMaterial3D_vlqg6")
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
[node name="CSGBox3D6" type="CSGBox3D" parent="CSGCombiner3D/CSGBox3D6" unique_id=1146824846]
|
[node name="CSGBox3D6" type="CSGBox3D" parent="Counter/CSGCombiner3D/CSGBox3D6" index="0" unique_id=1146824846]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.1899699, 0.01924485, -0.0039587095)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.1899699, 0.01924485, -0.0039587095)
|
||||||
operation = 2
|
operation = 2
|
||||||
size = Vector3(0.037109375, 0.092285156, 0.26757813)
|
size = Vector3(0.037109375, 0.092285156, 0.26757813)
|
||||||
|
|
||||||
|
[connection signal="body_entered" from="Counter/GestureArea" to="Counter" method="_on_gesture_area_body_entered"]
|
||||||
|
|||||||
+65
-79
@@ -1,37 +1,22 @@
|
|||||||
[gd_scene format=3 uid="uid://j7caslh27nor"]
|
[gd_scene format=3 uid="uid://b052o1fgwq5bw"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://bsn8vhv5adxdo" path="res://Stations/hob.gd" id="1_7jc4g"]
|
[ext_resource type="PackedScene" uid="uid://cbs8jiqe8rcmn" path="res://abstract/station.tscn" id="1_2p1q6"]
|
||||||
[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://bsn8vhv5adxdo" path="res://stations/hob.gd" id="1_7jc4g"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bqtk1adk8umbx" path="res://Sounds/220197__gameaudio__click-basic.wav" id="3_6oyg1"]
|
[ext_resource type="AudioStream" uid="uid://dmyuqe5058sv3" path="res://sounds/220197__gameaudio__click-basic.wav" id="3_l0sax"]
|
||||||
[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_8qpxk"]
|
||||||
[ext_resource type="Material" uid="uid://d1djvskv4n4m3" path="res://Textures/hob_off.tres" id="4_8qpxk"]
|
[ext_resource type="Material" uid="uid://db7c7w4apwti7" path="res://textures/hob_on.tres" id="6_m7l4u"]
|
||||||
[ext_resource type="Material" uid="uid://db7c7w4apwti7" path="res://Textures/hob_on.tres" id="6_m7l4u"]
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_kdxnr"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_l0sax"]
|
||||||
size = Vector3(0.6, 1, 0.6)
|
size = Vector3(0.6, 1, 0.6)
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_7uuqv"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bmu77"]
|
||||||
size = Vector3(0.6, 0.12802735, 0.6)
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gkb3v"]
|
|
||||||
|
|
||||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_hob"]
|
|
||||||
properties/0/path = NodePath(".:time_cooked")
|
|
||||||
properties/0/spawn = true
|
|
||||||
properties/0/replication_mode = 1
|
|
||||||
properties/1/path = NodePath(".:cooking_result_time")
|
|
||||||
properties/1/spawn = true
|
|
||||||
properties/1/replication_mode = 1
|
|
||||||
properties/2/path = NodePath(".:cooking_result")
|
|
||||||
properties/2/spawn = true
|
|
||||||
properties/2/replication_mode = 1
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_7uuqv"]
|
[sub_resource type="Animation" id="Animation_7uuqv"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/path = NodePath("CSGCombiner3D/CSGTorus3D3:material")
|
tracks/0/path = NodePath("Hob/CSGCombiner3D/CSGTorus3D3:material")
|
||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
@@ -43,7 +28,7 @@ tracks/0/keys = {
|
|||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
tracks/1/enabled = true
|
tracks/1/enabled = true
|
||||||
tracks/1/path = NodePath("CSGCombiner3D/CSGTorus3D2:material")
|
tracks/1/path = NodePath("Hob/CSGCombiner3D/CSGTorus3D2:material")
|
||||||
tracks/1/interp = 1
|
tracks/1/interp = 1
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
@@ -55,7 +40,7 @@ tracks/1/keys = {
|
|||||||
tracks/2/type = "value"
|
tracks/2/type = "value"
|
||||||
tracks/2/imported = false
|
tracks/2/imported = false
|
||||||
tracks/2/enabled = true
|
tracks/2/enabled = true
|
||||||
tracks/2/path = NodePath("CSGCombiner3D/CSGTorus3D:material")
|
tracks/2/path = NodePath("Hob/CSGCombiner3D/CSGTorus3D:material")
|
||||||
tracks/2/interp = 1
|
tracks/2/interp = 1
|
||||||
tracks/2/loop_wrap = true
|
tracks/2/loop_wrap = true
|
||||||
tracks/2/keys = {
|
tracks/2/keys = {
|
||||||
@@ -67,7 +52,7 @@ tracks/2/keys = {
|
|||||||
tracks/3/type = "value"
|
tracks/3/type = "value"
|
||||||
tracks/3/imported = false
|
tracks/3/imported = false
|
||||||
tracks/3/enabled = true
|
tracks/3/enabled = true
|
||||||
tracks/3/path = NodePath("CSGCombiner3D/CSGTorus3D3:material:emission_energy_multiplier")
|
tracks/3/path = NodePath("Hob/CSGCombiner3D/CSGTorus3D3:material:emission_energy_multiplier")
|
||||||
tracks/3/interp = 1
|
tracks/3/interp = 1
|
||||||
tracks/3/loop_wrap = true
|
tracks/3/loop_wrap = true
|
||||||
tracks/3/keys = {
|
tracks/3/keys = {
|
||||||
@@ -79,7 +64,7 @@ tracks/3/keys = {
|
|||||||
tracks/4/type = "value"
|
tracks/4/type = "value"
|
||||||
tracks/4/imported = false
|
tracks/4/imported = false
|
||||||
tracks/4/enabled = true
|
tracks/4/enabled = true
|
||||||
tracks/4/path = NodePath("OmniLight3D:light_energy")
|
tracks/4/path = NodePath("Hob/OmniLight3D:light_energy")
|
||||||
tracks/4/interp = 1
|
tracks/4/interp = 1
|
||||||
tracks/4/loop_wrap = true
|
tracks/4/loop_wrap = true
|
||||||
tracks/4/keys = {
|
tracks/4/keys = {
|
||||||
@@ -95,7 +80,7 @@ loop_mode = 1
|
|||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/path = NodePath("CSGCombiner3D/CSGTorus3D3:material")
|
tracks/0/path = NodePath("Hob/CSGCombiner3D/CSGTorus3D3:material")
|
||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
@@ -107,7 +92,7 @@ tracks/0/keys = {
|
|||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
tracks/1/enabled = true
|
tracks/1/enabled = true
|
||||||
tracks/1/path = NodePath("CSGCombiner3D/CSGTorus3D2:material")
|
tracks/1/path = NodePath("Hob/CSGCombiner3D/CSGTorus3D2:material")
|
||||||
tracks/1/interp = 1
|
tracks/1/interp = 1
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
@@ -119,7 +104,7 @@ tracks/1/keys = {
|
|||||||
tracks/2/type = "value"
|
tracks/2/type = "value"
|
||||||
tracks/2/imported = false
|
tracks/2/imported = false
|
||||||
tracks/2/enabled = true
|
tracks/2/enabled = true
|
||||||
tracks/2/path = NodePath("CSGCombiner3D/CSGTorus3D:material")
|
tracks/2/path = NodePath("Hob/CSGCombiner3D/CSGTorus3D:material")
|
||||||
tracks/2/interp = 1
|
tracks/2/interp = 1
|
||||||
tracks/2/loop_wrap = true
|
tracks/2/loop_wrap = true
|
||||||
tracks/2/keys = {
|
tracks/2/keys = {
|
||||||
@@ -131,7 +116,7 @@ tracks/2/keys = {
|
|||||||
tracks/3/type = "value"
|
tracks/3/type = "value"
|
||||||
tracks/3/imported = false
|
tracks/3/imported = false
|
||||||
tracks/3/enabled = true
|
tracks/3/enabled = true
|
||||||
tracks/3/path = NodePath("CSGCombiner3D/CSGTorus3D3:material:emission_energy_multiplier")
|
tracks/3/path = NodePath("Hob/CSGCombiner3D/CSGTorus3D3:material:emission_energy_multiplier")
|
||||||
tracks/3/interp = 1
|
tracks/3/interp = 1
|
||||||
tracks/3/loop_wrap = true
|
tracks/3/loop_wrap = true
|
||||||
tracks/3/keys = {
|
tracks/3/keys = {
|
||||||
@@ -143,7 +128,7 @@ tracks/3/keys = {
|
|||||||
tracks/4/type = "value"
|
tracks/4/type = "value"
|
||||||
tracks/4/imported = false
|
tracks/4/imported = false
|
||||||
tracks/4/enabled = true
|
tracks/4/enabled = true
|
||||||
tracks/4/path = NodePath("OmniLight3D:light_energy")
|
tracks/4/path = NodePath("Hob/OmniLight3D:light_energy")
|
||||||
tracks/4/interp = 1
|
tracks/4/interp = 1
|
||||||
tracks/4/loop_wrap = true
|
tracks/4/loop_wrap = true
|
||||||
tracks/4/keys = {
|
tracks/4/keys = {
|
||||||
@@ -153,126 +138,127 @@ tracks/4/keys = {
|
|||||||
"values": [1.0, 0.0, 1.0]
|
"values": [1.0, 0.0, 1.0]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ac5f3"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_pydjp"]
|
||||||
_data = {
|
_data = {
|
||||||
&"RESET": SubResource("Animation_7uuqv"),
|
&"RESET": SubResource("Animation_7uuqv"),
|
||||||
&"hob": SubResource("Animation_6oyg1")
|
&"hob": SubResource("Animation_6oyg1")
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="Hob" type="StaticBody3D" unique_id=1687971542 groups=["station"]]
|
[node name="Hob" unique_id=707500902 instance=ExtResource("1_2p1q6")]
|
||||||
script = ExtResource("1_7jc4g")
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1283846023]
|
[node name="StationMovement" parent="." index="0" unique_id=946873975 node_paths=PackedStringArray("station")]
|
||||||
shape = SubResource("BoxShape3D_kdxnr")
|
station = NodePath("../Hob")
|
||||||
|
|
||||||
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=538157739 groups=["station"]]
|
[node name="ProgressBar3D" parent="." index="4" unique_id=654673176]
|
||||||
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.2, -0.18)
|
||||||
collision_layer = 65536
|
|
||||||
collision_mask = 65540
|
[node name="SnapZone" parent="." index="5" unique_id=1315859105]
|
||||||
script = ExtResource("2_er1dp")
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.048892, 0)
|
||||||
stash_sound = ExtResource("3_6oyg1")
|
|
||||||
snap_mode = 1
|
snap_mode = 1
|
||||||
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="XRToolsSnapZone" unique_id=370920392]
|
[node name="Hob" type="StaticBody3D" parent="." index="6" unique_id=732560156 node_paths=PackedStringArray("animation_player", "progress_bar", "notification_audio", "ambient_audio", "snap_zone", "synchronizer") groups=["station"]]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.000975132, 0)
|
script = ExtResource("1_7jc4g")
|
||||||
shape = SubResource("BoxShape3D_7uuqv")
|
animation_player = NodePath("AnimationPlayer")
|
||||||
|
progress_bar = NodePath("../ProgressBar3D")
|
||||||
|
pickup_sound = ExtResource("3_l0sax")
|
||||||
|
drop_sound = ExtResource("3_l0sax")
|
||||||
|
notification_audio = NodePath("../AudioStreamPlayer3DNotification")
|
||||||
|
ambient_audio = NodePath("../AudioStreamPlayer3DAmbient")
|
||||||
|
snap_zone = NodePath("../SnapZone")
|
||||||
|
synchronizer = NodePath("../MultiplayerSynchronizer")
|
||||||
|
|
||||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="XRToolsSnapZone" unique_id=1991627595]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hob" index="0" unique_id=3886639]
|
||||||
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, 0.51483154, 0)
|
||||||
|
shape = SubResource("BoxShape3D_l0sax")
|
||||||
|
|
||||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=70901698]
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Hob" index="1" unique_id=1047451362]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.51483154, 0)
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1111505172]
|
[node name="CSGBox3D" type="CSGBox3D" parent="Hob/CSGCombiner3D" index="0" unique_id=797498087]
|
||||||
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.00071543455, 3.7252903e-09, -0.008516133)
|
||||||
size = Vector3(0.6, 1, 0.5821045)
|
size = Vector3(0.6, 1, 0.5821045)
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D/CSGBox3D" unique_id=1338463939]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Hob/CSGCombiner3D/CSGBox3D" index="0" unique_id=1788217430]
|
||||||
transform = Transform3D(0.8943019, 0, 0, 0, 0.8943019, 0, 0, 0, 0.8943019, 0, 0.5103538, -7.827557e-05)
|
transform = Transform3D(0.8943019, 0, 0, 0, 0.8943019, 0, 0, 0, 0.8943019, 0, 0.5103538, -7.827557e-05)
|
||||||
operation = 2
|
operation = 2
|
||||||
radius = 0.25976563
|
radius = 0.25976563
|
||||||
height = 0.08898926
|
height = 0.08898926
|
||||||
sides = 32
|
sides = 32
|
||||||
|
|
||||||
[node name="CSGTorus3D3" type="CSGTorus3D" parent="CSGCombiner3D" unique_id=666891341]
|
[node name="CSGTorus3D3" type="CSGTorus3D" parent="Hob/CSGCombiner3D" index="1" unique_id=1365654856]
|
||||||
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.09153879
|
inner_radius = 0.09153879
|
||||||
outer_radius = 0.120084204
|
outer_radius = 0.120084204
|
||||||
sides = 32
|
sides = 32
|
||||||
material = ExtResource("4_8qpxk")
|
material = ExtResource("4_8qpxk")
|
||||||
|
|
||||||
[node name="CSGTorus3D2" type="CSGTorus3D" parent="CSGCombiner3D" unique_id=24541894]
|
[node name="CSGTorus3D2" type="CSGTorus3D" parent="Hob/CSGCombiner3D" index="2" unique_id=2113291709]
|
||||||
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_8qpxk")
|
||||||
|
|
||||||
[node name="CSGTorus3D" type="CSGTorus3D" parent="CSGCombiner3D" unique_id=1901978664]
|
[node name="CSGTorus3D" type="CSGTorus3D" parent="Hob/CSGCombiner3D" index="3" unique_id=196825717]
|
||||||
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_8qpxk")
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1107239311]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Hob/CSGCombiner3D" index="4" unique_id=893001662]
|
||||||
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)
|
||||||
radius = 0.071777344
|
radius = 0.071777344
|
||||||
height = 0.09637451
|
height = 0.09637451
|
||||||
sides = 32
|
sides = 32
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=435540815]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Hob/CSGCombiner3D" index="5" unique_id=1086831704]
|
||||||
transform = Transform3D(0.8943019, 0, 0, 0, -3.9091177e-08, 0.8943019, 0, -0.8943019, -3.9091177e-08, 0, 0.48668858, -0.0020651226)
|
transform = Transform3D(0.8943019, 0, 0, 0, -3.9091177e-08, 0.8943019, 0, -0.8943019, -3.9091177e-08, 0, 0.48668858, -0.0020651226)
|
||||||
radius = 0.008
|
radius = 0.008
|
||||||
height = 0.44487303
|
height = 0.44487303
|
||||||
|
|
||||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=878171801]
|
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="Hob/CSGCombiner3D" index="6" unique_id=145519146]
|
||||||
transform = Transform3D(-3.9091177e-08, -0.8943019, -3.9091177e-08, 0, -3.9091177e-08, 0.8943019, -0.8943019, 3.9091177e-08, 1.7087296e-15, 0, 0.48668858, -0.0020651226)
|
transform = Transform3D(-3.9091177e-08, -0.8943019, -3.9091177e-08, 0, -3.9091177e-08, 0.8943019, -0.8943019, 3.9091177e-08, 1.7087296e-15, 0, 0.48668858, -0.0020651226)
|
||||||
radius = 0.008
|
radius = 0.008
|
||||||
height = 0.44487303
|
height = 0.44487303
|
||||||
|
|
||||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1619646436]
|
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="Hob/CSGCombiner3D" index="7" unique_id=905149123]
|
||||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.20412213, 0.42728558, 0.26171687)
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.20412213, 0.42728558, 0.26171687)
|
||||||
radius = 0.044433594
|
radius = 0.044433594
|
||||||
height = 0.10932617
|
height = 0.10932617
|
||||||
material = SubResource("StandardMaterial3D_gkb3v")
|
material = SubResource("StandardMaterial3D_bmu77")
|
||||||
|
|
||||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=548846612]
|
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Hob/CSGCombiner3D" index="8" unique_id=2028954364]
|
||||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.12531614, 0.42728558, 0.26171687)
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.12531614, 0.42728558, 0.26171687)
|
||||||
radius = 0.044433594
|
radius = 0.044433594
|
||||||
height = 0.10932617
|
height = 0.10932617
|
||||||
material = SubResource("StandardMaterial3D_gkb3v")
|
material = SubResource("StandardMaterial3D_bmu77")
|
||||||
|
|
||||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1208989647]
|
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Hob/CSGCombiner3D" index="9" unique_id=1588021797]
|
||||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.22979808, 0.42728558, 0.26171687)
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.22979808, 0.42728558, 0.26171687)
|
||||||
radius = 0.044433594
|
radius = 0.044433594
|
||||||
height = 0.10932617
|
height = 0.10932617
|
||||||
material = SubResource("StandardMaterial3D_gkb3v")
|
material = SubResource("StandardMaterial3D_bmu77")
|
||||||
|
|
||||||
[node name="CSGBox3D2" type="CSGBox3D" parent="CSGCombiner3D" unique_id=465340362]
|
[node name="CSGBox3D2" type="CSGBox3D" parent="Hob/CSGCombiner3D" index="10" unique_id=1620789236]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.039733887, -0.07685089, 0.29250562)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.039733887, -0.07685089, 0.29250562)
|
||||||
operation = 2
|
operation = 2
|
||||||
size = Vector3(1.0999756, 0.8462982, 0.072387695)
|
size = Vector3(1.0999756, 0.8462982, 0.072387695)
|
||||||
|
|
||||||
[node name="CSGBox3D3" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1813079759]
|
[node name="CSGBox3D3" type="CSGBox3D" parent="Hob/CSGCombiner3D" index="11" unique_id=1140499039]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.003479004, -0.08253479, 0.2656765)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.003479004, -0.08253479, 0.2656765)
|
||||||
size = Vector3(0.55, 0.835, 0.072)
|
size = Vector3(0.55, 0.835, 0.072)
|
||||||
|
|
||||||
[node name="CSGBox3D4" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1978186019]
|
[node name="CSGBox3D4" type="CSGBox3D" parent="Hob/CSGCombiner3D" index="12" unique_id=923397574]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.003479004, -0.45215607, 0.24655426)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.003479004, -0.45215607, 0.24655426)
|
||||||
size = Vector3(0.55, 0.096, 0.14)
|
size = Vector3(0.55, 0.096, 0.14)
|
||||||
|
|
||||||
[node name="Sync" type="MultiplayerSynchronizer" parent="." unique_id=768992259]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="Hob" index="2" unique_id=1592340772]
|
||||||
replication_config = SubResource("SceneReplicationConfig_np_hob")
|
root_node = NodePath("../..")
|
||||||
|
libraries/ = SubResource("AnimationLibrary_pydjp")
|
||||||
|
|
||||||
[node name="ProgressBar3D" parent="." unique_id=654673176 instance=ExtResource("3_7uuqv")]
|
[node name="OmniLight3D" type="OmniLight3D" parent="Hob" index="3" unique_id=2050713654]
|
||||||
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.0201802, 0)
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1525460719]
|
|
||||||
libraries/ = SubResource("AnimationLibrary_ac5f3")
|
|
||||||
|
|
||||||
[node name="OmniLight3D" type="OmniLight3D" parent="." unique_id=1618457623]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5053487, 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
|
||||||
|
|||||||
@@ -0,0 +1,134 @@
|
|||||||
|
[gd_scene format=3 uid="uid://cvucwxibtol5f"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bu0g23cfrqy0m" path="res://stations/station_movement.gd" id="1_ldy6a"]
|
||||||
|
[ext_resource type="Script" uid="uid://bfrlpbsqg5lqr" path="res://addons/godot-xr-tools/objects/pickable.gd" id="2_tbkb3"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="3_36r14"]
|
||||||
|
[ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="4_dy2gh"]
|
||||||
|
[ext_resource type="Script" uid="uid://dvobm6vcfnqe8" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="5_2muex"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="6_372qd"]
|
||||||
|
[ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="7_uxgrt"]
|
||||||
|
[ext_resource type="Script" uid="uid://bwd0pe2udb5xo" path="res://Net/net_pickable.gd" id="8_7mccn"]
|
||||||
|
|
||||||
|
[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("5_2muex")
|
||||||
|
closed_pose = ExtResource("4_dy2gh")
|
||||||
|
metadata/_custom_type_script = "uid://dvobm6vcfnqe8"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_qyiot"]
|
||||||
|
script = ExtResource("5_2muex")
|
||||||
|
closed_pose = ExtResource("7_uxgrt")
|
||||||
|
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
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
|
||||||
|
size = Vector3(0.5, 0.87231445, 0.5)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vlqg6"]
|
||||||
|
transparency = 1
|
||||||
|
albedo_color = Color(1, 0.78999996, 0.39999998, 0.4627451)
|
||||||
|
|
||||||
|
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_ldy6a"]
|
||||||
|
properties/0/path = NodePath(".:visible")
|
||||||
|
properties/0/spawn = false
|
||||||
|
properties/0/replication_mode = 1
|
||||||
|
properties/1/path = NodePath(".:position")
|
||||||
|
properties/1/spawn = false
|
||||||
|
properties/1/replication_mode = 1
|
||||||
|
properties/2/path = NodePath(".:rotation")
|
||||||
|
properties/2/spawn = false
|
||||||
|
properties/2/replication_mode = 1
|
||||||
|
|
||||||
|
[node name="StationMovement" type="Node3D" unique_id=946873975 node_paths=PackedStringArray("move_handle", "move_ghost")]
|
||||||
|
script = ExtResource("1_ldy6a")
|
||||||
|
move_handle = NodePath("MoveHandle")
|
||||||
|
move_ghost = NodePath("MoveGhost")
|
||||||
|
|
||||||
|
[node name="MoveHandle" type="RigidBody3D" parent="." unique_id=954108203 groups=["platalbe_item"]]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
|
||||||
|
collision_layer = 262144
|
||||||
|
collision_mask = 196615
|
||||||
|
axis_lock_linear_y = true
|
||||||
|
axis_lock_angular_x = true
|
||||||
|
axis_lock_angular_z = true
|
||||||
|
mass = 0.001
|
||||||
|
gravity_scale = 0.5
|
||||||
|
linear_damp = 100.0
|
||||||
|
angular_damp = 100.0
|
||||||
|
script = ExtResource("2_tbkb3")
|
||||||
|
picked_up_layer = 64
|
||||||
|
release_mode = 1
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="MoveHandle" unique_id=1692047616]
|
||||||
|
shape = SubResource("BoxShape3D_m1xbq")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="MoveHandle" unique_id=1134464542]
|
||||||
|
mesh = SubResource("BoxMesh_vlqg6")
|
||||||
|
|
||||||
|
[node name="GrabPointHandLeft" parent="MoveHandle" unique_id=358095191 instance=ExtResource("3_36r14")]
|
||||||
|
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="MoveHandle" unique_id=694601824 instance=ExtResource("6_372qd")]
|
||||||
|
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="MoveHandle" unique_id=404907673]
|
||||||
|
replication_config = SubResource("SceneReplicationConfig_np_cube")
|
||||||
|
script = ExtResource("8_7mccn")
|
||||||
|
|
||||||
|
[node name="MoveGhost" type="Area3D" parent="." unique_id=1305344236]
|
||||||
|
collision_layer = 0
|
||||||
|
collision_mask = 524291
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="MoveGhost" unique_id=2074041383]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.44934082, 0)
|
||||||
|
shape = SubResource("BoxShape3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="MoveGhost" unique_id=283929246]
|
||||||
|
collision_layer = 0
|
||||||
|
collision_mask = 524291
|
||||||
|
|
||||||
|
[node name="CSGBox3D" type="CSGBox3D" parent="MoveGhost/CSGCombiner3D" unique_id=1786907045]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
size = Vector3(0.6, 1, 0.6)
|
||||||
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="CSGBox3D2" type="CSGBox3D" parent="MoveGhost/CSGCombiner3D" unique_id=684823657]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
size = Vector3(0.03, 0.03, 0.3)
|
||||||
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="CSGBox3D2" type="CSGBox3D" parent="MoveGhost/CSGCombiner3D/CSGBox3D2" unique_id=286640707]
|
||||||
|
transform = Transform3D(0.70451534, 0, -0.7096888, 0, 1, 0, 0.7096888, 0, 0.70451534, -0.046803005, 0.5, -0.096979)
|
||||||
|
size = Vector3(0.03, 0.03, 0.12021485)
|
||||||
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="CSGBox3D3" type="CSGBox3D" parent="MoveGhost/CSGCombiner3D/CSGBox3D2" unique_id=1791902851]
|
||||||
|
transform = Transform3D(0.7073421, 0, 0.7068714, 0, 1, 0, -0.7068714, 0, 0.7073421, 0.04550519, 0.5, -0.096264325)
|
||||||
|
size = Vector3(0.03, 0.03, 0.12021485)
|
||||||
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="CSGBox3D4" type="CSGBox3D" parent="MoveGhost/CSGCombiner3D/CSGBox3D2" unique_id=83757100]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -0.020843491)
|
||||||
|
size = Vector3(0.03, 0.03, 0.25904542)
|
||||||
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="MoveGhost" unique_id=29758342]
|
||||||
|
replication_config = SubResource("SceneReplicationConfig_ldy6a")
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
class_name Counter
|
||||||
|
extends WorkStation
|
||||||
|
|
||||||
|
@export var chop_work_steps: float = 5.0
|
||||||
|
@export var chop_min_speed: float = 2.0
|
||||||
|
|
||||||
|
@export var audio: AudioStreamPlayer3D
|
||||||
|
@export var chop_audio: AudioStream
|
||||||
|
@export var knife: XRToolsPickable
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
super.ready()
|
||||||
|
SweetLogger.debug("Counter {0} _ready", [name])
|
||||||
|
if not audio:
|
||||||
|
SweetLogger.warning("{0} missing audio reference", [name])
|
||||||
|
if not chop_audio:
|
||||||
|
SweetLogger.warning("{0} missing chop_audio reference", [name])
|
||||||
|
if not knife:
|
||||||
|
SweetLogger.warning("{0} missing knife reference", [name])
|
||||||
|
_disable_all_tools()
|
||||||
|
|
||||||
|
|
||||||
|
func _start_chopping(id: String, work: float) -> void:
|
||||||
|
if not enabled:
|
||||||
|
return
|
||||||
|
result_id = id
|
||||||
|
max_work = work
|
||||||
|
SweetLogger.info("Start chopping - result_id: {0}, max_work: {1}", [result_id, max_work])
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
super.process(delta)
|
||||||
|
|
||||||
|
|
||||||
|
func _enable_tool(_item: XRToolsPickable):
|
||||||
|
SweetLogger.debug("Enable tool {0} on {1}", [_item.name, name])
|
||||||
|
_item.visible = true
|
||||||
|
_item.get_node("NetPickable").set_tool_enabled(true)
|
||||||
|
|
||||||
|
|
||||||
|
func _disable_tool(_item: XRToolsPickable):
|
||||||
|
SweetLogger.debug("Disable tool {0} on {1}", [_item.name, name])
|
||||||
|
_item.visible = false
|
||||||
|
_item.get_node("NetPickable").set_tool_enabled(false)
|
||||||
|
|
||||||
|
func _disable_all_tools():
|
||||||
|
SweetLogger.debug("Disable all tools on {0}", [name])
|
||||||
|
_disable_tool(knife)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_gesture_area_body_entered(body: Node3D) -> void:
|
||||||
|
SweetLogger.debug("Gesture area entered: {0}", [body])
|
||||||
|
if not body.is_in_group("chopping_tool"):
|
||||||
|
return
|
||||||
|
if result_id == "":
|
||||||
|
SweetLogger.debug("Knife entered but nothing to chop")
|
||||||
|
return
|
||||||
|
|
||||||
|
var speed := 0.0
|
||||||
|
if body is RigidBody3D:
|
||||||
|
speed = body.linear_velocity.length()
|
||||||
|
elif body is CharacterBody3D:
|
||||||
|
speed = body.velocity.length()
|
||||||
|
|
||||||
|
if speed < chop_min_speed:
|
||||||
|
SweetLogger.debug("Knife too slow for chopping: {0}", [speed])
|
||||||
|
return
|
||||||
|
|
||||||
|
if audio and chop_audio:
|
||||||
|
audio.stream = chop_audio
|
||||||
|
audio.play()
|
||||||
|
|
||||||
|
add_work(chop_work_steps)
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func refresh_display() -> void:
|
||||||
|
super.refresh_display()
|
||||||
|
progress_bar.override_fill_color(Color.GREEN)
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func on_food_item_picked_up(food_item: FoodItem) -> void:
|
||||||
|
SweetLogger.debug("Object picked up: {0}", [food_item])
|
||||||
|
|
||||||
|
if not food_item:
|
||||||
|
SweetLogger.debug("Held object is not a FoodItem")
|
||||||
|
return
|
||||||
|
var result = RecipeManager.get_chopping_result(food_item.id)
|
||||||
|
if not result:
|
||||||
|
SweetLogger.debug("Held a FoodItem that is not choppable, id: {0} result: {1}", [food_item.id, result])
|
||||||
|
return
|
||||||
|
|
||||||
|
_enable_tool(knife)
|
||||||
|
_start_chopping(result, RecipeManager.get_chopping_work(food_item.id))
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func on_object_dropped(_item: Node3D) -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
_disable_all_tools()
|
||||||
|
reset()
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func on_work_complete():
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
_disable_all_tools()
|
||||||
|
convert_item()
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://cwwnbx5uat3fw"]
|
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" unique_id=725518829]
|
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
[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="PackedScene" uid="uid://cbs8jiqe8rcmn" path="res://abstract/station.tscn" id="1_station"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://e4i6o5oriecx" path="res://items/PickupCube.tscn" id="2_nn8tr"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dmyuqe5058sv3" path="res://sounds/220197__gameaudio__click-basic.wav" id="4_0wtc7"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="4_nn8tr"]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_24d3s"]
|
||||||
|
height = 1.0
|
||||||
|
radius = 0.29541016
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
||||||
|
albedo_color = Color(0.1764706, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_irf4n"]
|
||||||
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
size = Vector3(0.1, 0.1, 0.1)
|
||||||
|
|
||||||
|
[node name="CubeSideDispenser" unique_id=707500902 instance=ExtResource("1_station")]
|
||||||
|
|
||||||
|
[node name="StationMovement" parent="." index="0" unique_id=946873975 node_paths=PackedStringArray("station")]
|
||||||
|
station = NodePath("../CubeSideDispenser")
|
||||||
|
|
||||||
|
[node name="SnapZone" parent="." index="5" unique_id=1315859105]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00070536137, 1.0440714, -0.002165556)
|
||||||
|
collision_layer = 65536
|
||||||
|
collision_mask = 65536
|
||||||
|
snap_mode = 1
|
||||||
|
|
||||||
|
[node name="CubeSideDispenser" type="StaticBody3D" parent="." index="6" unique_id=200950572 node_paths=PackedStringArray("notification_audio", "ambient_audio", "snap_zone", "synchronizer") groups=["station"]]
|
||||||
|
script = ExtResource("1_4m60m")
|
||||||
|
item_scene = ExtResource("2_nn8tr")
|
||||||
|
pickup_sound = ExtResource("4_0wtc7")
|
||||||
|
notification_audio = NodePath("../AudioStreamPlayer3DNotification")
|
||||||
|
ambient_audio = NodePath("../AudioStreamPlayer3DAmbient")
|
||||||
|
snap_zone = NodePath("../SnapZone")
|
||||||
|
synchronizer = NodePath("../MultiplayerSynchronizer")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="CubeSideDispenser" index="0" unique_id=1974757539]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
shape = SubResource("CylinderShape3D_24d3s")
|
||||||
|
|
||||||
|
[node name="SlideOffDome" parent="CubeSideDispenser" index="1" unique_id=1427609426 instance=ExtResource("4_nn8tr")]
|
||||||
|
|
||||||
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="CubeSideDispenser" index="2" unique_id=1172420592]
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CubeSideDispenser/CSGCombiner3D" index="0" unique_id=1073546772]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
radius = 0.3
|
||||||
|
height = 1.0
|
||||||
|
sides = 32
|
||||||
|
|
||||||
|
[node name="Cubes" type="Node3D" parent="CubeSideDispenser" index="3" unique_id=100532970]
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="CubeSideDispenser/Cubes" index="0" unique_id=2040729886]
|
||||||
|
transform = Transform3D(0.9709369, 0, 0.23933554, 0, 1, 0, -0.23933554, 0, 0.9709369, -0.0038359165, 1.0421022, -0.1349423)
|
||||||
|
mesh = SubResource("BoxMesh_irf4n")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D2" type="MeshInstance3D" parent="CubeSideDispenser/Cubes" index="1" unique_id=2119335322]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.1336323, 1.0421022, 0.049409628)
|
||||||
|
mesh = SubResource("BoxMesh_irf4n")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D3" type="MeshInstance3D" parent="CubeSideDispenser/Cubes" index="2" unique_id=896999260]
|
||||||
|
transform = Transform3D(0.94914126, 0, -0.31485054, 0, 1, 0, 0.31485054, 0, 0.94914126, 0.021345377, 1.0421022, 0.13508391)
|
||||||
|
mesh = SubResource("BoxMesh_irf4n")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D4" type="MeshInstance3D" parent="CubeSideDispenser/Cubes" index="3" unique_id=1055210121]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.14830339, 1.0421022, 0.054090023)
|
||||||
|
mesh = SubResource("BoxMesh_irf4n")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D5" type="MeshInstance3D" parent="CubeSideDispenser/Cubes" index="4" unique_id=1800524097]
|
||||||
|
transform = Transform3D(0.966823, 0, -0.2554472, 0, 1, 0, 0.2554472, 0, 0.966823, 0.12695658, 1.0421022, -0.07926583)
|
||||||
|
mesh = SubResource("BoxMesh_irf4n")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D6" type="MeshInstance3D" parent="CubeSideDispenser/Cubes" index="5" unique_id=192094054]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.11111963, 1.0421022, -0.094003916)
|
||||||
|
mesh = SubResource("BoxMesh_irf4n")
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
extends StaticBody3D
|
class_name DirtStation
|
||||||
|
extends Station
|
||||||
|
|
||||||
@onready var snap_zone: XRToolsSnapZone = $XRToolsSnapZone
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
snap_zone.has_picked_up.connect(_makeDirty)
|
super.ready()
|
||||||
|
SweetLogger.debug("DirtStation {0} _ready", [name])
|
||||||
|
|
||||||
func _makeDirty(item) -> void:
|
|
||||||
|
# Called from Station base class
|
||||||
|
func on_object_picked_up(item: Node3D) -> 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")
|
SweetLogger.debug("Held object is not a Plate")
|
||||||
return
|
return
|
||||||
if not plate.is_dirty:
|
if not plate.is_dirty:
|
||||||
plate.is_dirty = true
|
plate.is_dirty = true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+23
-20
@@ -1,7 +1,8 @@
|
|||||||
[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="PackedScene" uid="uid://cbs8jiqe8rcmn" path="res://abstract/station.tscn" id="1_station"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dmyuqe5058sv3" path="res://sounds/220197__gameaudio__click-basic.wav" id="3_ucg2q"]
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
|
||||||
size = Vector3(0.5, 1, 0.5)
|
size = Vector3(0.5, 1, 0.5)
|
||||||
@@ -13,31 +14,33 @@ albedo_color = Color(0.45262197, 0.26770625, 0.2601587, 1)
|
|||||||
material = SubResource("StandardMaterial3D_qn1ku")
|
material = SubResource("StandardMaterial3D_qn1ku")
|
||||||
size = Vector3(0.5, 1, 0.5)
|
size = Vector3(0.5, 1, 0.5)
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_mep2a"]
|
[node name="DirtStation" unique_id=707500902 instance=ExtResource("1_station")]
|
||||||
size = Vector3(0.81640625, 0.5635376, 0.79351807)
|
|
||||||
|
|
||||||
[node name="DirtStation" type="StaticBody3D" unique_id=160842153 groups=["station"]]
|
[node name="StationMovement" parent="." index="0" unique_id=946873975 node_paths=PackedStringArray("station")]
|
||||||
|
station = NodePath("../DirtStation")
|
||||||
|
|
||||||
|
[node name="SnapZone" parent="." index="5" unique_id=1315859105]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0313971, 0)
|
||||||
|
collision_layer = 65536
|
||||||
|
snap_mode = 1
|
||||||
|
|
||||||
|
[node name="DirtStation" type="StaticBody3D" parent="." index="6" unique_id=160842153 node_paths=PackedStringArray("notification_audio", "ambient_audio", "snap_zone", "synchronizer") groups=["station"]]
|
||||||
script = ExtResource("1_hc1d4")
|
script = ExtResource("1_hc1d4")
|
||||||
|
pickup_sound = ExtResource("3_ucg2q")
|
||||||
|
drop_sound = ExtResource("3_ucg2q")
|
||||||
|
notification_audio = NodePath("../AudioStreamPlayer3DNotification")
|
||||||
|
ambient_audio = NodePath("../AudioStreamPlayer3DAmbient")
|
||||||
|
snap_zone = NodePath("../SnapZone")
|
||||||
|
synchronizer = NodePath("../MultiplayerSynchronizer")
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1400366312]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="DirtStation" index="0" unique_id=1400366312]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
shape = SubResource("BoxShape3D_24d3s")
|
shape = SubResource("BoxShape3D_24d3s")
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="CollisionShape3D" unique_id=55726639]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="DirtStation/CollisionShape3D" index="0" unique_id=55726639]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.008318901, 0, -0.022509098)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.008318901, 0, -0.022509098)
|
||||||
mesh = SubResource("BoxMesh_ay2w6")
|
mesh = SubResource("BoxMesh_ay2w6")
|
||||||
|
|
||||||
[node name="Label3D" type="Label3D" parent="CollisionShape3D" unique_id=1251766743]
|
[node name="Label3D" type="Label3D" parent="DirtStation/CollisionShape3D" index="1" unique_id=1251766743]
|
||||||
transform = Transform3D(0.9999992, 0, 0, 0, 0.99999946, 0, 0, 0, 0.9999992, 0.002797456, 0.6309581, -0.2812457)
|
transform = Transform3D(0.9999992, 0, 0, 0, 0.99999946, 0, 0, 0, 0.9999992, 0.002797456, 0.6309581, -0.2812457)
|
||||||
text = "Dirt"
|
text = "Dirt"
|
||||||
|
|
||||||
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=333161027 groups=["station"]]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5270121, 0)
|
|
||||||
collision_layer = 65536
|
|
||||||
collision_mask = 65540
|
|
||||||
script = ExtResource("2_v0ytd")
|
|
||||||
snap_mode = 1
|
|
||||||
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="XRToolsSnapZone" unique_id=1398712192]
|
|
||||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0.008666992, -0.11009073, -0.009353638)
|
|
||||||
shape = SubResource("BoxShape3D_mep2a")
|
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
[gd_scene format=3 uid="uid://dlw5geheupgpt"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="1_oowyn"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://bqtk1adk8umbx" path="res://sounds/220197__gameaudio__click-basic.wav" id="2_4mvh7"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_hgrxd"]
|
||||||
|
size = Vector3(0.6, 0.12802735, 0.6)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vlqg6"]
|
||||||
|
albedo_color = Color(0.45, 0.3012, 0.17099999, 1)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_p8umn"]
|
||||||
|
albedo_color = Color(0.38, 0.35162666, 0.3268, 1)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_oowyn"]
|
||||||
|
albedo_color = Color(0.38, 0.35162666, 0.3268, 1)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
|
||||||
|
size = Vector3(0.6, 0.34027833, 0.6)
|
||||||
|
|
||||||
|
[node name="Hatch" type="StaticBody3D" unique_id=1341321603 groups=["persistent_inventory"]]
|
||||||
|
|
||||||
|
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=2093161322 groups=["station_zone"]]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2495586, 0)
|
||||||
|
collision_layer = 65536
|
||||||
|
collision_mask = 65540
|
||||||
|
script = ExtResource("1_oowyn")
|
||||||
|
stash_sound = ExtResource("2_4mvh7")
|
||||||
|
snap_mode = 1
|
||||||
|
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
||||||
|
|
||||||
|
[node name="CollisionShape3D2" type="CollisionShape3D" parent="XRToolsSnapZone" unique_id=1997533747]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.002, 0)
|
||||||
|
shape = SubResource("BoxShape3D_hgrxd")
|
||||||
|
|
||||||
|
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="XRToolsSnapZone" unique_id=1729156185]
|
||||||
|
|
||||||
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=2092063969]
|
||||||
|
use_collision = true
|
||||||
|
|
||||||
|
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1242328035]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.48000002, 0)
|
||||||
|
size = Vector3(0.599, 1, 0.3)
|
||||||
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="CSGBox3D2" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1252817409]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.07, 0)
|
||||||
|
size = Vector3(0.6, 0.3, 0.6)
|
||||||
|
material = SubResource("StandardMaterial3D_p8umn")
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D/CSGBox3D2" unique_id=1648749119]
|
||||||
|
transform = Transform3D(-4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0, 1, 0.005000025, 0, 0)
|
||||||
|
operation = 1
|
||||||
|
radius = 0.25
|
||||||
|
height = 0.67
|
||||||
|
sides = 32
|
||||||
|
|
||||||
|
[node name="CSGBox3D3" type="CSGBox3D" parent="CSGCombiner3D" unique_id=740791264]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.14530161, 0.48000002, -0.15)
|
||||||
|
size = Vector3(0.120000005, 1, 0.120000005)
|
||||||
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="CSGBox3D4" type="CSGBox3D" parent="CSGCombiner3D" unique_id=249869254]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.14650056, 0.48000002, -0.15)
|
||||||
|
size = Vector3(0.120000005, 1, 0.120000005)
|
||||||
|
material = SubResource("StandardMaterial3D_vlqg6")
|
||||||
|
|
||||||
|
[node name="CSGBox3D5" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1242869868]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.1, 0)
|
||||||
|
size = Vector3(0.6, 1.8000001, 0.6)
|
||||||
|
material = SubResource("StandardMaterial3D_oowyn")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1832317008]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0501393, 0)
|
||||||
|
shape = SubResource("BoxShape3D_vlqg6")
|
||||||
+56
-118
@@ -1,128 +1,66 @@
|
|||||||
extends StaticBody3D
|
class_name Hob
|
||||||
|
extends WorkStation
|
||||||
const RECIPE_MANAGER = preload("res://RecipeManager.gd")
|
|
||||||
|
|
||||||
@export var cook_speed = 1
|
@export var cook_speed = 1
|
||||||
@onready var snap_zone: XRToolsSnapZone = $XRToolsSnapZone
|
|
||||||
@onready var progress_bar: ProgressBar3D = $ProgressBar3D
|
|
||||||
|
|
||||||
## Cooking state. All three are replicated (see Hob.tscn's Sync node) and each
|
@export var animation_player: AnimationPlayer
|
||||||
## refreshes the display when it changes, which is what makes the hob look alive
|
|
||||||
## on a client: only the world owner runs the station's _process and its snap
|
|
||||||
## zone, so a client never reaches the code below by itself and would otherwise
|
|
||||||
## show a hob that never lights up.
|
|
||||||
var time_cooked: float = 0.0: set = _set_time_cooked
|
|
||||||
var cooking_result: String = "": set = _set_cooking_result
|
|
||||||
var cooking_result_time: float = 0.0: set = _set_cooking_result_time
|
|
||||||
|
|
||||||
|
|
||||||
func _set_time_cooked(value: float) -> void:
|
|
||||||
if is_equal_approx(time_cooked, value):
|
|
||||||
return
|
|
||||||
time_cooked = value
|
|
||||||
_refresh_display()
|
|
||||||
|
|
||||||
|
|
||||||
func _set_cooking_result(value: String) -> void:
|
|
||||||
if cooking_result == value:
|
|
||||||
return
|
|
||||||
cooking_result = value
|
|
||||||
_refresh_display()
|
|
||||||
# The flames follow whether we're cooking, on every peer.
|
|
||||||
_play_animation("hob" if not cooking_result.is_empty() else "RESET")
|
|
||||||
|
|
||||||
|
|
||||||
func _set_cooking_result_time(value: float) -> void:
|
|
||||||
if is_equal_approx(cooking_result_time, value):
|
|
||||||
return
|
|
||||||
cooking_result_time = value
|
|
||||||
_refresh_display()
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
if not progress_bar or progress_bar is not ProgressBar3D:
|
super.ready()
|
||||||
push_error("Hob missing reference to progressbar, or wrong type:", progress_bar)
|
SweetLogger.debug("Hob {0} _ready", [name])
|
||||||
snap_zone.has_picked_up.connect(_on_object_picked_up)
|
if not animation_player:
|
||||||
snap_zone.has_dropped.connect(_on_object_dropped)
|
SweetLogger.warning("{0} missing animation_player reference", [name])
|
||||||
_refresh_display()
|
|
||||||
|
func _start_cooking(id: String, work: float) -> void:
|
||||||
|
animation_player.play("hob")
|
||||||
|
if not enabled:
|
||||||
|
return
|
||||||
|
|
||||||
|
result_id = id
|
||||||
|
max_work = work
|
||||||
|
SweetLogger.info("Start cooking - result_id: {0}, max_work: {1}", [result_id, max_work])
|
||||||
|
# The flames follow whether we're cooking, on every peer.
|
||||||
|
|
||||||
|
|
||||||
func _play_animation(name: String) -> void:
|
|
||||||
# Replicated setters can fire before the node is in the tree (spawn payload),
|
|
||||||
# when the @onready children don't exist yet.
|
|
||||||
var player := get_node_or_null("AnimationPlayer") as AnimationPlayer
|
|
||||||
if player:
|
|
||||||
player.play(name)
|
|
||||||
|
|
||||||
|
|
||||||
func _refresh_display() -> void:
|
|
||||||
# Guarded for the same reason as _play_animation.
|
|
||||||
if not progress_bar:
|
|
||||||
return
|
|
||||||
var progress := 0.0
|
|
||||||
if cooking_result and cooking_result_time > 0:
|
|
||||||
progress = clampf(float(time_cooked) / cooking_result_time, 0.0, 1.0)
|
|
||||||
|
|
||||||
progress_bar.set_progress(progress)
|
|
||||||
progress_bar.set_bar_visible(not cooking_result.is_empty())
|
|
||||||
progress_bar.override_fill_color(Color.RED if cooking_result == "charcoal" else Color.GREEN)
|
|
||||||
|
|
||||||
func _on_object_picked_up(_item) -> void:
|
|
||||||
print("Hob: object picked up: ", _item)
|
|
||||||
|
|
||||||
# Find the CookableItem in held object
|
|
||||||
var _food_item = _item.get_node_or_null("FoodItem") as FoodItem
|
|
||||||
if not _food_item:
|
|
||||||
print("Hob: held object is not a FoodItem")
|
|
||||||
return
|
|
||||||
var result = RECIPE_MANAGER.get_cooking_result(_food_item.id)
|
|
||||||
if not result:
|
|
||||||
print("Hob: held a FoodItem that is not cookable, id: %s result: %s" % [_food_item.id, result])
|
|
||||||
return
|
|
||||||
|
|
||||||
cooking_result = result
|
|
||||||
cooking_result_time = RECIPE_MANAGER.get_cooking_time(_food_item.id)
|
|
||||||
print("Hob: set cooking_result ", cooking_result)
|
|
||||||
# The setters above already refresh the display and start the flames.
|
|
||||||
|
|
||||||
|
|
||||||
func _on_object_dropped() -> void:
|
|
||||||
print("Hob: object drop ")
|
|
||||||
time_cooked = 0
|
|
||||||
cooking_result = ""
|
|
||||||
cooking_result_time = 0
|
|
||||||
|
|
||||||
|
|
||||||
func convert_held_to_item(_item: String) -> void:
|
|
||||||
if not NetworkManager.owns_world():
|
|
||||||
return
|
|
||||||
print("Hob converting ", _item)
|
|
||||||
|
|
||||||
var old_pickable = snap_zone.picked_up_object
|
|
||||||
if not old_pickable:
|
|
||||||
push_warning("Hob finished cooking _item, but snap zone is missing its reference")
|
|
||||||
return
|
|
||||||
|
|
||||||
# Spawn the new item through the server so it replicates to every peer
|
|
||||||
# (including late joiners), in the old item's position.
|
|
||||||
var original_transform = old_pickable.global_transform
|
|
||||||
var new_scene_instance = NetworkManager.spawn_item(RECIPE_MANAGER.get_item_scene(_item).resource_path, original_transform)
|
|
||||||
|
|
||||||
# Drop and free the old item and pick up the new one
|
|
||||||
print("Hob freeing old_pickable ", old_pickable)
|
|
||||||
snap_zone.drop_object()
|
|
||||||
NetworkManager.despawn_item(old_pickable)
|
|
||||||
snap_zone.pick_up_object(new_scene_instance)
|
|
||||||
|
|
||||||
|
|
||||||
# If cooking something, progress cooking, when done, convert item
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
if cooking_result:
|
super.process(delta)
|
||||||
#print("Hob cooking_result: ", cooking_result)
|
if not enabled:
|
||||||
time_cooked += cook_speed * delta
|
return
|
||||||
_refresh_display()
|
if result_id:
|
||||||
if time_cooked >= cooking_result_time:
|
add_work(cook_speed * delta)
|
||||||
time_cooked = 0
|
|
||||||
convert_held_to_item(cooking_result)
|
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func refresh_display() -> void:
|
||||||
|
super.refresh_display()
|
||||||
|
progress_bar.override_fill_color(Color.RED if result_id == "charcoal" else Color.GREEN)
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func on_food_item_picked_up(food_item: FoodItem) -> void:
|
||||||
|
SweetLogger.debug("Object picked up: {0}", [food_item])
|
||||||
|
|
||||||
|
if not food_item:
|
||||||
|
SweetLogger.debug("Held object is not a FoodItem")
|
||||||
|
return
|
||||||
|
var result = RecipeManager.get_cooking_result(food_item.id)
|
||||||
|
if not result:
|
||||||
|
SweetLogger.debug("Held a FoodItem that is not cookable, id: {0} result: {1}", [food_item.id, result])
|
||||||
|
return
|
||||||
|
|
||||||
|
_start_cooking(result, RecipeManager.get_cooking_time(food_item.id))
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func on_food_item_dropped(_food_item: FoodItem):
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
animation_player.play("RESET")
|
||||||
|
reset()
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func on_work_complete():
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
animation_player.play("RESET")
|
||||||
|
convert_item()
|
||||||
|
|||||||
@@ -1,20 +1,27 @@
|
|||||||
extends StaticBody3D
|
class_name ItemDispenser
|
||||||
|
extends Station
|
||||||
|
|
||||||
|
@export var item_scene: PackedScene
|
||||||
|
|
||||||
@export var item_scene : PackedScene
|
|
||||||
@onready var snap_zone: XRToolsSnapZone = $XRToolsSnapZone
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
super.ready()
|
||||||
|
SweetLogger.debug("ItemDispenser {0} _ready", [name])
|
||||||
if not item_scene:
|
if not item_scene:
|
||||||
push_error("Item dispenser is missing a reference to it's item to dispense")
|
SweetLogger.warning("{0} missing item_scene reference", [name])
|
||||||
if not snap_zone:
|
|
||||||
push_error("Item dispenser is missing a reference to its snap zone child")
|
|
||||||
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
|
super.process(delta)
|
||||||
if not NetworkManager.owns_world():
|
if not NetworkManager.owns_world():
|
||||||
return
|
return
|
||||||
|
if not enabled:
|
||||||
|
if snap_zone.picked_up_object:
|
||||||
|
var item := snap_zone.picked_up_object
|
||||||
|
snap_zone.drop_object()
|
||||||
|
NetworkManager.despawn_item(item)
|
||||||
|
return
|
||||||
if not snap_zone.picked_up_object:
|
if not snap_zone.picked_up_object:
|
||||||
|
SweetLogger.debug("Missing item, spawning new item")
|
||||||
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)
|
||||||
snap_zone.pick_up_object(new_item)
|
snap_zone.pick_up_object(new_item)
|
||||||
|
|||||||
@@ -1,107 +1,114 @@
|
|||||||
[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://cbs8jiqe8rcmn" path="res://abstract/station.tscn" id="1_station"]
|
||||||
[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="AudioStream" uid="uid://dmyuqe5058sv3" path="res://sounds/220197__gameaudio__click-basic.wav" id="4_jgjsq"]
|
||||||
[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"]
|
|
||||||
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" unique_id=707500902 instance=ExtResource("1_station")]
|
||||||
script = ExtResource("1_jm0ik")
|
|
||||||
item_scene = ExtResource("2_tfo2i")
|
|
||||||
|
|
||||||
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=238176038]
|
[node name="StationMovement" parent="." index="0" unique_id=946873975 node_paths=PackedStringArray("station")]
|
||||||
|
station = NodePath("../PlateDispenser")
|
||||||
|
|
||||||
|
[node name="SnapZone" parent="." index="5" unique_id=1315859105]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00070536137, 1.1603245, -0.002165556)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00070536137, 1.1603245, -0.002165556)
|
||||||
collision_layer = 65536
|
collision_layer = 65536
|
||||||
collision_mask = 65536
|
collision_mask = 65536
|
||||||
script = ExtResource("3_lr065")
|
|
||||||
snap_mode = 1
|
snap_mode = 1
|
||||||
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="XRToolsSnapZone" unique_id=1942470044]
|
[node name="PlateDispenser" type="StaticBody3D" parent="." index="6" unique_id=710538846 node_paths=PackedStringArray("notification_audio", "ambient_audio", "snap_zone", "synchronizer") groups=["station"]]
|
||||||
shape = SubResource("SphereShape3D_xmbo2")
|
script = ExtResource("1_jm0ik")
|
||||||
|
item_scene = ExtResource("2_tfo2i")
|
||||||
|
pickup_sound = ExtResource("4_jgjsq")
|
||||||
|
notification_audio = NodePath("../AudioStreamPlayer3DNotification")
|
||||||
|
ambient_audio = NodePath("../AudioStreamPlayer3DAmbient")
|
||||||
|
snap_zone = NodePath("../SnapZone")
|
||||||
|
synchronizer = NodePath("../MultiplayerSynchronizer")
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=831688237]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="PlateDispenser" index="0" 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="PlateDispenser" index="1" unique_id=1427609426 instance=ExtResource("4_tfo2i")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.061363697, 0)
|
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="PlateDispenser" index="2" unique_id=696108271]
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1339763385]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="PlateDispenser/CSGCombiner3D" index="0" 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="PlateDispenser" index="3" unique_id=1364909922]
|
||||||
|
|
||||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Plates" unique_id=2128650644]
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="PlateDispenser/Plates" index="0" unique_id=2128650644]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0289642, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0289642, 0)
|
||||||
autosmooth = true
|
autosmooth = true
|
||||||
smoothing_angle = 103.9
|
smoothing_angle = 103.9
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Plates/CSGCombiner3D" unique_id=472067854]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="PlateDispenser/Plates/CSGCombiner3D" index="0" unique_id=472067854]
|
||||||
radius = 0.2
|
radius = 0.2
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Plates/CSGCombiner3D/CSGCylinder3D" unique_id=7092994]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="PlateDispenser/Plates/CSGCombiner3D/CSGCylinder3D" index="0" unique_id=7092994]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.010312311, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.010312311, 0)
|
||||||
operation = 2
|
operation = 2
|
||||||
radius = 0.15
|
radius = 0.15
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Plates/CSGCombiner3D" unique_id=23957958]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="PlateDispenser/Plates/CSGCombiner3D" index="1" unique_id=23957958]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.027119078, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.027119078, 0)
|
||||||
radius = 0.15
|
radius = 0.15
|
||||||
height = 0.02
|
height = 0.02
|
||||||
|
|
||||||
[node name="CSGCombiner3D2" type="CSGCombiner3D" parent="Plates" unique_id=404631280]
|
[node name="CSGCombiner3D2" type="CSGCombiner3D" parent="PlateDispenser/Plates" index="1" unique_id=404631280]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0762081, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0762081, 0)
|
||||||
autosmooth = true
|
autosmooth = true
|
||||||
smoothing_angle = 103.9
|
smoothing_angle = 103.9
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Plates/CSGCombiner3D2" unique_id=943162425]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="PlateDispenser/Plates/CSGCombiner3D2" index="0" unique_id=943162425]
|
||||||
radius = 0.2
|
radius = 0.2
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Plates/CSGCombiner3D2/CSGCylinder3D" unique_id=218364524]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="PlateDispenser/Plates/CSGCombiner3D2/CSGCylinder3D" index="0" unique_id=218364524]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.010312311, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.010312311, 0)
|
||||||
operation = 2
|
operation = 2
|
||||||
radius = 0.15
|
radius = 0.15
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Plates/CSGCombiner3D2" unique_id=1548327331]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="PlateDispenser/Plates/CSGCombiner3D2" index="1" unique_id=1548327331]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.027119078, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.027119078, 0)
|
||||||
radius = 0.15
|
radius = 0.15
|
||||||
height = 0.02
|
height = 0.02
|
||||||
|
|
||||||
[node name="CSGCombiner3D3" type="CSGCombiner3D" parent="Plates" unique_id=1506211353]
|
[node name="CSGCombiner3D3" type="CSGCombiner3D" parent="PlateDispenser/Plates" index="2" unique_id=1506211353]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1214186, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1214186, 0)
|
||||||
autosmooth = true
|
autosmooth = true
|
||||||
smoothing_angle = 103.9
|
smoothing_angle = 103.9
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Plates/CSGCombiner3D3" unique_id=739830577]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="PlateDispenser/Plates/CSGCombiner3D3" index="0" unique_id=739830577]
|
||||||
radius = 0.2
|
radius = 0.2
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Plates/CSGCombiner3D3/CSGCylinder3D" unique_id=1882120753]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="PlateDispenser/Plates/CSGCombiner3D3/CSGCylinder3D" index="0" unique_id=1882120753]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.010312311, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.010312311, 0)
|
||||||
operation = 2
|
operation = 2
|
||||||
radius = 0.15
|
radius = 0.15
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Plates/CSGCombiner3D3" unique_id=1904629745]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="PlateDispenser/Plates/CSGCombiner3D3" index="1" unique_id=1904629745]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.027119078, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.027119078, 0)
|
||||||
radius = 0.15
|
radius = 0.15
|
||||||
height = 0.02
|
height = 0.02
|
||||||
|
|||||||
@@ -0,0 +1,124 @@
|
|||||||
|
[gd_scene format=3 uid="uid://sc6i0i1f0o48"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cbs8jiqe8rcmn" path="res://abstract/station.tscn" id="1_station"]
|
||||||
|
[ext_resource type="Script" uid="uid://0y6wnjcsum6" path="res://stations/item_dispenser.gd" id="2_30d2d"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://drwuhqb3pjtiy" path="res://items/potato.tscn" id="3_mjqsn"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dmyuqe5058sv3" path="res://sounds/220197__gameaudio__click-basic.wav" id="4_8orw3"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="5_ur331"]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_24d3s"]
|
||||||
|
height = 1.0
|
||||||
|
radius = 0.3
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_d4wpw"]
|
||||||
|
albedo_color = Color(0.48, 0.34336, 0.1872, 1)
|
||||||
|
|
||||||
|
[node name="PotatoDispenser" unique_id=707500902 instance=ExtResource("1_station")]
|
||||||
|
|
||||||
|
[node name="StationMovement" parent="." index="0" unique_id=946873975 node_paths=PackedStringArray("station")]
|
||||||
|
station = NodePath("../PotatoDispenser")
|
||||||
|
|
||||||
|
[node name="SnapZone" parent="." index="5" unique_id=1315859105]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00070536137, 1.0162505, -0.002165556)
|
||||||
|
collision_layer = 65536
|
||||||
|
collision_mask = 65536
|
||||||
|
snap_mode = 1
|
||||||
|
|
||||||
|
[node name="PotatoDispenser" type="StaticBody3D" parent="." index="6" unique_id=1720683779 node_paths=PackedStringArray("notification_audio", "ambient_audio", "snap_zone", "synchronizer") groups=["station"]]
|
||||||
|
script = ExtResource("2_30d2d")
|
||||||
|
item_scene = ExtResource("3_mjqsn")
|
||||||
|
pickup_sound = ExtResource("4_8orw3")
|
||||||
|
notification_audio = NodePath("../AudioStreamPlayer3DNotification")
|
||||||
|
ambient_audio = NodePath("../AudioStreamPlayer3DAmbient")
|
||||||
|
snap_zone = NodePath("../SnapZone")
|
||||||
|
synchronizer = NodePath("../MultiplayerSynchronizer")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="PotatoDispenser" index="0" unique_id=1470079357]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
shape = SubResource("CylinderShape3D_24d3s")
|
||||||
|
|
||||||
|
[node name="SlideOffDome" parent="PotatoDispenser" index="1" unique_id=1427609426 instance=ExtResource("5_ur331")]
|
||||||
|
collision_layer = 4
|
||||||
|
collision_mask = 0
|
||||||
|
|
||||||
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="PotatoDispenser" index="2" unique_id=1746426494]
|
||||||
|
|
||||||
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="PotatoDispenser/CSGCombiner3D" index="0" unique_id=858311379]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
radius = 0.3
|
||||||
|
height = 1.0
|
||||||
|
sides = 32
|
||||||
|
|
||||||
|
[node name="CSGCombiner3DPotato" type="CSGCombiner3D" parent="PotatoDispenser/CSGCombiner3D" index="1" unique_id=462017195]
|
||||||
|
|
||||||
|
[node name="CSGSphere3D" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D/CSGCombiner3DPotato" index="0" unique_id=359972032]
|
||||||
|
transform = Transform3D(0.7382242, 0, -0.6745554, 0, 1, 0, 0.6745554, 0, 0.7382242, -0.15066577, 1.0408545, 0.076017424)
|
||||||
|
radius = 0.06
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D2" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D/CSGCombiner3DPotato/CSGSphere3D" index="0" unique_id=1185082311]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.06550818)
|
||||||
|
radius = 0.053
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D2" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D/CSGCombiner3DPotato" index="1" unique_id=1791611208]
|
||||||
|
transform = Transform3D(0.9110552, 0.37138447, -0.17903017, -0.38194957, 0.92377764, -0.02737245, 0.15521842, 0.09331828, 0.98346263, 0.07202275, 1.0408545, 0.17340909)
|
||||||
|
radius = 0.06
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D2" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D/CSGCombiner3DPotato/CSGSphere3D2" index="0" unique_id=421732580]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.06550818)
|
||||||
|
radius = 0.053
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D3" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D/CSGCombiner3DPotato" index="2" unique_id=1846822725]
|
||||||
|
transform = Transform3D(0.915982, 0, 0.4012194, 0, 1, 0, -0.4012194, 0, 0.915982, -0.023129582, 1.0408545, -0.17174377)
|
||||||
|
radius = 0.06
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D2" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D/CSGCombiner3DPotato/CSGSphere3D3" index="0" unique_id=186002472]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.06550818)
|
||||||
|
radius = 0.053
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D4" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D/CSGCombiner3DPotato" index="3" unique_id=1463825677]
|
||||||
|
transform = Transform3D(-0.6086207, 0, 0.79346126, 0, 1, 0, -0.79346126, 0, -0.6086207, -0.06466554, 1.0408545, 0.15114635)
|
||||||
|
radius = 0.06
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D2" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D/CSGCombiner3DPotato/CSGSphere3D4" index="0" unique_id=1513828324]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.06550818)
|
||||||
|
radius = 0.053
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D5" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D/CSGCombiner3DPotato" index="4" unique_id=1192971071]
|
||||||
|
transform = Transform3D(-0.9572301, 0, -0.2893278, 0, 1, 0, 0.2893278, 0, -0.9572301, -0.13095556, 1.0408545, -0.10415963)
|
||||||
|
radius = 0.06
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D2" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D/CSGCombiner3DPotato/CSGSphere3D5" index="0" unique_id=216752249]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.06550818)
|
||||||
|
radius = 0.053
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D" index="2" unique_id=502335906]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.15826963, 1.0408545, -0.03307341)
|
||||||
|
radius = 0.06
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D2" type="CSGSphere3D" parent="PotatoDispenser/CSGCombiner3D/CSGSphere3D" index="0" unique_id=1283597847]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.06550818)
|
||||||
|
radius = 0.053
|
||||||
|
radial_segments = 32
|
||||||
|
material = SubResource("StandardMaterial3D_d4wpw")
|
||||||
@@ -1,96 +1,103 @@
|
|||||||
[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://cbs8jiqe8rcmn" path="res://abstract/station.tscn" id="1_station"]
|
||||||
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="3_3xuvi"]
|
[ext_resource type="PackedScene" uid="uid://dpot5qie20vf6" path="res://items/burger.tscn" id="2_mep2a"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cexxfyw03hr81" path="res://Textures/1.png" id="4_1f5le"]
|
[ext_resource type="Texture2D" uid="uid://7jt8macx4f5m" 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="AudioStream" uid="uid://dmyuqe5058sv3" path="res://sounds/220197__gameaudio__click-basic.wav" id="4_8ou8n"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://mpapt5mkbuao" path="res://prefabs/slide_off_dome.tscn" id="5_mep2a"]
|
||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_xmbo2"]
|
|
||||||
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"]
|
||||||
albedo_texture = ExtResource("4_1f5le")
|
albedo_texture = ExtResource("4_1f5le")
|
||||||
|
|
||||||
[node name="RawBurgerDispenser" type="StaticBody3D" unique_id=235630131]
|
[node name="RawBurgerDispenser" unique_id=707500902 instance=ExtResource("1_station")]
|
||||||
script = ExtResource("1_gkb3v")
|
|
||||||
item_scene = ExtResource("2_mep2a")
|
|
||||||
|
|
||||||
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=1523586273]
|
[node name="StationMovement" parent="." index="0" unique_id=946873975 node_paths=PackedStringArray("station")]
|
||||||
|
station = NodePath("../RawBurgerDispenser")
|
||||||
|
|
||||||
|
[node name="SnapZone" parent="." index="5" unique_id=1315859105]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00070536137, 1.0645258, -0.002165556)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00070536137, 1.0645258, -0.002165556)
|
||||||
collision_layer = 65536
|
collision_layer = 65536
|
||||||
collision_mask = 65536
|
collision_mask = 65536
|
||||||
script = ExtResource("3_3xuvi")
|
|
||||||
snap_mode = 1
|
snap_mode = 1
|
||||||
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="XRToolsSnapZone" unique_id=2105824734]
|
[node name="RawBurgerDispenser" type="StaticBody3D" parent="." index="6" unique_id=235630131 node_paths=PackedStringArray("notification_audio", "ambient_audio", "snap_zone", "synchronizer") groups=["station"]]
|
||||||
shape = SubResource("SphereShape3D_xmbo2")
|
script = ExtResource("1_gkb3v")
|
||||||
|
item_scene = ExtResource("2_mep2a")
|
||||||
|
pickup_sound = ExtResource("4_8ou8n")
|
||||||
|
notification_audio = NodePath("../AudioStreamPlayer3DNotification")
|
||||||
|
ambient_audio = NodePath("../AudioStreamPlayer3DAmbient")
|
||||||
|
snap_zone = NodePath("../SnapZone")
|
||||||
|
synchronizer = NodePath("../MultiplayerSynchronizer")
|
||||||
|
|
||||||
[node name="SlideOffDome" parent="." unique_id=1427609426 instance=ExtResource("5_mep2a")]
|
[node name="SlideOffDome" parent="RawBurgerDispenser" index="0" unique_id=1427609426 instance=ExtResource("5_mep2a")]
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=378049928]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="RawBurgerDispenser" index="1" 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="RawBurgerDispenser" index="2" unique_id=1275577257]
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1973748218]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="RawBurgerDispenser/CSGCombiner3D" index="0" unique_id=1973748218]
|
||||||
|
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="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=590219609]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="RawBurgerDispenser/CSGCombiner3D" index="1" unique_id=590219609]
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.9532462, 0.30219492, 0, -0.30219492, 0.9532462, -0.1276815, 1.0521446, -0.052202225)
|
transform = Transform3D(1, 0, 0, 0, 0.9532462, 0.30219492, 0, -0.30219492, 0.9532462, -0.1276815, 1.0521446, -0.052202225)
|
||||||
radius = 0.08300781
|
radius = 0.08300781
|
||||||
height = 0.028435059
|
height = 0.028435059
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_di04w")
|
material = SubResource("StandardMaterial3D_di04w")
|
||||||
|
|
||||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=177377476]
|
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="RawBurgerDispenser/CSGCombiner3D" index="2" unique_id=177377476]
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.9694763, 0.245185, 0, -0.245185, 0.9694763, 0.08106685, 1.0391599, -0.119440794)
|
transform = Transform3D(1, 0, 0, 0, 0.9694763, 0.245185, 0, -0.245185, 0.9694763, 0.08106685, 1.0391599, -0.119440794)
|
||||||
radius = 0.08300781
|
radius = 0.08300781
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_di04w")
|
material = SubResource("StandardMaterial3D_di04w")
|
||||||
|
|
||||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=622291452]
|
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="RawBurgerDispenser/CSGCombiner3D" index="3" unique_id=622291452]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.19005477, 1.0198405, 0.049397707)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.19005477, 1.0198405, 0.049397707)
|
||||||
radius = 0.08300781
|
radius = 0.08300781
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_di04w")
|
material = SubResource("StandardMaterial3D_di04w")
|
||||||
|
|
||||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=703594207]
|
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="RawBurgerDispenser/CSGCombiner3D" index="4" unique_id=703594207]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.026051283, 1.0175319, 0.0042250156)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.026051283, 1.0175319, 0.0042250156)
|
||||||
radius = 0.08300781
|
radius = 0.08300781
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_di04w")
|
material = SubResource("StandardMaterial3D_di04w")
|
||||||
|
|
||||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=955808722]
|
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="RawBurgerDispenser/CSGCombiner3D" index="5" unique_id=955808722]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.05739355, 1.0197641, 0.13219571)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.05739355, 1.0197641, 0.13219571)
|
||||||
radius = 0.08300781
|
radius = 0.08300781
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_di04w")
|
material = SubResource("StandardMaterial3D_di04w")
|
||||||
|
|
||||||
[node name="CSGCylinder3D7" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=1066788957]
|
[node name="CSGCylinder3D7" type="CSGCylinder3D" parent="RawBurgerDispenser/CSGCombiner3D" index="6" unique_id=1066788957]
|
||||||
transform = Transform3D(0.9111114, 0.40515354, 0.075673, -0.41123694, 0.8813372, 0.2326565, 0.027568169, -0.24309555, 0.9696106, 0.14799988, 1.0345665, 0.11710405)
|
transform = Transform3D(0.9111114, 0.40515354, 0.075673, -0.41123694, 0.8813372, 0.2326565, 0.027568169, -0.24309555, 0.9696106, 0.14799988, 1.0345665, 0.11710405)
|
||||||
radius = 0.08300781
|
radius = 0.08300781
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_di04w")
|
material = SubResource("StandardMaterial3D_di04w")
|
||||||
|
|
||||||
[node name="CSGCylinder3D8" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=553053058]
|
[node name="CSGCylinder3D8" type="CSGCylinder3D" parent="RawBurgerDispenser/CSGCombiner3D" index="7" unique_id=553053058]
|
||||||
transform = Transform3D(0.9541017, 0.29948288, 0, -0.29948288, 0.9541017, 0, 0, 0, 1, 0.041060925, 1.0337045, 0.18304396)
|
transform = Transform3D(0.9541017, 0.29948288, 0, -0.29948288, 0.9541017, 0, 0, 0, 1, 0.041060925, 1.0337045, 0.18304396)
|
||||||
radius = 0.08300781
|
radius = 0.08300781
|
||||||
height = 0.03
|
height = 0.03
|
||||||
sides = 16
|
sides = 16
|
||||||
material = SubResource("StandardMaterial3D_di04w")
|
material = SubResource("StandardMaterial3D_di04w")
|
||||||
|
|
||||||
[node name="CSGCylinder3D9" type="CSGCylinder3D" parent="CSGCombiner3D" unique_id=980376661]
|
[node name="CSGCylinder3D9" type="CSGCylinder3D" parent="RawBurgerDispenser/CSGCombiner3D" index="8" unique_id=980376661]
|
||||||
transform = Transform3D(0.8510151, 0.22759955, 0.47325662, -0.16729629, 0.97174567, -0.16649997, -0.49778044, 0.06251989, 0.8650468, 0.2036674, 1.0335208, -0.024382353)
|
transform = Transform3D(0.8510151, 0.22759955, 0.47325662, -0.16729629, 0.97174567, -0.16649997, -0.49778044, 0.06251989, 0.8650468, 0.2036674, 1.0335208, -0.024382353)
|
||||||
radius = 0.08300781
|
radius = 0.08300781
|
||||||
height = 0.03
|
height = 0.03
|
||||||
|
|||||||
+53
-76
@@ -1,94 +1,71 @@
|
|||||||
extends StaticBody3D
|
class_name Sink
|
||||||
|
extends WorkStation
|
||||||
|
|
||||||
const plate_wash_time: float = 3.0
|
const plate_wash_time: float = 3.0
|
||||||
@export_range(0.0, 10.0, 0.1) var wash_speed: float = 1.0
|
@export_range(0.0, 10.0, 0.1) var wash_speed: float = 1.0
|
||||||
|
|
||||||
@onready var snap_zone: XRToolsSnapZone = $XRToolsSnapZone
|
|
||||||
@onready var progress_bar: ProgressBar3D = $ProgressBar3D
|
|
||||||
|
|
||||||
## Washing state. Both are replicated (see sink.tscn's Sync node) and refresh the
|
|
||||||
## display when they change. Only the world owner runs this station's _process
|
|
||||||
## and snap zone, so without this a client never updates its bar — it stayed
|
|
||||||
## frozen on screen long after the plate came out clean.
|
|
||||||
var time_washed: float = 0.0: set = _set_time_washed
|
|
||||||
var is_washing: bool = false: set = _set_is_washing
|
|
||||||
var plate: PlateController = null
|
var plate: PlateController = null
|
||||||
|
|
||||||
|
|
||||||
func _set_time_washed(value: float) -> void:
|
func _ready() -> void:
|
||||||
if is_equal_approx(time_washed, value):
|
super.ready()
|
||||||
|
SweetLogger.debug("Sink {0} _ready", [name])
|
||||||
|
|
||||||
|
|
||||||
|
func _start_washing(work: float) -> void:
|
||||||
|
if not enabled:
|
||||||
return
|
return
|
||||||
time_washed = value
|
result_id = "clean"
|
||||||
_refresh_progress_bar()
|
max_work = work
|
||||||
|
SweetLogger.info("Start washing - max_work: {0}", [max_work])
|
||||||
|
|
||||||
|
func _set_effects_playing(is_playing: bool) -> void:
|
||||||
func _set_is_washing(value: bool) -> void:
|
SweetLogger.debug("Set Sink effects: {0}", [is_playing])
|
||||||
if is_washing == value:
|
|
||||||
return
|
|
||||||
is_washing = value
|
|
||||||
_refresh_progress_bar()
|
|
||||||
_set_effects_playing(is_washing)
|
|
||||||
|
|
||||||
|
|
||||||
# Water, bubbles and the animation follow the washing state on every peer, not
|
|
||||||
# just the one running the logic.
|
|
||||||
func _set_effects_playing(playing: bool) -> void:
|
|
||||||
var player := get_node_or_null("AnimationPlayer") as AnimationPlayer
|
var player := get_node_or_null("AnimationPlayer") as AnimationPlayer
|
||||||
if player:
|
if player:
|
||||||
player.play("working" if playing else "RESET")
|
player.play("working" if is_playing else "RESET")
|
||||||
for effect in ["water", "bubbles", "GPUParticles3D"]:
|
for effect in ["water", "bubbles", "GPUParticles3D"]:
|
||||||
var node := get_node_or_null(effect) as Node3D
|
var node := get_node_or_null(effect) as Node3D
|
||||||
if node:
|
if node:
|
||||||
node.visible = playing
|
node.visible = is_playing
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
if not progress_bar or progress_bar is not ProgressBar3D:
|
|
||||||
push_error("Sink missing reference to progressbar, or wrong type:", progress_bar)
|
|
||||||
|
|
||||||
snap_zone.has_picked_up.connect(_on_object_picked_up)
|
|
||||||
snap_zone.has_dropped.connect(_on_object_dropped)
|
|
||||||
progress_bar.override_fill_color(Color.DODGER_BLUE)
|
|
||||||
_refresh_progress_bar()
|
|
||||||
|
|
||||||
|
|
||||||
func _refresh_progress_bar() -> void:
|
|
||||||
if not progress_bar:
|
|
||||||
return
|
|
||||||
progress_bar.set_progress(clampf(float(time_washed) / plate_wash_time, 0.0, 1.0))
|
|
||||||
progress_bar.set_bar_visible(is_washing)
|
|
||||||
|
|
||||||
|
|
||||||
func _on_object_picked_up(_item) -> void:
|
|
||||||
print("Sink: object picked up: ", _item)
|
|
||||||
plate = _item.get_node_or_null("PlateController") as PlateController
|
|
||||||
if plate:
|
|
||||||
# The setter starts the effects and shows the bar, here and on clients.
|
|
||||||
is_washing = plate.is_dirty
|
|
||||||
|
|
||||||
|
|
||||||
func _on_object_dropped() -> void:
|
|
||||||
print("Sink: object drop ")
|
|
||||||
_reset_sink()
|
|
||||||
|
|
||||||
|
|
||||||
func _reset_sink():
|
|
||||||
time_washed = 0
|
|
||||||
is_washing = false
|
|
||||||
plate = null
|
|
||||||
|
|
||||||
func complete_washing():
|
|
||||||
if not plate:
|
|
||||||
return
|
|
||||||
plate.is_dirty = false
|
|
||||||
_reset_sink()
|
|
||||||
print("Sink washing complete!")
|
|
||||||
|
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
if is_washing:
|
super.process(delta)
|
||||||
time_washed += wash_speed * delta
|
if not enabled:
|
||||||
_refresh_progress_bar()
|
return
|
||||||
print("Sink washing plate: ", time_washed)
|
if result_id:
|
||||||
|
add_work(wash_speed * delta)
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func refresh_display() -> void:
|
||||||
|
super.refresh_display()
|
||||||
|
progress_bar.override_fill_color(Color.DODGER_BLUE)
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func on_object_picked_up(item: Node3D) -> void:
|
||||||
|
plate = item.get_node_or_null("PlateController") as PlateController
|
||||||
|
if not plate or not plate.is_dirty:
|
||||||
|
return
|
||||||
|
_set_effects_playing(true)
|
||||||
|
_start_washing(plate_wash_time)
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func on_object_dropped(_item: Node3D) -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
_set_effects_playing(false)
|
||||||
|
plate = null
|
||||||
|
reset()
|
||||||
|
|
||||||
|
|
||||||
|
# Called from Station base class
|
||||||
|
func on_work_complete():
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
_set_effects_playing(false)
|
||||||
|
plate.is_dirty = false
|
||||||
|
reset()
|
||||||
|
|
||||||
|
|
||||||
if time_washed >= plate_wash_time:
|
|
||||||
complete_washing()
|
|
||||||
|
|||||||
+45
-53
File diff suppressed because one or more lines are too long
@@ -0,0 +1,11 @@
|
|||||||
|
extends "res://stations/hob.gd"
|
||||||
|
|
||||||
|
|
||||||
|
# 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:
|
||||||
|
pass
|
||||||
@@ -0,0 +1,245 @@
|
|||||||
|
class_name StationMovement
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
@export var move_handle: XRToolsPickable
|
||||||
|
@export var move_ghost: Area3D
|
||||||
|
@export var station: StaticBody3D
|
||||||
|
|
||||||
|
var move_handle_rigid: RigidBody3D
|
||||||
|
var original_collision_layer: int = 0
|
||||||
|
var original_handle_y_pos: float = 0.0
|
||||||
|
var original_station_transform: Transform3D = Transform3D.IDENTITY
|
||||||
|
@export var is_moving: bool = false
|
||||||
|
var ghost_materials: Array[StandardMaterial3D] = []
|
||||||
|
|
||||||
|
# Ghost update throttling (clients send unreliable RPCs to server at this rate)
|
||||||
|
var ghost_send_interval: float = 0.1 # seconds (10 Hz)
|
||||||
|
var _ghost_send_accum: float = 0.0
|
||||||
|
var _was_last_pos_valid: bool = false
|
||||||
|
const GHOST_COLOR_VALID: Color = Color(0, 1, 0, 0.35)
|
||||||
|
const GHOST_COLOR_INVALID: Color = Color(1, 0, 0, 0.35)
|
||||||
|
|
||||||
|
|
||||||
|
func set_move_handle_enabled(enabled: bool) -> void:
|
||||||
|
SweetLogger.debug("Set move handle enabled: {0}", [enabled])
|
||||||
|
move_handle.visible = enabled
|
||||||
|
move_handle.enabled = enabled
|
||||||
|
if enabled:
|
||||||
|
move_handle.drop()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_game_state_changed(new_state: GameManager.GameState) -> void:
|
||||||
|
set_move_handle_enabled(new_state == GameManager.GameState.BUILDING)
|
||||||
|
|
||||||
|
func _on_station_bought(_instance: Node3D):
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
if GameManager.game_state == GameManager.GameState.BUILDING:
|
||||||
|
set_move_handle_enabled(true)
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
if not station:
|
||||||
|
SweetLogger.warning("{0} missing station reference", [name])
|
||||||
|
if not move_handle:
|
||||||
|
SweetLogger.warning("{0} missing move_handle reference", [name])
|
||||||
|
if not move_ghost:
|
||||||
|
SweetLogger.warning("{0} missing move_ghost reference", [name])
|
||||||
|
|
||||||
|
move_handle_rigid = move_handle as RigidBody3D
|
||||||
|
original_collision_layer = station.collision_layer
|
||||||
|
original_handle_y_pos = move_handle.transform.origin.y
|
||||||
|
original_station_transform = station.global_transform
|
||||||
|
move_handle.picked_up.connect(_handle_pickup)
|
||||||
|
move_handle.dropped.connect(_handle_drop)
|
||||||
|
Signals.station_bought.connect(_on_station_bought)
|
||||||
|
|
||||||
|
_cache_ghost_materials()
|
||||||
|
_set_ghost_color(GHOST_COLOR_VALID)
|
||||||
|
set_move_handle_enabled(GameManager.game_state == GameManager.GameState.BUILDING)
|
||||||
|
move_ghost.monitoring = true
|
||||||
|
move_ghost.visible = false
|
||||||
|
Signals.game_state_changed.connect(_on_game_state_changed)
|
||||||
|
|
||||||
|
|
||||||
|
func _cache_ghost_materials() -> void:
|
||||||
|
var combiner = move_ghost.get_node_or_null("CSGCombiner3D")
|
||||||
|
if not combiner:
|
||||||
|
return
|
||||||
|
_collect_ghost_materials(combiner)
|
||||||
|
|
||||||
|
|
||||||
|
func _collect_ghost_materials(node: Node) -> void:
|
||||||
|
if node is CSGCombiner3D:
|
||||||
|
# Combiner nodes do not expose a material property to modify.
|
||||||
|
for child in node.get_children():
|
||||||
|
_collect_ghost_materials(child)
|
||||||
|
return
|
||||||
|
|
||||||
|
if node is CSGShape3D:
|
||||||
|
var material = node.material
|
||||||
|
if material and material is StandardMaterial3D:
|
||||||
|
var instance = material.duplicate() as StandardMaterial3D
|
||||||
|
instance.transparency = material.transparency
|
||||||
|
instance.albedo_color = material.albedo_color
|
||||||
|
node.material = instance
|
||||||
|
ghost_materials.append(instance)
|
||||||
|
|
||||||
|
for child in node.get_children():
|
||||||
|
_collect_ghost_materials(child)
|
||||||
|
|
||||||
|
|
||||||
|
func _set_ghost_color(color: Color) -> void:
|
||||||
|
for material in ghost_materials:
|
||||||
|
material.albedo_color = color
|
||||||
|
|
||||||
|
|
||||||
|
func _apply_visibility_state(ghost_visible: bool, station_visible: bool) -> void:
|
||||||
|
move_ghost.visible = ghost_visible
|
||||||
|
station.visible = station_visible
|
||||||
|
if not NetworkManager.is_online():
|
||||||
|
return
|
||||||
|
if multiplayer.is_server():
|
||||||
|
server_update_visibility(ghost_visible, station_visible)
|
||||||
|
else:
|
||||||
|
server_update_visibility.rpc_id(1, ghost_visible, station_visible)
|
||||||
|
|
||||||
|
|
||||||
|
func _handle_pickup(_by: Node) -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
if move_handle.get_picked_up_by() and move_handle.get_picked_up_by() is XRToolsSnapZone:
|
||||||
|
SweetLogger.info("Handle pickup by snap zone, dropping and resetting position")
|
||||||
|
move_handle.drop()
|
||||||
|
move_handle.global_position = station.global_position + Vector3(0, original_handle_y_pos, 0)
|
||||||
|
move_handle.rotation = station.rotation
|
||||||
|
return
|
||||||
|
|
||||||
|
is_moving = true
|
||||||
|
station.collision_layer = 0
|
||||||
|
original_station_transform = station.global_transform
|
||||||
|
move_ghost.global_transform = original_station_transform
|
||||||
|
_apply_visibility_state(true, false)
|
||||||
|
|
||||||
|
|
||||||
|
func _handle_drop(_by: Node) -> void:
|
||||||
|
SweetLogger.info("Handle drop")
|
||||||
|
is_moving = false
|
||||||
|
_apply_visibility_state(false, true)
|
||||||
|
station.collision_layer = original_collision_layer
|
||||||
|
|
||||||
|
var is_valid: bool = _is_move_position_valid()
|
||||||
|
if NetworkManager.is_online():
|
||||||
|
server_handle_drop.rpc_id(1, move_ghost.global_transform, is_valid)
|
||||||
|
else:
|
||||||
|
# If not connected to server (single-player or test), apply locally only when valid
|
||||||
|
if is_valid:
|
||||||
|
station.global_transform = move_ghost.global_transform
|
||||||
|
move_handle.global_transform = move_ghost.global_transform.translated(Vector3(0, original_handle_y_pos, 0))
|
||||||
|
SweetLogger.debug("Handle drop (local apply), station authority: {0} move_handle authority: {1}", [station.get_multiplayer_authority(), move_handle.get_multiplayer_authority()])
|
||||||
|
else:
|
||||||
|
station.global_transform = original_station_transform
|
||||||
|
move_handle.global_transform = original_station_transform.translated(Vector3(0, original_handle_y_pos, 0))
|
||||||
|
SweetLogger.debug("Handle drop (local reject), restoring original position")
|
||||||
|
|
||||||
|
|
||||||
|
func _process(_delta: float) -> void:
|
||||||
|
if not is_moving:
|
||||||
|
return
|
||||||
|
|
||||||
|
move_ghost.global_transform = Helper.get_snapped_transform(move_handle)
|
||||||
|
move_ghost.global_transform.origin.y = original_station_transform.origin.y
|
||||||
|
|
||||||
|
var ghost_color = GHOST_COLOR_VALID if _is_move_position_valid() else GHOST_COLOR_INVALID
|
||||||
|
_set_ghost_color(ghost_color)
|
||||||
|
|
||||||
|
# Throttle and send ghost transform updates to server so other clients see the preview
|
||||||
|
_ghost_send_accum += _delta
|
||||||
|
if _ghost_send_accum >= ghost_send_interval:
|
||||||
|
_ghost_send_accum = 0.0
|
||||||
|
# Unreliable RPC to the server to update the server-side ghost; server will replicate to clients
|
||||||
|
# Use rpc_unreliable_id to avoid blocking traffic
|
||||||
|
if NetworkManager.is_online():
|
||||||
|
server_update_move_ghost_transform.rpc_id(1, move_ghost.global_transform, ghost_color)
|
||||||
|
|
||||||
|
|
||||||
|
func _is_move_position_valid() -> bool:
|
||||||
|
for body in move_ghost.get_overlapping_bodies():
|
||||||
|
SweetLogger.debug("Overlapping body: {0}", [body])
|
||||||
|
if body == move_handle:
|
||||||
|
continue
|
||||||
|
if body == station:
|
||||||
|
continue
|
||||||
|
# If body is a pickable that is held by a snapzone that is part of this station
|
||||||
|
var pickable = body as XRToolsPickable
|
||||||
|
if pickable and pickable is XRToolsPickable and Helper.is_node_decendant_of(pickable.get_picked_up_by(), get_parent()):
|
||||||
|
continue
|
||||||
|
|
||||||
|
return false
|
||||||
|
|
||||||
|
for area in move_ghost.get_overlapping_areas():
|
||||||
|
#print("Overlapping area: ", area)
|
||||||
|
if area == move_ghost:
|
||||||
|
continue
|
||||||
|
return false
|
||||||
|
|
||||||
|
return true
|
||||||
|
|
||||||
|
|
||||||
|
@rpc("any_peer", "call_local", "reliable")
|
||||||
|
func server_handle_drop(new_transform: Transform3D, client_thinks_valid: bool):
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
if not multiplayer.is_server():
|
||||||
|
return
|
||||||
|
if not (client_thinks_valid):
|
||||||
|
# Reset state for everyone, including server
|
||||||
|
var original_trans = original_station_transform # Make a copy to avoid server_update_station_transform setting it before move handle uses it
|
||||||
|
server_update_station_transform.rpc(original_trans)
|
||||||
|
server_update_move_ghost_transform.rpc(original_trans)
|
||||||
|
server_update_handle_transform.rpc(original_trans.translated(Vector3(0, original_handle_y_pos, 0)))
|
||||||
|
if not _was_last_pos_valid: # Edge case
|
||||||
|
server_update_visibility.rpc(false, true)
|
||||||
|
SweetLogger.warning("Can not not reset visibility to normal when the last pos was invalid")
|
||||||
|
SweetLogger.debug("Transform rejected (invalid)")
|
||||||
|
_was_last_pos_valid = false
|
||||||
|
return
|
||||||
|
|
||||||
|
server_update_station_transform.rpc(new_transform)
|
||||||
|
server_update_move_ghost_transform.rpc(new_transform)
|
||||||
|
server_update_handle_transform.rpc(new_transform.translated(Vector3(0, original_handle_y_pos, 0)))
|
||||||
|
server_update_visibility.rpc(false, true)
|
||||||
|
_was_last_pos_valid = true
|
||||||
|
|
||||||
|
SweetLogger.debug("Transform applied")
|
||||||
|
|
||||||
|
|
||||||
|
@rpc("any_peer", "call_local", "reliable") # Server updates clients
|
||||||
|
func server_artificial_pickup():
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
_handle_pickup(self) # Arg is not used, but required of the signal.
|
||||||
|
|
||||||
|
|
||||||
|
@rpc("any_peer", "call_local", "reliable") # Server updates clients
|
||||||
|
func server_update_station_transform(new_transform: Transform3D) -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
station.global_transform = new_transform
|
||||||
|
original_station_transform = new_transform
|
||||||
|
|
||||||
|
|
||||||
|
@rpc("any_peer", "call_local", "reliable") # Server updates clients
|
||||||
|
func server_update_handle_transform(new_transform: Transform3D) -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
move_handle.global_transform = new_transform
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@rpc("any_peer", "call_local", "reliable")
|
||||||
|
func server_update_visibility(ghost_visible: bool, station_visible: bool) -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
move_ghost.visible = ghost_visible
|
||||||
|
station.visible = station_visible
|
||||||
|
|
||||||
|
|
||||||
|
@rpc("any_peer", "call_local", "unreliable")
|
||||||
|
func server_update_move_ghost_transform(new_transform: Transform3D, new_color: Color = GHOST_COLOR_VALID) -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
move_ghost.global_transform = new_transform
|
||||||
|
_set_ghost_color(new_color)
|
||||||
+261
-90
@@ -1,12 +1,10 @@
|
|||||||
class_name Table
|
class_name Table
|
||||||
extends StaticBody3D
|
extends SharedInventoryStation
|
||||||
|
|
||||||
const GAME_MANAGER = preload("res://GameManager.gd")
|
|
||||||
|
|
||||||
@export var thinking_duration: float = 3.0
|
@export var thinking_duration: float = 3.0
|
||||||
@export var ordering_duration: float = 40.0
|
@export var ordering_duration: float = 50.0
|
||||||
@export var primary_duration: float = 40.0
|
@export var primary_duration: float = 70.0
|
||||||
@export var friend_duration: float = 10.0
|
@export var friend_duration: float = 12.0
|
||||||
@export var eating_duration: float = 5.0
|
@export var eating_duration: float = 5.0
|
||||||
@export var money_sound: AudioStream
|
@export var money_sound: AudioStream
|
||||||
|
|
||||||
@@ -24,8 +22,8 @@ const lbl_gameover: String = "Game Over!"
|
|||||||
const lbl_eating: String = "Eating..."
|
const lbl_eating: String = "Eating..."
|
||||||
|
|
||||||
### Finite State Machine ####
|
### Finite State Machine ####
|
||||||
|
|
||||||
enum TableState {
|
enum TableState {
|
||||||
|
IDLE, # Don't update table. incorrect GameState
|
||||||
EMPTY, # Just finished eating or havent eaten yet
|
EMPTY, # Just finished eating or havent eaten yet
|
||||||
THINKING,
|
THINKING,
|
||||||
ORDERING, # Wating for player to take their order
|
ORDERING, # Wating for player to take their order
|
||||||
@@ -34,32 +32,139 @@ enum TableState {
|
|||||||
EATING
|
EATING
|
||||||
}
|
}
|
||||||
|
|
||||||
## State is server-authoritative and synced (see table.tscn's Sync node);
|
|
||||||
## state transitions only ever run where NetworkManager.owns_world() is true
|
|
||||||
## (the whole station's _process is gated off elsewhere for non-owners, see
|
|
||||||
## NetworkManager._gate_station). The setters below just refresh the display,
|
|
||||||
## so both the server (via _setState) and clients (via incoming sync) show
|
|
||||||
## the same text. Use _setState(), never assign _state directly.
|
|
||||||
var _state: TableState = TableState.EMPTY
|
var _state: TableState = TableState.EMPTY
|
||||||
var _state_time: float = 0.0
|
var _state_time: float = 0.0
|
||||||
var _state_duration: float = 0.0 # set in _set_state_time
|
var _state_duration: float = 0.0
|
||||||
|
var _original_orders: Array[String] = []
|
||||||
var _unsatisfied_orders: Array[String] = []
|
var _unsatisfied_orders: Array[String] = []
|
||||||
|
var _players_count: int = 0
|
||||||
|
var _is_leader: bool = true # Only the group leader orchestrates the state and shows its own visuals; see _on_group_changed().
|
||||||
|
|
||||||
|
|
||||||
|
func place_order() -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
if not NetworkManager.owns_world():
|
||||||
|
server_place_order.rpc_id(1)
|
||||||
|
SweetLogger.debug(" []-> rpc")
|
||||||
|
return
|
||||||
|
var new_orders: Array[String] = _unsatisfied_orders.duplicate()
|
||||||
|
# for _i in range(0, randi_range(1, 2)):
|
||||||
|
# new_orders.append(GameManager.get_random_meal())
|
||||||
|
# for _i in range(0, randi_range(0, 1)):
|
||||||
|
# new_orders.append(GameManager.get_random_side())
|
||||||
|
new_orders.append(GameManager.get_random_meal())
|
||||||
|
_unsatisfied_orders = new_orders
|
||||||
|
_original_orders = _unsatisfied_orders.duplicate()
|
||||||
|
_set_state(TableState.WAITING_PRIMARY)
|
||||||
|
SweetLogger.info("Placed order, orders: {0}", [_unsatisfied_orders])
|
||||||
|
|
||||||
|
@rpc("any_peer", "call_remote", "reliable")
|
||||||
|
func server_place_order() -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
if NetworkManager.owns_world():
|
||||||
|
place_order()
|
||||||
|
|
||||||
|
|
||||||
|
func absorb_items():
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
for snap_zone_node in snap_zones:
|
||||||
|
var held_object = snap_zone_node.picked_up_object
|
||||||
|
if not held_object:
|
||||||
|
continue
|
||||||
|
|
||||||
|
_absorb_item_if_correct(held_object)
|
||||||
|
|
||||||
|
|
||||||
|
# Flattens items held across all of this table's snap zones
|
||||||
|
func get_exposed_food_items() -> Array[FoodItem]:
|
||||||
|
var items: Array[FoodItem] = []
|
||||||
|
for zone in snap_zones:
|
||||||
|
var held_object = zone.picked_up_object
|
||||||
|
if not held_object:
|
||||||
|
continue
|
||||||
|
var plate: PlateController = _get_plate_controller_from_item(held_object)
|
||||||
|
if plate:
|
||||||
|
items.append_array(plate.container.contained_items)
|
||||||
|
continue
|
||||||
|
var food_item: FoodItem = Helper.find_food_item(held_object)
|
||||||
|
if food_item:
|
||||||
|
items.append(food_item)
|
||||||
|
return items
|
||||||
|
|
||||||
|
|
||||||
|
# Only the group leader orchestrates the FSM and shows its visuals
|
||||||
|
func _on_group_changed() -> void:
|
||||||
|
_is_leader = is_group_leader()
|
||||||
|
if label_3d:
|
||||||
|
label_3d.visible = _is_leader
|
||||||
|
if label_3d_time:
|
||||||
|
label_3d_time.visible = _is_leader
|
||||||
|
if progress_bar:
|
||||||
|
progress_bar.set_bar_visible(_is_leader and progress_bar.is_bar_visible())
|
||||||
|
|
||||||
|
|
||||||
|
func satisfyAllOrders() -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
_unsatisfied_orders.clear()
|
||||||
|
_original_orders.clear()
|
||||||
|
clearAllFood()
|
||||||
|
_set_state(TableState.EMPTY)
|
||||||
|
|
||||||
|
|
||||||
|
func clearAllFood() -> void:
|
||||||
|
SweetLogger.debug("->[]")
|
||||||
|
for zone in snap_zones:
|
||||||
|
var held_object = zone.picked_up_object
|
||||||
|
if not held_object:
|
||||||
|
continue
|
||||||
|
|
||||||
|
var plate: PlateController = _get_plate_controller_from_item(held_object)
|
||||||
|
var food_item: FoodItem = Helper.find_food_item(held_object)
|
||||||
|
if plate:
|
||||||
|
plate.container.clear()
|
||||||
|
plate.is_dirty = true
|
||||||
|
|
||||||
|
# Side or other food item directly on table
|
||||||
|
elif food_item and food_item.type == FoodItem.Type.SIDE:
|
||||||
|
zone.drop_object()
|
||||||
|
NetworkManager.despawn_item(held_object)
|
||||||
|
|
||||||
|
|
||||||
|
# Group called from Queue when trying to assign customers to tables
|
||||||
|
func try_consume_customer() -> bool:
|
||||||
|
if _state == TableState.EMPTY:
|
||||||
|
SweetLogger.debug("Try consume customer, consumed a customer")
|
||||||
|
_state_end(TableState.EMPTY)
|
||||||
|
return true
|
||||||
|
return false
|
||||||
|
|
||||||
|
|
||||||
|
func _enter_tree() -> void:
|
||||||
|
super._enter_tree()
|
||||||
|
var properties: Array[NodePath] = [".:_state_duration", ".:_state", ".:_state_time", ".:_unsatisfied_orders", "Customers:visible"]
|
||||||
|
for property_path in properties:
|
||||||
|
sync_config.add_property(property_path)
|
||||||
|
sync_config.property_set_spawn(property_path, false)
|
||||||
|
sync_config.property_set_replication_mode(property_path, SceneReplicationConfig.REPLICATION_MODE_ON_CHANGE)
|
||||||
|
SweetLogger.info("DEBUG sync_config properties: {0} | root_path: {1} | authority: {2} | peer: {3}", [sync_config.get_properties(), synchronizer.root_path, get_multiplayer_authority(), multiplayer.get_unique_id()]) # temp diagnostic
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
super.ready()
|
||||||
if not label_3d:
|
if not label_3d:
|
||||||
push_error("Table is missing reference to Label3D")
|
SweetLogger.warning("{0} missing label_3d reference", [name])
|
||||||
if not label_3d_time:
|
if not label_3d_time:
|
||||||
push_error("Table is missing reference to Label3DTime")
|
SweetLogger.warning("{0} missing label_3d_time reference", [name])
|
||||||
if not progress_bar or progress_bar is not ProgressBar3D:
|
if not progress_bar or progress_bar is not ProgressBar3D:
|
||||||
push_error("Table missing reference to progressbar, or wrong type:", progress_bar)
|
SweetLogger.warning("{0} missing progress_bar reference", [name])
|
||||||
progress_bar.y_billboard = true
|
progress_bar.y_billboard = true
|
||||||
progress_bar.exponential = true
|
progress_bar.exponential = true
|
||||||
# Render whatever state already arrived from the server before we were in
|
# Render whatever state already arrived from the server before we were in
|
||||||
# the tree (see the guard in _refresh_display).
|
# the tree (see the guard in _refresh_display).
|
||||||
_refresh_display.call_deferred()
|
_refresh_display.call_deferred()
|
||||||
if not audio_player:
|
if not audio_player:
|
||||||
push_error("Table is missing reference to AudioStreamPlayer3D")
|
SweetLogger.warning("{0} missing audio_player reference", [name])
|
||||||
|
|
||||||
# Get snap_zones for plates, store in array snap_zones
|
# Get snap_zones for plates, store in array snap_zones
|
||||||
for child in get_children():
|
for child in get_children():
|
||||||
@@ -68,114 +173,146 @@ func _ready() -> void:
|
|||||||
snap_zones.append(snap_zone_node)
|
snap_zones.append(snap_zone_node)
|
||||||
|
|
||||||
if snap_zones.is_empty():
|
if snap_zones.is_empty():
|
||||||
push_error("Table is missing XRToolsSnapZone children")
|
SweetLogger.warning("{0} missing XRToolsSnapZone children", [name])
|
||||||
return
|
return
|
||||||
|
|
||||||
for snap_zone_node in snap_zones:
|
for snap_zone_node in snap_zones:
|
||||||
snap_zone_node.has_picked_up.connect(_on_object_picked_up)
|
snap_zone_node.has_picked_up.connect(_on_object_picked_up)
|
||||||
snap_zone_node.has_dropped.connect(_on_object_dropped)
|
snap_zone_node.has_dropped.connect(_on_object_dropped)
|
||||||
player_detect_area_3d.body_entered.connect(_on_player_detected)
|
_set_state(TableState.EMPTY)
|
||||||
set_process(true)
|
|
||||||
_setState(TableState.EMPTY)
|
|
||||||
|
|
||||||
|
|
||||||
func _on_object_picked_up(_item) -> void:
|
func _on_object_picked_up(_item) -> void:
|
||||||
print("Table: object picked up: ", _item)
|
SweetLogger.debug("Object picked up: {0}", [_item])
|
||||||
if _state == TableState.EATING:
|
if _state == TableState.EATING:
|
||||||
return
|
return
|
||||||
_absorb_item_if_correct(_item)
|
_absorb_item_if_correct(_item)
|
||||||
|
|
||||||
|
|
||||||
func _on_object_dropped() -> void:
|
func _on_object_dropped(_item) -> void:
|
||||||
print("Table: object dropped ")
|
SweetLogger.debug("Object dropped, item: {0}", [_item])
|
||||||
|
# If then player picks up a food_item (side) the table has already registerd, unregister
|
||||||
|
var food_item: FoodItem = Helper.find_food_item(_item)
|
||||||
|
if food_item and food_item.type == FoodItem.Type.SIDE:
|
||||||
|
var original_count = _original_orders.count(food_item.id)
|
||||||
|
var unsatisfied_count = _unsatisfied_orders.count(food_item.id)
|
||||||
|
if original_count > unsatisfied_count:
|
||||||
|
_unsatisfied_orders.append(food_item.id)
|
||||||
|
|
||||||
|
|
||||||
func _on_player_detected(player):
|
# original : burger cube, cube
|
||||||
print("Table _on_player_detected(), ", player)
|
# unsatisfied : burger cube
|
||||||
if _state != TableState.ORDERING:
|
# table :
|
||||||
return
|
|
||||||
|
|
||||||
place_order()
|
# There is no on_stay signal, we have to track player with bool
|
||||||
_setState(TableState.WAITING_PRIMARY)
|
func _on_player_enter(_body):
|
||||||
|
_players_count += 1
|
||||||
|
SweetLogger.debug("Player enter, players_count: {0}", [_players_count])
|
||||||
|
if _is_leader and _state == TableState.ORDERING:
|
||||||
|
place_order()
|
||||||
|
|
||||||
|
|
||||||
func _get_plate_from_item(_item: Node) -> PlateController:
|
func _on_player_exit(_body):
|
||||||
return _item.get_children().filter(func(c): return c is PlateController).front() as PlateController
|
_players_count -= 1
|
||||||
|
SweetLogger.debug("Player exit, players_count: {0}", [_players_count])
|
||||||
|
|
||||||
|
|
||||||
|
func _get_plate_controller_from_item(_item: Node) -> PlateController:
|
||||||
|
if not _item:
|
||||||
|
SweetLogger.debug("Item is null")
|
||||||
|
return null
|
||||||
|
|
||||||
|
for child in _item.get_children():
|
||||||
|
if child is PlateController:
|
||||||
|
SweetLogger.debug("Found child")
|
||||||
|
return child
|
||||||
|
|
||||||
|
SweetLogger.debug("No match")
|
||||||
|
return null
|
||||||
|
|
||||||
|
|
||||||
func _absorb_item_if_correct(_item: Node) -> void:
|
func _absorb_item_if_correct(_item: Node) -> void:
|
||||||
|
SweetLogger.debug("Absorb item if correct, item: {0}", [_item])
|
||||||
if not _item:
|
if not _item:
|
||||||
return
|
return
|
||||||
|
if not (_state == TableState.WAITING_PRIMARY or _state == TableState.WAITING_FRIEND):
|
||||||
# Get plate controller in childer of _item (hopefully a plate XRpickable)
|
|
||||||
var plate_controller = _get_plate_from_item(_item)
|
|
||||||
if not plate_controller:
|
|
||||||
print("Table: held object is not a Plate")
|
|
||||||
return
|
return
|
||||||
#print("Table: held a Plate!")
|
|
||||||
|
|
||||||
# Absorm items from the plate we want
|
# Plate: Get plate controller in child of _item (hopefully a plate XRpickable)
|
||||||
for food_item in plate_controller.container.contained_items:
|
var plate_controller = _get_plate_controller_from_item(_item)
|
||||||
#print("Table: held a plate with FoodItem: ", food_item.id)
|
SweetLogger.debug("Plate_controller ref: {0}", [plate_controller])
|
||||||
if food_item.id in _unsatisfied_orders:
|
_item.print_tree_pretty()
|
||||||
print("Table: held a plate with FoodItem that is in unsatisfied orders, removing it")
|
|
||||||
_unsatisfied_orders.erase(food_item.id)
|
if plate_controller:
|
||||||
(plate_controller.get_parent() as XRToolsPickable).get_picked_up_by().enabled = false # Lock meal that is deliverd
|
# Absorm items from the plate we want
|
||||||
|
for food_item: FoodItem in plate_controller.container.contained_items: # TOOD: handle registering the meal again when a side is added to the plate
|
||||||
|
if food_item.id in _unsatisfied_orders and not food_item.is_absorbed:
|
||||||
|
SweetLogger.debug("Held a plate with FoodItem that is in unsatisfied orders, removing it")
|
||||||
|
(plate_controller.get_parent() as XRToolsPickable).get_picked_up_by().enabled = false # Lock meal that is deliverd
|
||||||
|
_unsatisfied_orders.erase(food_item.id)
|
||||||
|
food_item.is_absorbed = true
|
||||||
|
_update_state_from_orders()
|
||||||
|
return
|
||||||
|
|
||||||
|
# Side pickable item, no container
|
||||||
|
var food_item: FoodItem = Helper.find_food_item(_item)
|
||||||
|
if food_item and food_item.type == FoodItem.Type.SIDE:
|
||||||
|
SweetLogger.debug("Held a side that is in unsatisfied orders, removing it")
|
||||||
|
# Do not lock snap zone here. Problem if table want many meals, but to many sides have filled up slots, so can't place plates.
|
||||||
|
_unsatisfied_orders.erase(food_item.id)
|
||||||
|
_update_state_from_orders()
|
||||||
|
return
|
||||||
|
|
||||||
if _unsatisfied_orders.size() > 0 and _state != TableState.EATING:
|
SweetLogger.debug("Held object is not a Plate or Side")
|
||||||
_setState(TableState.WAITING_FRIEND)
|
|
||||||
|
|
||||||
# Table has everything it wants. Start eating
|
|
||||||
elif _unsatisfied_orders.is_empty() and _state != TableState.EATING:
|
|
||||||
GAME_MANAGER.money += food_item.sell_value
|
|
||||||
audio_player.stream = money_sound
|
|
||||||
audio_player.play()
|
|
||||||
_setState(TableState.EATING)
|
|
||||||
|
|
||||||
|
|
||||||
|
func _update_state_from_orders():
|
||||||
|
SweetLogger.debug("Unsatisfied_orders: {0}", [_unsatisfied_orders])
|
||||||
|
if _unsatisfied_orders.size() > 0 and _state != TableState.EATING:
|
||||||
|
_set_state(TableState.WAITING_FRIEND)
|
||||||
|
|
||||||
func place_order() -> void:
|
# Table has everything it wants. Start eating
|
||||||
print("Table: place_order()")
|
elif _unsatisfied_orders.is_empty() and _state != TableState.EATING:
|
||||||
var new_orders = _unsatisfied_orders.duplicate()
|
_set_state(TableState.EATING)
|
||||||
new_orders.append(GAME_MANAGER.get_random_meal())
|
|
||||||
new_orders.append(GAME_MANAGER.get_random_meal())
|
|
||||||
_unsatisfied_orders = new_orders
|
|
||||||
|
|
||||||
|
|
||||||
func satisfyAllOrders() -> void:
|
func _collect_money_from_food():
|
||||||
print("Table: satisfyAllOrders()")
|
|
||||||
_unsatisfied_orders.clear()
|
|
||||||
clearAllPlates()
|
|
||||||
_setState(TableState.EMPTY)
|
|
||||||
|
|
||||||
|
|
||||||
func clearAllPlates() -> void:
|
|
||||||
print("Table: clearAllPlates()")
|
|
||||||
for snap_zone_node in snap_zones:
|
for snap_zone_node in snap_zones:
|
||||||
var held_object = snap_zone_node.picked_up_object
|
var held_object = snap_zone_node.picked_up_object
|
||||||
if not held_object:
|
if not held_object:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
var plate = _get_plate_from_item(held_object)
|
var plate: PlateController = _get_plate_controller_from_item(held_object)
|
||||||
|
var food_item: FoodItem = Helper.find_food_item(held_object)
|
||||||
if plate:
|
if plate:
|
||||||
plate.container.clear()
|
for fi: FoodItem in plate.get_food_items():
|
||||||
plate.is_dirty = true
|
GameManager.set_money(GameManager.money + fi.sell_value)
|
||||||
|
elif food_item:
|
||||||
|
GameManager.set_money(GameManager.money + food_item.sell_value)
|
||||||
|
|
||||||
|
SweetLogger.debug("Money: {0}", [GameManager.money])
|
||||||
|
|
||||||
|
|
||||||
func _set_snap_zones_enabled(value: bool) -> void:
|
func _set_snap_zones_enabled(value: bool) -> void:
|
||||||
|
# Enabling is the world owner's call only — a client's zones stay gated no
|
||||||
|
# matter what state its copy of the FSM thinks it is in.
|
||||||
|
var is_enabled := value and NetworkManager.owns_world()
|
||||||
for zone in snap_zones:
|
for zone in snap_zones:
|
||||||
zone.enabled = value
|
zone.enabled = is_enabled
|
||||||
|
|
||||||
|
|
||||||
## Server-only state transition: sets the new state's timer and assigns
|
## Server-only state transition: sets the new state's timer and assigns
|
||||||
## _state (whose setter refreshes the display on every peer).
|
## _state (whose setter refreshes the display on every peer).
|
||||||
func _setState(newState: TableState) -> void:
|
func _set_state(newState: TableState) -> void:
|
||||||
print("Table State START: ", TableState.keys()[newState])
|
SweetLogger.debug("State START: {0}", [TableState.keys()[newState]], "table.gd", "_set_state")
|
||||||
|
|
||||||
match newState:
|
match newState:
|
||||||
|
TableState.IDLE:
|
||||||
|
_state_time = 0.0
|
||||||
|
_state_duration = 0.0
|
||||||
|
_state = newState
|
||||||
|
customers.visible = false
|
||||||
TableState.EMPTY:
|
TableState.EMPTY:
|
||||||
_state_time = 5.0
|
|
||||||
_state_duration = 5.0
|
|
||||||
customers.visible = false
|
customers.visible = false
|
||||||
_state = newState
|
_state = newState
|
||||||
TableState.THINKING:
|
TableState.THINKING:
|
||||||
@@ -190,8 +327,8 @@ func _setState(newState: TableState) -> void:
|
|||||||
_state_time = primary_duration
|
_state_time = primary_duration
|
||||||
_state_duration = primary_duration
|
_state_duration = primary_duration
|
||||||
_state = newState
|
_state = newState
|
||||||
# Absorm meals that were already in the table when the state starts
|
# Absorm meals that were already in the table when the state starts (We missed the pickup event)
|
||||||
for zone in snap_zones:
|
for zone in snap_zones:
|
||||||
_absorb_item_if_correct(zone.picked_up_object)
|
_absorb_item_if_correct(zone.picked_up_object)
|
||||||
TableState.WAITING_FRIEND:
|
TableState.WAITING_FRIEND:
|
||||||
_state_time = friend_duration
|
_state_time = friend_duration
|
||||||
@@ -200,30 +337,32 @@ func _setState(newState: TableState) -> void:
|
|||||||
TableState.EATING:
|
TableState.EATING:
|
||||||
_state_time = eating_duration
|
_state_time = eating_duration
|
||||||
_state_duration = eating_duration
|
_state_duration = eating_duration
|
||||||
|
_collect_money_from_food()
|
||||||
_set_snap_zones_enabled(false)
|
_set_snap_zones_enabled(false)
|
||||||
|
audio_player.stream = money_sound
|
||||||
|
audio_player.play()
|
||||||
_state = newState
|
_state = newState
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# When state timer is finished, do this stuff before moving to next state
|
# When state timer is finished, do this stuff before moving to next state
|
||||||
func _state_end(oldState: TableState):
|
func _state_end(oldState: TableState):
|
||||||
print("Table State END : ", TableState.keys()[oldState])
|
SweetLogger.debug("State END: {0}", [TableState.keys()[oldState]], "table.gd", "_state_end")
|
||||||
match oldState:
|
match oldState:
|
||||||
TableState.EMPTY:
|
TableState.EMPTY:
|
||||||
customers.visible = true
|
customers.visible = true
|
||||||
_setState(TableState.THINKING)
|
_set_state(TableState.THINKING)
|
||||||
|
|
||||||
TableState.THINKING:
|
TableState.THINKING:
|
||||||
_setState(TableState.ORDERING)
|
_set_state(TableState.ORDERING)
|
||||||
|
|
||||||
TableState.EATING:
|
TableState.EATING:
|
||||||
clearAllPlates()
|
clearAllFood()
|
||||||
_set_snap_zones_enabled(true)
|
_set_snap_zones_enabled(true)
|
||||||
_setState(TableState.EMPTY)
|
_set_state(TableState.EMPTY)
|
||||||
|
|
||||||
TableState.ORDERING, TableState.WAITING_PRIMARY, TableState.WAITING_FRIEND:
|
TableState.ORDERING, TableState.WAITING_PRIMARY, TableState.WAITING_FRIEND:
|
||||||
label_3d.text = lbl_gameover
|
label_3d.text = lbl_gameover
|
||||||
GAME_MANAGER.game_over()
|
GameManager.game_over()
|
||||||
|
|
||||||
|
|
||||||
## Pure presentation, driven off the current (locally authoritative or
|
## Pure presentation, driven off the current (locally authoritative or
|
||||||
@@ -235,12 +374,16 @@ func _refresh_display() -> void:
|
|||||||
# null. Bail out until _ready() has resolved them; _ready() calls back in
|
# null. Bail out until _ready() has resolved them; _ready() calls back in
|
||||||
# once it has, so nothing that arrived early is lost.
|
# once it has, so nothing that arrived early is lost.
|
||||||
if not progress_bar or not label_3d or not label_3d_time:
|
if not progress_bar or not label_3d or not label_3d_time:
|
||||||
push_error("Table missing progress bar or label")
|
SweetLogger.warning("{0} missing progress_bar or label reference", [name])
|
||||||
return
|
return
|
||||||
match _state:
|
match _state:
|
||||||
|
TableState.IDLE:
|
||||||
|
progress_bar.set_bar_visible(false)
|
||||||
|
label_3d.text = ""
|
||||||
|
label_3d_time.text = ""
|
||||||
TableState.EMPTY:
|
TableState.EMPTY:
|
||||||
progress_bar.set_bar_visible(false)
|
progress_bar.set_bar_visible(false)
|
||||||
label_3d.text = "empty"
|
label_3d.text = ""
|
||||||
TableState.THINKING:
|
TableState.THINKING:
|
||||||
progress_bar.set_bar_visible(false)
|
progress_bar.set_bar_visible(false)
|
||||||
label_3d.text = lbl_thinking
|
label_3d.text = lbl_thinking
|
||||||
@@ -265,12 +408,40 @@ func _refresh_display() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
|
super.process(delta)
|
||||||
|
#SweetLogger.debug("State {0} time: {1} duration: {2} is_leader: {3}", [TableState.keys()[_state], _state_time, _state_duration, _is_leader])
|
||||||
_refresh_display()
|
_refresh_display()
|
||||||
|
if not _is_leader:
|
||||||
|
return # Follower: the group leader orchestrates the FSM, we just mirror its synced state.
|
||||||
|
|
||||||
|
if not NetworkManager.owns_world():
|
||||||
|
# SweetLogger.debug("Not server, skipping state update")
|
||||||
|
return
|
||||||
|
|
||||||
|
if GameManager.game_state == GameManager.GameState.GAME_OVER:
|
||||||
|
return
|
||||||
|
|
||||||
|
# If build mode, set, exit loop, be idle
|
||||||
|
if GameManager.game_state == GameManager.GameState.BUILDING and not _state == TableState.IDLE:
|
||||||
|
_set_state(TableState.IDLE)
|
||||||
|
return
|
||||||
|
# Game running, reenter loop
|
||||||
|
elif GameManager.game_state == GameManager.GameState.RUNNING and _state == TableState.IDLE:
|
||||||
|
_set_state(TableState.EMPTY)
|
||||||
|
return
|
||||||
|
# Still idle, do nothing
|
||||||
|
elif _state == TableState.IDLE:
|
||||||
|
return
|
||||||
|
|
||||||
|
# No counting down if wer're empty
|
||||||
|
if _state == TableState.EMPTY:
|
||||||
|
return
|
||||||
|
|
||||||
# Wait for state to finish
|
# Wait for state to finish
|
||||||
if _state_time > 0.0:
|
if _state_time > 0.0:
|
||||||
_state_time = max(0.0, _state_time - delta)
|
_state_time = max(0.0, _state_time - delta)
|
||||||
return
|
return
|
||||||
if GAME_MANAGER.game_state == GAME_MANAGER.GameState.GAME_OVER:
|
if GameManager.game_state == GameManager.GameState.GAME_OVER:
|
||||||
return
|
return
|
||||||
|
|
||||||
_state_end(_state)
|
_state_end(_state)
|
||||||
|
|||||||
+111
-114
@@ -2,12 +2,16 @@
|
|||||||
|
|
||||||
[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_2vcpj"]
|
||||||
[ext_resource type="Script" uid="uid://cquqe4f1m1sw6" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="1_8j1nt"]
|
[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_jslhm"]
|
[ext_resource type="PackedScene" uid="uid://cbs8jiqe8rcmn" path="res://abstract/station.tscn" id="1_station"]
|
||||||
[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://ck72h06t8hyyk" path="res://sounds/money.mp3" id="2_jslhm"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://ui/progress_bar.tscn" id="3_kjf1i"]
|
[ext_resource type="AudioStream" uid="uid://dllgyc8jh83an" path="res://sounds/220195__gameaudio__click-wooden-1.wav" id="3_0s6ir"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://UI/progress_bar.tscn" id="3_kjf1i"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_probe"]
|
||||||
|
size = Vector3(0.2, 0.3, 0.2)
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_24d3s"]
|
||||||
size = Vector3(0.6, 1, 0.6)
|
size = Vector3(0.7983472, 0.060000002, 0.59873295)
|
||||||
|
|
||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_dlkho"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_dlkho"]
|
||||||
radius = 0.6
|
radius = 0.6
|
||||||
@@ -15,29 +19,69 @@ radius = 0.6
|
|||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_24d3s"]
|
||||||
albedo_color = Color(0.31, 0.21576, 0.1333, 1)
|
albedo_color = Color(0.31, 0.21576, 0.1333, 1)
|
||||||
|
|
||||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_np_table"]
|
|
||||||
properties/0/path = NodePath(".:_state")
|
|
||||||
properties/0/spawn = true
|
|
||||||
properties/0/replication_mode = 1
|
|
||||||
properties/1/path = NodePath(".:_state_time")
|
|
||||||
properties/1/spawn = true
|
|
||||||
properties/1/replication_mode = 1
|
|
||||||
properties/2/path = NodePath(".:_unsatisfied_orders")
|
|
||||||
properties/2/spawn = true
|
|
||||||
properties/2/replication_mode = 1
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_vlqg6"]
|
||||||
size = Vector3(2.1, 0.5, 2.1)
|
size = Vector3(2.1, 0.5, 2.1)
|
||||||
|
|
||||||
[node name="Table" type="StaticBody3D" unique_id=1863572470 groups=["station"]]
|
[node name="Table" unique_id=987495548 instance=ExtResource("1_station")]
|
||||||
|
|
||||||
|
[node name="StationMovement" parent="." index="0" unique_id=946873975 node_paths=PackedStringArray("station")]
|
||||||
|
station = NodePath("../Table")
|
||||||
|
|
||||||
|
[node name="ProgressBar3D" parent="." index="4" unique_id=654673176]
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
[node name="SnapZone" parent="." index="5" unique_id=1315859105]
|
||||||
|
enabled = false
|
||||||
|
|
||||||
|
[node name="Table" type="StaticBody3D" parent="." index="6" unique_id=1863572470 node_paths=PackedStringArray("notification_audio", "ambient_audio", "snap_zone", "synchronizer") groups=["station", "table"]]
|
||||||
script = ExtResource("1_2vcpj")
|
script = ExtResource("1_2vcpj")
|
||||||
money_sound = ExtResource("2_jslhm")
|
money_sound = ExtResource("2_jslhm")
|
||||||
|
probe_paths = Array[NodePath]([NodePath("ProbeForward"), NodePath("ProbeRight"), NodePath("ProbeBack"), NodePath("ProbeLeft")])
|
||||||
|
pickup_sound = ExtResource("3_0s6ir")
|
||||||
|
drop_sound = ExtResource("3_0s6ir")
|
||||||
|
notification_audio = NodePath("../AudioStreamPlayer3DNotification")
|
||||||
|
ambient_audio = NodePath("../AudioStreamPlayer3DAmbient")
|
||||||
|
snap_zone = NodePath("XRToolsSnapZone")
|
||||||
|
synchronizer = NodePath("../MultiplayerSynchronizer")
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=228053941]
|
[node name="ProbeForward" type="Area3D" parent="Table" index="0" unique_id=-1294555795]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -0.45)
|
||||||
|
collision_layer = 512
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Table/ProbeForward" index="0" unique_id=-1294555794]
|
||||||
|
shape = SubResource("BoxShape3D_probe")
|
||||||
|
|
||||||
|
[node name="ProbeRight" type="Area3D" parent="Table" index="1" unique_id=-1294555793]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.45, 0.5, 0)
|
||||||
|
collision_layer = 512
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Table/ProbeRight" index="0" unique_id=-1294555792]
|
||||||
|
shape = SubResource("BoxShape3D_probe")
|
||||||
|
|
||||||
|
[node name="ProbeBack" type="Area3D" parent="Table" index="2" unique_id=-1294555791]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0.45)
|
||||||
|
collision_layer = 512
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Table/ProbeBack" index="0" unique_id=-1294555790]
|
||||||
|
shape = SubResource("BoxShape3D_probe")
|
||||||
|
|
||||||
|
[node name="ProbeLeft" type="Area3D" parent="Table" index="3" unique_id=-1294555789]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.45, 0.5, 0)
|
||||||
|
collision_layer = 512
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Table/ProbeLeft" index="0" unique_id=-1294555788]
|
||||||
|
shape = SubResource("BoxShape3D_probe")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Table" index="4" unique_id=228053941]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.50155246, 0)
|
||||||
shape = SubResource("BoxShape3D_24d3s")
|
shape = SubResource("BoxShape3D_24d3s")
|
||||||
|
|
||||||
[node name="XRToolsSnapZone" type="Area3D" parent="." unique_id=1947858647 groups=["station"]]
|
[node name="CollisionShape3D2" type="CollisionShape3D" parent="Table" index="5" unique_id=276384063]
|
||||||
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.094791204, 0.9715525, 0.0012244582)
|
||||||
|
shape = SubResource("BoxShape3D_24d3s")
|
||||||
|
|
||||||
|
[node name="XRToolsSnapZone" type="Area3D" parent="Table" index="6" unique_id=1947858647 groups=["station_zone"]]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0285525, 0)
|
||||||
collision_layer = 65536
|
collision_layer = 65536
|
||||||
collision_mask = 65540
|
collision_mask = 65540
|
||||||
script = ExtResource("1_8j1nt")
|
script = ExtResource("1_8j1nt")
|
||||||
@@ -45,165 +89,118 @@ stash_sound = ExtResource("3_0s6ir")
|
|||||||
snap_mode = 1
|
snap_mode = 1
|
||||||
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="XRToolsSnapZone" unique_id=1176887393]
|
[node name="CollisionShape3D2" type="CollisionShape3D" parent="Table/XRToolsSnapZone" index="0" unique_id=1176887393]
|
||||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, -0.000975132, 0)
|
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, -0.000975132, 0)
|
||||||
shape = SubResource("SphereShape3D_dlkho")
|
shape = SubResource("SphereShape3D_dlkho")
|
||||||
|
|
||||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="XRToolsSnapZone" unique_id=2135860710]
|
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="Table/XRToolsSnapZone" index="1" unique_id=2135860710]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.013531357, -0.015141487, 0.012176305)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.013531357, -0.015141487, 0.012176305)
|
||||||
|
|
||||||
[node name="XRToolsSnapZone2" type="Area3D" parent="." unique_id=694448387 groups=["station"]]
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Table" index="7" unique_id=2085635675]
|
||||||
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, 0.50155246, 0)
|
||||||
collision_layer = 65536
|
|
||||||
collision_mask = 65540
|
|
||||||
script = ExtResource("1_8j1nt")
|
|
||||||
stash_sound = ExtResource("3_0s6ir")
|
|
||||||
snap_mode = 1
|
|
||||||
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="XRToolsSnapZone2" unique_id=650960099]
|
[node name="CSGBox3D" type="CSGBox3D" parent="Table/CSGCombiner3D" index="0" unique_id=411048765]
|
||||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, -0.000975132, 0)
|
|
||||||
shape = SubResource("SphereShape3D_dlkho")
|
|
||||||
|
|
||||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="XRToolsSnapZone2" unique_id=709529410]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.013531357, -0.015141487, 0.012176305)
|
|
||||||
|
|
||||||
[node name="XRToolsSnapZone3" type="Area3D" parent="." unique_id=1734026785 groups=["station"]]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.012355864, 0.5270121, 0.33038777)
|
|
||||||
collision_layer = 65536
|
|
||||||
collision_mask = 65540
|
|
||||||
script = ExtResource("1_8j1nt")
|
|
||||||
stash_sound = ExtResource("3_0s6ir")
|
|
||||||
snap_mode = 1
|
|
||||||
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="XRToolsSnapZone3" unique_id=1271210642]
|
|
||||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, -0.000975132, 0)
|
|
||||||
shape = SubResource("SphereShape3D_dlkho")
|
|
||||||
|
|
||||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="XRToolsSnapZone3" unique_id=2000860662]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.013531357, -0.015141487, 0.012176305)
|
|
||||||
|
|
||||||
[node name="XRToolsSnapZone4" type="Area3D" parent="." unique_id=1358457948 groups=["station"]]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.022546828, 0.5270121, -0.36528283)
|
|
||||||
collision_layer = 65536
|
|
||||||
collision_mask = 65540
|
|
||||||
script = ExtResource("1_8j1nt")
|
|
||||||
stash_sound = ExtResource("3_0s6ir")
|
|
||||||
snap_mode = 1
|
|
||||||
metadata/_custom_type_script = "uid://cquqe4f1m1sw6"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="XRToolsSnapZone4" unique_id=1880499470]
|
|
||||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, -0.000975132, 0)
|
|
||||||
shape = SubResource("SphereShape3D_dlkho")
|
|
||||||
|
|
||||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="XRToolsSnapZone4" unique_id=790672192]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.013531357, -0.015141487, 0.012176305)
|
|
||||||
|
|
||||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="." unique_id=2085635675]
|
|
||||||
use_collision = true
|
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D" unique_id=411048765]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.46137518, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.46137518, 0)
|
||||||
size = Vector3(1, 0.077, 1)
|
size = Vector3(0.6, 0.077, 0.6)
|
||||||
material = SubResource("StandardMaterial3D_24d3s")
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
[node name="CSGBox3D2" type="CSGBox3D" parent="CSGCombiner3D" unique_id=2093582402]
|
[node name="CSGBox3D2" type="CSGBox3D" parent="Table/CSGCombiner3D" index="1" unique_id=2093582402]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.27815637, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.02685462, 0)
|
||||||
size = Vector3(0.1, 0.31586915, 0.1)
|
size = Vector3(0.1, 0.9258911, 0.1)
|
||||||
material = SubResource("StandardMaterial3D_24d3s")
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
[node name="CSGBox3D3" type="CSGBox3D" parent="CSGCombiner3D" unique_id=839228683]
|
[node name="CSGBox3D4" type="CSGBox3D" parent="Table/CSGCombiner3D" index="2" unique_id=345709075]
|
||||||
transform = Transform3D(0.86602545, 0.50000006, 0, -0.50000006, 0.86602545, 0, 0, 0, 1, -0.21657634, -0.106895894, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.41408914, 0)
|
||||||
size = Vector3(0.1, 0.8768555, 0.1)
|
size = Vector3(0.1, 0.15142211, 0.5341797)
|
||||||
material = SubResource("StandardMaterial3D_24d3s")
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
[node name="CSGBox3D4" type="CSGBox3D" parent="CSGCombiner3D" unique_id=1028598922]
|
[node name="CSGBox3D5" type="CSGBox3D" parent="Table/CSGCombiner3D" index="3" unique_id=550923256]
|
||||||
transform = Transform3D(-0.45971727, -0.2654179, 0.8474747, -0.50000006, 0.86602545, 0, -0.73393464, -0.4237374, -0.53083575, 0.10796261, -0.106895894, 0.16580808)
|
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 0, -0.41408914, 0)
|
||||||
size = Vector3(0.1, 0.8768555, 0.1)
|
size = Vector3(0.1, 0.15142211, 0.5341797)
|
||||||
material = SubResource("StandardMaterial3D_24d3s")
|
material = SubResource("StandardMaterial3D_24d3s")
|
||||||
|
|
||||||
[node name="CSGBox3D5" type="CSGBox3D" parent="CSGCombiner3D" unique_id=892392906]
|
[node name="Customers" type="Node3D" parent="Table" index="8" unique_id=2147179512]
|
||||||
transform = Transform3D(-0.38498235, -0.12489955, -0.9144338, -0.5286442, 0.8420017, 0.107556336, 0.756521, 0.5248176, -0.39018327, 0.059352398, -0.106895894, -0.2290039)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.50155246, 0)
|
||||||
size = Vector3(0.1, 0.8768555, 0.1)
|
|
||||||
material = SubResource("StandardMaterial3D_24d3s")
|
|
||||||
|
|
||||||
[node name="Customers" type="Node3D" parent="." unique_id=2147179512]
|
[node name="Customer" type="Node3D" parent="Table/Customers" index="0" unique_id=1265943831]
|
||||||
|
|
||||||
[node name="Customer" type="Node3D" parent="Customers" unique_id=1265943831]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.016780734, -0.08218986, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.016780734, -0.08218986, 0)
|
||||||
|
|
||||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Customers/Customer" unique_id=1211819222]
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Table/Customers/Customer" index="0" unique_id=1211819222]
|
||||||
transform = Transform3D(1.095, 0, 0, 0, 1.095, 0, 0, 0, 1.095, 0.08442788, -0.19989291, 0)
|
transform = Transform3D(1.095, 0, 0, 0, 1.095, 0, 0, 0, 1.095, 0.08442788, -0.19989291, 0)
|
||||||
|
|
||||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="Customers/Customer/CSGCombiner3D" unique_id=2104132980]
|
[node name="CSGSphere3D" type="CSGSphere3D" parent="Table/Customers/Customer/CSGCombiner3D" index="0" unique_id=2104132980]
|
||||||
transform = Transform3D(0.9999998, 0, 0, 0, 0.9999998, 0, 0, 0, 0.9999998, -0.7149929, 1.2762557, 0)
|
transform = Transform3D(0.9999998, 0, 0, 0, 0.9999998, 0, 0, 0, 0.9999998, -0.7149929, 1.2762557, 0)
|
||||||
radius = 0.17520222
|
radius = 0.17520222
|
||||||
|
|
||||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Customers/Customer/CSGCombiner3D" unique_id=808477724]
|
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Table/Customers/Customer/CSGCombiner3D" index="1" unique_id=808477724]
|
||||||
transform = Transform3D(0.9999998, 0, 0, 0, 1.7476468, 0, 0, 0, 0.9999998, -0.7366721, 0.8531885, 0)
|
transform = Transform3D(0.9999998, 0, 0, 0, 1.7476468, 0, 0, 0, 0.9999998, -0.7366721, 0.8531885, 0)
|
||||||
radius = 0.17520222
|
radius = 0.17520222
|
||||||
|
|
||||||
[node name="Seats" type="Node3D" parent="." unique_id=1101423789]
|
[node name="Seats" type="Node3D" parent="Table" index="9" unique_id=1101423789]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.50155246, 0)
|
||||||
|
|
||||||
[node name="Seat" type="Node3D" parent="Seats" unique_id=1951252898]
|
[node name="Seat" type="Node3D" parent="Table/Seats" index="0" unique_id=1951252898]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.9079602, -0.37259835, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.9079602, -0.37259835, 0)
|
||||||
|
|
||||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Seats/Seat" unique_id=384912485]
|
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Table/Seats/Seat" index="0" unique_id=384912485]
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Seats/Seat/CSGCombiner3D" unique_id=170426769]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Table/Seats/Seat/CSGCombiner3D" index="0" unique_id=170426769]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.18637085, 0.51674986, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.18637085, 0.51674986, 0)
|
||||||
radius = 0.25634766
|
radius = 0.25634766
|
||||||
height = 0.051940918
|
height = 0.051940918
|
||||||
sides = 16
|
sides = 16
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Seats/Seat/CSGCombiner3D" unique_id=1294605073]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Table/Seats/Seat/CSGCombiner3D" index="1" unique_id=1294605073]
|
||||||
transform = Transform3D(0.24355066, 0.98373884, 0, -1.3339849, 0.1796049, 0, 0, 0, 0.8365013, -0.05247748, 0.8547088, 0)
|
transform = Transform3D(0.24355066, 0.98373884, 0, -1.3339849, 0.1796049, 0, 0, 0, 0.8365013, -0.05247748, 0.8547088, 0)
|
||||||
radius = 0.25634766
|
radius = 0.25634766
|
||||||
height = 0.051940918
|
height = 0.051940918
|
||||||
sides = 16
|
sides = 16
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" parent="Seats/Seat/CSGCombiner3D" unique_id=1761839440]
|
[node name="CSGBox3D" type="CSGBox3D" parent="Table/Seats/Seat/CSGCombiner3D" index="2" unique_id=1761839440]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.030369163, 0.18746406, 0.1341562)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.030369163, 0.18746406, 0.1341562)
|
||||||
size = Vector3(0.05, 0.6713196, 0.05)
|
size = Vector3(0.05, 0.6713196, 0.05)
|
||||||
|
|
||||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Seats/Seat/CSGCombiner3D" unique_id=1395371703]
|
[node name="CSGBox3D2" type="CSGBox3D" parent="Table/Seats/Seat/CSGCombiner3D" index="3" unique_id=1395371703]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.030369163, 0.18746406, -0.15065354)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.030369163, 0.18746406, -0.15065354)
|
||||||
size = Vector3(0.05, 0.6713196, 0.05)
|
size = Vector3(0.05, 0.6713196, 0.05)
|
||||||
|
|
||||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Seats/Seat/CSGCombiner3D" unique_id=96608061]
|
[node name="CSGBox3D3" type="CSGBox3D" parent="Table/Seats/Seat/CSGCombiner3D" index="4" unique_id=96608061]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.33084005, 0.18746406, 0.1341562)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.33084005, 0.18746406, 0.1341562)
|
||||||
size = Vector3(0.05, 0.6713196, 0.05)
|
size = Vector3(0.05, 0.6713196, 0.05)
|
||||||
|
|
||||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Seats/Seat/CSGCombiner3D" unique_id=1684738537]
|
[node name="CSGBox3D4" type="CSGBox3D" parent="Table/Seats/Seat/CSGCombiner3D" index="5" unique_id=1684738537]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.33084005, 0.18746406, -0.15065354)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.33084005, 0.18746406, -0.15065354)
|
||||||
size = Vector3(0.05, 0.6713196, 0.05)
|
size = Vector3(0.05, 0.6713196, 0.05)
|
||||||
|
|
||||||
[node name="Label3D" type="Label3D" parent="." unique_id=662960977]
|
[node name="Label3D" type="Label3D" parent="Table" index="10" unique_id=662960977]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3247777, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8263302, 0)
|
||||||
|
pixel_size = 0.003
|
||||||
billboard = 2
|
billboard = 2
|
||||||
text = "table state"
|
text = "table state"
|
||||||
vertical_alignment = 0
|
vertical_alignment = 0
|
||||||
line_spacing = -15.0
|
line_spacing = -15.0
|
||||||
|
|
||||||
[node name="Label3DTime" type="Label3D" parent="." unique_id=1534849507]
|
[node name="Label3DTime" type="Label3D" parent="Table" index="11" unique_id=1534849507]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.4532461, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.0147986, 0)
|
||||||
|
visible = false
|
||||||
pixel_size = 0.003
|
pixel_size = 0.003
|
||||||
billboard = 2
|
billboard = 2
|
||||||
text = "20.1s"
|
text = "20.1s"
|
||||||
|
|
||||||
[node name="Sync" type="MultiplayerSynchronizer" parent="." unique_id=2000411505]
|
[node name="ProgressBar3D" parent="Table" index="12" unique_id=600000001 instance=ExtResource("3_kjf1i")]
|
||||||
replication_config = SubResource("SceneReplicationConfig_np_table")
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8692299, 0)
|
||||||
|
|
||||||
[node name="ProgressBar3D" parent="." unique_id=654673176 instance=ExtResource("3_kjf1i")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3676775, 0)
|
|
||||||
y_billboard = true
|
y_billboard = true
|
||||||
|
|
||||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="." unique_id=724610642]
|
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="Table" index="13" unique_id=724610642]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2935008, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.7950532, 0)
|
||||||
|
|
||||||
[node name="PlayerDetectArea3D" type="Area3D" parent="." unique_id=913445150]
|
[node name="PlayerDetectArea3D" type="Area3D" parent="Table" index="14" unique_id=913445150]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.50155246, 0)
|
||||||
|
collision_layer = 0
|
||||||
collision_mask = 524288
|
collision_mask = 524288
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerDetectArea3D" unique_id=1538221021]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Table/PlayerDetectArea3D" index="0" unique_id=1538221021]
|
||||||
shape = SubResource("BoxShape3D_vlqg6")
|
shape = SubResource("BoxShape3D_vlqg6")
|
||||||
|
|
||||||
|
[connection signal="body_entered" from="Table/PlayerDetectArea3D" to="Table" method="_on_player_enter"]
|
||||||
|
[connection signal="body_exited" from="Table/PlayerDetectArea3D" to="Table" method="_on_player_exit"]
|
||||||
|
|||||||
@@ -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`
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://cexxfyw03hr81"
|
uid="uid://7jt8macx4f5m"
|
||||||
path.s3tc="res://.godot/imported/1.png-28d6e3d31e46c95f0dea1abf906c0f74.s3tc.ctex"
|
path.s3tc="res://.godot/imported/1.png-28d6e3d31e46c95f0dea1abf906c0f74.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": ["s3tc_bptc"],
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
|||||||
@@ -2,21 +2,20 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://cxsy4fi0iv1dx"
|
uid="uid://10y5esimbuii"
|
||||||
path.s3tc="res://.godot/imported/2.png-3b4d648e04c4a84e8b8f6c622069553c.s3tc.ctex"
|
path="res://.godot/imported/2.png-3b4d648e04c4a84e8b8f6c622069553c.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": ["s3tc_bptc"],
|
"vram_texture": false
|
||||||
"vram_texture": true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://textures/2.png"
|
source_file="res://textures/2.png"
|
||||||
dest_files=["res://.godot/imported/2.png-3b4d648e04c4a84e8b8f6c622069553c.s3tc.ctex"]
|
dest_files=["res://.godot/imported/2.png-3b4d648e04c4a84e8b8f6c622069553c.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=2
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -24,7 +23,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=true
|
mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -38,4 +37,4 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=0
|
detect_3d/compress_to=1
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[gd_resource type="StandardMaterial3D" format=3 uid="uid://ds8145w3o6ml2"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
@@ -2,21 +2,20 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://cxeeadx0c2ygg"
|
uid="uid://pt6kv6kvlqof"
|
||||||
path.s3tc="res://.godot/imported/3.png-ff3babb0d8b4fdc49e4a4961a679d180.s3tc.ctex"
|
path="res://.godot/imported/3.png-ff3babb0d8b4fdc49e4a4961a679d180.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": ["s3tc_bptc"],
|
"vram_texture": false
|
||||||
"vram_texture": true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://textures/3.png"
|
source_file="res://textures/3.png"
|
||||||
dest_files=["res://.godot/imported/3.png-ff3babb0d8b4fdc49e4a4961a679d180.s3tc.ctex"]
|
dest_files=["res://.godot/imported/3.png-ff3babb0d8b4fdc49e4a4961a679d180.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=2
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -24,7 +23,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=true
|
mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -38,4 +37,4 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=0
|
detect_3d/compress_to=1
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dclplhusnrhx1"
|
||||||
|
path="res://.godot/imported/34ada903e409f375853dd34c62f9ceb531c152c6.png-e62c69580b417e1b97d4e6e3907a53d8.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://textures/34ada903e409f375853dd34c62f9ceb531c152c6.png"
|
||||||
|
dest_files=["res://.godot/imported/34ada903e409f375853dd34c62f9ceb531c152c6.png-e62c69580b417e1b97d4e6e3907a53d8.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
@@ -2,21 +2,20 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://xpf60mxi3cf"
|
uid="uid://ciughhrw0uxcd"
|
||||||
path.s3tc="res://.godot/imported/4.png-7c86e7f37dd6d943dc49fdd7899e8cb6.s3tc.ctex"
|
path="res://.godot/imported/4.png-7c86e7f37dd6d943dc49fdd7899e8cb6.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": ["s3tc_bptc"],
|
"vram_texture": false
|
||||||
"vram_texture": true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://textures/4.png"
|
source_file="res://textures/4.png"
|
||||||
dest_files=["res://.godot/imported/4.png-7c86e7f37dd6d943dc49fdd7899e8cb6.s3tc.ctex"]
|
dest_files=["res://.godot/imported/4.png-7c86e7f37dd6d943dc49fdd7899e8cb6.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=2
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -24,7 +23,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=true
|
mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -38,4 +37,4 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=0
|
detect_3d/compress_to=1
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user