コード例 #1
0
 static void HavokWorld_EntityLeftWorld(HkEntity hkEntity)
 {
     var entities = hkEntity.GetAllEntities();
     foreach (var entity in entities)
     {
         if (Sandbox.Game.Multiplayer.Sync.IsServer && entity != null)
         {
             // HACK: due to not working Close or MarkForClose correctly
             if (entity is Sandbox.Game.Entities.Character.MyCharacter)
             {
                 ((Sandbox.Game.Entities.Character.MyCharacter)entity).DoDamage(1000, MyDamageType.Suicide, true);
             }
             else if (entity is MyVoxelMap || entity is MyCubeBlock)
             {
             }
             else if (entity is MyCubeGrid)
             {
                 var grid = ((MyCubeGrid)entity);
                 if (entity.SyncObject != null)
                 {
                     grid.SyncObject.SendCloseRequest();
                 }
                 else
                 {
                     grid.Close();
                 }
             }
             else if (entity is MyFloatingObject)
             {
                 MyFloatingObjects.RemoveFloatingObject((MyFloatingObject)entity);
             }
             else if (entity is MyFracturedPiece)
             {
                 Sandbox.Game.GameSystems.MyFracturedPiecesManager.Static.RemoveFracturePiece((MyFracturedPiece)entity, 0);
             }
             else if (entity.SyncObject != null)
             {
                 entity.SyncObject.SendCloseRequest();
             }
         }
     }
     entities.Clear();
 }
コード例 #2
0
 void RigidBody_Activated(HkEntity entity)
 {
     Debug.Assert(entity.GetEntity(0) is MyFracturedPiece);
     var fp = entity.GetEntity(0) as MyFracturedPiece;
     if (fp == null || m_blendingPieces.Contains(fp))
         return;
     m_inactivePieces.Remove(fp);
 }
コード例 #3
0
 void RBActivated(HkEntity e) { m_activeCounter++; }
コード例 #4
0
 void RBDeactivated(HkEntity e) { m_activeCounter--; }
コード例 #5
0
        public static IMyEntity GetSingleEntity(this HkEntity hkEntity)
        {
            var body = hkEntity.GetBody();

            return(body != null ? body.Entity : null);
        }
コード例 #6
0
 public static MyPhysicsBody GetBody(this HkEntity hkEntity)
 {
     return((hkEntity != null) ? hkEntity.UserObject as MyPhysicsBody : null);
 }
コード例 #7
0
        public static Sandbox.ModAPI.IMyEntity GetEntity(this HkEntity hkEntity)
        {
            var body = hkEntity.GetBody();

            return(body != null ? body.Entity : null);
        }
コード例 #8
0
 void RBDeactivated(HkEntity e)
 {
     m_activeCounter--;
 }
コード例 #9
0
 void RBActivated(HkEntity e)
 {
     m_activeCounter++;
 }