Fix missing game scripts types when starting editor from IDE with -skipCompile arg
This commit is contained in:
@@ -270,6 +270,7 @@ namespace FlaxEditor.Modules.SourceCodeEditing
|
|||||||
{
|
{
|
||||||
ScriptsBuilder.ScriptsReload += OnScriptsReload;
|
ScriptsBuilder.ScriptsReload += OnScriptsReload;
|
||||||
ScriptsBuilder.ScriptsReloadEnd += OnScriptsReloadEnd;
|
ScriptsBuilder.ScriptsReloadEnd += OnScriptsReloadEnd;
|
||||||
|
ScriptsBuilder.ScriptsLoaded += OnScriptsLoaded;
|
||||||
Editor.Options.OptionsChanged += OnOptionsChanged;
|
Editor.Options.OptionsChanged += OnOptionsChanged;
|
||||||
|
|
||||||
// Add default code editors (in-build)
|
// Add default code editors (in-build)
|
||||||
@@ -340,6 +341,7 @@ namespace FlaxEditor.Modules.SourceCodeEditing
|
|||||||
|
|
||||||
ScriptsBuilder.ScriptsReload -= OnScriptsReload;
|
ScriptsBuilder.ScriptsReload -= OnScriptsReload;
|
||||||
ScriptsBuilder.ScriptsReloadEnd -= OnScriptsReloadEnd;
|
ScriptsBuilder.ScriptsReloadEnd -= OnScriptsReloadEnd;
|
||||||
|
ScriptsBuilder.ScriptsLoaded -= OnScriptsLoaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -375,6 +377,12 @@ namespace FlaxEditor.Modules.SourceCodeEditing
|
|||||||
OnTypesChanged();
|
OnTypesChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnScriptsLoaded()
|
||||||
|
{
|
||||||
|
// Clear any state with engine-only types
|
||||||
|
ClearTypes();
|
||||||
|
}
|
||||||
|
|
||||||
private static bool IsTypeValidScriptingType(ScriptType t)
|
private static bool IsTypeValidScriptingType(ScriptType t)
|
||||||
{
|
{
|
||||||
return !t.IsGenericType && !t.IsAbstract && !t.HasAttribute(typeof(HideInEditorAttribute), false);
|
return !t.IsGenericType && !t.IsAbstract && !t.HasAttribute(typeof(HideInEditorAttribute), false);
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ enum class EventType
|
|||||||
ReloadBegin = 5,
|
ReloadBegin = 5,
|
||||||
Reload = 6,
|
Reload = 6,
|
||||||
ReloadEnd = 7,
|
ReloadEnd = 7,
|
||||||
|
ScriptsLoaded = 8,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct EventData
|
struct EventData
|
||||||
@@ -74,6 +75,7 @@ namespace ScriptsBuilderImpl
|
|||||||
void onScriptsReloadStart();
|
void onScriptsReloadStart();
|
||||||
void onScriptsReload();
|
void onScriptsReload();
|
||||||
void onScriptsReloadEnd();
|
void onScriptsReloadEnd();
|
||||||
|
void onScriptsLoaded();
|
||||||
|
|
||||||
void GetClassName(const MString& fullname, MString& className);
|
void GetClassName(const MString& fullname, MString& className);
|
||||||
|
|
||||||
@@ -203,6 +205,11 @@ void ScriptsBuilderImpl::onScriptsReloadEnd()
|
|||||||
CallEvent(EventType::ReloadEnd);
|
CallEvent(EventType::ReloadEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScriptsBuilderImpl::onScriptsLoaded()
|
||||||
|
{
|
||||||
|
CallEvent(EventType::ScriptsLoaded);
|
||||||
|
}
|
||||||
|
|
||||||
void ScriptsBuilder::Compile()
|
void ScriptsBuilder::Compile()
|
||||||
{
|
{
|
||||||
ScopeLock scopeLock(_locker);
|
ScopeLock scopeLock(_locker);
|
||||||
@@ -550,6 +557,7 @@ bool ScriptsBuilderService::Init()
|
|||||||
Level::ScriptsReloadStart.Bind(onScriptsReloadStart);
|
Level::ScriptsReloadStart.Bind(onScriptsReloadStart);
|
||||||
Level::ScriptsReload.Bind(onScriptsReload);
|
Level::ScriptsReload.Bind(onScriptsReload);
|
||||||
Level::ScriptsReloadEnd.Bind(onScriptsReloadEnd);
|
Level::ScriptsReloadEnd.Bind(onScriptsReloadEnd);
|
||||||
|
Scripting::ScriptsLoaded.Bind(onScriptsLoaded);
|
||||||
|
|
||||||
// Listen to code editors manager events
|
// Listen to code editors manager events
|
||||||
CodeEditingManager::AsyncOpenBegin.Bind(onCodeEditorAsyncOpenBegin);
|
CodeEditingManager::AsyncOpenBegin.Bind(onCodeEditorAsyncOpenBegin);
|
||||||
|
|||||||
@@ -66,6 +66,11 @@ namespace FlaxEditor
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static event Action ScriptsReloadEnd;
|
public static event Action ScriptsReloadEnd;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Occurs when engine loads game scripts.
|
||||||
|
/// </summary>
|
||||||
|
public static event Action ScriptsLoaded;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Occurs when code editor starts asynchronous open a file or a solution.
|
/// Occurs when code editor starts asynchronous open a file or a solution.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -86,6 +91,7 @@ namespace FlaxEditor
|
|||||||
ReloadBegin = 5,
|
ReloadBegin = 5,
|
||||||
Reload = 6,
|
Reload = 6,
|
||||||
ReloadEnd = 7,
|
ReloadEnd = 7,
|
||||||
|
ScriptsLoaded = 8,
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void Internal_OnEvent(EventType type)
|
internal static void Internal_OnEvent(EventType type)
|
||||||
@@ -118,6 +124,9 @@ namespace FlaxEditor
|
|||||||
case EventType.ReloadEnd:
|
case EventType.ReloadEnd:
|
||||||
ScriptsReloadEnd?.Invoke();
|
ScriptsReloadEnd?.Invoke();
|
||||||
break;
|
break;
|
||||||
|
case EventType.ScriptsLoaded:
|
||||||
|
ScriptsLoaded?.Invoke();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user