NoteBlock.tscn 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. [gd_scene load_steps=15 format=3 uid="uid://bxvcax2wc48xh"]
  2. [ext_resource type="Script" uid="uid://c0diue1hemrxq" path="res://Scripts/Classes/Blocks/NoteBlock.gd" id="1_lhrvd"]
  3. [ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="2_jg54v"]
  4. [ext_resource type="JSON" path="res://Assets/Sprites/Blocks/NoteBlock.json" id="4_lhrvd"]
  5. [ext_resource type="Texture2D" uid="uid://bk4q17a2esuy1" path="res://Assets/Sprites/Blocks/NoteBlock.png" id="4_pp28j"]
  6. [ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="6_4015b"]
  7. [ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="6_jg54v"]
  8. [sub_resource type="AtlasTexture" id="AtlasTexture_ibsa0"]
  9. atlas = ExtResource("4_pp28j")
  10. region = Rect2(0, 0, 16, 16)
  11. [sub_resource type="SpriteFrames" id="SpriteFrames_26wi5"]
  12. animations = [{
  13. "frames": [{
  14. "duration": 1.0,
  15. "texture": SubResource("AtlasTexture_ibsa0")
  16. }],
  17. "loop": true,
  18. "name": &"default",
  19. "speed": 5.0
  20. }]
  21. [sub_resource type="RectangleShape2D" id="RectangleShape2D_jg54v"]
  22. size = Vector2(14, 9.5)
  23. [sub_resource type="RectangleShape2D" id="RectangleShape2D_4015b"]
  24. size = Vector2(16, 16)
  25. [sub_resource type="Animation" id="Animation_4015b"]
  26. resource_name = "BounceDown"
  27. length = 0.24
  28. tracks/0/type = "value"
  29. tracks/0/imported = false
  30. tracks/0/enabled = true
  31. tracks/0/path = NodePath("Sprite:position")
  32. tracks/0/interp = 2
  33. tracks/0/loop_wrap = true
  34. tracks/0/keys = {
  35. "times": PackedFloat32Array(0, 0.10000001, 0.20000002),
  36. "transitions": PackedFloat32Array(1, 1, 1),
  37. "update": 0,
  38. "values": [Vector2(0, 0), Vector2(0, 12), Vector2(0, 0)]
  39. }
  40. tracks/1/type = "method"
  41. tracks/1/imported = false
  42. tracks/1/enabled = true
  43. tracks/1/path = NodePath(".")
  44. tracks/1/interp = 1
  45. tracks/1/loop_wrap = true
  46. tracks/1/keys = {
  47. "times": PackedFloat32Array(0.1),
  48. "transitions": PackedFloat32Array(1),
  49. "values": [{
  50. "args": [],
  51. "method": &"bounce_bodies"
  52. }]
  53. }
  54. [sub_resource type="Animation" id="Animation_lhrvd"]
  55. resource_name = "BounceUp"
  56. length = 0.24
  57. tracks/0/type = "value"
  58. tracks/0/imported = false
  59. tracks/0/enabled = true
  60. tracks/0/path = NodePath("Sprite:position")
  61. tracks/0/interp = 2
  62. tracks/0/loop_wrap = true
  63. tracks/0/keys = {
  64. "times": PackedFloat32Array(0, 0.10000001, 0.20000002),
  65. "transitions": PackedFloat32Array(1, 1, 1),
  66. "update": 0,
  67. "values": [Vector2(0, 0), Vector2(0, -8), Vector2(0, 0)]
  68. }
  69. [sub_resource type="Animation" id="Animation_jg54v"]
  70. length = 0.001
  71. tracks/0/type = "value"
  72. tracks/0/imported = false
  73. tracks/0/enabled = true
  74. tracks/0/path = NodePath("Sprite:position")
  75. tracks/0/interp = 1
  76. tracks/0/loop_wrap = true
  77. tracks/0/keys = {
  78. "times": PackedFloat32Array(0),
  79. "transitions": PackedFloat32Array(1),
  80. "update": 0,
  81. "values": [Vector2(0, 0)]
  82. }
  83. [sub_resource type="AnimationLibrary" id="AnimationLibrary_pp28j"]
  84. _data = {
  85. &"BounceDown": SubResource("Animation_4015b"),
  86. &"BounceUp": SubResource("Animation_lhrvd"),
  87. &"RESET": SubResource("Animation_jg54v")
  88. }
  89. [node name="NoteBlock" type="AnimatableBody2D" node_paths=PackedStringArray("visuals")]
  90. collision_layer = 6
  91. sync_to_physics = false
  92. script = ExtResource("1_lhrvd")
  93. visuals = NodePath("Sprite")
  94. destructable = false
  95. metadata/_custom_type_script = "uid://b5ejlbl0vp1gm"
  96. [node name="Sprite" type="AnimatedSprite2D" parent="."]
  97. sprite_frames = SubResource("SpriteFrames_26wi5")
  98. autoplay = "default"
  99. [node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
  100. script = ExtResource("2_jg54v")
  101. node_to_affect = NodePath("..")
  102. property_name = "sprite_frames"
  103. resource_json = ExtResource("4_lhrvd")
  104. metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
  105. [node name="Area" type="Area2D" parent="Sprite"]
  106. unique_name_in_owner = true
  107. priority = -1
  108. [node name="Shape" type="CollisionShape2D" parent="Sprite/Area"]
  109. position = Vector2(0, -12.25)
  110. shape = SubResource("RectangleShape2D_jg54v")
  111. [node name="RemoteTransform2D" type="RemoteTransform2D" parent="Sprite"]
  112. remote_path = NodePath("../../Collision")
  113. [node name="Collision" type="CollisionShape2D" parent="."]
  114. shape = SubResource("RectangleShape2D_4015b")
  115. [node name="Animations" type="AnimationPlayer" parent="."]
  116. unique_name_in_owner = true
  117. libraries = {
  118. &"": SubResource("AnimationLibrary_pp28j")
  119. }
  120. [node name="EditorPropertyExposer" type="Node" parent="."]
  121. script = ExtResource("6_jg54v")
  122. properties = Array[String](["item", "item_amount"])
  123. filters = Dictionary[String, String]({
  124. "item": "can_note_store"
  125. })
  126. [node name="TrackJoint" type="Node" parent="."]
  127. script = ExtResource("6_4015b")
  128. offset = Vector2(0, 0)
  129. disable_physics = false
  130. metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
  131. [connection signal="player_block_hit" from="." to="." method="bounce_up" unbinds=1]
  132. [connection signal="shell_block_hit" from="." to="." method="bounce_up" unbinds=1]
  133. [connection signal="area_entered" from="Sprite/Area" to="." method="on_area_entered"]