duplicate_resource.gd 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # We could use @export_custom to really test every property usage, but we know for good
  2. # that duplicating scripted properties flows through the same code already thoroughly tested
  3. # in the [Resource] test cases. The same goes for all the potential deep duplicate modes.
  4. # Therefore, it's enough to ensure the exported scriped properties are copied when invoking
  5. # duplication by each entry point.
  6. class TestResource:
  7. extends Resource
  8. @export var text: String = "holaaa"
  9. @export var arr: Array = [1, 2, 3]
  10. @export var dict: Dictionary = { "a": 1, "b": 2 }
  11. func test():
  12. # Via Resource type.
  13. var res := TestResource.new()
  14. var dupe: TestResource
  15. dupe = res.duplicate()
  16. print(dupe.text)
  17. print(dupe.arr)
  18. print(dupe.dict)
  19. dupe = res.duplicate_deep()
  20. print(dupe.text)
  21. print(dupe.arr)
  22. print(dupe.dict)
  23. # Via Variant type.
  24. var res_var = TestResource.new()
  25. var dupe_var
  26. dupe_var = res_var.duplicate()
  27. print(dupe_var.text)
  28. print(dupe_var.arr)
  29. print(dupe_var.dict)
  30. dupe_var = res_var.duplicate_deep()
  31. print(dupe_var.text)
  32. print(dupe_var.arr)
  33. print(dupe_var.dict)