File: self_destruction.gd

package info (click to toggle)
godot 4.4.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 229,428 kB
  • sloc: cpp: 1,657,504; ansic: 186,969; xml: 153,923; cs: 36,104; java: 29,122; python: 15,230; javascript: 6,211; yacc: 4,115; pascal: 818; objc: 459; sh: 459; makefile: 109
file content (50 lines) | stat: -rw-r--r-- 764 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# https://github.com/godotengine/godot/issues/75658

class MyObj:
	var callable: Callable

	func run():
		callable.call()

	var prop:
		set(value):
			callable.call()
		get:
			callable.call()
			return 0

	func _on_some_signal():
		callable.call()

	func _init(p_callable: Callable):
		self.callable = p_callable

signal some_signal

var obj: MyObj

func test():
	# Call.
	obj = MyObj.new(nullify_obj)
	obj.run()
	print(obj)

	# Get.
	obj = MyObj.new(nullify_obj)
	var _aux = obj.prop
	print(obj)

	# Set.
	obj = MyObj.new(nullify_obj)
	obj.prop = 1
	print(obj)

	# Signal handling.
	obj = MyObj.new(nullify_obj)
	@warning_ignore("return_value_discarded")
	some_signal.connect(obj._on_some_signal)
	some_signal.emit()
	print(obj)

func nullify_obj():
	obj = null