You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Fix 'Script class can only be set together with base class name' error with .NET typed collections upon rebuild
This commit is contained in:
@@ -833,6 +833,25 @@ void CSharpLanguage::reload_assemblies(bool p_soft_reload) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Add all script types to script bridge before reloading exports,
|
||||
// so typed collections can be reconstructed correctly regardless of script load order.
|
||||
for (Ref<CSharpScript> &scr : to_reload) {
|
||||
if (!scr->get_path().is_empty() && !scr->get_path().begins_with("csharp://")) {
|
||||
String script_path = scr->get_path();
|
||||
|
||||
bool valid = GDMonoCache::managed_callbacks.ScriptManagerBridge_AddScriptBridge(scr.ptr(), &script_path);
|
||||
|
||||
if (valid) {
|
||||
scr->valid = true;
|
||||
|
||||
CSharpScript::update_script_class_info(scr);
|
||||
|
||||
// Ensure that the next call to CSharpScript::reload will refresh the exports
|
||||
scr->reload_invalidated = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<Ref<CSharpScript>> to_reload_state;
|
||||
|
||||
for (Ref<CSharpScript> &scr : to_reload) {
|
||||
|
||||
Reference in New Issue
Block a user