/// <summary> /// Global event on entity collision. Forwards event to C# Entities. /// </summary> /// <param name="pEntity">CRYENGINE entity.</param> /// <param name="arg1">Collision information.</param> public override void OnEntityEvent(IEntity pEntity, SEntityEvent arg1) { // As the only attached Entity event is the collision event, get physics of the collision. EventPhysCollision collision = arg1.GetEventPhysCollision(); // Retrieve both entities which are part of the collision. IEntity entOne = Global.gEnv.pEntitySystem.GetEntityFromPhysics(collision.GetFirstEntity()); IEntity entTwo = Global.gEnv.pEntitySystem.GetEntityFromPhysics(collision.GetSecondEntity()); if (entOne == null || entTwo == null) { return; } var e1 = Entity.Get(entOne.GetId()); var e2 = Entity.Get(entTwo.GetId()); e1.RaiseCollision(e2); e2.RaiseCollision(e1); }
public CollisionEvent(EventPhysCollision physCollision, IEntity entity) { PhysCollision = physCollision; Entity = entity; }
public CollisionEvent(EntityCollisionListener sender, EventPhysCollision physCollision, IEntity entity) { Sender = sender; PhysCollision = physCollision; NativeEntityHandle = entity; }