godot/modules/gdscript/tests/scripts/runtime/features/duplicate_resource.gd

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

41 lines
1.1 KiB
GDScript3
Raw Normal View History

2024-12-20 15:30:15 +01:00
# We could use @export_custom to really test every property usage, but we know for good
# that duplicating scripted properties flows through the same code already thoroughly tested
# in the [Resource] test cases. The same goes for all the potential deep duplicate modes.
# Therefore, it's enough to ensure the exported scriped properties are copied when invoking
# duplication by each entry point.
class TestResource:
extends Resource
@export var text: String = "holaaa"
@export var arr: Array = [1, 2, 3]
@export var dict: Dictionary = { "a": 1, "b": 2 }
func test():
# Via Resource type.
var res := TestResource.new()
var dupe: TestResource
dupe = res.duplicate()
print(dupe.text)
print(dupe.arr)
print(dupe.dict)
dupe = res.duplicate_deep()
print(dupe.text)
print(dupe.arr)
print(dupe.dict)
# Via Variant type.
var res_var = TestResource.new()
var dupe_var
dupe_var = res_var.duplicate()
print(dupe_var.text)
print(dupe_var.arr)
print(dupe_var.dict)
dupe_var = res_var.duplicate_deep()
print(dupe_var.text)
print(dupe_var.arr)
print(dupe_var.dict)