public BotwActorLoader() { editor = new ObjectEditor(); editor.Text = "Actor Editor BOTW"; LibraryGUI.CreateMdiWindow(editor); editor.SortTreeAscending(); LoadActors(); }
private void CreateNewLittleEndianSarc(object sender, EventArgs e) { SARC sarc = new SARC(); sarc.IFileInfo = new IFileInfo(); sarc.FileName = "NewArchive.szs"; CreateNewSARC(sarc, false); ObjectEditor editor = new ObjectEditor(sarc); editor.Text = "NewArchive.szs"; LibraryGUI.CreateMdiWindow(editor); }
public void CreateNew(object sender, EventArgs args) { BFLIM bflim = CreateNewFromImage(); if (bflim == null) { return; } var form = new GenericEditorForm(false, bflim.OpenForm()); LibraryGUI.CreateMdiWindow(form); bflim.UpdateForm(); }
public override void OnDoubleMouseClick(TreeView treeview) { string filePath = GetFilePath(); if (!romfs.FileDict.ContainsKey($"/{filePath}")) { return; } var text = treeview.SelectedNode.Text; var file = romfs.FileDict[$"/{filePath}"]; var stream = romfs.OpenFile(file).AsStream(); object fileFormat = STFileLoader.OpenFileFormat(stream, text, false, true); if (fileFormat == null) { return; } Type objectType = fileFormat.GetType(); bool HasEditorActive = false; foreach (var inter in objectType.GetInterfaces()) { if (inter.IsGenericType && inter.GetGenericTypeDefinition() == typeof(IEditor <>)) { MethodInfo method = objectType.GetMethod("OpenForm"); var form = (STForm)method.Invoke(fileFormat, new object[0]); form.Text = text; LibraryGUI.CreateMdiWindow(form, true); HasEditorActive = true; } } if (HasEditorActive) { return; } //ObjectEditor is for treenode types. Editors will be on the right side, treenodes on the left ObjectEditor editor = new ObjectEditor((IFileFormat)fileFormat); editor.Text = text; LibraryGUI.CreateMdiWindow(editor, true); }
public void CreateNew(object sender, EventArgs args) { var ByteOrder = Syroot.BinaryData.ByteOrder.LittleEndian; if (sender.ToString() == "KCL (Wii U)") { ByteOrder = Syroot.BinaryData.ByteOrder.BigEndian; } OpenFileDialog opn = new OpenFileDialog(); opn.Filter = "Supported Formats|*.obj"; if (opn.ShowDialog() != DialogResult.OK) { return; } var mod = EditorCore.Common.OBJ.Read(new MemoryStream(File.ReadAllBytes(opn.FileName)), null); var f = MarioKart.MK7.KCL.FromOBJ(mod); string name = System.IO.Path.GetFileNameWithoutExtension(opn.FileName); KCL kcl = new KCL(); kcl.Text = name; kcl.IFileInfo = new IFileInfo(); kcl.FileName = name; kcl.Renderer = new KCLRendering(); kcl.DrawableContainer = new DrawableContainer() { Name = kcl.FileName, Drawables = new List <AbstractGlDrawable>() { kcl.Renderer }, }; kcl.Read(f.Write(ByteOrder)); ObjectEditor editor = new ObjectEditor(kcl); editor.Text = name; LibraryGUI.CreateMdiWindow(editor); }
private void PokemonLoaderSwSh(object sender, EventArgs args) { if (!System.IO.Directory.Exists(Runtime.PkSwShGamePath)) { var result = MessageBox.Show("Please set your Pokemon Sword/Shield game path!"); if (result == DialogResult.OK) { FolderSelectDialog ofd = new FolderSelectDialog(); if (ofd.ShowDialog() == DialogResult.OK) { Runtime.PkSwShGamePath = ofd.SelectedPath; Config.Save(); } } } PokemonLoaderSwShForm form = new PokemonLoaderSwShForm(); if (form.ShowDialog() == DialogResult.OK) { if (form.SelectedPokemon != string.Empty) { string path = $"{Runtime.PkSwShGamePath}/bin/archive/pokemon/{form.SelectedPokemon}"; if (System.IO.File.Exists(path)) { var file = STFileLoader.OpenFileFormat(path); var currentForm = Runtime.MainForm.ActiveMdiChild; if (currentForm != null && currentForm is ObjectEditor && Runtime.AddFilesToActiveObjectEditor) { ObjectEditor editor = currentForm as ObjectEditor; editor.AddIArchiveFile(file); } else { ObjectEditor editor = new ObjectEditor(); editor.AddIArchiveFile(file); LibraryGUI.CreateMdiWindow(editor); } } } } }
public static void LoadStage(string MapName) { string StageByml = $"{Runtime.SmoGamePath}\\StageData\\{MapName}Map.szs"; Console.WriteLine($"{StageByml} {File.Exists($"{StageByml}")}"); if (File.Exists($"{StageByml}")) { var TextureSzs = $"{Runtime.SmoGamePath}\\ObjectData\\{MapName}Texture.szs"; ObjectEditor editor = new ObjectEditor(); LibraryGUI.CreateMdiWindow(editor); var level = new Level(StageByml, -1); foreach (var obj in level.objs) { foreach (var ob in obj.Value) { var Transform = Utils.TransformValues(ob.transform.Pos, ob.transform.Rot, ob.transform.Scale); var bfresData = BfresFromSzs(ob.Name); if (bfresData != null) { BFRES bfresFile = (BFRES)STFileLoader.OpenFileFormat(ob.Name, bfresData); bfresFile.BFRESRender.ModelTransform = Transform; editor.AddNode(bfresFile); bfresFile.LoadEditors(null); DiableLoadCheck(); } } } TextureSzs = null; GC.Collect(); } BfresEditor bfresEditor = (BfresEditor)LibraryGUI.GetActiveContent(typeof(BfresEditor)); bfresEditor.DisplayAll = true; }
public void CreateNew(object sender, EventArgs args) { BFLIM bflim = new BFLIM(); bflim.CanSave = true; bflim.IFileInfo = new IFileInfo(); bflim.header = new Header(); OpenFileDialog ofd = new OpenFileDialog(); ofd.Multiselect = false; ofd.Filter = FileFilters.GTX; if (ofd.ShowDialog() != DialogResult.OK) { return; } FTEX ftex = new FTEX(); ftex.ReplaceTexture(ofd.FileName, TEX_FORMAT.BC3_UNORM_SRGB, 1, 0, bflim.SupportedFormats, false, true, false); if (ftex.texture != null) { bflim.Text = ftex.texture.Name; bflim.image = new Image(); bflim.image.Swizzle = (byte)ftex.texture.Swizzle; bflim.image.BflimFormat = FormatsWiiU.FirstOrDefault(x => x.Value == ftex.Format).Key; bflim.image.Height = (ushort)ftex.texture.Height; bflim.image.Width = (ushort)ftex.texture.Width; bflim.Format = FormatsWiiU[bflim.image.BflimFormat]; bflim.Width = bflim.image.Width; bflim.Height = bflim.image.Height; bflim.ImageData = ftex.texture.Data; var form = new GenericEditorForm(false, bflim.OpenForm()); LibraryGUI.CreateMdiWindow(form); bflim.UpdateForm(); } }
public void LoadCostume(string fileName) { List <BFRES> bfresFiles = new List <BFRES>(); var FileFormat = STFileLoader.OpenFileFormat(fileName); if (FileFormat is SARC) { foreach (var file in ((SARC)FileFormat).Files) { string ext = System.IO.Path.GetExtension(file.FileName); if (ext == ".bfres") { bfresFiles.Add((BFRES)STFileLoader.OpenFileFormat(new System.IO.MemoryStream(file.FileData), file.FileName)); } } } if (FileFormat is BFRES) { bfresFiles.Add((BFRES)FileFormat); } if (editor == null) { editor = new ObjectEditor(); LibraryGUI.CreateMdiWindow(editor); } if (MainCostume == null && bfresFiles.Count > 0) { MainCostume = bfresFiles[0]; } foreach (var bfres in bfresFiles) { editor.AddNode(bfres); bfres.LoadEditors(null); DiableLoadCheck(); } }
public void CreateNew(object sender, EventArgs args) { bool isBigEndian = false; if (sender.ToString() == "KCL (Wii U)") { isBigEndian = true; } OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Supported Formats|*.obj"; if (ofd.ShowDialog() != DialogResult.OK) { return; } string path = Path.Combine(Runtime.ExecutableDir, "KclMaterialPresets"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } CollisionPresetData.LoadPresets(Directory.GetFiles("KclMaterialPresets")); var form = Runtime.MainForm; var thread = new Thread(() => { //Load runtime values to gui handler MaterialWindowSettings.GamePreset = Runtime.CollisionSettings.KCLGamePreset; MaterialWindowSettings.Platform = Runtime.CollisionSettings.KCLGamePreset; MaterialWindowSettings.UsePresetEditor = Runtime.CollisionSettings.KCLUsePresetEditor; var result = CollisionLoader.CreateCollisionFromObject(form, ofd.FileName); CollisionLoader.CloseConsole(form); if (result.KclFie == null) { return; } SaveMaterialWindowSettings(); form.Invoke((MethodInvoker) delegate { string name = Path.GetFileNameWithoutExtension(ofd.FileName); KCL kcl = new KCL(); kcl.KclFile = result.KclFie; if (result.AttributeFile is MaterialAttributeBymlFile) { kcl.AttributeByml = ((MaterialAttributeBymlFile)result.AttributeFile).BymlFile; } kcl.Text = name; kcl.IFileInfo = new IFileInfo(); kcl.FileName = name; kcl.Renderer = new KCLRendering(); kcl.ReloadData(); kcl.DrawableContainer = new DrawableContainer() { Name = kcl.FileName, Drawables = new List <AbstractGlDrawable>() { kcl.Renderer }, }; ObjectEditor editor = new ObjectEditor(kcl); editor.Text = name; LibraryGUI.CreateMdiWindow(editor); }); }); thread.Start(); }