Skip to content

Commit 31d9bd2

Browse files
committed
different repel objects
1 parent 44b1ad3 commit 31d9bd2

1 file changed

Lines changed: 330 additions & 1 deletion

File tree

scenes/world_map/frays_end.tscn

Lines changed: 330 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,20 @@
5959
[ext_resource type="PackedScene" uid="uid://dgrrudegturnw" path="res://scenes/game_elements/characters/npcs/townie.tscn" id="54_duxxr"]
6060
[ext_resource type="PackedScene" uid="uid://daqd67aro1o1m" path="res://scenes/game_elements/fx/time_and_weather/time_and_weather.tscn" id="55_ojao8"]
6161
[ext_resource type="Script" uid="uid://cbj0406q05dly" path="res://scenes/game_elements/props/hint/input_key/interact_input.gd" id="55_wymun"]
62+
[ext_resource type="Texture2D" uid="uid://ctwx8gghts62p" path="res://assets/third_party/tiny-swords/Deco/06.png" id="56_7kfal"]
6263
[ext_resource type="Script" uid="uid://edcifob4jc4s" path="res://scenes/game_logic/talk_behavior.gd" id="56_ojao8"]
64+
[ext_resource type="Texture2D" uid="uid://c7oht7wudd8wa" path="res://assets/first_party/tiles/Cliff_Tiles.png" id="57_7n6eg"]
65+
[ext_resource type="Texture2D" uid="uid://ciwy8mfi0mv65" path="res://scenes/quests/story_quests/after_the_tremor/0_intro/Imagenes/ball_free.png" id="57_8dti7"]
66+
[ext_resource type="Texture2D" uid="uid://pjdmmuwvkw14" path="res://assets/third_party/tiny-swords-non-cc0/Terrain/Resources/Gold/Gold Stones/Gold Stone 6.png" id="57_bu3x1"]
67+
[ext_resource type="Texture2D" uid="uid://dlpjjca2udf42" path="res://scenes/game_elements/props/button_item/components/button-shadow.png" id="58_7hq0m"]
6368
[ext_resource type="Script" uid="uid://uaaaiviytliw" path="res://scenes/world_map/components/quest_progress_unlocker.gd" id="58_ojao8"]
69+
[ext_resource type="Texture2D" uid="uid://d0ss8ifqbuj2i" path="res://assets/third_party/tiny-swords-non-cc0/Terrain/Tileset/Shadow.png" id="59_16ifw"]
6470
[ext_resource type="Script" uid="uid://dts1hwdy3phin" path="res://scenes/menus/storybook/components/quest.gd" id="59_qgpx3"]
6571
[ext_resource type="Resource" uid="uid://t50glay2iqhg" path="res://scenes/quests/lore_quests/quest_002/quest.tres" id="60_6b07c"]
6672
[ext_resource type="Script" uid="uid://0enyu5v4ra34" path="res://scenes/game_elements/props/spawn_point/components/spawn_point.gd" id="61_6b07c"]
73+
[ext_resource type="Texture2D" uid="uid://uy2acspf6apo" path="res://scenes/game_elements/props/lever/components/Lever.png" id="62_p2k53"]
6774
[ext_resource type="Script" uid="uid://hqdquinbimce" path="res://scenes/game_elements/props/teleporter/teleporter.gd" id="62_t7c6s"]
75+
[ext_resource type="Script" uid="uid://dunsvrhq42214" path="res://scenes/game_elements/fx/shaker/components/shaker.gd" id="63_a070f"]
6876
[ext_resource type="PackedScene" uid="uid://covsdqqsd6rsy" path="res://scenes/game_elements/props/sign/sign.tscn" id="64_uxfrp"]
6977

7078
[sub_resource type="RectangleShape2D" id="RectangleShape2D_duxxr"]
@@ -82,6 +90,186 @@ size = Vector2(52, 61)
8290
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ulm71"]
8391
size = Vector2(128, 128)
8492

93+
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_16ifw"]
94+
95+
[sub_resource type="GDScript" id="GDScript_bu3x1"]
96+
script/source = "# SPDX-FileCopyrightText: The Threadbare Authors
97+
# SPDX-License-Identifier: MPL-2.0
98+
extends RigidBody2D
99+
100+
var tween: Tween
101+
102+
103+
func got_repelled(direction: Vector2) -> void:
104+
var hit_vector: Vector2 = direction * 300.0
105+
linear_velocity = Vector2.ZERO
106+
apply_impulse(hit_vector)
107+
"
108+
109+
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_7n6eg"]
110+
radius = 11.0
111+
height = 36.0
112+
113+
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_bu3x1"]
114+
friction = 0.5
115+
bounce = 1.0
116+
117+
[sub_resource type="GDScript" id="GDScript_8dti7"]
118+
script/source = "# SPDX-FileCopyrightText: The Threadbare Authors
119+
# SPDX-License-Identifier: MPL-2.0
120+
extends RigidBody2D
121+
122+
var tween: Tween
123+
124+
125+
func got_repelled(direction: Vector2) -> void:
126+
var hit_vector: Vector2 = direction * 300.0
127+
linear_damp = 2
128+
linear_velocity = Vector2.ZERO
129+
apply_impulse(hit_vector)
130+
131+
132+
func _on_sleeping_state_changed() -> void:
133+
linear_damp = 10
134+
"
135+
136+
[sub_resource type="CircleShape2D" id="CircleShape2D_bu3x1"]
137+
radius = 19.104973
138+
139+
[sub_resource type="GDScript" id="GDScript_7kfal"]
140+
script/source = "# SPDX-FileCopyrightText: The Threadbare Authors
141+
# SPDX-License-Identifier: MPL-2.0
142+
extends RigidBody2D
143+
144+
145+
func get_closest_axis(vector: Vector2) -> Vector2:
146+
if abs(vector.x) > abs(vector.y):
147+
# Closer to Horizontal (X-axis)
148+
return Vector2(sign(vector.x), 0)
149+
else:
150+
# Closer to Vertical (Y-axis)
151+
return Vector2(0, sign(vector.y))
152+
153+
154+
func got_repelled(direction: Vector2) -> void:
155+
var hit_vector: Vector2 = get_closest_axis(direction) * 100.0
156+
linear_velocity = Vector2.ZERO
157+
apply_impulse(hit_vector)
158+
"
159+
160+
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_bu3x1"]
161+
radius = 19.0
162+
height = 64.0
163+
164+
[sub_resource type="GDScript" id="GDScript_7n6eg"]
165+
script/source = "# SPDX-FileCopyrightText: The Threadbare Authors
166+
# SPDX-License-Identifier: MPL-2.0
167+
extends AnimatableBody2D
168+
169+
const NEIGHBORS_FOR_AXIS: Dictionary[Vector2i, TileSet.CellNeighbor] = {
170+
Vector2i.DOWN: TileSet.CELL_NEIGHBOR_BOTTOM_SIDE,
171+
Vector2i.LEFT: TileSet.CELL_NEIGHBOR_LEFT_SIDE,
172+
Vector2i.UP: TileSet.CELL_NEIGHBOR_TOP_SIDE,
173+
Vector2i.RIGHT: TileSet.CELL_NEIGHBOR_RIGHT_SIDE,
174+
}
175+
176+
@export var constrain_layer: TileMapLayer
177+
178+
@onready var shaker: Shaker = $Shaker
179+
180+
var tween: Tween
181+
182+
183+
func global_position_to_tile_coordinate(global_pos: Vector2) -> Vector2i:
184+
return constrain_layer.local_to_map(constrain_layer.to_local(global_pos))
185+
186+
func tile_coordinate_to_global_position(coord: Vector2i) -> Vector2:
187+
return constrain_layer.map_to_local(coord)
188+
189+
func _ready() -> void:
190+
# Put this object on the grid:
191+
var coord := global_position_to_tile_coordinate(global_position)
192+
global_position = tile_coordinate_to_global_position(coord)
193+
194+
195+
func get_closest_axis(vector: Vector2) -> Vector2i:
196+
if abs(vector.x) > abs(vector.y):
197+
# Closer to Horizontal (X-axis)
198+
return Vector2i(sign(vector.x), 0)
199+
else:
200+
# Closer to Vertical (Y-axis)
201+
return Vector2i(0, sign(vector.y))
202+
203+
204+
func got_repelled(direction: Vector2) -> void:
205+
var axis := get_closest_axis(direction)
206+
var neighbor := NEIGHBORS_FOR_AXIS[axis]
207+
var coord := global_position_to_tile_coordinate(global_position)
208+
assert(constrain_layer.get_cell_tile_data(coord) != null)
209+
var new_coord := constrain_layer.get_neighbor_cell(coord, neighbor)
210+
var data := constrain_layer.get_cell_tile_data(new_coord)
211+
if not data:
212+
shaker.shake()
213+
return
214+
215+
if tween:
216+
if tween.is_running():
217+
return
218+
else:
219+
tween.kill()
220+
tween = create_tween()
221+
tween.set_ease(Tween.EASE_OUT)
222+
var new_position := position + Vector2(axis) * 64
223+
tween.tween_property(self, \"position\", new_position, .2)
224+
"
225+
226+
[sub_resource type="AtlasTexture" id="AtlasTexture_bu3x1"]
227+
atlas = ExtResource("57_7n6eg")
228+
region = Rect2(192, 256, 64, 128)
229+
230+
[sub_resource type="RectangleShape2D" id="RectangleShape2D_8dti7"]
231+
size = Vector2(64, 64)
232+
233+
[sub_resource type="GDScript" id="GDScript_p2k53"]
234+
script/source = "# SPDX-FileCopyrightText: The Threadbare Authors
235+
# SPDX-License-Identifier: MPL-2.0
236+
extends StaticBody2D
237+
238+
const FRAME_FOR_SIDE: Dictionary[Enums.LookAtSide, int] = {
239+
Enums.LookAtSide.LEFT: 0,
240+
Enums.LookAtSide.RIGHT: 1,
241+
}
242+
243+
@onready var lever_sprite: Sprite2D = $LeverSprite
244+
@onready var shaker: Shaker = $Shaker
245+
246+
var lever_side: Enums.LookAtSide = Enums.LookAtSide.LEFT:
247+
set = set_lever_side
248+
249+
func set_lever_side(new_side: Enums.LookAtSide) -> void:
250+
lever_side = new_side
251+
lever_sprite.frame = FRAME_FOR_SIDE[lever_side]
252+
253+
func _ready() -> void:
254+
set_lever_side(lever_side)
255+
256+
257+
func got_repelled(direction: Vector2) -> void:
258+
var sign_x := signf(direction.x)
259+
var new_side: Enums.LookAtSide
260+
if sign_x == 1:
261+
new_side = Enums.LookAtSide.RIGHT
262+
elif sign_x == -1:
263+
new_side = Enums.LookAtSide.LEFT
264+
if new_side == lever_side:
265+
shaker.shake()
266+
else:
267+
lever_side = new_side
268+
"
269+
270+
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_p2k53"]
271+
height = 58.0
272+
85273
[node name="FraysEnd" type="Node2D" unique_id=1849947277]
86274
script = ExtResource("1_4gse6")
87275
metadata/_edit_lock_ = true
@@ -125,7 +313,7 @@ tile_map_data = PackedByteArray("AAAaAAYABgACAAAAAAAaAAcABgACAAIAAAAZAAcABgABAAI
125313
tile_set = ExtResource("7_r1ek1")
126314
127315
[node name="Paths_Level1" type="TileMapLayer" parent="TileMapLayers" unique_id=971351640]
128-
tile_map_data = PackedByteArray("AAARAA0AAQAHAAIAAAARAAwAAQAHAAEAAAAQAA0AAQAGAAIAAAAQAAwAAQAGAAEAAAAPAA4AAQAIAAEAAAAPAA0AAQAGAAEAAAAPAAwAAQAGAAEAAAAOAA0AAQAGAAIAAAAOAAwAAQAGAAEAAAANAA0AAQAFAAIAAAANAAwAAQAFAAEAAAARAAsAAQAHAAEAAAAQAAsAAQAGAAEAAAAPABEAAQAIAAEAAAAPABAAAQAIAAEAAAAPAA8AAQAIAAEAAAAPAAsAAQAGAAEAAAAOAAsAAQAGAAEAAAANAAsAAQAFAAEAAAAPABkAAQAHAAIAAAAPABgAAQAIAAEAAAAOABkAAQAGAAMAAAAPABcAAQAIAAAAAAAPABMAAQAIAAIAAAABABkAAQAGAAAAAAACABkAAQAGAAAAAAADABkAAQAGAAAAAAAEABkAAQAGAAMAAAAFABkAAQAGAAMAAAAGABkAAQAGAAMAAAAHABkAAQAGAAMAAAAIABkAAQAGAAMAAAAJABkAAQAGAAMAAAAKABkAAQAGAAMAAAALABkAAQAGAAMAAAAMABkAAQAGAAMAAAANABkAAQAGAAMAAAAAABkAAQAFAAAAAAAAABoAAQAFAAEAAAABABoAAQAGAAEAAAACABoAAQAGAAEAAAADABoAAQAHAAEAAAAAABsAAQAFAAIAAAABABsAAQAGAAIAAAACABsAAQAGAAIAAAADABsAAQAHAAIAAAAPABIAAQAIAAEAAAARAAoAAQAHAAEAAAANAAoAAQAFAAEAAAANAAkAAQAFAAAAAAAOAAkAAQAGAAAAAAAPAAkAAQAGAAAAAAAQAAkAAQAGAAAAAAARAAkAAQAHAAAAAAAOAAoAAQAGAAEAAAAPAAoAAQAGAAEAAAAQAAoAAQAGAAEAAAA=")
316+
tile_map_data = PackedByteArray("AAARAA0AAQAHAAIAAAARAAwAAQAHAAEAAAAQAA0AAQAGAAIAAAAQAAwAAQAGAAEAAAAPAA4AAQAIAAEAAAAPAA0AAQAGAAEAAAAPAAwAAQAGAAEAAAAOAA0AAQAGAAIAAAAOAAwAAQAGAAEAAAANAA0AAQAFAAIAAAANAAwAAQAFAAEAAAARAAsAAQAHAAEAAAAQAAsAAQAGAAEAAAAPABEAAQAIAAEAAAAPABAAAQAIAAEAAAAPAA8AAQAIAAEAAAAPAAsAAQAGAAEAAAAOAAsAAQAGAAEAAAANAAsAAQAFAAEAAAAPABkAAQAHAAIAAAAPABgAAQAIAAEAAAAOABkAAQAGAAMAAAAPABcAAQAIAAAAAAAPABMAAQAGAAIAAAABABkAAQAGAAAAAAACABkAAQAGAAAAAAADABkAAQAGAAAAAAAEABkAAQAGAAMAAAAFABkAAQAGAAMAAAAGABkAAQAGAAMAAAAHABkAAQAGAAMAAAAIABkAAQAGAAMAAAAJABkAAQAGAAMAAAAKABkAAQAGAAMAAAALABkAAQAGAAMAAAAMABkAAQAGAAMAAAANABkAAQAGAAMAAAAAABkAAQAFAAAAAAAAABoAAQAFAAEAAAABABoAAQAGAAEAAAACABoAAQAGAAEAAAADABoAAQAHAAEAAAAAABsAAQAFAAIAAAABABsAAQAGAAIAAAACABsAAQAGAAIAAAADABsAAQAHAAIAAAAPABIAAQAGAAEAAAARAAoAAQAHAAEAAAANAAoAAQAFAAEAAAANAAkAAQAFAAAAAAAOAAkAAQAGAAAAAAAPAAkAAQAGAAAAAAAQAAkAAQAGAAAAAAARAAkAAQAHAAAAAAAOAAoAAQAGAAEAAAAPAAoAAQAGAAEAAAAQAAoAAQAGAAEAAAAOABMAAQAFAAIAAAAQABMAAQAHAAIAAAAOABIAAQAFAAAAAAAQABIAAQAHAAAAAAA=")
129317
tile_set = ExtResource("7_r1ek1")
130318
131319
[node name="Paths_Level2" type="TileMapLayer" parent="TileMapLayers" unique_id=1784740911]
@@ -1144,6 +1332,145 @@ shape = SubResource("RectangleShape2D_ulm71")
11441332
position = Vector2(95, 664)
11451333
text = "West End"
11461334
1335+
[node name="RepellableRock" type="RigidBody2D" parent="OnTheGround" unique_id=1901173256]
1336+
editor_description = "A repellable rock.
1337+
1338+
It's in collision layer repellable for it to work, and has a got_repelled() method defined.
1339+
1340+
It has some dumping to simulate friction that's why it stops (unlike the ice cube)."
1341+
position = Vector2(913, 868)
1342+
collision_layer = 768
1343+
collision_mask = 531
1344+
physics_material_override = SubResource("PhysicsMaterial_16ifw")
1345+
lock_rotation = true
1346+
linear_damp = 2.0
1347+
script = SubResource("GDScript_bu3x1")
1348+
1349+
[node name="Sprite2D" type="Sprite2D" parent="OnTheGround/RepellableRock" unique_id=513881379]
1350+
position = Vector2(-2, -3)
1351+
texture = ExtResource("56_7kfal")
1352+
1353+
[node name="CollisionShape2D" type="CollisionShape2D" parent="OnTheGround/RepellableRock" unique_id=589342826]
1354+
rotation = -1.5707964
1355+
shape = SubResource("CapsuleShape2D_7n6eg")
1356+
1357+
[node name="BallAnchor" type="Node2D" parent="OnTheGround" unique_id=1725206225]
1358+
position = Vector2(1136, 1007)
1359+
1360+
[node name="Sprite2D" type="Sprite2D" parent="OnTheGround/BallAnchor" unique_id=2045011868]
1361+
position = Vector2(0, -30)
1362+
scale = Vector2(2.489, 2)
1363+
texture = ExtResource("58_7hq0m")
1364+
hframes = 4
1365+
1366+
[node name="BallSprite" type="Sprite2D" parent="OnTheGround/BallAnchor" unique_id=1585779611]
1367+
position = Vector2(0, -17)
1368+
scale = Vector2(0.18770815, 0.18770815)
1369+
texture = ExtResource("57_8dti7")
1370+
1371+
[node name="RepellableBall" type="RigidBody2D" parent="OnTheGround" unique_id=1394157854]
1372+
editor_description = "A repellable ball.
1373+
"
1374+
position = Vector2(1136, 1007)
1375+
scale = Vector2(0.99999994, 0.99999994)
1376+
collision_layer = 256
1377+
collision_mask = 531
1378+
mass = 0.1
1379+
physics_material_override = SubResource("PhysicsMaterial_bu3x1")
1380+
linear_damp = 20.0
1381+
angular_damp = 2.0
1382+
script = SubResource("GDScript_8dti7")
1383+
1384+
[node name="CollisionShape2D" type="CollisionShape2D" parent="OnTheGround/RepellableBall" unique_id=271750635]
1385+
rotation = -1.5707964
1386+
shape = SubResource("CircleShape2D_bu3x1")
1387+
debug_color = Color(0.9570816, 1.0588765e-06, 0.5370912, 0.41960785)
1388+
1389+
[node name="RemoteTransform2D" type="RemoteTransform2D" parent="OnTheGround/RepellableBall" unique_id=1152753866]
1390+
position = Vector2(-1.1920929e-07, -1.9073486e-06)
1391+
scale = Vector2(0.18770815, 0.18770815)
1392+
remote_path = NodePath("../../BallAnchor")
1393+
update_rotation = false
1394+
update_scale = false
1395+
1396+
[node name="RemoteTransform2D2" type="RemoteTransform2D" parent="OnTheGround/RepellableBall" unique_id=650646433]
1397+
position = Vector2(-1.1920929e-07, -1.9073486e-06)
1398+
scale = Vector2(0.18770815, 0.18770815)
1399+
remote_path = NodePath("../../BallAnchor/BallSprite")
1400+
update_position = false
1401+
update_scale = false
1402+
1403+
[node name="RepellableIceCube" type="RigidBody2D" parent="OnTheGround" unique_id=1744685581]
1404+
editor_description = "A repellable ice cube.
1405+
1406+
The got_repelled() method constrains the direction to the 4 axis (top, down, left, right).
1407+
1408+
Has no damping so it moves until it hits a wall or something."
1409+
position = Vector2(1204, 899)
1410+
collision_layer = 768
1411+
collision_mask = 531
1412+
lock_rotation = true
1413+
script = SubResource("GDScript_7kfal")
1414+
1415+
[node name="Sprite2D" type="Sprite2D" parent="OnTheGround/RepellableIceCube" unique_id=276581240]
1416+
position = Vector2(2, -5)
1417+
texture = ExtResource("57_bu3x1")
1418+
1419+
[node name="CollisionShape2D" type="CollisionShape2D" parent="OnTheGround/RepellableIceCube" unique_id=1875420561]
1420+
rotation = -1.5707964
1421+
shape = SubResource("CapsuleShape2D_bu3x1")
1422+
1423+
[node name="RepellableBox" type="AnimatableBody2D" parent="OnTheGround" unique_id=1258548447 node_paths=PackedStringArray("constrain_layer")]
1424+
editor_description = "A repellable box that moves in a fixed grid.
1425+
1426+
This is an AnimatableBody2D so it can move in the 64x64 tiles grid (using a Tweener for animating the position). But also it doesn't collide with other bodies so it doesn't stop!"
1427+
position = Vector2(990, 1256)
1428+
collision_layer = 768
1429+
collision_mask = 531
1430+
script = SubResource("GDScript_7n6eg")
1431+
constrain_layer = NodePath("../../TileMapLayers/Paths_Level1")
1432+
1433+
[node name="Sprite2D2" type="Sprite2D" parent="OnTheGround/RepellableBox" unique_id=320883351]
1434+
texture = ExtResource("59_16ifw")
1435+
1436+
[node name="Sprite2D" type="Sprite2D" parent="OnTheGround/RepellableBox" unique_id=750084221]
1437+
position = Vector2(0, -32)
1438+
texture = SubResource("AtlasTexture_bu3x1")
1439+
1440+
[node name="CollisionShape2D" type="CollisionShape2D" parent="OnTheGround/RepellableBox" unique_id=1047647955]
1441+
rotation = -1.5707964
1442+
shape = SubResource("RectangleShape2D_8dti7")
1443+
1444+
[node name="Shaker" type="Node2D" parent="OnTheGround/RepellableBox" unique_id=2111646944 node_paths=PackedStringArray("target")]
1445+
script = ExtResource("63_a070f")
1446+
target = NodePath("..")
1447+
shake_intensity = 60.0
1448+
duration = 0.5
1449+
frequency = 30.0
1450+
metadata/_custom_type_script = "uid://dunsvrhq42214"
1451+
1452+
[node name="RepellableLever" type="StaticBody2D" parent="OnTheGround" unique_id=1178804777]
1453+
position = Vector2(747, 914)
1454+
collision_layer = 768
1455+
collision_mask = 0
1456+
script = SubResource("GDScript_p2k53")
1457+
1458+
[node name="LeverSprite" type="Sprite2D" parent="OnTheGround/RepellableLever" unique_id=118513672]
1459+
position = Vector2(0, -10)
1460+
texture = ExtResource("62_p2k53")
1461+
hframes = 2
1462+
1463+
[node name="CollisionShape2D" type="CollisionShape2D" parent="OnTheGround/RepellableLever" unique_id=287400683]
1464+
rotation = -1.5707964
1465+
shape = SubResource("CapsuleShape2D_p2k53")
1466+
1467+
[node name="Shaker" type="Node2D" parent="OnTheGround/RepellableLever" unique_id=2090116419 node_paths=PackedStringArray("target")]
1468+
script = ExtResource("63_a070f")
1469+
target = NodePath("..")
1470+
duration = 0.5
1471+
frequency = 30.0
1472+
metadata/_custom_type_script = "uid://dunsvrhq42214"
1473+
11471474
[node name="ScreenOverlay" type="CanvasLayer" parent="." unique_id=1144668032]
11481475
11491476
[node name="HBoxContainer" type="HBoxContainer" parent="ScreenOverlay" unique_id=1583452192]
@@ -1209,3 +1536,5 @@ position = Vector2(62, 1747)
12091536
[connection signal="interaction_started" from="OnTheGround/NPCs/GardenerA/InteractArea" to="OnTheGround/NPCs/GardenerA" method="_on_interact_area_interaction_started"]
12101537
[connection signal="interaction_ended" from="OnTheGround/Tutorial/TutorialGuy/InteractArea" to="OnTheGround/Tutorial/TutorialGuy" method="_on_interact_area_interaction_ended"]
12111538
[connection signal="interaction_started" from="OnTheGround/Tutorial/TutorialGuy/InteractArea" to="OnTheGround/Tutorial/TutorialGuy" method="_on_interact_area_interaction_started"]
1539+
[connection signal="sleeping_state_changed" from="OnTheGround/RepellableRock" to="." method="_on_repellable_rock_sleeping_state_changed"]
1540+
[connection signal="sleeping_state_changed" from="OnTheGround/RepellableBall" to="OnTheGround/RepellableBall" method="_on_sleeping_state_changed"]

0 commit comments

Comments
 (0)