basic ECS spawner
This commit is contained in:
15
addons/gecs/tests/entities/e_complex_serialization_test.gd
Normal file
15
addons/gecs/tests/entities/e_complex_serialization_test.gd
Normal file
@@ -0,0 +1,15 @@
|
||||
class_name E_ComplexSerializationTest
|
||||
extends Entity
|
||||
|
||||
|
||||
func define_components() -> Array:
|
||||
return [
|
||||
C_ComplexSerializationTest.new(
|
||||
[10, 20, 30],
|
||||
["alpha", "beta", "gamma"],
|
||||
{"hp": 100, "mp": 50, "items": 3},
|
||||
[],
|
||||
{}
|
||||
),
|
||||
C_SerializationTest.new(999, 2.718, "complex_entity", false, Vector2(5.0, 10.0), Vector3(1.0, 2.0, 3.0), Color.BLUE)
|
||||
]
|
||||
@@ -0,0 +1 @@
|
||||
uid://dlq154oe8rmkg
|
||||
2
addons/gecs/tests/entities/e_gecs_food.gd
Normal file
2
addons/gecs/tests/entities/e_gecs_food.gd
Normal file
@@ -0,0 +1,2 @@
|
||||
class_name GecsFood
|
||||
extends Entity
|
||||
1
addons/gecs/tests/entities/e_gecs_food.gd.uid
Normal file
1
addons/gecs/tests/entities/e_gecs_food.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://b58vonkhloaow
|
||||
2
addons/gecs/tests/entities/e_prefab_test.gd
Normal file
2
addons/gecs/tests/entities/e_prefab_test.gd
Normal file
@@ -0,0 +1,2 @@
|
||||
class_name PrefabTest
|
||||
extends Entity
|
||||
1
addons/gecs/tests/entities/e_prefab_test.gd.uid
Normal file
1
addons/gecs/tests/entities/e_prefab_test.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dmjuo67pvwh3d
|
||||
250
addons/gecs/tests/entities/e_prefab_test.tscn
Normal file
250
addons/gecs/tests/entities/e_prefab_test.tscn
Normal file
@@ -0,0 +1,250 @@
|
||||
[gd_scene load_steps=11 format=3 uid="uid://tpqdridb86dk"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dmjuo67pvwh3d" path="res://addons/gecs/tests/entities/e_prefab_test.gd" id="1_7nbii"]
|
||||
[ext_resource type="Script" uid="uid://b6k13gc2m4e5s" path="res://addons/gecs/ecs/component.gd" id="2_ju2ix"]
|
||||
[ext_resource type="Script" uid="uid://5antadqj7v84" path="res://addons/gecs/tests/components/c_test_a.gd" id="3_8o2uq"]
|
||||
[ext_resource type="Script" uid="uid://c6lvbdptfldrg" path="res://addons/gecs/tests/components/c_test_b.gd" id="4_t4812"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5ke2p"]
|
||||
script = ExtResource("3_8o2uq")
|
||||
value = 1
|
||||
metadata/_custom_type_script = "uid://5antadqj7v84"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_11y2y"]
|
||||
script = ExtResource("4_t4812")
|
||||
value = 2
|
||||
metadata/_custom_type_script = "uid://c6lvbdptfldrg"
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_7nbii"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_l1aji"]
|
||||
length = 0.001
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("MeshInstance3D:position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("MeshInstance3D:position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/2/type = "bezier"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("MeshInstance3D:position:z")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/3/type = "bezier"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("MeshInstance3D2:position:x")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(-3.0227113, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/4/type = "bezier"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("MeshInstance3D2:position:y")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/5/type = "bezier"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("MeshInstance3D2:position:z")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(1.194534, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/6/type = "bezier"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("MeshInstance3D3:position:x")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(2.3212543, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/7/type = "bezier"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("MeshInstance3D3:position:y")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/8/type = "bezier"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("MeshInstance3D3:position:z")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(-3.3574667, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_7nbii"]
|
||||
resource_name = "test"
|
||||
loop_mode = 1
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("MeshInstance3D:position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 2, 2),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0, -0.086666666, 0, 0, 0, 0.15021324, -0.07500001, -0.025035542, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.52, 0.97)
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("MeshInstance3D:position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 2, 2),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, -2.424733, -0.086666666, 0.40412217, 0, 0, -0.0065529346, -0.07500001, -0.40303, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.52, 0.97)
|
||||
}
|
||||
tracks/2/type = "bezier"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("MeshInstance3D:position:z")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 2, 2),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0, -0.086666666, 0, 0, 0, 1.1204721, -0.07500001, -0.18674536, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.52, 0.97)
|
||||
}
|
||||
tracks/3/type = "bezier"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("MeshInstance3D2:position:x")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 2, 2),
|
||||
"points": PackedFloat32Array(-3.0227113, -0.25, 0, 0.25, 0, -3.0227113, -0.086666666, 0, 0, 0, -2.872498, -0.07500001, -0.025035542, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.52, 0.97)
|
||||
}
|
||||
tracks/4/type = "bezier"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("MeshInstance3D2:position:y")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 2, 2),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, -2.424733, -0.086666666, 0.40412217, 0, 0, -0.0065529346, -0.07500001, -0.40303, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.52, 0.97)
|
||||
}
|
||||
tracks/5/type = "bezier"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("MeshInstance3D2:position:z")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 2, 2),
|
||||
"points": PackedFloat32Array(1.194534, -0.25, 0, 0.25, 0, 1.194534, -0.086666666, 0, 0, 0, 2.315006, -0.07500001, -0.18674536, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.52, 0.97)
|
||||
}
|
||||
tracks/6/type = "bezier"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("MeshInstance3D3:position:x")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 2, 2),
|
||||
"points": PackedFloat32Array(2.3212543, -0.25, 0, 0.25, 0, 2.3212543, -0.086666666, 0, 0, 0, 2.4714675, -0.07500001, -0.025035542, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.52, 0.97)
|
||||
}
|
||||
tracks/7/type = "bezier"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("MeshInstance3D3:position:y")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 2, 2),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, -2.424733, -0.086666666, 0.40412217, 0, 0, -0.0065529346, -0.07500001, -0.40303, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.52, 0.97)
|
||||
}
|
||||
tracks/8/type = "bezier"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("MeshInstance3D3:position:z")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 2, 2),
|
||||
"points": PackedFloat32Array(-3.3574667, -0.25, 0, 0.25, 0, -3.3574667, -0.086666666, 0, 0, 0, -2.2369947, -0.07500001, -0.18674533, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.52, 0.97)
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_twal5"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_l1aji"),
|
||||
&"test": SubResource("Animation_7nbii")
|
||||
}
|
||||
|
||||
[node name="Node3D" type="Node3D"]
|
||||
script = ExtResource("1_7nbii")
|
||||
component_resources = Array[ExtResource("2_ju2ix")]([SubResource("Resource_5ke2p"), SubResource("Resource_11y2y")])
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
mesh = SubResource("BoxMesh_7nbii")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.30630922, 0.54854774, 0.777991, -0.8731008, 0.48753974, 0, -0.37930152, -0.67926455, 0.6282754, -3.0227113, 0, 1.194534)
|
||||
mesh = SubResource("BoxMesh_7nbii")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.30630922, 0.54854774, 0.777991, -0.8731008, 0.48753974, 0, -0.37930152, -0.67926455, 0.6282754, 2.3212543, 0, -3.3574667)
|
||||
mesh = SubResource("BoxMesh_7nbii")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_twal5")
|
||||
}
|
||||
autoplay = "test"
|
||||
9
addons/gecs/tests/entities/e_serialization_test.gd
Normal file
9
addons/gecs/tests/entities/e_serialization_test.gd
Normal file
@@ -0,0 +1,9 @@
|
||||
class_name E_SerializationTest
|
||||
extends Entity
|
||||
|
||||
|
||||
func define_components() -> Array:
|
||||
return [
|
||||
C_SerializationTest.new(),
|
||||
C_Persistent.new("TestPlayer", 5, 75.0, Vector2(10.0, 20.0), ["sword", "potion"])
|
||||
]
|
||||
1
addons/gecs/tests/entities/e_serialization_test.gd.uid
Normal file
1
addons/gecs/tests/entities/e_serialization_test.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://ccx2x5qv04wys
|
||||
2
addons/gecs/tests/entities/e_test_a.gd
Normal file
2
addons/gecs/tests/entities/e_test_a.gd
Normal file
@@ -0,0 +1,2 @@
|
||||
class_name TestA
|
||||
extends Entity
|
||||
1
addons/gecs/tests/entities/e_test_a.gd.uid
Normal file
1
addons/gecs/tests/entities/e_test_a.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://ggn111owj1e4
|
||||
2
addons/gecs/tests/entities/e_test_b.gd
Normal file
2
addons/gecs/tests/entities/e_test_b.gd
Normal file
@@ -0,0 +1,2 @@
|
||||
class_name TestB
|
||||
extends Entity
|
||||
1
addons/gecs/tests/entities/e_test_b.gd.uid
Normal file
1
addons/gecs/tests/entities/e_test_b.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://b8yk2aa5xng8a
|
||||
2
addons/gecs/tests/entities/e_test_c.gd
Normal file
2
addons/gecs/tests/entities/e_test_c.gd
Normal file
@@ -0,0 +1,2 @@
|
||||
class_name TestC
|
||||
extends Entity
|
||||
1
addons/gecs/tests/entities/e_test_c.gd.uid
Normal file
1
addons/gecs/tests/entities/e_test_c.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dkd6h4yf03c2t
|
||||
2
addons/gecs/tests/entities/e_test_d.gd
Normal file
2
addons/gecs/tests/entities/e_test_d.gd
Normal file
@@ -0,0 +1,2 @@
|
||||
class_name TestD
|
||||
extends Entity
|
||||
1
addons/gecs/tests/entities/e_test_d.gd.uid
Normal file
1
addons/gecs/tests/entities/e_test_d.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dpdk51tkdnj8r
|
||||
Reference in New Issue
Block a user