Don't instantiate scripts for Editor + ScriptComponent Serialzation + Don't crash when scene loading failed

This commit is contained in:
Simon Lübeß
2023-07-17 01:27:58 +02:00
parent 76bff3a6c1
commit 1641bafd06
8 changed files with 373 additions and 148 deletions
@@ -507,8 +507,16 @@ namespace GlitchyEngine.World
struct ScriptComponent : IDisposableComponent
{
private ScriptClass _scriptClass = null;
private ScriptInstance _instance = null;
public ScriptClass ScriptClass
{
get => _scriptClass;
set mut => SetReference!(_scriptClass, value);
}
public ScriptInstance Instance
{
[Inline]
@@ -517,12 +525,16 @@ namespace GlitchyEngine.World
set mut => SetReference!(_instance, value);
}
/// Gets whether or not this script component has a script assigned (that means ScriptClass isn't null).
public bool HasScript => _scriptClass != null;
public bool IsInitialized => _instance?.IsInitialized ?? false;
public bool IsCreated => _instance?.IsCreated ?? false;
public void Dispose() mut
{
ReleaseRefAndNullify!(_scriptClass);
ReleaseRefAndNullify!(_instance);
}
}