67 lines
1.6 KiB
GDScript
67 lines
1.6 KiB
GDScript
# Script to demo this failing test:
|
|
#
|
|
# func test_doubled_instances_extend_the_inner_class():
|
|
# var inst = doubler.double_inner(INNER_CLASSES_PATH, 'InnerA').new()
|
|
# assert_is(inst, InnerClasses.InnerA)
|
|
extends SceneTree
|
|
|
|
const INNER_CLASSES_PATH = 'res://test/resources/doubler_test_objects/inner_classes.gd'
|
|
var InnerClasses = load(INNER_CLASSES_PATH)
|
|
|
|
class ExtendsInnerClassesInnerAWithPath:
|
|
extends 'res://test/resources/doubler_test_objects/inner_classes.gd'.InnerA
|
|
|
|
func make_script(script_source):
|
|
var DynScript = GDScript.new()
|
|
DynScript.source_code = script_source
|
|
DynScript.reload()
|
|
return DynScript
|
|
|
|
|
|
# this works
|
|
func demo_node2d():
|
|
var script_source = '' + \
|
|
"extends Node2D\n" + \
|
|
"func hello_world():\n" + \
|
|
"\tprint('--- hello world ---')"
|
|
|
|
print(script_source)
|
|
|
|
var inst = make_script(script_source).new()
|
|
if(inst is Node2D):
|
|
print('pass - yes it is')
|
|
else:
|
|
print('fail - unfortunately it is not')
|
|
|
|
inst.free()
|
|
|
|
|
|
func demo_dyn_inner_class():
|
|
print('-- demo_dyn_inner_class')
|
|
var script_source = '' + \
|
|
"extends '" + INNER_CLASSES_PATH + "'.InnerA\n"
|
|
var inst = make_script(script_source).new()
|
|
|
|
if(inst is InnerClasses):
|
|
print('fail - is InnerClasses')
|
|
if(inst is InnerClasses.InnerA):
|
|
print('pass - is InnerA')
|
|
|
|
|
|
func demo_inner_extends_full_path():
|
|
print('-- demo_inner_extends_full_path')
|
|
var inst = ExtendsInnerClassesInnerAWithPath.new()
|
|
print(inst.get_a())
|
|
if(inst is InnerClasses):
|
|
print('fail - 2 is InnerClasses')
|
|
if(inst is InnerClasses.InnerA):
|
|
print('pass - 2 is InnerA')
|
|
|
|
|
|
# Currently not demoing anything wrong.
|
|
func _init():
|
|
demo_dyn_inner_class()
|
|
demo_inner_extends_full_path()
|
|
demo_node2d()
|
|
quit()
|