Delay fs update when populating path bimap

This commit is contained in:
Paul Joannon 2024-02-01 21:06:17 +01:00
parent 9adb7c7d13
commit 999180d5b5
No known key found for this signature in database
GPG Key ID: C12F69B0AD0390DD
2 changed files with 12 additions and 7 deletions

View File

@ -310,13 +310,6 @@ namespace Godot.Bridge
_pathTypeBiMap.Add(scriptPathAttr.Path, type); _pathTypeBiMap.Add(scriptPathAttr.Path, type);
// This method may be called before initialization.
if (NativeFuncs.godotsharp_dotnet_module_is_initialized().ToBool() && Engine.IsEditorHint())
{
using godot_string scriptPath = Marshaling.ConvertStringToNative(scriptPathAttr.Path);
NativeFuncs.godotsharp_internal_editor_file_system_update_file(scriptPath);
}
if (AlcReloadCfg.IsAlcReloadingEnabled) if (AlcReloadCfg.IsAlcReloadingEnabled)
{ {
AddTypeForAlcReloading(type); AddTypeForAlcReloading(type);
@ -366,6 +359,16 @@ namespace Godot.Bridge
} }
} }
} }
// This method may be called before initialization.
if (NativeFuncs.godotsharp_dotnet_module_is_initialized().ToBool() && Engine.IsEditorHint())
{
foreach (var scriptPath in _pathTypeBiMap.Paths)
{
using godot_string nativeScriptPath = Marshaling.ConvertStringToNative(scriptPath);
NativeFuncs.godotsharp_internal_editor_file_system_update_file(nativeScriptPath);
}
}
} }
[UnmanagedCallersOnly] [UnmanagedCallersOnly]

View File

@ -61,6 +61,8 @@ public static partial class ScriptManagerBridge
private System.Collections.Generic.Dictionary<string, Type> _pathTypeMap = new(); private System.Collections.Generic.Dictionary<string, Type> _pathTypeMap = new();
private System.Collections.Generic.Dictionary<Type, string> _typePathMap = new(); private System.Collections.Generic.Dictionary<Type, string> _typePathMap = new();
public System.Collections.Generic.IEnumerable<string> Paths => _pathTypeMap.Keys;
public void Add(string scriptPath, Type scriptType) public void Add(string scriptPath, Type scriptType)
{ {
_pathTypeMap.Add(scriptPath, scriptType); _pathTypeMap.Add(scriptPath, scriptType);