export_variable.gd 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. class_name ExportVariableTest
  2. extends Node
  3. const PreloadedGlobalClass = preload("./export_variable_global.notest.gd")
  4. const PreloadedUnnamedClass = preload("./export_variable_unnamed.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_global_class: PreloadedGlobalClass
  23. @export var test_preloaded_unnamed_class: PreloadedUnnamedClass # GH-93168
  24. # Arrays.
  25. @export var test_array: Array
  26. @export var test_array_bool: Array[bool]
  27. @export var test_array_array: Array[Array]
  28. @export var test_array_side: Array[Side]
  29. @export var test_array_atm: Array[AutoTranslateMode]
  30. @export var test_array_image: Array[Image]
  31. @export var test_array_timer: Array[Timer]
  32. # `@export_storage`.
  33. @export_storage var test_storage_untyped
  34. @export_storage var test_storage_weak_int = 3 # Property info still `Variant`, unlike `@export`.
  35. @export_storage var test_storage_hard_int: int = 4
  36. # `@export_custom`.
  37. # NOTE: `PROPERTY_USAGE_NIL_IS_VARIANT` flag will be removed.
  38. @export_custom(PROPERTY_HINT_ENUM, "A,B,C") var test_export_custom_untyped
  39. @export_custom(PROPERTY_HINT_ENUM, "A,B,C") var test_export_custom_weak_int = 5
  40. @export_custom(PROPERTY_HINT_ENUM, "A,B,C") var test_export_custom_hard_int: int = 6
  41. func test():
  42. for property in get_property_list():
  43. if str(property.name).begins_with("test_"):
  44. Utils.print_property_extended_info(property, self)