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);