예제 #1
0
        public static void ProceedEntityAction(MyEntity entity, EntityListAction action)
        {
            MyCubeGrid grid = entity as MyCubeGrid;

            if (grid == null)
            {
                ProceedEntityActionInternal(entity, action);
            }
            else
            {
                if (action == EntityListAction.Remove)
                {
                    grid.DismountAllCockpits();
                }
                ProceedEntityActionHierarchy(MyGridPhysicalHierarchy.Static.GetRoot(grid), action);
            }
        }
예제 #2
0
        private static void ProceedEntityActionInternal(MyEntity entity, EntityListAction action)
        {
            switch (action)
            {
            case EntityListAction.Remove:
                entity.Close();
                return;

            case EntityListAction.Stop:
                Stop(entity);
                return;

            case EntityListAction.Depower:
                Depower(entity);
                return;

            case EntityListAction.Power:
                Power(entity);
                return;
            }
        }
예제 #3
0
 private static void ProceedEntityActionHierarchy(MyCubeGrid grid, EntityListAction action)
 {
     MyGridPhysicalHierarchy.Static.ApplyOnChildren(grid, x => ProceedEntityActionHierarchy(x, action));
     ProceedEntityActionInternal(grid, action);
 }