mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
Fixed calling engine functions from scripts
- Removed mono references in generator - Implemented StringView type in C#
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using GlitchyEngine.Core;
|
||||
using GlitchyEngine.Scripting.Classes;
|
||||
|
||||
using static GlitchyEngine.Scripting.ScriptEngine;
|
||||
|
||||
@@ -16,7 +17,8 @@ class NewScriptClass
|
||||
|
||||
public this(StringView fullName, Guid guid, ScriptMethods methods, bool runInEditMode = false)
|
||||
{
|
||||
FullName = new String(fullName);
|
||||
// TODO: Remove the need for null termination
|
||||
FullName = new String(fullName)..EnsureNullTerminator();
|
||||
Guid = guid;
|
||||
|
||||
int lastDotIndex = FullName.LastIndexOf('.');
|
||||
|
||||
@@ -302,7 +302,7 @@ static class ScriptEngine
|
||||
//ScriptGlue.RegisterManagedComponents();
|
||||
}
|
||||
|
||||
//InitAssemblyWatcher();
|
||||
InitAssemblyWatcher();
|
||||
}
|
||||
|
||||
/// Starts the script runtime and sets the context scene.
|
||||
@@ -343,8 +343,6 @@ static class ScriptEngine
|
||||
/// Disposes of and replaces the old instance, if one exists.
|
||||
public static bool InitializeInstance(Entity entity, ScriptComponent* script)
|
||||
{
|
||||
Log.EngineLogger.Error($"{Compiler.CallerMemberName} not updated yet.");
|
||||
|
||||
NewScriptClass scriptClass = GetScriptClass(script.ScriptClassName);
|
||||
|
||||
if (scriptClass == null)
|
||||
@@ -480,16 +478,6 @@ static class ScriptEngine
|
||||
s_RootDomain = null;*/
|
||||
}
|
||||
|
||||
// TODO: Do we still need this? It was only called by ScriptGlue
|
||||
/// Returns the script instance or null.
|
||||
public static void* GetManagedInstance(UUID entityId)
|
||||
{
|
||||
//if (_entityScriptInstances.TryGetValue(entityId, let scriptInstance))
|
||||
// return scriptInstance.MonoInstance;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static NewScriptClass GetScriptClass(StringView name)
|
||||
{
|
||||
EntityClasses.TryGetValue(name, let scriptClass);
|
||||
@@ -501,7 +489,7 @@ static class ScriptEngine
|
||||
{
|
||||
String entityInfo = scope .();
|
||||
|
||||
if (entityId != .Zero)
|
||||
if (entityId != .Zero && Context != null)
|
||||
{
|
||||
exception.EntityId = entityId;
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -407,9 +407,8 @@ namespace GlitchyEngine.World
|
||||
collision.Rigidbody = rigidbodyEntityA.UUID;
|
||||
collision.OtherRigidbody = rigidbodyEntityB.UUID;
|
||||
|
||||
// TODO:
|
||||
//scriptOfColliderA?.Instance?.InvokeOnCollisionEnter2D(collision);
|
||||
//scriptOfRigidbodyA?.Instance?.InvokeOnCollisionEnter2D(collision);
|
||||
scriptOfColliderA?.Instance?.InvokeOnCollisionEnter2D(collision);
|
||||
scriptOfRigidbodyA?.Instance?.InvokeOnCollisionEnter2D(collision);
|
||||
}
|
||||
|
||||
bool fireEventB = colliderEntityB.TryGetComponent<ScriptComponent>(let scriptOfColliderB);
|
||||
@@ -423,8 +422,8 @@ namespace GlitchyEngine.World
|
||||
collision.Rigidbody = rigidbodyEntityB.UUID;
|
||||
collision.OtherRigidbody = rigidbodyEntityA.UUID;
|
||||
|
||||
//scriptOfColliderB?.Instance?.InvokeOnCollisionEnter2D(collision);
|
||||
//scriptOfRigidbodyB?.Instance?.InvokeOnCollisionEnter2D(collision);
|
||||
scriptOfColliderB?.Instance?.InvokeOnCollisionEnter2D(collision);
|
||||
scriptOfRigidbodyB?.Instance?.InvokeOnCollisionEnter2D(collision);
|
||||
}
|
||||
};
|
||||
_contactListener.endContactCallback = (contact, userData) => {
|
||||
|
||||
Reference in New Issue
Block a user