ExtensiveVars.gd 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. extends Node2D
  2. class_name ExtensiveVars
  3. var self_var := self
  4. @onready var label: ExtensiveVars_Label = $Label
  5. # var editor_description := "ExtensiveVars::member::text overrides"
  6. # var rotation = 2
  7. class ClassA:
  8. var member_classB
  9. var member_self := self
  10. var str_var := "ExtensiveVars::ClassA::member::str_var"
  11. func test_function(delta: float) -> void:
  12. var str_var := "ExtensiveVars::ClassA::test_function::local::str_var"
  13. var local_self := self.member_self;
  14. print("breakpoint::ExtensiveVars::ClassA::test_function")
  15. class ClassB:
  16. var member_classA
  17. func _ready() -> void:
  18. var local_label := label
  19. var local_self_var_through_label := label.parent_var
  20. var local_classA = ClassA.new()
  21. var local_classB = ClassB.new()
  22. local_classA.member_classB = local_classB
  23. local_classB.member_classA = local_classA
  24. var str_var := "ExtensiveVars::_ready::local::str_var"
  25. # Circular reference.
  26. # Note: that causes the godot engine to omit this variable, since stack_frame_var cannot be completed and sent
  27. # https://github.com/godotengine/godot/issues/76019
  28. # var dict = {}
  29. # dict["self_ref"] = dict
  30. print("breakpoint::ExtensiveVars::_ready")
  31. func _process(delta: float) -> void:
  32. var str_var := "ExtensiveVars::_process::local::str_var"
  33. test(delta)
  34. func test(delta: float):
  35. var str_var := "ExtensiveVars::test::local::str_var"
  36. var local_label := label
  37. var local_self_var_through_label := label.parent_var
  38. var large_dict = {}
  39. for i in range(1000):
  40. large_dict["variable" + str(i)] = "Some very long value, which will be in the dictionary"
  41. var local_classA2 = ClassA.new()
  42. var local_classB2 = ClassB.new()
  43. local_classA2.member_classB = local_classB2
  44. local_classB2.member_classA = local_classA2
  45. local_classA2.test_function(delta);
  46. pass