Пример #1
0
        private void Sort_mods()
        {
            list_of_mods.Items.Clear();
            thumbnail_bitmaps.Clear();
            string[]      folders   = Directory.GetDirectories(mod_folder_path);
            string[]      mod_names = Directory.GetFiles(mod_folder_path);
            string        current_body_type;
            List <string> new_folders = new List <string>();

            Custom_Message_Box("Please wait, this can take some time. " + mod_names.Length.ToString() + " mods need to be sorted.");

            foreach (string name in mod_names)
            {
                current_body_type = "";
                if (!name.Contains(".package"))
                {
                    continue;
                }
                IPackage now_open      = Package.OpenPackage(0, name);
                string   only_mod_name = Regex.Match(name, regex_pattern).ToString();

                foreach (IResourceIndexEntry r in now_open.GetResourceList)
                {
                    if (flags.Contains(r.ResourceType))
                    {
                        CASPartResource.CASPartResource text_file = (CASPartResource.CASPartResource)WrapperDealer.GetResource(1, now_open, r);

                        current_body_type = text_file.BodyType.ToString();

                        break;
                    }
                    else if (types.Contains(r.ResourceType))
                    {
                        current_body_type = "Objects";

                        break;
                    }
                }

                now_open.Dispose();

                if (folders.Contains(current_body_type) || new_folders.Contains(current_body_type))
                {
                    File.Move(name, mod_folder_path + "\\" + current_body_type + "\\" + only_mod_name + ".package");
                }
                else
                {
                    Directory.CreateDirectory(mod_folder_path + "\\" + current_body_type);
                    new_folders.Add(current_body_type);
                    File.Move(name, mod_folder_path + "\\" + current_body_type + "\\" + only_mod_name + ".package");
                }
            }
            Custom_Message_Box("All mods have been sorted!");
        }
Пример #2
0
        private void Fill_Details(IPackage p)
        {
            foreach (IResourceIndexEntry r in p.GetResourceList)
            {
                if (flags.Contains(r.ResourceType))
                {
                    CASPartResource.CASPartResource text_file = (CASPartResource.CASPartResource)WrapperDealer.GetResource(1, p, r);

                    string[] flag_array = text_file.ParameterFlags.ToString().Split(',');
                    if (flag_array.Contains <string>("AllowForCASRandom"))
                    {
                        tb_flags.Text = "AllowForCASRandom - True";
                    }
                    else
                    {
                        tb_flags.Text = "AllowForCASRandom - False";
                    }

                    tb_age_gender.Text = text_file.AgeGender.ToString();
                    tb_body_type.Text  = text_file.BodyType.ToString();

                    break;
                }
                else if (types.Contains(r.ResourceType))
                {
                    ObjectDefinitionResource text_file = (ObjectDefinitionResource)WrapperDealer.GetResource(1, p, r);

                    try
                    {
                        tb_flags.Text = text_file.Tuning.ToString();
                    }
                    catch (Exception)
                    {
                        tb_flags.Text = null;
                    }
                    break;
                }

                tb_flags.Text      = null;
                tb_age_gender.Text = null;
                tb_body_type.Text  = null;
            }
        }