From 2a4eac814b41f31f857881563ad3e742f7d72560 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Sat, 18 Nov 2023 01:59:10 +0100 Subject: [PATCH] ScriptGlue: Changed signature of Entity_GetScriptInstance --- GlitchyEngine/src/Scripting/ScriptGlue.bf | 4 ++-- ScriptCore/Entity.cs | 9 +++------ ScriptCore/ScriptGlue.cs | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/GlitchyEngine/src/Scripting/ScriptGlue.bf b/GlitchyEngine/src/Scripting/ScriptGlue.bf index d0e1d03..69c50cf 100644 --- a/GlitchyEngine/src/Scripting/ScriptGlue.bf +++ b/GlitchyEngine/src/Scripting/ScriptGlue.bf @@ -253,9 +253,9 @@ static class ScriptGlue } [RegisterCall("ScriptGlue::Entity_GetScriptInstance")] - static MonoObject* Entity_GetScriptInstance(UUID entityId) + static void Entity_GetScriptInstance(UUID entityId, out MonoObject* instance) { - return ScriptEngine.GetManagedInstance(entityId); + instance = ScriptEngine.GetManagedInstance(entityId); } [RegisterCall("ScriptGlue::Entity_SetScript")] diff --git a/ScriptCore/Entity.cs b/ScriptCore/Entity.cs index 3dcf2a5..6e0763e 100644 --- a/ScriptCore/Entity.cs +++ b/ScriptCore/Entity.cs @@ -50,10 +50,7 @@ public class Entity : EngineObject /// Creates an instance that represents the Entity with the given id. /// /// The ID of the entity that belongs to this instance. - internal Entity(UUID uuid) - { - _uuid = uuid; - } + internal Entity(UUID uuid) : base(uuid) { } [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool HasComponent() => HasComponent(typeof(T)); @@ -268,7 +265,7 @@ public class Entity : EngineObject /// The type of the script. public bool Is() where T : Entity { - object scriptInstance = ScriptGlue.Entity_GetScriptInstance(_uuid); + ScriptGlue.Entity_GetScriptInstance(_uuid, out object scriptInstance); return scriptInstance is T; } @@ -280,7 +277,7 @@ public class Entity : EngineObject /// The script instance or null. public T As() where T : Entity { - object scriptInstance = ScriptGlue.Entity_GetScriptInstance(_uuid); + ScriptGlue.Entity_GetScriptInstance(_uuid, out object scriptInstance); return scriptInstance as T; } diff --git a/ScriptCore/ScriptGlue.cs b/ScriptCore/ScriptGlue.cs index 7bd7226..aa15ebd 100644 --- a/ScriptCore/ScriptGlue.cs +++ b/ScriptCore/ScriptGlue.cs @@ -37,7 +37,7 @@ internal static class ScriptGlue internal static extern void Entity_FindEntityWithName(string name, out UUID uuid); [MethodImpl(MethodImplOptions.InternalCall)] - internal static extern object Entity_GetScriptInstance(UUID entityId); + internal static extern void Entity_GetScriptInstance(UUID entityId, out object instance); [MethodImpl(MethodImplOptions.InternalCall)] internal static extern object Entity_SetScript(UUID entityId, Type scriptType);