Exemple #1
0
            public static BlockSystem <T> SearchByFilter(Program program, BlockFilter <T> filter)
            {
                List <T> list = new List <T>();

                try
                {
                    if (filter.ByGroup)
                    {
                        List <IMyBlockGroup> groups = new List <IMyBlockGroup>();
                        program.GridTerminalSystem.GetBlockGroups(groups, filter.GroupVisitor());
                        List <T> group_list = new List <T>();
                        groups.ForEach(delegate(IMyBlockGroup group)
                        {
                            group_list.Clear();
                            group.GetBlocksOfType <T>(list, filter.BlockVisitor());
                            list.AddList(group_list);
                        });
                    }
                    else
                    {
                        program.GridTerminalSystem.GetBlocksOfType <T>(list, filter.BlockVisitor());
                    }
                }
                catch { }
                program.Echo(String.Format("List<{0}>:{1}", filter.Value, list.Count));
                return(new BlockSystem <T>()
                {
                    program = program,
                    List = list
                });
            }
Exemple #2
0
            public static List <IMyBlockGroup> SearchGroupFilter(Program program, BlockFilter <T> filter)
            {
                List <IMyBlockGroup> groups = new List <IMyBlockGroup>();

                try
                {
                    if (filter.ByGroup)
                    {
                        program.GridTerminalSystem.GetBlockGroups(groups, filter.GroupVisitor());
                    }
                }
                catch { }
                program.Echo(String.Format("List <{0}> count: {1}", filter.Value, groups.Count));
                return(groups);
            }