basic ECS spawner

This commit is contained in:
2026-01-15 15:27:48 +01:00
parent 24a781f36a
commit eb737b469c
860 changed files with 58621 additions and 32 deletions

View File

@@ -0,0 +1,21 @@
class_name C_ComplexSerializationTest
extends Component
@export var array_value: Array[int] = [1, 2, 3, 4, 5]
@export var string_array: Array[String] = ["hello", "world", "test"]
@export var dict_value: Dictionary = {"key1": "value1", "key2": 123, "key3": true}
@export var empty_array: Array = []
@export var empty_dict: Dictionary = {}
func _init(
_array_value: Array[int] = [1, 2, 3, 4, 5],
_string_array: Array[String] = ["hello", "world", "test"],
_dict_value: Dictionary = {"key1": "value1", "key2": 123, "key3": true},
_empty_array: Array = [],
_empty_dict: Dictionary = {}
):
array_value = _array_value
string_array = _string_array
dict_value = _dict_value
empty_array = _empty_array
empty_dict = _empty_dict

View File

@@ -0,0 +1 @@
uid://cpvr163gwyx2d

View File

@@ -0,0 +1,4 @@
class_name C_DebugTrackingTestA
extends Component
@export var value: float = 0.0

View File

@@ -0,0 +1 @@
uid://d0vhjx22wswv5

View File

@@ -0,0 +1,4 @@
class_name C_DebugTrackingTestB
extends Component
@export var count: int = 0

View File

@@ -0,0 +1 @@
uid://bijx0kal4npp

View File

@@ -0,0 +1,3 @@
class_name C_DomainTestA
extends Component
@export var v_a: int = 1

View File

@@ -0,0 +1 @@
uid://cqsmow0liv20e

View File

@@ -0,0 +1,3 @@
class_name C_DomainTestB
extends Component
@export var v_b: int = 2

View File

@@ -0,0 +1 @@
uid://bjodoqd54f6pq

View File

@@ -0,0 +1,22 @@
## Test health component for observer tests with proper property_changed signal emission
class_name C_ObserverHealth
extends Component
@export var health: int = 100 : set = set_health
@export var max_health: int = 100 : set = set_max_health
func set_health(new_health: int):
var old_health = health
health = new_health
# Emit signal for observers to detect the change
property_changed.emit(self, "health", old_health, new_health)
func set_max_health(new_max: int):
var old_max = max_health
max_health = new_max
# Emit signal for observers to detect the change
property_changed.emit(self, "max_health", old_max, new_max)
func _init(_health: int = 100, _max_health: int = 100):
health = _health
max_health = _max_health

View File

@@ -0,0 +1 @@
uid://c0o4jh5t35hqw

View File

@@ -0,0 +1,22 @@
## Test component for observer tests with proper property_changed signal emission
class_name C_ObserverTest
extends Component
@export var value: int = 0 : set = set_value
@export var name_prop: String = "" : set = set_name_prop
func set_value(new_value: int):
var old_value = value
value = new_value
# Emit signal for observers to detect the change
property_changed.emit(self, "value", old_value, new_value)
func set_name_prop(new_name: String):
var old_name = name_prop
name_prop = new_name
# Emit signal for observers to detect the change
property_changed.emit(self, "name_prop", old_name, new_name)
func _init(_value: int = 0, _name: String = ""):
value = _value
name_prop = _name

View File

@@ -0,0 +1 @@
uid://cmxcdgnk537l

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestA
extends Component
@export var value_a: int = 1

View File

@@ -0,0 +1 @@
uid://12rys1s4dqub

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestB
extends Component
@export var value_b: int = 2

View File

@@ -0,0 +1 @@
uid://brsnu840dpdnw

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestC
extends Component
@export var value_c: int = 3

View File

@@ -0,0 +1 @@
uid://bkx8tgtgdngvs

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestD
extends Component
@export var value_d: int = 4

View File

@@ -0,0 +1 @@
uid://cdih4o87okurl

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestE
extends Component
@export var value_e: int = 5

View File

@@ -0,0 +1 @@
uid://djobbcytnokef

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestF
extends Component
@export var value_f: int = 6

View File

@@ -0,0 +1 @@
uid://be0tga28sdlof

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestG
extends Component
@export var value_g: int = 7

View File

@@ -0,0 +1 @@
uid://ctgvxw7pi4wro

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestH
extends Component
@export var value_h: int = 8

View File

@@ -0,0 +1 @@
uid://hyqseyaigq4o

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestI
extends Component
@export var value_i: int = 9

View File

@@ -0,0 +1 @@
uid://c25bhc3kbc4e8

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestJ
extends Component
@export var value_j: int = 10

View File

@@ -0,0 +1 @@
uid://d1igiif6mkikj

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestK
extends Component
@export var value_k: int = 11

View File

@@ -0,0 +1 @@
uid://jcoxghymmvmh

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestL
extends Component
@export var value_l: int = 12

View File

@@ -0,0 +1 @@
uid://bce7cd48nf8e7

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestM
extends Component
@export var value_m: int = 13

View File

@@ -0,0 +1 @@
uid://df0af054av56n

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestN
extends Component
@export var value_n: int = 14

View File

@@ -0,0 +1 @@
uid://dkbwhig77q1j8

View File

@@ -0,0 +1,3 @@
class_name C_OrderTestO
extends Component
@export var value_o: int = 15

View File

@@ -0,0 +1 @@
uid://bgsirllg7wil0

View File

@@ -0,0 +1,3 @@
class_name C_PermA
extends Component
@export var v: int = 1

View File

@@ -0,0 +1 @@
uid://bi4vscfom0st2

View File

@@ -0,0 +1,3 @@
class_name C_PermB
extends Component
@export var v: int = 2

View File

@@ -0,0 +1 @@
uid://c1svfcwyi2oie

View File

@@ -0,0 +1,3 @@
class_name C_PermC
extends Component
@export var v: int = 3

View File

@@ -0,0 +1 @@
uid://0ynnafo2v1it

View File

@@ -0,0 +1,3 @@
class_name C_PermD
extends Component
@export var v: int = 4

View File

@@ -0,0 +1 @@
uid://cts7f306wa0fa

View File

@@ -0,0 +1,3 @@
class_name C_PermE
extends Component
@export var v: int = 5

View File

@@ -0,0 +1 @@
uid://c720mkd00xchu

View File

@@ -0,0 +1,3 @@
class_name C_PermF
extends Component
@export var v: int = 6

View File

@@ -0,0 +1 @@
uid://ccws6g7g0j6w8

View File

@@ -0,0 +1,21 @@
extends Component
class_name C_Persistent
@export var player_name: String = "Player1"
@export var level: int = 1
@export var health: float = 100.0
@export var position: Vector2 = Vector2.ZERO
@export var inventory: Array[String] = []
func _init(
_player_name: String = "Player1",
_level: int = 1,
_health: float = 100.0,
_position: Vector2 = Vector2.ZERO,
_inventory: Array[String] = []
):
player_name = _player_name
level = _level
health = _health
position = _position
inventory = _inventory

View File

@@ -0,0 +1 @@
uid://bikywcisu1fsu

View File

@@ -0,0 +1,14 @@
## Test position component for observer performance tests
class_name C_TestPosition
extends Component
@export var position: Vector3 = Vector3.ZERO : set = set_position
func set_position(new_pos: Vector3):
var old_pos = position
position = new_pos
# Emit signal for observers to detect the change
property_changed.emit(self, "position", old_pos, new_pos)
func _init(_position: Vector3 = Vector3.ZERO):
position = _position

View File

@@ -0,0 +1 @@
uid://33n1ne8tuyja

View File

@@ -0,0 +1,27 @@
extends Component
class_name C_SerializationTest
@export var int_value: int = 42
@export var float_value: float = 3.14
@export var string_value: String = "test_string"
@export var bool_value: bool = true
@export var vector2_value: Vector2 = Vector2(1.0, 2.0)
@export var vector3_value: Vector3 = Vector3(1.0, 2.0, 3.0)
@export var color_value: Color = Color.RED
func _init(
_int_value: int = 42,
_float_value: float = 3.14,
_string_value: String = "test_string",
_bool_value: bool = true,
_vector2_value: Vector2 = Vector2(1.0, 2.0),
_vector3_value: Vector3 = Vector3(1.0, 2.0, 3.0),
_color_value: Color = Color.RED
):
int_value = _int_value
float_value = _float_value
string_value = _string_value
bool_value = _bool_value
vector2_value = _vector2_value
vector3_value = _vector3_value
color_value = _color_value

View File

@@ -0,0 +1 @@
uid://3w2r1fop8e52

View File

@@ -0,0 +1,8 @@
class_name C_TestA
extends Component
@export var value: int = 0
func _init(_value: int = 0):
value = _value

View File

@@ -0,0 +1 @@
uid://5antadqj7v84

View File

@@ -0,0 +1,8 @@
class_name C_TestB
extends Component
@export var value: int = 0
func _init(_value: int = 0):
value = _value

View File

@@ -0,0 +1 @@
uid://c6lvbdptfldrg

View File

@@ -0,0 +1,8 @@
class_name C_TestC
extends Component
@export var value: int
func _init(_value: int = 0):
value = _value

View File

@@ -0,0 +1 @@
uid://3lo6r4xvicxp

View File

@@ -0,0 +1,8 @@
class_name C_TestD
extends Component
@export var points: int = 0
func _init(_points: int = 0):
points = _points

View File

@@ -0,0 +1 @@
uid://cd2ml5rtb3c8g

View File

@@ -0,0 +1,4 @@
class_name C_TestE
extends Component
@export var value: int = 0

View File

@@ -0,0 +1 @@
uid://cp6siju1aijj2

View File

@@ -0,0 +1,11 @@
class_name C_TestF
extends Component
var value: int = 0 # properties with no export annotation
static var init_count: int = 0
func _init(_value: int = 0):
value = _value
init_count += 1
print("Component c_test_f init, value=%d" % value)

View File

@@ -0,0 +1 @@
uid://py2qgdkhiy30

View File

@@ -0,0 +1,12 @@
class_name C_TestG
extends Component
@export var value: int = 0
static var init_count: int = 0
func _init(_value: int = 0):
value = _value
init_count += 1
# to test _init() calling problem
print("Component c_test_g init, value=%d" % value)

View File

@@ -0,0 +1 @@
uid://4ud215bve6ap

View File

@@ -0,0 +1,8 @@
class_name C_TestH
extends Component
@export var value: int = 0
# Simulates parameters with no default values
func _init(_value: int):
value = _value

View File

@@ -0,0 +1 @@
uid://b8ptu8k8rp1sb

View File

@@ -0,0 +1,14 @@
## Test velocity component for observer performance tests
class_name C_TestVelocity
extends Component
@export var velocity: Vector3 = Vector3.ZERO : set = set_velocity
func set_velocity(new_vel: Vector3):
var old_vel = velocity
velocity = new_vel
# Emit signal for observers to detect the change
property_changed.emit(self, "velocity", old_vel, new_vel)
func _init(_velocity: Vector3 = Vector3.ZERO):
velocity = _velocity

View File

@@ -0,0 +1 @@
uid://ckhr8q3glmacs