Ejemplo n.º 1
0
        public BotwActorLoader()
        {
            editor      = new ObjectEditor();
            editor.Text = "Actor Editor BOTW";
            LibraryGUI.CreateMdiWindow(editor);
            editor.SortTreeAscending();

            LoadActors();
        }
Ejemplo n.º 2
0
            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);
            }
Ejemplo n.º 3
0
            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();
            }
Ejemplo n.º 4
0
            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);
            }
Ejemplo n.º 5
0
            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);
            }
Ejemplo n.º 6
0
            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);
                            }
                        }
                    }
                }
            }
Ejemplo n.º 7
0
        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;
        }
Ejemplo n.º 8
0
            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();
                }
            }
Ejemplo n.º 9
0
            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();
                }
            }
Ejemplo n.º 10
0
            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();
            }