Import test project as example
TODO: update gitlab-ci template to also use the test-project
This commit is contained in:
10
test-project/scenes/Arena.tscn
Executable file
10
test-project/scenes/Arena.tscn
Executable file
@@ -0,0 +1,10 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/Arena.gd" type="Script" id=1]
|
||||
[ext_resource path="res://scenes/Background.tscn" type="PackedScene" id=2]
|
||||
|
||||
[node name="Arena" type="Node2D"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Background" parent="." instance=ExtResource( 2 )]
|
||||
|
||||
28
test-project/scenes/Background.tscn
Executable file
28
test-project/scenes/Background.tscn
Executable file
@@ -0,0 +1,28 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/ColoredEntity.gd" type="Script" id=1]
|
||||
[ext_resource path="res://resources/img/2.png" type="Texture" id=2]
|
||||
|
||||
[node name="Background" type="Node2D" groups=[
|
||||
"ColoredEntity",
|
||||
]]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="NinePatchRect" type="TextureRect" parent="."]
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.0
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
margin_left = -199.0
|
||||
margin_top = -157.0
|
||||
margin_right = 2097.0
|
||||
margin_bottom = 1217.0
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = false
|
||||
mouse_filter = 1
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 1
|
||||
size_flags_vertical = 1
|
||||
texture = ExtResource( 2 )
|
||||
stretch_mode = 2
|
||||
|
||||
46
test-project/scenes/Base.tscn
Executable file
46
test-project/scenes/Base.tscn
Executable file
@@ -0,0 +1,46 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/Base.gd" type="Script" id=1]
|
||||
|
||||
[sub_resource type="CircleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
radius = 68.9104
|
||||
|
||||
[node name="Base" type="Node2D" groups=[
|
||||
"ColoredEntity",
|
||||
]]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -60.5
|
||||
margin_top = -33.0
|
||||
margin_right = 60.5
|
||||
margin_bottom = 33.0
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = false
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 1
|
||||
size_flags_vertical = 1
|
||||
color = Color( 1, 1, 1, 1 )
|
||||
|
||||
[node name="Body" type="Area2D" parent="."]
|
||||
input_pickable = true
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
collision_layer = 12
|
||||
collision_mask = 12
|
||||
audio_bus_override = false
|
||||
audio_bus_name = "Master"
|
||||
|
||||
[node name="CollisionMask" type="CollisionShape2D" parent="Body"]
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[connection signal="body_entered" from="Body" to="." method="_on_Body_body_entered"]
|
||||
54
test-project/scenes/Cannon.tscn
Executable file
54
test-project/scenes/Cannon.tscn
Executable file
@@ -0,0 +1,54 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/Cannon.gd" type="Script" id=1]
|
||||
[ext_resource path="res://resources/img/1.png" type="Texture" id=2]
|
||||
|
||||
[node name="Cannon" type="Node2D" groups=[
|
||||
"ColoredEntity",
|
||||
]]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Sprite" type="TextureRect" parent="."]
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.5
|
||||
margin_top = -10.0
|
||||
margin_right = 150.0
|
||||
margin_bottom = 38.0
|
||||
rect_min_size = Vector2( 150, 24 )
|
||||
rect_pivot_offset = Vector2( 10, 10 )
|
||||
rect_clip_content = false
|
||||
mouse_filter = 1
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
texture = ExtResource( 2 )
|
||||
stretch_mode = 2
|
||||
|
||||
[node name="GuideLine" type="Line2D" parent="Sprite"]
|
||||
modulate = Color( 1, 1, 1, 0.1 )
|
||||
show_behind_parent = true
|
||||
position = Vector2( 0, 10 )
|
||||
points = PoolVector2Array( 135, 2, 2000, 2 )
|
||||
width = 5.0
|
||||
default_color = Color( 1, 1, 1, 1 )
|
||||
texture_mode = 1
|
||||
joint_mode = 2
|
||||
sharp_limit = 2.0
|
||||
round_precision = 10
|
||||
|
||||
[node name="CannonTip" type="Position2D" parent="Sprite"]
|
||||
position = Vector2( 120, 12 )
|
||||
|
||||
[node name="CannonBase" type="Position2D" parent="Sprite"]
|
||||
position = Vector2( 0, 12 )
|
||||
|
||||
[node name="Projectiles" type="Node" parent="."]
|
||||
|
||||
[node name="FireCooldown" type="Timer" parent="."]
|
||||
process_mode = 1
|
||||
wait_time = 1.0
|
||||
one_shot = true
|
||||
autostart = true
|
||||
|
||||
7
test-project/scenes/ColoredEntity.tscn
Executable file
7
test-project/scenes/ColoredEntity.tscn
Executable file
@@ -0,0 +1,7 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/ColoredEntity.gd" type="Script" id=1]
|
||||
|
||||
[node name="ColoredEntity" type="Node2D"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
40
test-project/scenes/EnemyGenerator.tscn
Executable file
40
test-project/scenes/EnemyGenerator.tscn
Executable file
@@ -0,0 +1,40 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/EnemyGenerator.gd" type="Script" id=1]
|
||||
|
||||
[sub_resource type="Curve2D" id=1]
|
||||
|
||||
bake_interval = 5.0
|
||||
_data = {
|
||||
"points": PoolVector2Array( 0, 0, 0, 0, 802.371, -163.584, 0, 0, 0, 0, 959.909, -42.497, 0, 0, 0, 0, 1955.58, -35.2126, 0, 0, 0, 0, 1977.69, -34.257, 0, 0, 0, 0, 2072.89, -95.3282, 0, 0, 0, 0, 2171.96, -161.2, 0, 0, 0, 0, 1329.54, -162.398, 0, 0, 0, 0, 958.623, -161.461, 0, 0, 0, 0, 801.772, -163.584, 0, 0, 0, 0, 802.371, -163.584 )
|
||||
}
|
||||
|
||||
[node name="EnemyGenerator" type="Node2D"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Enemies" type="Node" parent="."]
|
||||
|
||||
[node name="SpawnArea" type="Path2D" parent="."]
|
||||
self_modulate = Color( 0.5, 0.6, 1, 0.7 )
|
||||
curve = SubResource( 1 )
|
||||
|
||||
[node name="SpawnLocation" type="PathFollow2D" parent="SpawnArea"]
|
||||
position = Vector2( 802.371, -163.584 )
|
||||
rotation = 0.655325
|
||||
offset = 0.0
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
rotate = true
|
||||
cubic_interp = true
|
||||
loop = true
|
||||
lookahead = 4.0
|
||||
|
||||
[node name="SpawnTimer" type="Timer" parent="."]
|
||||
process_mode = 1
|
||||
wait_time = 1.5
|
||||
one_shot = false
|
||||
autostart = true
|
||||
|
||||
[connection signal="start" from="." to="." method="_on_EnemyGenerator_start"]
|
||||
[connection signal="stop" from="." to="." method="_on_EnemyGenerator_stop"]
|
||||
[connection signal="timeout" from="SpawnTimer" to="." method="_on_SpawnTimer_timeout"]
|
||||
7
test-project/scenes/GLOBAL.tscn
Executable file
7
test-project/scenes/GLOBAL.tscn
Executable file
@@ -0,0 +1,7 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/GLOBAL.gd" type="Script" id=1]
|
||||
|
||||
[node name="GLOBAL" type="Node"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
21
test-project/scenes/Game.tscn
Executable file
21
test-project/scenes/Game.tscn
Executable file
@@ -0,0 +1,21 @@
|
||||
[gd_scene load_steps=6 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/Game.gd" type="Script" id=1]
|
||||
[ext_resource path="res://scenes/Arena.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://scenes/Player.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://scenes/Base.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://scenes/EnemyGenerator.tscn" type="PackedScene" id=5]
|
||||
|
||||
[node name="Game" type="Node2D"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Arena" parent="." instance=ExtResource( 2 )]
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource( 3 )]
|
||||
position = Vector2( 456.975, 971.301 )
|
||||
|
||||
[node name="Base" parent="." instance=ExtResource( 4 )]
|
||||
position = Vector2( 94.6306, 955.095 )
|
||||
|
||||
[node name="EnemyGenerator" parent="." instance=ExtResource( 5 )]
|
||||
|
||||
128
test-project/scenes/HUD.tscn
Executable file
128
test-project/scenes/HUD.tscn
Executable file
@@ -0,0 +1,128 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/HUD.gd" type="Script" id=1]
|
||||
|
||||
[node name="HUD" type="Control"]
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = false
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 1
|
||||
size_flags_vertical = 1
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="ThemeButtons" type="HBoxContainer" parent="."]
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.0
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
margin_left = 1.0
|
||||
margin_top = 84.0
|
||||
margin_right = 496.0
|
||||
margin_bottom = 196.0
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = false
|
||||
mouse_filter = 1
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 1
|
||||
size_flags_vertical = 1
|
||||
alignment = 0
|
||||
|
||||
[node name="Theme1" type="Button" parent="ThemeButtons"]
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.0
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
margin_right = 63.0
|
||||
margin_bottom = 112.0
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = false
|
||||
focus_mode = 2
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 1
|
||||
size_flags_vertical = 1
|
||||
toggle_mode = false
|
||||
enabled_focus_mode = 2
|
||||
shortcut = null
|
||||
group = null
|
||||
text = "THEME1"
|
||||
flat = false
|
||||
align = 1
|
||||
|
||||
[node name="Theme2" type="Button" parent="ThemeButtons"]
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.0
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
margin_left = 67.0
|
||||
margin_right = 130.0
|
||||
margin_bottom = 112.0
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = false
|
||||
focus_mode = 2
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 1
|
||||
size_flags_vertical = 1
|
||||
toggle_mode = false
|
||||
enabled_focus_mode = 2
|
||||
shortcut = null
|
||||
group = null
|
||||
text = "THEME2"
|
||||
flat = false
|
||||
align = 1
|
||||
|
||||
[node name="Theme3" type="Button" parent="ThemeButtons"]
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.0
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
margin_left = 134.0
|
||||
margin_right = 197.0
|
||||
margin_bottom = 112.0
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = false
|
||||
focus_mode = 2
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 1
|
||||
size_flags_vertical = 1
|
||||
toggle_mode = false
|
||||
enabled_focus_mode = 2
|
||||
shortcut = null
|
||||
group = null
|
||||
text = "THEME3"
|
||||
flat = false
|
||||
align = 1
|
||||
|
||||
[node name="StartButton" type="Button" parent="."]
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.0
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
margin_right = 203.0
|
||||
margin_bottom = 78.0
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = false
|
||||
focus_mode = 2
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 1
|
||||
size_flags_vertical = 1
|
||||
toggle_mode = false
|
||||
enabled_focus_mode = 2
|
||||
shortcut = null
|
||||
group = null
|
||||
text = "START"
|
||||
flat = false
|
||||
align = 1
|
||||
|
||||
[connection signal="pressed" from="ThemeButtons/Theme1" to="." method="_on_Theme_Button_pressed" binds= [ 0 ]]
|
||||
[connection signal="pressed" from="ThemeButtons/Theme2" to="." method="_on_Theme_Button_pressed" binds= [ 1 ]]
|
||||
[connection signal="pressed" from="ThemeButtons/Theme3" to="." method="_on_Theme_Button_pressed" binds= [ 2 ]]
|
||||
[connection signal="pressed" from="StartButton" to="." method="_on_StartButton_pressed"]
|
||||
68
test-project/scenes/Main.tscn
Executable file
68
test-project/scenes/Main.tscn
Executable file
@@ -0,0 +1,68 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/Main.gd" type="Script" id=1]
|
||||
[ext_resource path="res://scenes/Game.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://scenes/HUD.tscn" type="PackedScene" id=3]
|
||||
|
||||
[sub_resource type="Curve2D" id=1]
|
||||
|
||||
bake_interval = 5.0
|
||||
_data = {
|
||||
"points": PoolVector2Array( 0, 0, 0, 0, 18.8947, 55.4928, 0, 0, 0, 0, -269.905, -419.567 )
|
||||
}
|
||||
|
||||
[node name="Main" type="Node2D"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Game" parent="." instance=ExtResource( 2 )]
|
||||
|
||||
[node name="Path2D" type="Path2D" parent="."]
|
||||
editor/display_folded = true
|
||||
self_modulate = Color( 0.5, 0.6, 1, 0.7 )
|
||||
position = Vector2( 460.871, 779.989 )
|
||||
rotation = -3.14159
|
||||
scale = Vector2( 2.52308, -0.891921 )
|
||||
curve = SubResource( 1 )
|
||||
|
||||
[node name="PathFollow2D" type="PathFollow2D" parent="Path2D"]
|
||||
position = Vector2( -17.0181, -3.58169 )
|
||||
offset = 69.1956
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
rotate = false
|
||||
cubic_interp = true
|
||||
loop = false
|
||||
lookahead = 4.0
|
||||
|
||||
[node name="MenuCamera" type="Camera2D" parent="Path2D/PathFollow2D"]
|
||||
position = Vector2( 21.2, 58.5266 )
|
||||
anchor_mode = 1
|
||||
rotating = false
|
||||
current = true
|
||||
zoom = Vector2( 0.5, 0.5 )
|
||||
limit_left = -10000000
|
||||
limit_top = -10000000
|
||||
limit_right = 10000000
|
||||
limit_bottom = 10000000
|
||||
limit_smoothed = false
|
||||
drag_margin_h_enabled = true
|
||||
drag_margin_v_enabled = true
|
||||
smoothing_enabled = false
|
||||
smoothing_speed = 5.0
|
||||
offset_v = 0.0
|
||||
offset_h = 0.0
|
||||
drag_margin_left = 0.2
|
||||
drag_margin_top = 0.2
|
||||
drag_margin_right = 0.2
|
||||
drag_margin_bottom = 0.2
|
||||
editor_draw_screen = true
|
||||
editor_draw_limits = true
|
||||
editor_draw_drag_margin = true
|
||||
|
||||
[node name="HUD" parent="." instance=ExtResource( 3 )]
|
||||
margin_left = 625.0
|
||||
margin_top = 820.0
|
||||
margin_right = 625.0
|
||||
margin_bottom = 820.0
|
||||
|
||||
[connection signal="start_zoom_out" from="." to="." method="_on_Main_start_zoom_out"]
|
||||
36
test-project/scenes/Player.tscn
Executable file
36
test-project/scenes/Player.tscn
Executable file
@@ -0,0 +1,36 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/Player.gd" type="Script" id=1]
|
||||
[ext_resource path="res://scenes/Cannon.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://resources/img/cat0.png" type="Texture" id=3]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
radius = 79.0755
|
||||
height = 89.5214
|
||||
|
||||
[node name="Player" type="Node2D" groups=[
|
||||
"ColoredEntity",
|
||||
]]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Cannon" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( -50.0759, 40.2842 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
scale = Vector2( 0.5, 0.5 )
|
||||
texture = ExtResource( 3 )
|
||||
|
||||
[node name="Body" type="KinematicBody2D" parent="."]
|
||||
input_pickable = false
|
||||
collision_layer = 1
|
||||
collision_mask = 1
|
||||
collision/safe_margin = 0.08
|
||||
motion/sync_to_physics = false
|
||||
|
||||
[node name="Collision" type="CollisionShape2D" parent="Body"]
|
||||
position = Vector2( -6.08298, -9.86302 )
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[connection signal="unblock" from="." to="." method="_on_Player_unblock"]
|
||||
65
test-project/scenes/Projectile.tscn
Executable file
65
test-project/scenes/Projectile.tscn
Executable file
@@ -0,0 +1,65 @@
|
||||
[gd_scene load_steps=6 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/Projectile.gd" type="Script" id=1]
|
||||
[ext_resource path="res://scripts/ColoredEntity.gd" type="Script" id=2]
|
||||
[ext_resource path="res://resources/img/missile-placeholder.png" type="Texture" id=3]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 24, 24 )
|
||||
|
||||
[sub_resource type="CircleShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
radius = 143.093
|
||||
|
||||
[node name="Projectile" type="RigidBody2D"]
|
||||
input_pickable = false
|
||||
collision_layer = 0
|
||||
collision_mask = 0
|
||||
mode = 0
|
||||
mass = 3.0
|
||||
gravity_scale = 1.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
linear_velocity = Vector2( 0, 0 )
|
||||
linear_damp = -1.0
|
||||
angular_velocity = 0.0
|
||||
angular_damp = 100.0
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Mask" type="Node2D" parent="."]
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Mask"]
|
||||
texture = ExtResource( 3 )
|
||||
|
||||
[node name="Collision" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="VisibilityNotifier" type="VisibilityNotifier2D" parent="."]
|
||||
rect = Rect2( -12, -12, 22, 24 )
|
||||
|
||||
[node name="ExplosionArea" type="Area2D" parent="."]
|
||||
input_pickable = true
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
collision_layer = 0
|
||||
collision_mask = 0
|
||||
audio_bus_override = false
|
||||
audio_bus_name = "Master"
|
||||
|
||||
[node name="ExplosionShape" type="CollisionShape2D" parent="ExplosionArea"]
|
||||
shape = SubResource( 2 )
|
||||
|
||||
[connection signal="body_entered" from="." to="." method="_on_Projectile_body_entered"]
|
||||
[connection signal="screen_exited" from="VisibilityNotifier" to="." method="_on_VisibilityNotifier2D_screen_exited"]
|
||||
[connection signal="body_entered" from="ExplosionArea" to="." method="_on_ExplosionArea_body_entered"]
|
||||
[connection signal="body_exited" from="ExplosionArea" to="." method="_on_ExplosionArea_body_exited"]
|
||||
Reference in New Issue
Block a user