ScriptEngine work and cleanup

This commit is contained in:
Simon Lübeß
2025-07-18 12:40:44 +02:00
parent 271286fb7e
commit 28311165ad
22 changed files with 204 additions and 1031 deletions
@@ -23,12 +23,12 @@ public class ScriptInstanceSerializer
public void Clear()
{
ClearDictionaryAndDeleteValues!(_serializedData);
//ScriptEngine.Classes.EntitySerializer.DestroySerializationContext(this);
ScriptEngine.Classes.EntitySerializer.DestroySerializationContext(this);
}
public void Init()
{
//ScriptEngine.Classes.EntitySerializer.CreateSerializationContext(this);
ScriptEngine.Classes.EntitySerializer.CreateSerializationContext(this);
}
/// Serializes all script instances that are currently managed by the ScriptEngine.
@@ -36,11 +36,7 @@ public class ScriptInstanceSerializer
{
Debug.Profiler.ProfileFunction!();
Log.EngineLogger.Error("SerializeScriptInstances not implemented.");
return;
/*Init();
Init();
for (let (id, scriptInstance) in ScriptEngine._entityScriptInstances)
{
@@ -50,18 +46,18 @@ public class ScriptInstanceSerializer
for (let (name, scriptClass) in ScriptEngine.EntityClasses)
{
SerializeStaticScriptClassFields(scriptClass);
}*/
}
}
/// Serializes the given script instance.
public void SerializeScriptInstance(ScriptInstance script)
public void SerializeScriptInstance(NewScriptInstance script)
{
SerializedObject object = new SerializedObject(this, false, script.ScriptClass.FullName, script.EntityId);
object.Serialize(script);
}
/// Serializes the given script instance.
public void SerializeStaticScriptClassFields(ScriptClass scriptClass)
public void SerializeStaticScriptClassFields(NewScriptClass scriptClass)
{
SerializedObject object = new SerializedObject(this, true, scriptClass.FullName, null);
object.SerializeStaticFields(scriptClass);
@@ -71,12 +67,8 @@ public class ScriptInstanceSerializer
public void DeserializeScriptInstances()
{
Debug.Profiler.ProfileFunction!();
Log.EngineLogger.Error("SerializeScriptInstances not implemented.");
return;
/*Init();
Init();
for (let (id, script) in ScriptEngine._entityScriptInstances)
{
@@ -86,12 +78,12 @@ public class ScriptInstanceSerializer
for (let (name, scriptClass) in ScriptEngine.EntityClasses)
{
DeserializeStaticScriptClassFields(scriptClass);
}*/
}
}
/// Deserializes the data into the given script instance, if there is data available.
/// @returns true if the script had serialized data; false otherwise.
public bool DeserializeScriptInstance(UUID id, ScriptInstance script)
public bool DeserializeScriptInstance(UUID id, NewScriptInstance script)
{
if (_serializedData.TryGetValue(id, let object))
{
@@ -103,7 +95,7 @@ public class ScriptInstanceSerializer
return false;
}
public bool DeserializeStaticScriptClassFields(ScriptClass scriptClass)
public bool DeserializeStaticScriptClassFields(NewScriptClass scriptClass)
{
for (let object in _serializedData.Values)
{