summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-02-02 12:05:14 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-02-02 12:05:14 +0100
commitd0f8b76ffdf2de0d5f7ed164591a9d7b3456f16c (patch)
treeb41def4660f7283108caf6ffa5f67d7ab1c8bbdb
parent92ff4f7877ddbbf97c6170143b07c590ec04487c (diff)
parent999180d5b5c1023f441100e7b45a3aa346a2e898 (diff)
downloadredot-engine-d0f8b76ffdf2de0d5f7ed164591a9d7b3456f16c.tar.gz
Merge pull request #87838 from paulloz/dotnet/fix-duplicate-key-on-reload
C#: Fix duplicate key issue on reload
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs17
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.types.cs2
2 files changed, 12 insertions, 7 deletions
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs
index 968afa664b..e344dc84c7 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs
@@ -310,13 +310,6 @@ namespace Godot.Bridge
_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)
{
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]
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.types.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.types.cs
index a58f6849ad..7fa3498b92 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.types.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.types.cs
@@ -61,6 +61,8 @@ public static partial class ScriptManagerBridge
private System.Collections.Generic.Dictionary<string, Type> _pathTypeMap = 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)
{
_pathTypeMap.Add(scriptPath, scriptType);