mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
Don't instantiate scripts for Editor + ScriptComponent Serialzation + Don't crash when scene loading failed
This commit is contained in:
@@ -68,88 +68,4 @@ class ScriptInstance : RefCounter
|
||||
{
|
||||
_scriptClass.SetFieldValue<T>(_instance, field.[Friend]_monoField, value);
|
||||
}
|
||||
|
||||
public void CopyEditorFieldsTo(ScriptInstance target)
|
||||
{
|
||||
for (let (fieldName, field) in ScriptClass.Fields)
|
||||
{
|
||||
switch (field.FieldType)
|
||||
{
|
||||
case .Bool:
|
||||
var value = GetFieldValue<bool>(field);
|
||||
target.SetFieldValue(field, value);
|
||||
|
||||
case .SByte:
|
||||
var value = GetFieldValue<int8>(field);
|
||||
target.SetFieldValue(field, value);
|
||||
case .Short:
|
||||
var value = GetFieldValue<int16>(field);
|
||||
target.SetFieldValue(field, value);
|
||||
case .Int:
|
||||
var value = GetFieldValue<int32>(field);
|
||||
target.SetFieldValue(field, value);
|
||||
case .Long:
|
||||
var value = GetFieldValue<int64>(field);
|
||||
target.SetFieldValue(field, value);
|
||||
|
||||
case .Byte:
|
||||
var value = GetFieldValue<uint8>(field);
|
||||
target.SetFieldValue(field, value);
|
||||
case .UShort:
|
||||
var value = GetFieldValue<uint16>(field);
|
||||
target.SetFieldValue(field, value);
|
||||
case .UInt:
|
||||
var value = GetFieldValue<uint32>(field);
|
||||
target.SetFieldValue(field, value);
|
||||
case .ULong:
|
||||
var value = GetFieldValue<uint64>(field);
|
||||
target.SetFieldValue(field, value);
|
||||
|
||||
case .Float:
|
||||
var value = GetFieldValue<float>(field);
|
||||
target.SetFieldValue(field, value);
|
||||
|
||||
/*case .float2:
|
||||
GetFieldValue<float2>(field, var value);
|
||||
if (ImGui.Editfloat2(fieldName, ref value))
|
||||
SetFieldValue(field, value);
|
||||
case .float3:
|
||||
GetFieldValue<float3>(field, var value);
|
||||
if (ImGui.Editfloat3(fieldName, ref value))
|
||||
SetFieldValue(field, value);
|
||||
case .float4:
|
||||
GetFieldValue<float4>(field, var value);
|
||||
if (ImGui.Editfloat4(fieldName, ref value))
|
||||
SetFieldValue(field, value);
|
||||
|
||||
case .Double:
|
||||
var value = GetFieldValue<double>(field);
|
||||
if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .Double, &value))
|
||||
SetFieldValue(field, value);
|
||||
|
||||
case .Entity:
|
||||
// TODO!
|
||||
|
||||
case .Class:
|
||||
// TODO!
|
||||
case .Enum:
|
||||
// TODO!
|
||||
case .Struct:
|
||||
// TODO!*/
|
||||
/*case .Struct:
|
||||
ShowStructFields();
|
||||
{
|
||||
|
||||
uint8[128] bla = ?;
|
||||
GetFieldValue<uint8[128]>(scriptField);
|
||||
|
||||
Mono.MonoObject* dings = (Mono.MonoObject*)&bla;
|
||||
|
||||
//ShowFields
|
||||
}*/
|
||||
default:
|
||||
Log.EngineLogger.Error($"Unhandled field type {field.FieldType}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user