mirror of
https://github.com/antopilo/Nuake.git
synced 2026-01-03 14:09:46 +03:00
Now calling both collidee when a collision occur, removed unnecessary parameter to collision callbacks
This commit is contained in:
@@ -213,11 +213,19 @@ namespace Nuake
|
||||
const auto collisions = physicsManager.GetCollisions();
|
||||
for (const auto& col : collisions)
|
||||
{
|
||||
// Calling both collidee(?)
|
||||
Entity entity1 = { (entt::entity)col.Entity1, m_Scene };
|
||||
if (entity1.IsValid() && scriptingEngineNet.HasEntityScriptInstance(entity1))
|
||||
{
|
||||
auto scriptInstance = scriptingEngineNet.GetEntityScript(entity1);
|
||||
scriptInstance.InvokeMethod("OnCollisionInternal", (int)col.Entity1, (int)col.Entity2);
|
||||
scriptInstance.InvokeMethod("OnCollisionInternal", (int)col.Entity2);
|
||||
}
|
||||
|
||||
Entity entity2 = { (entt::entity)col.Entity2, m_Scene };
|
||||
if (entity2.IsValid() && scriptingEngineNet.HasEntityScriptInstance(entity2))
|
||||
{
|
||||
auto scriptInstance = scriptingEngineNet.GetEntityScript(entity2);
|
||||
scriptInstance.InvokeMethod("OnCollisionInternal", (int)col.Entity1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,29 +55,29 @@ namespace Nuake.Net
|
||||
public virtual void OnFixedUpdate(float dt) { }
|
||||
public virtual void OnDestroy() { }
|
||||
|
||||
public virtual void OnCollision(Entity entity1, Entity entity2)
|
||||
public virtual void OnCollision(Entity entity)
|
||||
{
|
||||
}
|
||||
|
||||
// Physics
|
||||
public void OnCollisionInternal(int entity1, int entity2)
|
||||
public void OnCollisionInternal(int entity)
|
||||
{
|
||||
Entity entityInstance;
|
||||
unsafe
|
||||
{
|
||||
bool hasInstance = EntityHasManagedInstanceIcall(entity2);
|
||||
bool hasInstance = EntityHasManagedInstanceIcall(entity);
|
||||
|
||||
if (hasInstance)
|
||||
{
|
||||
entityInstance = Scene.GetEntity<Entity>(entity2);
|
||||
entityInstance = Scene.GetEntity<Entity>(entity);
|
||||
}
|
||||
else
|
||||
{
|
||||
entityInstance = new Entity { ECSHandle = entity2 };
|
||||
entityInstance = new Entity { ECSHandle = entity };
|
||||
}
|
||||
}
|
||||
|
||||
OnCollision(new Entity { ECSHandle = entity1 }, entityInstance);
|
||||
OnCollision(entityInstance);
|
||||
}
|
||||
|
||||
protected static Dictionary<Type, ComponentTypes> MappingTypeEnum = new Dictionary<Type, ComponentTypes>()
|
||||
|
||||
Reference in New Issue
Block a user