export_variable.gd 1.6 KB

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