From aaa48158c3cf5a481f8ee4e8ba13987301b89b4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Sat, 2 Dec 2023 00:40:17 +0100 Subject: [PATCH] Removed script editor from beef side --- .../src/EditWindows/ComponentEditWindow.bf | 278 +----------------- 1 file changed, 1 insertion(+), 277 deletions(-) diff --git a/GlitchyEditor/src/EditWindows/ComponentEditWindow.bf b/GlitchyEditor/src/EditWindows/ComponentEditWindow.bf index 3bbc3d0..31dafc8 100644 --- a/GlitchyEditor/src/EditWindows/ComponentEditWindow.bf +++ b/GlitchyEditor/src/EditWindows/ComponentEditWindow.bf @@ -559,11 +559,6 @@ namespace GlitchyEditor.EditWindows if (ImGui.Selectable(className.ToScopeCStr!(), className == scriptComponent.ScriptClassName)) { - //scriptComponent.Instance = new ScriptInstance(scriptClass); - // decrement refCount to 1 (scriptComponent.Instance increments its) - //scriptComponent.Instance.ReleaseRef(); - //ScriptEngine.InitializeInstance(entity, scriptComponent); - scriptComponent.ScriptClassName = scriptClass.FullName; ScriptEngine.CreateScriptFieldMap(entity); @@ -571,279 +566,8 @@ namespace GlitchyEditor.EditWindows } ImGui.EndPopup(); } - + ScriptEngine.ShowScriptEditor(entity, scriptComponent); - - ImGui.Separator(); - - ScriptClass scriptClass = ScriptEngine.GetScriptClass(scriptComponent.ScriptClassName); - - /*T GetFieldValue() - { - return scriptComponent.Instance.GetFieldValue(monoField); - } - - void SetFieldValue(in T value) - { - scriptComponent.Instance.SetFieldValue(monoField, value); - }*/ - - T GetFieldValue(ScriptInstance scriptInstance, in ScriptField scriptField) - { - return scriptInstance.GetFieldValue(scriptField); - } - - void GetFieldValue(ScriptInstance scriptInstance, in ScriptField scriptField, out T value) - { - value = scriptInstance.GetFieldValue(scriptField); - } - - void SetFieldValue(ScriptInstance scriptInstance, in ScriptField scriptField, in T value) - { - scriptInstance.SetFieldValue(scriptField, value); - } - - T GetData(void* instance, ScriptField scriptField) - { - T data = default; - Mono.mono_field_get_value((.)instance, scriptField.[Friend]_monoField, &data); - - return data; - } - - void GetData(void* instance, ScriptField scriptField, T* data) - { - Mono.mono_field_get_value((.)instance, scriptField.[Friend]_monoField, data); - } - - void SetData(void* instance, ScriptField scriptField, in T value) - { - Mono.mono_field_set_value((.)instance, scriptField.[Friend]_monoField, &value); - } - - void SetData(void* instance, ScriptField scriptField, T* data) - { - Mono.mono_field_set_value((.)instance, scriptField.[Friend]_monoField, data); - } - - if (scriptComponent.Instance?.IsInitialized == true) - { - // SharpClass sharpClass = scriptComponent.Instance.ScriptClass; - // ScriptInstance scriptInstance = scriptComponent.Instance; - - // for (let (fieldName, scriptField) in sharpClass.Fields) - // { - // var monoField = scriptField.[Friend]_monoField; - - // switch (scriptField.FieldType) - // { - // case .Bool: - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.Checkbox(fieldName.ToScopeCStr!(), &value)) - // SetFieldValue(scriptInstance, scriptField, value); - - // case .SByte: - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .S8, &value)) - // SetFieldValue(scriptInstance, scriptField, value); - // case .Short: - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .S16, &value)) - // SetFieldValue(scriptInstance, scriptField, value); - // case .Int: - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .S32, &value)) - // SetFieldValue(scriptInstance, scriptField, value); - // case .Long: - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .S64, &value)) - // SetFieldValue(scriptInstance, scriptField, value); - - // case .Byte: - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .U8, &value)) - // SetFieldValue(scriptInstance, scriptField, value); - // case .UShort: - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .U16, &value)) - // SetFieldValue(scriptInstance, scriptField, value); - // case .UInt: - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .U32, &value)) - // SetFieldValue(scriptInstance, scriptField, value); - // case .ULong: - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .U64, &value)) - // SetFieldValue(scriptInstance, scriptField, value); - - // case .Float: - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .Float, &value)) - // SetFieldValue(scriptInstance, scriptField, value); - - // case .float2: - // GetFieldValue(scriptInstance, scriptField, var value); - // if (ImGui.EditFloat2(fieldName, ref value)) - // SetFieldValue(scriptInstance, scriptField, value); - // case .float3: - // GetFieldValue(scriptInstance, scriptField, var value); - // if (ImGui.EditFloat3(fieldName, ref value)) - // SetFieldValue(scriptInstance, scriptField, value); - // case .float4: - // GetFieldValue(scriptInstance, scriptField, var value); - // if (ImGui.EditFloat4(fieldName, ref value)) - // SetFieldValue(scriptInstance, scriptField, value); - - // case .Double: - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .Double, &value)) - // SetFieldValue(scriptInstance, scriptField, value); - - // case .Entity: - // // TODO! - - // case .Enum: - // // TODO! - // case .Struct: - // // TODO! - // /*{ - // uint8[] data = scope .[scriptField.SizeInBytes]; - - // Mono.mono_field_get_value(scriptInstance.[Friend]_instance, scriptField.[Friend]_monoField, data.Ptr); - - // //scriptField. - - // //scriptInstance.GetFieldValue(); - - // //scriptInstance.ScriptClass.Fields[] - // /* - // var value = GetFieldValue(scriptInstance, scriptField); - // if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .Double, &value)) - // SetFieldValue(scriptInstance, scriptField, value); - // */ - // }*/ - // case .Class: - // { - // var value = GetFieldValue(scriptInstance, scriptField); - // } - // default: - // Log.EngineLogger.Error($"Unhandled field type {scriptField.FieldType}"); - // } - // } - } - else if (scriptClass != null) - { - let scriptFields = ScriptEngine.GetScriptFieldMap(entity); - - for (var (fieldName, field) in ref scriptFields) - { - switch (field.Type) - { - case .Bool: - var value = field.GetData(); - if (ImGui.Checkbox(fieldName.CStr(), &value)) - field.SetData(value); - case .SByte: - var value = field.GetData(); - if (ImGui.DragScalar(fieldName.CStr(), .S8, &value)) - field.SetData(value); - case .Short: - var value = field.GetData(); - if (ImGui.DragScalar(fieldName.CStr(), .S16, &value)) - field.SetData(value); - case .Int: - var value = field.GetData(); - if (ImGui.DragScalar(fieldName.CStr(), .S32, &value)) - field.SetData(value); - case .Int2: - var value = field.GetData(); - if (ImGui.DragScalarN(fieldName.CStr(), .S32, &value, 2)) - field.SetData(value); - case .Int3: - var value = field.GetData(); - if (ImGui.DragScalarN(fieldName.CStr(), .S32, &value, 3)) - field.SetData(value); - case .Int4: - var value = field.GetData(); - if (ImGui.DragScalarN(fieldName.CStr(), .S32, &value, 4)) - field.SetData(value); - case .Long: - var value = field.GetData(); - if (ImGui.DragScalar(fieldName.CStr(), .S64, &value)) - field.SetData(value); - - case .Byte: - var value = field.GetData(); - if (ImGui.DragScalar(fieldName.CStr(), .U8, &value)) - field.SetData(value); - case .UShort: - var value = field.GetData(); - if (ImGui.DragScalar(fieldName.CStr(), .U16, &value)) - field.SetData(value); - case .UInt: - var value = field.GetData(); - if (ImGui.DragScalar(fieldName.CStr(), .U32, &value)) - field.SetData(value); - case .ULong: - var value = field.GetData(); - if (ImGui.DragScalar(fieldName.CStr(), .U64, &value)) - field.SetData(value); - - case .Float: - var value = field.GetData(); - if (ImGui.DragScalar(fieldName.CStr(), .Float, &value)) - field.SetData(value); - case .float2: - var value = field.GetData(); - if (ImGui.EditFloat2(fieldName, ref value)) - field.SetData(value); - case .float3: - var value = field.GetData(); - if (ImGui.EditFloat3(fieldName, ref value)) - field.SetData(value); - case .float4: - var value = field.GetData(); - if (ImGui.EditFloat4(fieldName, ref value)) - field.SetData(value); - - case .Double: - var value = field.GetData(); - if (ImGui.DragScalar(fieldName.CStr(), .Double, &value)) - field.SetData(value); - case .Double2: - var value = field.GetData(); - if (ImGui.DragScalarN(fieldName.CStr(), .Double, &value, 2)) - field.SetData(value); - case .Double3: - var value = field.GetData(); - if (ImGui.DragScalarN(fieldName.CStr(), .Double, &value, 3)) - field.SetData(value); - case .Double4: - var value = field.GetData(); - if (ImGui.DragScalarN(fieldName.CStr(), .Double, &value, 4)) - field.SetData(value); - - case .Enum: - ShowEnumSelector(field, fieldName, scriptClass); - //case .String: - // TODO! - - case .Entity: - ShowEntityReceiver(field, fieldName, scriptClass); - case .Component: - ShowComponentReceiver(field, fieldName, scriptClass); - - case .Struct: - // TODO! - - case .Class: - // We don't support editing classes - - default: - Log.EngineLogger.Error($"Unhandled field type {field.Type}"); - } - } - } } private static void ShowEnumSelector(ScriptFieldInstance* field, StringView fieldName, ScriptClass scriptClass)