From c6236ed9b0d08463809a9e810b004f8469dc8eb4 Mon Sep 17 00:00:00 2001 From: Graham Darcey Date: Tue, 26 Nov 2024 09:54:35 -0500 Subject: [PATCH] More sounds, more seamless hand popup when mouse hovers --- addons/collider_helper/collidergizmos.gd | 40 ++++ addons/collider_helper/plugin.cfg | 7 + addons/collider_helper/plugin.gd | 17 ++ scenes/main.tscn | 269 ++++++++++++++++------- scenes/menu.tscn | 1 + scripts/CardController.gd | 2 + scripts/GameLogic.gd | 1 + scripts/HandHider.gd | 34 +++ sounds/defaults.tres | 11 +- sounds/ding.ogg | Bin 0 -> 21364 bytes sounds/ding.ogg.import | 19 ++ sounds/slide.ogg | Bin 0 -> 8179 bytes sounds/slide.ogg.import | 19 ++ sounds/untap.ogg | Bin 0 -> 16266 bytes sounds/untap.ogg.import | 19 ++ 15 files changed, 361 insertions(+), 78 deletions(-) create mode 100644 addons/collider_helper/collidergizmos.gd create mode 100644 addons/collider_helper/plugin.cfg create mode 100644 addons/collider_helper/plugin.gd create mode 100644 sounds/ding.ogg create mode 100644 sounds/ding.ogg.import create mode 100644 sounds/slide.ogg create mode 100644 sounds/slide.ogg.import create mode 100644 sounds/untap.ogg create mode 100644 sounds/untap.ogg.import diff --git a/addons/collider_helper/collidergizmos.gd b/addons/collider_helper/collidergizmos.gd new file mode 100644 index 0000000..f71aed3 --- /dev/null +++ b/addons/collider_helper/collidergizmos.gd @@ -0,0 +1,40 @@ +@tool +extends EditorNode3DGizmoPlugin + +var node_references = {} + +func get_name(): + return "ColliderGizmos" + +# Create the gizmo visuals +func _create_gizmo(node): + print_debug("gizmo created!") + var gizmo = EditorNode3DGizmo.new() + node_references[gizmo] = node as CollisionShape3D + return gizmo + +# Define when to apply the gizmo +func _has_gizmo(spatial): + var yup = spatial is CollisionShape3D + if yup: + print_debug("yes has gizmo") + return yup + +func _free_gizmo(spatial): + if spatial in node_references: + node_references.erase(spatial) + +func _redraw(gizmo): + if gizmo not in node_references: + return + print_debug("redraw") + var node = node_references.get(gizmo) + if not node or node.shape is not BoxShape3D: + return + + print_debug("got here") + var mesh = BoxMesh.new() + mesh.size = (node.shape as BoxShape3D).size + gizmo.add_mesh(mesh, Transform3D.IDENTITY, get_material("handles")) + + return gizmo diff --git a/addons/collider_helper/plugin.cfg b/addons/collider_helper/plugin.cfg new file mode 100644 index 0000000..6b24373 --- /dev/null +++ b/addons/collider_helper/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="ColliderHelper" +description="A custom plugin for Godot." +author="GrahamDarcey" +version="1.0" +script="plugin.gd" diff --git a/addons/collider_helper/plugin.gd b/addons/collider_helper/plugin.gd new file mode 100644 index 0000000..793b896 --- /dev/null +++ b/addons/collider_helper/plugin.gd @@ -0,0 +1,17 @@ +@tool +extends EditorPlugin + +var gizmo_plugin: EditorNode3DGizmoPlugin + +func _enter_tree(): + # Load and instantiate the gizmo plugin + gizmo_plugin = preload("res://addons/collider_helper/collidergizmos.gd").new() + add_node_3d_gizmo_plugin(gizmo_plugin) + print("Custom Gizmo Plugin added to editor.") + +func _exit_tree(): + # Remove the gizmo plugin when the editor plugin is disabled + if gizmo_plugin: + remove_node_3d_gizmo_plugin(gizmo_plugin) + gizmo_plugin = null + print("Custom Gizmo Plugin removed from editor.") diff --git a/scenes/main.tscn b/scenes/main.tscn index 8e9ce5e..71f01f2 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -25,6 +25,171 @@ [ext_resource type="Script" path="res://scripts/HandHider.gd" id="24_t1swl"] [ext_resource type="AudioStream" uid="uid://bamttpx8po6un" path="res://sounds/background_game_music.ogg" id="24_tx78l"] +[sub_resource type="BoxShape3D" id="BoxShape3D_xga5y"] +size = Vector3(163.701, 15.2567, 1) + +[sub_resource type="Animation" id="Animation_0fllw"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Card Groups/Mine/MyHand:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(-0.709553, -9.428, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("MyAvatar:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, -2.63062, 4.05117)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("HandHider/CollisionShape3D:shape:size") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(163.701, 15.2567, 1)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("BattlefieldRigidbody:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_nkfqs"] +resource_name = "hand_display" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Card Groups/Mine/MyHand:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(-0.709553, -9.428, 0), Vector3(-0.71, -8, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("MyAvatar:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(0.1, 1), +"update": 0, +"values": [Vector3(0, -2.63062, 4.05117), Vector3(0, -7.9402, -3.57395)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("HandHider/CollisionShape3D:shape:size") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(163.701, 11.8994, 1), Vector3(163.701, 13.5, 1)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("BattlefieldRigidbody:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.3), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_4tns4"] +resource_name = "hand_hide" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Card Groups/Mine/MyHand:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(-0.71, -8, 0), Vector3(-0.709553, -9.428, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("MyAvatar:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, -4.931, 1.421), Vector3(0, -2.63062, 4.05117)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("HandHider/CollisionShape3D:shape:size") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(163.701, 13.5, 1), Vector3(163.701, 11.899, 1)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("BattlefieldRigidbody:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.3), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_66udh"] +_data = { +"RESET": SubResource("Animation_0fllw"), +"hand_display": SubResource("Animation_nkfqs"), +"hand_hide": SubResource("Animation_4tns4") +} + [sub_resource type="Environment" id="Environment_fi0gu"] background_mode = 1 background_color = Color(0.484884, 0.472692, 0.473723, 1) @@ -117,66 +282,33 @@ _data = { } [sub_resource type="BoxShape3D" id="BoxShape3D_14ddb"] -size = Vector3(50, 4.099, 1) - -[sub_resource type="BoxShape3D" id="BoxShape3D_xga5y"] -size = Vector3(163.701, 27.5475, 1) +size = Vector3(50, 1.59258, 1) -[sub_resource type="Animation" id="Animation_nkfqs"] -resource_name = "hand_display" -length = 0.3 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Card Groups/Mine/MyHand:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.3), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Vector3(-0.709553, -9.428, 0), Vector3(-0.71, -8, 0)] -} +[node name="root" type="Node3D"] -[sub_resource type="Animation" id="Animation_4tns4"] -resource_name = "hand_hide" -length = 0.3 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Card Groups/Mine/MyHand:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.3), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Vector3(-0.71, -8, 0), Vector3(-0.709553, -9.428, 0)] -} +[node name="HandHider" type="RigidBody3D" parent="." node_paths=PackedStringArray("animator")] +collision_layer = 8 +collision_mask = 8 +gravity_scale = 0.0 +can_sleep = false +freeze = true +script = ExtResource("24_t1swl") +animator = NodePath("AnimationPlayer") +sound_resource = ExtResource("12_g1dgu") -[sub_resource type="Animation" id="Animation_0fllw"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Card Groups/Mine/MyHand:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector3(-0.709553, -9.428, 0)] -} +[node name="CollisionShape3D" type="CollisionShape3D" parent="HandHider"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0907745, -10.0203, 0.613312) +shape = SubResource("BoxShape3D_xga5y") -[sub_resource type="AnimationLibrary" id="AnimationLibrary_66udh"] -_data = { -"RESET": SubResource("Animation_0fllw"), -"hand_display": SubResource("Animation_nkfqs"), -"hand_hide": SubResource("Animation_4tns4") +[node name="AnimationPlayer" type="AnimationPlayer" parent="HandHider"] +root_node = NodePath("../..") +libraries = { +"": SubResource("AnimationLibrary_66udh") } -[node name="root" type="Node3D"] +[node name="DebounceTimer" type="Timer" parent="HandHider"] +wait_time = 0.5 +one_shot = true [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_fi0gu") @@ -363,6 +495,7 @@ alpha_cut = 1 texture = ExtResource("16_sjurj") [node name="MyAvatar" parent="." node_paths=PackedStringArray("graveyard") instance=ExtResource("21_5rpq5")] +process_mode = 4 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.63062, 4.05117) graveyard = NodePath("../Card Groups/Mine/MyGraveyard") @@ -625,10 +758,12 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 [node name="NotificationRichTextLabel" type="RichTextLabel" parent="Main Canvas/NotificationPanel/CenterContainer"] custom_minimum_size = Vector2(900, 0) layout_mode = 2 +mouse_filter = 2 theme_override_font_sizes/bold_italics_font_size = 60 bbcode_enabled = true text = "[center][b][i]YOUR TURN![/i][/b][/center]" @@ -649,35 +784,17 @@ can_sleep = false freeze = true [node name="CollisionShape3D" type="CollisionShape3D" parent="BattlefieldRigidbody"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.001, 0.148, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.001, 0.0373511, 2.604) shape = SubResource("BoxShape3D_14ddb") [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] stream = ExtResource("24_tx78l") +volume_db = -30.0 autoplay = true parameters/looping = true -[node name="HandHider" type="RigidBody3D" parent="." node_paths=PackedStringArray("animator")] -collision_layer = 4 -collision_mask = 4 -gravity_scale = 0.0 -can_sleep = false -freeze = true -script = ExtResource("24_t1swl") -animator = NodePath("AnimationPlayer") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="HandHider"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0907745, -19.006, 0) -shape = SubResource("BoxShape3D_xga5y") - -[node name="AnimationPlayer" type="AnimationPlayer" parent="HandHider"] -root_node = NodePath("../..") -libraries = { -"": SubResource("AnimationLibrary_66udh") -} - +[connection signal="mouse_entered" from="HandHider" to="HandHider" method="_on_mouse_entered"] +[connection signal="mouse_exited" from="HandHider" to="HandHider" method="_on_mouse_exited"] [connection signal="pressed" from="Main Canvas/DonePanel/DoneButton" to="GameLogic" method="_on_done_pressed"] [connection signal="mouse_entered" from="BattlefieldRigidbody" to="Camera3D" method="_on_battlefield_mouse_entered"] [connection signal="mouse_exited" from="BattlefieldRigidbody" to="Camera3D" method="_on_battlefield_mouse_exited"] -[connection signal="mouse_entered" from="HandHider" to="HandHider" method="_on_mouse_entered"] -[connection signal="mouse_exited" from="HandHider" to="HandHider" method="_on_mouse_exited"] diff --git a/scenes/menu.tscn b/scenes/menu.tscn index 79184d9..43724ee 100644 --- a/scenes/menu.tscn +++ b/scenes/menu.tscn @@ -132,6 +132,7 @@ transform = Transform3D(0.0107671, 0, -0.0225626, 0, 0.025, 0, 0.0225626, 0, 0.0 [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] stream = ExtResource("7_nv0cn") +volume_db = -29.931 autoplay = true parameters/looping = true diff --git a/scripts/CardController.gd b/scripts/CardController.gd index 625a8f6..7321987 100644 --- a/scripts/CardController.gd +++ b/scripts/CardController.gd @@ -124,6 +124,8 @@ func on_clicked() -> void: func do_tap() -> void: tapped = !tapped queue.append("tap" if tapped else "untap") + if not tapped: + Audio.play(sound_resource.sounds.get("untap")) func do_turn(): turned = !turned diff --git a/scripts/GameLogic.gd b/scripts/GameLogic.gd index 722707e..9affd2b 100644 --- a/scripts/GameLogic.gd +++ b/scripts/GameLogic.gd @@ -86,6 +86,7 @@ func _on_done_pressed(): await on_turn_start() func on_turn_start(): + Audio.play(sound_resource.sounds.get("turn_start")) await display_notification("Your turn" if state == GameState.MY_TURN else "Opponent's turn") configure_done_button("DONE") await get_tree().create_timer(2).timeout diff --git a/scripts/HandHider.gd b/scripts/HandHider.gd index 86561a5..159fd44 100644 --- a/scripts/HandHider.gd +++ b/scripts/HandHider.gd @@ -1,9 +1,43 @@ extends Node @export var animator : AnimationPlayer +@export var sound_resource : Resource + +var can_trigger = true + +func _ready(): + $DebounceTimer.connect("timeout", Callable(self, "_on_debounce_timeout")) + +func on_user_action(): + if can_trigger: + # Handle the action + print("Action triggered!") + # Disable further triggers and start the debounce timer + can_trigger = false + $DebounceTimer.start() + +func _on_debounce_timeout(): + # Re-enable triggers after the debounce timer + can_trigger = true func _on_mouse_entered() -> void: + print("on mouse entered") + #if can_trigger: + ## Handle the action + #print("Action triggered!") + ## Disable further triggers and start the debounce timer + #can_trigger = false + #$DebounceTimer.start() animator.play("hand_display") + Audio.play(sound_resource.sounds.get("hand_show")) func _on_mouse_exited() -> void: + print("on mouse exited") + #if can_trigger: + ## Handle the action + #print("Action triggered!") + ## Disable further triggers and start the debounce timer + #can_trigger = false + #$DebounceTimer.start() animator.play("hand_hide") + Audio.play(sound_resource.sounds.get("hand_hide")) diff --git a/sounds/defaults.tres b/sounds/defaults.tres index 580edf6..0fa2c14 100644 --- a/sounds/defaults.tres +++ b/sounds/defaults.tres @@ -1,9 +1,12 @@ -[gd_resource type="Resource" load_steps=6 format=3 uid="uid://d3f4j3k5ep0ew"] +[gd_resource type="Resource" load_steps=9 format=3 uid="uid://d3f4j3k5ep0ew"] [ext_resource type="AudioStream" uid="uid://cdt7b5s5buo81" path="res://sounds/hit.ogg" id="1_8b5rk"] [ext_resource type="AudioStream" uid="uid://ddgw2ir3mmqr8" path="res://sounds/draw.ogg" id="2_sgs4j"] [ext_resource type="AudioStream" uid="uid://bmbahxmv63kr4" path="res://sounds/plop.ogg" id="3_d8f2r"] [ext_resource type="AudioStream" uid="uid://l72p4xa51evd" path="res://sounds/yoink.ogg" id="4_t4bwo"] +[ext_resource type="AudioStream" uid="uid://ccvvd56xmf30s" path="res://sounds/slide.ogg" id="5_p5x30"] +[ext_resource type="AudioStream" uid="uid://bvv7ixll1c6e4" path="res://sounds/ding.ogg" id="6_6diiv"] +[ext_resource type="AudioStream" uid="uid://yvp1s7tv1hnt" path="res://sounds/untap.ogg" id="7_uw8tg"] [sub_resource type="GDScript" id="GDScript_yrye7"] script/source = "@export var sounds : Dictionary @@ -15,5 +18,9 @@ sounds = { "draw": ExtResource("2_sgs4j"), "enter_hand": ExtResource("4_t4bwo"), "enter_play": ExtResource("3_d8f2r"), -"hit": ExtResource("1_8b5rk") +"hand_hide": ExtResource("5_p5x30"), +"hand_show": ExtResource("5_p5x30"), +"hit": ExtResource("1_8b5rk"), +"turn_start": ExtResource("6_6diiv"), +"untap": ExtResource("7_uw8tg") } diff --git a/sounds/ding.ogg b/sounds/ding.ogg new file mode 100644 index 0000000000000000000000000000000000000000..014d01fe24d4d032477bc123eca82d06fb73b547 GIT binary patch literal 21364 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 OfM(2kE^?uOcWU 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 IU;