mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
Basic Script reloading
+ ScriptComponent now saves script name instead of direct ScriptClass reference + Added ClearDictionaryAndDeleteKeys helper + Moved ScriptFieldType to separate file + _ScriptFieldMap now uses String as Key
This commit is contained in:
@@ -507,14 +507,20 @@ namespace GlitchyEngine.World
|
||||
|
||||
struct ScriptComponent : IDisposableComponent
|
||||
{
|
||||
private ScriptClass _scriptClass = null;
|
||||
private String _scriptClassName = null;
|
||||
|
||||
private ScriptInstance _instance = null;
|
||||
|
||||
public ScriptClass ScriptClass
|
||||
public StringView ScriptClassName
|
||||
{
|
||||
get => _scriptClass;
|
||||
set mut => SetReference!(_scriptClass, value);
|
||||
get => _scriptClassName;
|
||||
set mut
|
||||
{
|
||||
if (_scriptClassName == null)
|
||||
_scriptClassName = new String(value);
|
||||
|
||||
_scriptClassName.Set(value);
|
||||
}
|
||||
}
|
||||
|
||||
public ScriptInstance Instance
|
||||
@@ -525,16 +531,13 @@ 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);
|
||||
delete _scriptClassName;
|
||||
ReleaseRefAndNullify!(_instance);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user