mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
Removed script editor from beef side
This commit is contained in:
@@ -559,11 +559,6 @@ namespace GlitchyEditor.EditWindows
|
|||||||
if (ImGui.Selectable(className.ToScopeCStr!(),
|
if (ImGui.Selectable(className.ToScopeCStr!(),
|
||||||
className == scriptComponent.ScriptClassName))
|
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;
|
scriptComponent.ScriptClassName = scriptClass.FullName;
|
||||||
|
|
||||||
ScriptEngine.CreateScriptFieldMap(entity);
|
ScriptEngine.CreateScriptFieldMap(entity);
|
||||||
@@ -573,277 +568,6 @@ namespace GlitchyEditor.EditWindows
|
|||||||
}
|
}
|
||||||
|
|
||||||
ScriptEngine.ShowScriptEditor(entity, scriptComponent);
|
ScriptEngine.ShowScriptEditor(entity, scriptComponent);
|
||||||
|
|
||||||
ImGui.Separator();
|
|
||||||
|
|
||||||
ScriptClass scriptClass = ScriptEngine.GetScriptClass(scriptComponent.ScriptClassName);
|
|
||||||
|
|
||||||
/*T GetFieldValue<T>()
|
|
||||||
{
|
|
||||||
return scriptComponent.Instance.GetFieldValue<T>(monoField);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetFieldValue<T>(in T value)
|
|
||||||
{
|
|
||||||
scriptComponent.Instance.SetFieldValue<T>(monoField, value);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
T GetFieldValue<T>(ScriptInstance scriptInstance, in ScriptField scriptField)
|
|
||||||
{
|
|
||||||
return scriptInstance.GetFieldValue<T>(scriptField);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GetFieldValue<T>(ScriptInstance scriptInstance, in ScriptField scriptField, out T value)
|
|
||||||
{
|
|
||||||
value = scriptInstance.GetFieldValue<T>(scriptField);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetFieldValue<T>(ScriptInstance scriptInstance, in ScriptField scriptField, in T value)
|
|
||||||
{
|
|
||||||
scriptInstance.SetFieldValue<T>(scriptField, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
T GetData<T>(void* instance, ScriptField scriptField)
|
|
||||||
{
|
|
||||||
T data = default;
|
|
||||||
Mono.mono_field_get_value((.)instance, scriptField.[Friend]_monoField, &data);
|
|
||||||
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GetData<T>(void* instance, ScriptField scriptField, T* data)
|
|
||||||
{
|
|
||||||
Mono.mono_field_get_value((.)instance, scriptField.[Friend]_monoField, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetData<T>(void* instance, ScriptField scriptField, in T value)
|
|
||||||
{
|
|
||||||
Mono.mono_field_set_value((.)instance, scriptField.[Friend]_monoField, &value);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetData<T>(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<bool>(scriptInstance, scriptField);
|
|
||||||
// if (ImGui.Checkbox(fieldName.ToScopeCStr!(), &value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
|
|
||||||
// case .SByte:
|
|
||||||
// var value = GetFieldValue<int8>(scriptInstance, scriptField);
|
|
||||||
// if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .S8, &value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
// case .Short:
|
|
||||||
// var value = GetFieldValue<int16>(scriptInstance, scriptField);
|
|
||||||
// if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .S16, &value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
// case .Int:
|
|
||||||
// var value = GetFieldValue<int32>(scriptInstance, scriptField);
|
|
||||||
// if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .S32, &value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
// case .Long:
|
|
||||||
// var value = GetFieldValue<int64>(scriptInstance, scriptField);
|
|
||||||
// if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .S64, &value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
|
|
||||||
// case .Byte:
|
|
||||||
// var value = GetFieldValue<uint8>(scriptInstance, scriptField);
|
|
||||||
// if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .U8, &value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
// case .UShort:
|
|
||||||
// var value = GetFieldValue<uint16>(scriptInstance, scriptField);
|
|
||||||
// if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .U16, &value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
// case .UInt:
|
|
||||||
// var value = GetFieldValue<uint32>(scriptInstance, scriptField);
|
|
||||||
// if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .U32, &value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
// case .ULong:
|
|
||||||
// var value = GetFieldValue<uint64>(scriptInstance, scriptField);
|
|
||||||
// if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .U64, &value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
|
|
||||||
// case .Float:
|
|
||||||
// var value = GetFieldValue<float>(scriptInstance, scriptField);
|
|
||||||
// if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .Float, &value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
|
|
||||||
// case .float2:
|
|
||||||
// GetFieldValue<float2>(scriptInstance, scriptField, var value);
|
|
||||||
// if (ImGui.EditFloat2(fieldName, ref value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
// case .float3:
|
|
||||||
// GetFieldValue<float3>(scriptInstance, scriptField, var value);
|
|
||||||
// if (ImGui.EditFloat3(fieldName, ref value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
// case .float4:
|
|
||||||
// GetFieldValue<float4>(scriptInstance, scriptField, var value);
|
|
||||||
// if (ImGui.EditFloat4(fieldName, ref value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
|
|
||||||
// case .Double:
|
|
||||||
// var value = GetFieldValue<double>(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<double>(scriptInstance, scriptField);
|
|
||||||
// if (ImGui.DragScalar(fieldName.ToScopeCStr!(), .Double, &value))
|
|
||||||
// SetFieldValue(scriptInstance, scriptField, value);
|
|
||||||
// */
|
|
||||||
// }*/
|
|
||||||
// case .Class:
|
|
||||||
// {
|
|
||||||
// var value = GetFieldValue<void*>(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<bool>();
|
|
||||||
if (ImGui.Checkbox(fieldName.CStr(), &value))
|
|
||||||
field.SetData(value);
|
|
||||||
case .SByte:
|
|
||||||
var value = field.GetData<int8>();
|
|
||||||
if (ImGui.DragScalar(fieldName.CStr(), .S8, &value))
|
|
||||||
field.SetData(value);
|
|
||||||
case .Short:
|
|
||||||
var value = field.GetData<int16>();
|
|
||||||
if (ImGui.DragScalar(fieldName.CStr(), .S16, &value))
|
|
||||||
field.SetData(value);
|
|
||||||
case .Int:
|
|
||||||
var value = field.GetData<int32>();
|
|
||||||
if (ImGui.DragScalar(fieldName.CStr(), .S32, &value))
|
|
||||||
field.SetData(value);
|
|
||||||
case .Int2:
|
|
||||||
var value = field.GetData<int2>();
|
|
||||||
if (ImGui.DragScalarN(fieldName.CStr(), .S32, &value, 2))
|
|
||||||
field.SetData(value);
|
|
||||||
case .Int3:
|
|
||||||
var value = field.GetData<int3>();
|
|
||||||
if (ImGui.DragScalarN(fieldName.CStr(), .S32, &value, 3))
|
|
||||||
field.SetData(value);
|
|
||||||
case .Int4:
|
|
||||||
var value = field.GetData<int4>();
|
|
||||||
if (ImGui.DragScalarN(fieldName.CStr(), .S32, &value, 4))
|
|
||||||
field.SetData(value);
|
|
||||||
case .Long:
|
|
||||||
var value = field.GetData<int64>();
|
|
||||||
if (ImGui.DragScalar(fieldName.CStr(), .S64, &value))
|
|
||||||
field.SetData(value);
|
|
||||||
|
|
||||||
case .Byte:
|
|
||||||
var value = field.GetData<uint8>();
|
|
||||||
if (ImGui.DragScalar(fieldName.CStr(), .U8, &value))
|
|
||||||
field.SetData(value);
|
|
||||||
case .UShort:
|
|
||||||
var value = field.GetData<uint16>();
|
|
||||||
if (ImGui.DragScalar(fieldName.CStr(), .U16, &value))
|
|
||||||
field.SetData(value);
|
|
||||||
case .UInt:
|
|
||||||
var value = field.GetData<uint32>();
|
|
||||||
if (ImGui.DragScalar(fieldName.CStr(), .U32, &value))
|
|
||||||
field.SetData(value);
|
|
||||||
case .ULong:
|
|
||||||
var value = field.GetData<uint64>();
|
|
||||||
if (ImGui.DragScalar(fieldName.CStr(), .U64, &value))
|
|
||||||
field.SetData(value);
|
|
||||||
|
|
||||||
case .Float:
|
|
||||||
var value = field.GetData<float>();
|
|
||||||
if (ImGui.DragScalar(fieldName.CStr(), .Float, &value))
|
|
||||||
field.SetData(value);
|
|
||||||
case .float2:
|
|
||||||
var value = field.GetData<float2>();
|
|
||||||
if (ImGui.EditFloat2(fieldName, ref value))
|
|
||||||
field.SetData(value);
|
|
||||||
case .float3:
|
|
||||||
var value = field.GetData<float3>();
|
|
||||||
if (ImGui.EditFloat3(fieldName, ref value))
|
|
||||||
field.SetData(value);
|
|
||||||
case .float4:
|
|
||||||
var value = field.GetData<float4>();
|
|
||||||
if (ImGui.EditFloat4(fieldName, ref value))
|
|
||||||
field.SetData(value);
|
|
||||||
|
|
||||||
case .Double:
|
|
||||||
var value = field.GetData<double>();
|
|
||||||
if (ImGui.DragScalar(fieldName.CStr(), .Double, &value))
|
|
||||||
field.SetData(value);
|
|
||||||
case .Double2:
|
|
||||||
var value = field.GetData<double2>();
|
|
||||||
if (ImGui.DragScalarN(fieldName.CStr(), .Double, &value, 2))
|
|
||||||
field.SetData(value);
|
|
||||||
case .Double3:
|
|
||||||
var value = field.GetData<double3>();
|
|
||||||
if (ImGui.DragScalarN(fieldName.CStr(), .Double, &value, 3))
|
|
||||||
field.SetData(value);
|
|
||||||
case .Double4:
|
|
||||||
var value = field.GetData<double4>();
|
|
||||||
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)
|
private static void ShowEnumSelector(ScriptFieldInstance* field, StringView fieldName, ScriptClass scriptClass)
|
||||||
|
|||||||
Reference in New Issue
Block a user