export_variable.gd 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. class_name ExportVariableTest
  2. extends Node
  3. const Utils = preload("../../utils.notest.gd")
  4. const PreloadedScript = preload("./export_variable.notest.gd")
  5. # Built-in types.
  6. @export var test_weak_int = 1
  7. @export var test_hard_int: int = 2
  8. @export_range(0, 100) var test_range = 100
  9. @export_range(0, 100, 1) var test_range_step = 101
  10. @export_range(0, 100, 1, "or_greater") var test_range_step_or_greater = 102
  11. @export var test_color: Color
  12. @export_color_no_alpha var test_color_no_alpha: Color
  13. @export_node_path("Sprite2D", "Sprite3D", "Control", "Node") var test_node_path := ^"hello"
  14. # Enums.
  15. @export var test_side: Side
  16. @export var test_atm: AutoTranslateMode
  17. # Resources and nodes.
  18. @export var test_image: Image
  19. @export var test_timer: Timer
  20. # Global custom classes.
  21. @export var test_global_class: ExportVariableTest
  22. @export var test_preloaded_script: PreloadedScript
  23. # Arrays.
  24. @export var test_array: Array
  25. @export var test_array_bool: Array[bool]
  26. @export var test_array_array: Array[Array]
  27. @export var test_array_side: Array[Side]
  28. @export var test_array_atm: Array[AutoTranslateMode]
  29. @export var test_array_image: Array[Image]
  30. @export var test_array_timer: Array[Timer]
  31. # `@export_storage`.
  32. @export_storage var test_storage_untyped
  33. @export_storage var test_storage_weak_int = 3 # Property info still `Variant`, unlike `@export`.
  34. @export_storage var test_storage_hard_int: int = 4
  35. # `@export_custom`.
  36. # NOTE: `PROPERTY_USAGE_NIL_IS_VARIANT` flag will be removed.
  37. @export_custom(PROPERTY_HINT_ENUM, "A,B,C") var test_export_custom_untyped
  38. @export_custom(PROPERTY_HINT_ENUM, "A,B,C") var test_export_custom_weak_int = 5
  39. @export_custom(PROPERTY_HINT_ENUM, "A,B,C") var test_export_custom_hard_int: int = 6
  40. func test():
  41. for property in get_property_list():
  42. if str(property.name).begins_with("test_"):
  43. Utils.print_property_extended_info(property, self)