public static GetValue ( string promptText, IEnumerable |
||
promptText | string | |
items | IEnumerable |
|
defaultValue | string | |
topMost | bool | |
리턴 | string |
private void changePathsButton_Click(object sender, RoutedEventArgs e) { string game = InputComboBox.GetValue("Which game's path do you want to change?", new string[] { "Mass Effect", "Mass Effect 2", "Mass Effect 3" }, "Mass Effect 3"); if (game != "") { OpenFileDialog ofd = new OpenFileDialog(); ofd.Title = $"Select {game} executable."; game = game.Replace(" ", ""); string filter = $"{game}.exe|{game}.exe"; ofd.Filter = filter; if (ofd.ShowDialog() == true) { string result = Path.GetDirectoryName(Path.GetDirectoryName(ofd.FileName)); if (game.Last() == '3') { result = Path.GetDirectoryName(result); } switch (game) { case "MassEffect": me1PathBox.Text = result; break; case "MassEffect2": me2PathBox.Text = result; break; case "MassEffect3": me3PathBox.Text = result; break; } } } }
public static void Initialize() { HashSet <Tool> set = new HashSet <Tool>(); #region Install Mods set.Add(new Tool { name = "AutoTOC", type = typeof(AutoTOC), icon = Application.Current.FindResource("iconAutoTOC") as ImageSource, open = () => { (new AutoTOC()).Show(); }, tags = new List <string> { "user", "toc", "tocing", "crash", "infinite", "loop", "loading" }, description = "AutoTOC is a tool for ME3 that updates and/or creates the PCConsoleTOC.bin files associated with the base game and each DLC.\n\nRunning this tool upon mod installation is imperative to ensuring proper functionality of the game." }); set.Add(new Tool { name = "ModMaker", type = typeof(ModMaker), icon = Application.Current.FindResource("iconModMaker") as ImageSource, open = () => { (new ModMaker()).Show(); }, tags = new List <string> { "user", "utility", ".mod", "mod", "mesh" }, subCategory = "Mod Packagers", description = "ModMaker is a tool used to create and install files with the \".mod\" extension. MOD files are compatible with ME3 and may be packaged with meshes and other game resources.\n\nAttention: Installation of textures via MOD files is deprecated. Use MM to extract any textures, then install them with TPF Tools, instead." }); set.Add(new Tool { name = "TPF Tools", type = typeof(KFreonTPFTools3), icon = Application.Current.FindResource("iconTPFTools") as ImageSource, open = () => { (new KFreonTPFTools3()).Show(); }, tags = new List <string> { "user", "utility", "texture", "tpf", "dds", "bmp", "jpg", "png" }, subCategory = "Mod Packagers", description = "TPF Tools is the toolset’s primary texture installation utility for users. An alternative to Texmod, TPF Tools allows for permanent insertion of textures into game files. It’s compatible with a variety of texture formats, will help “repair” improperly-formatted textures, and has an assortment of other features.\n\nTPF Tools can also be used by modders to package textures into TPFs for distribution." }); #endregion #region Utilities set.Add(new Tool { name = "Animation Explorer", type = typeof(AnimationExplorer.AnimationExplorer), icon = Application.Current.FindResource("iconAnimationExplorer") as ImageSource, open = () => { (new AnimationExplorer.AnimationExplorer()).Show(); }, tags = new List <string> { "utility", "animation", "gesture", "bones" }, subCategory = "Explorers", }); set.Add(new Tool { name = "Asset Explorer", type = typeof(AssetExplorer), icon = Application.Current.FindResource("iconAssetExplorer") as ImageSource, open = () => { AssetExplorer assExp = new AssetExplorer(); assExp.Show(); assExp.LoadMe(); }, tags = new List <string> { "utility", "novice", "friendly", "user-friendly" }, subCategory = "Explorers", description = "Asset Explorer is a useful utility for newcomers to modding Mass Effect. It allows for the browsing of ME3 PCC files via a somewhat user-friendly GUI.\n\nAttention: this tool is in archival state and may contain features that no longer function.", }); set.Add(new Tool { name = "Audio Extractor", type = typeof(AFCExtract), icon = Application.Current.FindResource("iconAudioExtractor") as ImageSource, open = () => { (new AFCExtract()).Show(); }, tags = new List <string> { "utility", "afc", "music", "ogg", "wav", "sound", "dialogue" }, subCategory = "Extractors + Repackers", description = "Audio Extractor is a utility that extracts sound data from ME3 AFC files." }); set.Add(new Tool { name = "Bik Movie Extractor", type = typeof(BIKExtract), icon = Application.Current.FindResource("iconBikExtractor") as ImageSource, open = () => { (new BIKExtract()).Show(); }, tags = new List <string> { "utility", "bik", "movie" }, subCategory = "Extractors + Repackers", description = "BIK Movie Extractor is a utility for extracting BIK videos from the ME3 Movies.tfc. This file contains small resolution videos played during missions, such as footage of Miranda in Sanctuary.", }); set.Add(new Tool { name = "Class Viewer", type = typeof(ClassViewer.ClassViewer), icon = Application.Current.FindResource("iconClassViewer") as ImageSource, open = () => { (new ClassViewer.ClassViewer()).Show(); }, tags = new List <string> { "utility", "import" }, subCategory = "Explorers", }); set.Add(new Tool { name = "Hex Converter", type = typeof(HexConverter.Hexconverter), icon = Application.Current.FindResource("iconHexConverter") as ImageSource, open = () => { string loc = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); if (File.Exists(loc + "\\HexConverter.exe")) { Process.Start(loc + "\\HexConverter.exe"); } }, tags = new List <string> { "utility", "code", "endian" }, subCategory = "Converters", description = "Hex Converter is a utility that converts among floats, signed/unsigned integers, and hex code in big/little endian.", }); set.Add(new Tool { name = "Image Engine", type = typeof(CSharpImageLibrary.MainWindow), icon = Application.Current.FindResource("iconImageEngine") as ImageSource, open = () => { (new CSharpImageLibrary.MainWindow()).Show(); }, tags = new List <string> { "utility", "texture", "convert", "dds", "bmp", "jpg", "png" }, subCategory = "Converters", description = "Image Engine is a texture conversion utility. It supports BMP, JPG, PNG, TGA files, as well as a variety of DDS formats and compressions. Modification to mipmaps are also supported.", }); set.Add(new Tool { name = "Interp Viewer", type = typeof(Matinee.InterpEditor), icon = Application.Current.FindResource("iconInterpViewer") as ImageSource, open = () => { (new Matinee.InterpEditor()).Show(); }, tags = new List <string> { "utility", "dialogue", "matinee", "cutscene", "animcutscene" }, subCategory = "Explorers", description = "Interp Viewer is a simplified version of UDK’s Matinee Editor. It loads interpdata objects and displays their children as tracks on a timeline, allowing the user to visualize the game content associated with a specific scene.\n\nAttention: This tool is a utility; editing is not yet supported." }); set.Add(new Tool { name = "Level Database", type = typeof(LevelExplorer.Levelbase), icon = Application.Current.FindResource("iconLevelDatabase") as ImageSource, open = () => { (new LevelExplorer.Levelbase()).Show(); }, tags = new List <string> { "utility" }, subCategory = "Databases", }); set.Add(new Tool { name = "Meshplorer", type = typeof(Meshplorer.Meshplorer), icon = Application.Current.FindResource("iconMeshplorer") as ImageSource, open = () => { (new Meshplorer.Meshplorer()).Show(); }, tags = new List <string> { "developer", "mesh" }, subCategory = "Meshes + Textures", }); set.Add(new Tool { name = "PCC Repacker", type = typeof(PCCRepack), icon = Application.Current.FindResource("iconPCCRepacker") as ImageSource, open = () => { (new PCCRepack()).Show(); }, tags = new List <string> { "utility", "compress", "decompress" }, subCategory = "Extractors + Repackers", }); set.Add(new Tool { name = "Plot Database", type = typeof(PlotVarDB.PlotVarDB), icon = Application.Current.FindResource("iconPlotDatabase") as ImageSource, open = () => { (new PlotVarDB.PlotVarDB()).Show(); }, tags = new List <string> { "utility", "bool", "boolean", "flag", "int", "integer" }, subCategory = "Databases", description = "Plot Database is a cross-game utility used to store story data associated with plot IDs. The tool comes pre-loaded with a default .db file that can be customized by the user. Never look up a plot bool or integer again!", }); set.Add(new Tool { name = "Property Database", type = typeof(Propertydb.PropertyDB), icon = Application.Current.FindResource("iconPropertyDatabase") as ImageSource, open = () => { (new Propertydb.PropertyDB()).Show(); }, tags = new List <string> { "utility" }, subCategory = "Databases", }); set.Add(new Tool { name = "Property Dumper", type = typeof(Property_Dumper.PropDumper), icon = Application.Current.FindResource("iconPropertyDumper") as ImageSource, open = () => { (new Property_Dumper.PropDumper()).Show(); }, tags = new List <string> { "utility" }, subCategory = "Properties", }); set.Add(new Tool { name = "Property Manager", type = typeof(PropertyManager), icon = Application.Current.FindResource("iconPropertyManager") as ImageSource, open = () => { (new PropertyManager()).Show(); }, tags = new List <string> { "utility" }, subCategory = "Properties", }); set.Add(new Tool { name = "PSA Viewer", type = typeof(PSAViewer), icon = Application.Current.FindResource("iconPSAViewer") as ImageSource, open = () => { (new PSAViewer()).Show(); }, tags = new List <string> { "utility", "mesh", "animation" }, subCategory = "Explorers", }); set.Add(new Tool { name = "PSK Viewer", type = typeof(PSKViewer.PSKViewer), icon = Application.Current.FindResource("iconPSKViewer") as ImageSource, open = () => { (new PSKViewer.PSKViewer()).Show(); }, tags = new List <string> { "utility", "mesh" }, subCategory = "Explorers", }); set.Add(new Tool { name = "ME1 Save Editor", type = typeof(ME1Explorer.SaveGameEditor.SaveEditor), icon = Application.Current.FindResource("iconSaveGameEditor") as ImageSource, open = () => { (new ME1Explorer.SaveGameEditor.SaveEditor()).Show(); }, tags = new List <string> { "utility" }, subCategory = "Saved Games", }); set.Add(new Tool { name = "ME1 Save Operator", type = typeof(ME1Explorer.SaveGameOperator.SaveGameOperator), icon = Application.Current.FindResource("iconSaveGameOperator") as ImageSource, open = () => { (new ME1Explorer.SaveGameOperator.SaveGameOperator()).Show(); }, tags = new List <string> { "utility" }, subCategory = "Saved Games", }); set.Add(new Tool { name = "Script Database", type = typeof(ScriptDB.ScriptDB), icon = Application.Current.FindResource("iconScriptDatabase") as ImageSource, open = () => { (new ScriptDB.ScriptDB()).Show(); }, tags = new List <string> { "utility" }, subCategory = "Databases", }); set.Add(new Tool { name = "Subtitle Scanner", type = typeof(SubtitleScanner.SubtitleScanner), icon = Application.Current.FindResource("iconSubtitleScanner") as ImageSource, open = () => { (new SubtitleScanner.SubtitleScanner()).Show(); }, tags = new List <string> { "utility", "dialogue", "text", "line" }, subCategory = "Explorers", description = "Subtitle Scanner is a utility for ME3 that scans game files for all subtitles and displays the results in a searchable dialog.", }); #endregion #region Create Mods set.Add(new Tool { name = "Coalesced Editor", type = typeof(MassEffect3.CoalesceTool.CoalescedEditor), icon = Application.Current.FindResource("iconCoalescedEditor") as ImageSource, open = () => { (new MassEffect3.CoalesceTool.CoalescedEditor()).Show(); }, tags = new List <string> { "developer", "coalesced", "ini", "bin" }, subCategory = "Core", description = "Coalesced Editor converts between xml and bin formats for ME3 Coalesced.bin files for the base game and DLC. These are key game files that help control a large amount of content.", }); set.Add(new Tool { name = "Conditionals Editor", type = typeof(Conditionals), icon = Application.Current.FindResource("iconConditionalsEditor") as ImageSource, open = () => { (new Conditionals()).Show(); }, tags = new List <string> { "developer", "conditional", "plot", "boolean", "flag", "int", "integer", "cnd" }, subCategory = "Core", description = "Conditionals Editor is used to create and edit ME3 files with the .cnd extension. CND files control game story by checking for specific combinations of plot events.", }); set.Add(new Tool { name = "Dialogue Editor", type = typeof(DialogEditor.DialogEditor), icon = Application.Current.FindResource("iconDialogueEditor") as ImageSource, open = () => { string result = InputComboBox.GetValue("Which game's files do you want to edit?", new string[] { "ME3", "ME2", "ME1" }, "ME3", true); switch (result) { case "ME3": (new DialogEditor.DialogEditor()).Show(); break; case "ME2": (new ME2Explorer.DialogEditor()).Show(); break; case "ME1": (new ME1Explorer.DialogEditor()).Show(); break; } }, tags = new List <string> { "developer", "me1", "me2", "me3", "cutscene" }, subCategory = "Scene Shop", description = "Dialogue Editor is a cross-game tool used to edit Bioconversation objects, which control the flow of dialogue during a conversation.", }); set.Add(new Tool { name = "ME2 Dialogue Editor", type = typeof(ME2Explorer.DialogEditor), icon = Application.Current.FindResource("iconDialogueEditor") as ImageSource, tags = new List <string>(), }); set.Add(new Tool { name = "ME3 Dialogue Editor", type = typeof(ME1Explorer.DialogEditor), icon = Application.Current.FindResource("iconDialogueEditor") as ImageSource, tags = new List <string>(), }); set.Add(new Tool { name = "FaceFX Editor", type = typeof(FaceFX.FaceFXEditor), icon = Application.Current.FindResource("iconFaceFXEditor") as ImageSource, open = () => { (new FaceFX.FaceFXEditor()).Show(); }, tags = new List <string> { "developer", "fxa", "facefx", "lipsync", "fxe", "bones", "animation", "me3", "me3" }, subCategory = "Scene Shop", description = "FaceFX Editor is the toolset’s highly-simplified version of FaceFX Studio. With this tool modders can edit ME3 and ME2 FaceFX AnimSets (FXEs).", }); set.Add(new Tool { name = "FaceFXAnimSet Editor", type = typeof(FaceFX.FaceFXAnimSetEditor), icon = Application.Current.FindResource("iconFaceFXAnimSetEditor") as ImageSource, open = () => { (new FaceFX.FaceFXAnimSetEditor()).Show(); //string result = InputComboBox.GetValue("Which game's files do you want to edit?", new string[] { "ME3", "ME2" }, "ME3", true); //switch (result) //{ // case "ME3": // (new FaceFX.FaceFXAnimSetEditor()).Show(); // break; // case "ME2": // (new ME2Explorer.FaceFXAnimSetEditor()).Show(); // break; //} }, tags = new List <string> { "developer", "fxa", "facefx", "lipsync", "fxe", "bones", "animation" }, subCategory = "Scene Shop", description = "FaceFXAnimSetEditor is the original tool for manipulating FaceFXAnimsets. It will soon be completely replaced by the more complete FaceFX Editor.", }); set.Add(new Tool { name = "GUID Cache Editor", type = typeof(GUIDCacheEditor.GUIDCacheEditor), icon = Application.Current.FindResource("iconGUIDCacheEditor") as ImageSource, open = () => { (new GUIDCacheEditor.GUIDCacheEditor()).Show(); }, tags = new List <string> { "developer" }, subCategory = "Other", }); set.Add(new Tool { name = "Interpreter", type = typeof(InterpreterHost), icon = Application.Current.FindResource("iconInterpreter") as ImageSource, tags = new List <string>(), subCategory = "Other", }); set.Add(new Tool { name = "Curve Editor", type = typeof(CurveEd.CurveEditor), icon = Application.Current.FindResource("iconPlaceholder") as ImageSource, tags = new List <string>(), subCategory = "Other", }); set.Add(new Tool { name = "Level Explorer", type = typeof(LevelExplorer.LevelEditor.Leveleditor), icon = Application.Current.FindResource("iconLevelEditor") as ImageSource, open = () => { (new LevelExplorer.LevelEditor.Leveleditor()).Show(); }, tags = new List <string> { "developer" }, subCategory = "Other", }); set.Add(new Tool { name = "ME3 Creator", type = typeof(ME3Creator.Form1), icon = Application.Current.FindResource("iconME3Creator") as ImageSource, open = () => { string loc = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); if (File.Exists(loc + "\\ME3Creator.exe")) { Process.Start(loc + "\\ME3Creator.exe"); } }, tags = new List <string> { "developer", "advanced", "cloning", "import", "export" }, subCategory = "Core", description = "ME3Creator is the toolset’s most advanced modding tool for ME3. It allows for level viewing, intrafile and interfile import and export cloning, re-linking of game objects, and much more.", }); set.Add(new Tool { name = "Meshplorer 2", type = typeof(Meshplorer2.Meshplorer2), icon = Application.Current.FindResource("iconMeshplorer2") as ImageSource, open = () => { (new Meshplorer2.Meshplorer2()).Show(); }, tags = new List <string> { "utility", "mesh" }, subCategory = "Explorers", }); set.Add(new Tool { name = "Package Editor", type = typeof(PackageEditor), icon = Application.Current.FindResource("iconPackageEditor") as ImageSource, open = () => { PackageEditor pck = new PackageEditor(); pck.Show(); pck.LoadMostRecent(); }, tags = new List <string> { "developer", "pcc", "cloning", "import", "export", "sfm", "upk", ".u", "me2", "me1", "me3" }, subCategory = "Core", description = "Package Editor is the toolset’s main tool for editing trilogy package files in various formats (PCC, UPK, SFM). Properties, arrays, names, curve data, and more can all be easily added and edited." }); set.Add(new Tool { name = "Plot Editor", type = typeof(MassEffect.NativesEditor.Views.ShellView), icon = Application.Current.FindResource("iconPlotEditor") as ImageSource, open = () => { var shellView = new MassEffect.NativesEditor.Views.ShellView(); shellView.Show(); }, tags = new List <string> { "developer", "codex", "state transition", "quest", "natives" }, subCategory = "Core", }); set.Add(new Tool { name = "Sequence Editor", type = typeof(SequenceEditor), icon = Application.Current.FindResource("iconSequenceEditor") as ImageSource, open = () => { (new SequenceEditor()).Show(); }, tags = new List <string> { "developer", "kismet", "me1", "me2", "me3" }, subCategory = "Core", description = "Sequence Editor is the toolset’s version of UDK’s UnrealKismet. With this cross-game tool, users can edit and create new sequences that control gameflow within and across levels.", }); set.Add(new Tool { name = "SFAR Basic Editor", type = typeof(SFARBasicEditor), icon = Application.Current.FindResource("iconSFARBasicEditor") as ImageSource, open = () => { (new SFARBasicEditor()).Show(); }, tags = new List <string> { "developer", "dlc" }, subCategory = "SFARS", description = "SFAR Basic Editor loads ME3 DLC SFARs, allowing for exploration and basic edits within a relatively user-friendly GUI.", }); set.Add(new Tool { name = "SFAR Editor 2", type = typeof(SFAREditor2), icon = Application.Current.FindResource("iconSFAREditor2") as ImageSource, open = () => { (new SFAREditor2()).Show(); }, tags = new List <string> { "developer", "dlc" }, subCategory = "SFARS", description = "SFAR Editor 2 is an advanced SFAR exploration and editing tool for ME3. It displays technical data absent from the Basic Editor and contains searching and unpack features.", }); set.Add(new Tool { name = "Soundplorer", type = typeof(Soundplorer), icon = Application.Current.FindResource("iconSoundplorer") as ImageSource, open = () => { (new Soundplorer()).Show(); }, tags = new List <string> { "developer", "audio", "dialogue", "music", "wav", "ogg", "sound" }, subCategory = "Scene Shop", description = "Soundplorer provides access to all Wwisestream and Wwisebank objects inside an ME3 PCC. Sounds can be played within the tool, exported, and changed via import.", }); set.Add(new Tool { name = "Texplorer", type = typeof(Texplorer2), icon = Application.Current.FindResource("iconTexplorer") as ImageSource, open = () => { (new Texplorer2()).Show(); }, tags = new List <string> { "user", "developer", "texture", "tfc", "scan", "tree" }, subCategory = "Meshes + Textures", description = "For users and modders alike, Texplorer is the toolset's primary texture tool for the trilogy. Textures are organized into a package tree, and each is displayed with its associated data. Textures can be searched, extracted/replaced, and exported into TPF Tools." }); set.Add(new Tool { name = "ME3 + ME2 TLK Editor", type = typeof(TLKEditor), icon = Application.Current.FindResource("iconTLKEditor") as ImageSource, open = () => { (new TLKEditor()).Show(); }, tags = new List <string> { "developer", "dialogue", "subtitle", "text" }, subCategory = "Scene Shop", description = "TLK Editor converts between XML and TLK formats, allowing users to edit the display of all game text in ME2 and ME3. Edits to the XML files themselves must be done in an external editor, such as Notepad++.", }); set.Add(new Tool { name = "ME1 TLK Editor", type = typeof(TlkManager), icon = Application.Current.FindResource("iconTLKEditor") as ImageSource, open = () => { (new ME1Explorer.TlkManager(true)).Show(); }, tags = new List <string> { "developer", "dialogue", "subtitle", "text" }, subCategory = "Scene Shop", description = "ME1 TLK Editor extracts tlk files from ME1 packages and converts them into xml, allowing users to edit the display of all game text. Edits to the XML files themselves must be done in an external editor, such as Notepad++.", }); set.Add(new Tool { name = "WwiseBank Editor", type = typeof(WwiseBankEditor.WwiseEditor), icon = Application.Current.FindResource("iconWwiseBankEditor") as ImageSource, open = () => { (new WwiseBankEditor.WwiseEditor()).Show(); }, tags = new List <string> { "developer", "dialogue", "text", "line" }, subCategory = "Scene Shop", description = "Wwisebank Editor edits ME3 Wwisebank objects, which contain data references to specific sets of Wwiseevents and Wwisestreams in the PCC. \n\nEditing “the bank” is often necessary when changing game music or when adding new dialogue.", }); set.Add(new Tool { name = "UDK Explorer", type = typeof(UDKExplorer.MainWindow), icon = Application.Current.FindResource("iconUDKExplorer") as ImageSource, open = () => { string loc = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); if (File.Exists(loc + "\\UDKExplorer.exe")) { Process.Start(loc + "\\UDKExplorer.exe"); } }, tags = new List <string> { "developer" }, subCategory = "Other", description = "Edits .udk and .upk files created by the UDK." }); #endregion items = set; loadFavorites(); }