Пример #1
0
        /// <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);
        }
Пример #2
0
 public CollisionEvent(EventPhysCollision physCollision, IEntity entity)
 {
     PhysCollision = physCollision;
     Entity        = entity;
 }
 public CollisionEvent(EntityCollisionListener sender, EventPhysCollision physCollision, IEntity entity)
 {
     Sender             = sender;
     PhysCollision      = physCollision;
     NativeEntityHandle = entity;
 }