62 lines
1.2 KiB
GDScript
62 lines
1.2 KiB
GDScript
class Say:
|
|
var prefix = "S"
|
|
|
|
func greet():
|
|
prefix = "S Greeted"
|
|
print("hello")
|
|
|
|
func say(name):
|
|
print(prefix, " say something ", name)
|
|
|
|
|
|
class SayAnotherThing extends Say:
|
|
# This currently crashes the engine.
|
|
#var prefix = "SAT"
|
|
|
|
func greet():
|
|
prefix = "SAT Greeted"
|
|
print("hi")
|
|
|
|
func say(name):
|
|
print(prefix, " say another thing ", name)
|
|
|
|
|
|
class SayNothing extends Say:
|
|
# This currently crashes the engine.
|
|
#var prefix = "SN"
|
|
|
|
func greet():
|
|
super()
|
|
prefix = "SN Greeted"
|
|
print("howdy, see above")
|
|
|
|
func greet_prefix_before_super():
|
|
prefix = "SN Greeted"
|
|
super.greet()
|
|
print("howdy, see above")
|
|
|
|
func say(name):
|
|
@warning_ignore("unsafe_call_argument")
|
|
super(name + " super'd")
|
|
print(prefix, " say nothing... or not? ", name)
|
|
|
|
|
|
func test():
|
|
var say = Say.new()
|
|
say.greet()
|
|
say.say("foo")
|
|
print()
|
|
|
|
var say_another_thing = SayAnotherThing.new()
|
|
say_another_thing.greet()
|
|
say_another_thing.say("bar")
|
|
print()
|
|
|
|
var say_nothing = SayNothing.new()
|
|
say_nothing.greet()
|
|
print(say_nothing.prefix)
|
|
say_nothing.greet_prefix_before_super()
|
|
print(say_nothing.prefix)
|
|
# This currently triggers a compiler bug: "compiler bug, function name not found"
|
|
#say_nothing.say("baz")
|