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!"); }
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; } }