diff --git a/Stations/table.gd b/Stations/table.gd index c5fd8fe..71de5cf 100644 --- a/Stations/table.gd +++ b/Stations/table.gd @@ -7,11 +7,13 @@ const GAME_MANAGER = preload("res://GameManager.gd") @export var primary_duration: float = 60.0 @export var friend_duration: float = 10.0 @export var eating_duration: float = 4.0 +@export var money_sound: AudioStream @onready var label_3d: Label3D = $Label3D @onready var label_3d_time: Label3D = $Label3DTime @onready var snap_zones: Array[XRToolsSnapZone] = [] @onready var progress_bar: ProgressBar3D = $ProgressBar3D +@onready var audio_player: AudioStreamPlayer3D = $AudioStreamPlayer3D const lbl_thinking: String = "Thinking" const lbl_gameover: String = "Game Over!" @@ -45,9 +47,11 @@ func _ready() -> void: if not label_3d_time: push_error("Table is missing reference to Label3DTime") if not progress_bar or progress_bar is not ProgressBar3D: - push_error("Hob missing reference to progressbar, or wrong type:", progress_bar) + push_error("Table missing reference to progressbar, or wrong type:", progress_bar) progress_bar.y_billboard = true - + if not audio_player: + push_error("Table is missing reference to AudioStreamPlayer3D") + # Get snap_zones for plates, store in array snap_zones for child in get_children(): var snap_zone_node = child as XRToolsSnapZone @@ -94,12 +98,14 @@ func _absorb_item_if_correct(_item: Node) -> void: if food_item.id in _unsatisfied_orders: print("Table: held FoodItem is in unsatisfied orders, removing it") _unsatisfied_orders.erase(food_item.id) - GAME_MANAGER.money += food_item.sell_value if _unsatisfied_orders.size() > 0 and _state != TableState.EATING: _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) diff --git a/Stations/table.tscn b/Stations/table.tscn index 43465ff..9640887 100644 --- a/Stations/table.tscn +++ b/Stations/table.tscn @@ -2,6 +2,7 @@ [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="AudioStream" uid="uid://clkjwcawdqvta" path="res://Sounds/money.mp3" id="2_jslhm"] [ext_resource type="AudioStream" uid="uid://daiv8ubwdbidf" path="res://Sounds/220195__gameaudio__click-wooden-1.wav" id="3_0s6ir"] [ext_resource type="PackedScene" uid="uid://bxbocxdaayvwx" path="res://UI/progress_bar.tscn" id="3_kjf1i"] @@ -27,6 +28,7 @@ properties/2/replication_mode = 1 [node name="Table" type="StaticBody3D" unique_id=1863572470 groups=["station"]] script = ExtResource("1_2vcpj") +money_sound = ExtResource("2_jslhm") [node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=228053941] shape = SubResource("BoxShape3D_24d3s") @@ -45,7 +47,7 @@ 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="XRToolsSnapZone" unique_id=2135860710] -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.013531357, -0.015141487, 0.012176305) [node name="XRToolsSnapZone2" type="Area3D" parent="." unique_id=694448387 groups=["station"]] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.34755045, 0.5270121, 0) @@ -61,7 +63,7 @@ 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.022546828, -0.5270121, 0.36528283) +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) @@ -77,7 +79,7 @@ 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.022546828, -0.5270121, 0.36528283) +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) @@ -93,13 +95,14 @@ 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.022546828, -0.5270121, 0.36528283) +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) -size = Vector3(0.6, 0.077, 0.6) +size = Vector3(1, 0.077, 1) material = SubResource("StandardMaterial3D_24d3s") [node name="CSGBox3D2" type="CSGBox3D" parent="CSGCombiner3D" unique_id=2093582402] @@ -192,3 +195,6 @@ replication_config = SubResource("SceneReplicationConfig_np_table") [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 + +[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="." unique_id=724610642] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2935008, 0)