Add default virtual `gdscript://` path to `GDScript` instances
This commit is contained in:
parent
4ac649d838
commit
e3e55b29ce
|
@ -1037,7 +1037,7 @@ String GDScript::get_script_path() const {
|
|||
}
|
||||
|
||||
Error GDScript::load_source_code(const String &p_path) {
|
||||
if (p_path.is_empty() || ResourceLoader::get_resource_type(p_path.get_slice("::", 0)) == "PackedScene") {
|
||||
if (p_path.is_empty() || p_path.begins_with("gdscript://") || ResourceLoader::get_resource_type(p_path.get_slice("::", 0)) == "PackedScene") {
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
@ -1363,6 +1363,8 @@ GDScript::GDScript() :
|
|||
|
||||
GDScriptLanguage::get_singleton()->script_list.add(&script_list);
|
||||
}
|
||||
|
||||
path = vformat("gdscript://%d.gd", get_instance_id());
|
||||
}
|
||||
|
||||
void GDScript::_save_orphaned_subclasses(GDScript::ClearData *p_clear_data) {
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
func test():
|
||||
var gdscr: = GDScript.new()
|
||||
gdscr.source_code = '''
|
||||
extends Resource
|
||||
|
||||
func test() -> void:
|
||||
prints("Outer")
|
||||
var inner = InnerClass.new()
|
||||
|
||||
class InnerClass:
|
||||
func _init() -> void:
|
||||
prints("Inner")
|
||||
'''
|
||||
@warning_ignore(return_value_discarded)
|
||||
gdscr.reload()
|
||||
|
||||
var inst = gdscr.new()
|
||||
|
||||
@warning_ignore(unsafe_method_access)
|
||||
inst.test()
|
|
@ -0,0 +1,3 @@
|
|||
GDTEST_OK
|
||||
Outer
|
||||
Inner
|
Loading…
Reference in New Issue