Esempio n. 1
0
        private void UpdateLoadedScripts()
        {
            DataTable DT = new DataTable();

            DT.Columns.Add("Filename", typeof(string));
            DT.Columns.Add("Compilation Result", typeof(string));
            DT.Columns.Add("Effect count", typeof(int));
            DT.Columns.Add("Toy count", typeof(int));

            foreach (Script S in Pinball.Scripts)
            {
                int    ToyCnt            = 0;
                int    EffectCnt         = 0;
                string CompilationResult = "";
                if (S.Compiled)
                {
                    EffectCnt         = S.Assembly.GetTypes().Count(p => typeof(IEffect).IsAssignableFrom(p) && !p.IsAbstract);
                    ToyCnt            = S.Assembly.GetTypes().Count(p => typeof(IToy).IsAssignableFrom(p) && !p.IsAbstract);
                    CompilationResult = "OK";
                }
                else
                {
                    if (S.CompilationException != null)
                    {
                        CompilationResult = S.CompilationException.Message;
                    }
                    else
                    {
                        CompilationResult = "Not compiled";
                    }
                }
                DT.Rows.Add(S.File.FullName, CompilationResult, EffectCnt, ToyCnt);
            }

            LoadedScripts.ClearSelection();
            LoadedScripts.Columns.Clear();
            LoadedScripts.AutoGenerateColumns = true;
            LoadedScripts.DataSource          = DT;
            LoadedScripts.Refresh();
            LoadedScripts.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);

            UpdateScriptTypes();
        }