Implemented Entity and Component Drop-Targets and added Name property for entities

- Also fixed non generic GetComponent
- Use UUID as Drag-Drop value for entities
- Removed unused methods from ComponentEditWindow
- Started a marginally type-safe version of ImGui.Payload
This commit is contained in:
Simon Lübeß
2023-12-26 02:00:44 +01:00
parent 4fa6384544
commit a4c311c2e4
9 changed files with 255 additions and 184 deletions
+22
View File
@@ -300,6 +300,28 @@ static class ScriptGlue
entity.RemoveComponent<ScriptComponent>();
}
}
[RegisterCall("ScriptGlue::Entity_GetName")]
static MonoString* Entity_GetName(UUID entityId)
{
Entity entity = ScriptEngine.Context.GetEntityByID(entityId);
MonoString* name = Mono.mono_string_new_len(ScriptEngine.[Friend]s_AppDomain, entity.Name.Ptr, (.)entity.Name.Length);
return name;
}
[RegisterCall("ScriptGlue::Entity_SetName")]
static void Entity_SetName(UUID entityId, MonoString* name)
{
Entity entity = ScriptEngine.Context.GetEntityByID(entityId);
char8* rawName = Mono.mono_string_to_utf8(name);
entity.Name = StringView(rawName);
Mono.mono_free(rawName);
}
#endregion