Beispiel #1
0
        private void OnSubeditorChanged(IEntryEditor <IDbImage> subeditor)
        {
            Panel.Controls.Clear();

            if (subeditor == null)
            {
                return;
            }

            if (subeditor is ImageFromFileEditorVM)
            {
                var control = new ImageFromFileEditorCtrl();
                control.Initialize((ImageFromFileEditorVM)vm.Subeditor);
                control.Dock = DockStyle.Fill;
                Panel.Controls.Add(control);
            }
        }
Beispiel #2
0
        private void OnSubeditorChanged(IEntryEditor <IDbActionSet> subeditor)
        {
            Controls.Clear();

            if (subeditor == null)
            {
                return;
            }

            if (subeditor is ActionSetEmbeddedEditorVM)
            {
                var control = new ActionSetEmbeddedEditorCtrl();
                control.Initialize((ActionSetEmbeddedEditorVM)subeditor);
                control.Dock = DockStyle.Fill;
                Controls.Add(control);
            }
        }
Beispiel #3
0
        private void OnSubeditorChanged(IEntryEditor <IDbEntityTemplate> subeditor)
        {
            Controls.Clear();

            if (subeditor == null)
            {
                return;
            }

            if (subeditor is EntityTemplateFromFileEditorVM)
            {
                var control = new EntityTemplateFromFileCtrl();
                control.Initialize((EntityTemplateFromFileEditorVM)subeditor);
                control.Dock = DockStyle.Fill;
                Controls.Add(control);
            }
        }
Beispiel #4
0
        private void OnSubeditorChanged(IEntryEditor <IDbTileAtlas> subeditor)
        {
            Panel.Controls.Clear();

            if (subeditor == null)
            {
                return;
            }

            if (subeditor is TileSetFromBlkEditorVM)
            {
                var control = new TileSetFromBlkEditorCtrl();
                control.Initialize((TileSetFromBlkEditorVM)_vm.Subeditor);
                control.Dock = DockStyle.Fill;
                Panel.Controls.Add(control);
            }
        }
Beispiel #5
0
        private void OnSubeditorChanged(IEntryEditor <IDbScript> subeditor)
        {
            Controls.Clear();

            if (subeditor == null)
            {
                return;
            }

            if (subeditor is ScriptEmbeddedEditorVM)
            {
                var control = new ScriptEmbeddedCtrl();
                control.Initialize((ScriptEmbeddedEditorVM)subeditor);
                control.Dock = DockStyle.Fill;
                Controls.Add(control);
            }
            else if (subeditor is ScriptFromFileEditorVM)
            {
                var control = new ScriptFromFileCtrl();
                control.Initialize((ScriptFromFileEditorVM)subeditor);
                control.Dock = DockStyle.Fill;
                Controls.Add(control);
            }
        }
Beispiel #6
0
        private void OnSubeditorChanged(IEntryEditor <IDbText> subeditor)
        {
            Controls.Clear();

            if (subeditor == null)
            {
                return;
            }

            if (subeditor is TextEmbeddedEditorVM)
            {
                var control = new TextEmbeddedEditorCtrl();
                control.Initialize((TextEmbeddedEditorVM)subeditor);
                control.Dock = DockStyle.Fill;
                Controls.Add(control);
            }
            else if (subeditor is TextFromMapEditorVM)
            {
                var control = new TextFromMapEditorCtrl();
                control.Initialize((TextFromMapEditorVM)subeditor);
                control.Dock = DockStyle.Fill;
                Controls.Add(control);
            }
        }
Beispiel #7
0
        private void OnSubeditorChanged(IEntryEditor <IDbSpriteAtlas> subeditor)
        {
            Panel.Controls.Clear();

            if (subeditor == null)
            {
                return;
            }

            if (subeditor is SpriteSetFromSprEditorVM)
            {
                var control = new SpriteSetFromSprEditorCtrl();
                control.Initialize((SpriteSetFromSprEditorVM)_vm.Subeditor);
                control.Dock = DockStyle.Fill;
                Panel.Controls.Add(control);
            }
            else if (subeditor is SpriteSetFromImageEditorVM)
            {
                var control = new SpriteSetFromImageEditorCtrl();
                control.Initialize((SpriteSetFromImageEditorVM)_vm.Subeditor);
                control.Dock = DockStyle.Fill;
                Panel.Controls.Add(control);
            }
        }
Beispiel #8
0
        private void OnSubeditorChanged(IEntryEditor <IDbDataSource> subeditor)
        {
            Controls.Clear();

            if (subeditor == null)
            {
                return;
            }

            if (subeditor is EpfArchiveFileDataSourceEditorVM)
            {
                var control = new EpfArchiveDataSourceCtrl();
                control.Initialize((EpfArchiveFileDataSourceEditorVM)subeditor);
                control.Dock = DockStyle.Fill;
                Controls.Add(control);
            }
            else if (subeditor is FileDataSourceEditorVM)
            {
                var control = new FileDataSourceCtrl();
                control.Initialize((FileDataSourceEditorVM)subeditor);
                control.Dock = DockStyle.Fill;
                Controls.Add(control);
            }
        }
Beispiel #9
0
        private void OnSubeditorChanged(IEntryEditor <IDbPalette> subeditor)
        {
            Controls.Clear();

            if (subeditor == null)
            {
                return;
            }

            if (subeditor is PaletteFromBinaryEditorVM)
            {
                var control = new PaletteFromBinaryCtrl();
                control.Initialize((PaletteFromBinaryEditorVM)subeditor);
                control.Dock = DockStyle.Fill;
                Controls.Add(control);
            }
            else if (subeditor is PaletteFromMapEditorVM)
            {
                var control = new PaletteFromMapCtrl();
                control.Initialize((PaletteFromMapEditorVM)subeditor);
                control.Dock = DockStyle.Fill;
                Controls.Add(control);
            }
        }
        public void EditEntry(int index, bool forceHex = false)
        {
            BundleEntry entry = GetEntry(index);

            if (EntryTypeRegistry.IsRegistered(entry.Type) && !forceHex)
            {
                IEntryData data = EntryTypeRegistry.GetHandler(entry.Type);

                TextureCache.ResetCache();
                LoadingDialog loader = new LoadingDialog();
                loader.Status = "Loading: " + entry.ID.ToString("X8");

                Thread loadInstanceThread = null;
                bool   failure            = false;

                loader.Done += (cancelled, value) =>
                {
                    if (cancelled)
                    {
                        loadInstanceThread?.Abort();
                    }
                    else
                    {
                        if (failure)
                        {
                            MessageBox.Show(this, "Failed to load Entry", "Error", MessageBoxButtons.OK,
                                            MessageBoxIcon.Error);
                        }
                        else
                        {
                            loader.Hide();

                            IEntryEditor editor = data.GetEditor(entry);
                            if (editor != null)
                            {
                                editor.ShowDialog(this);
                            }
                            else
                            {
                                DebugUtil.ShowDebug(this, data);
                            }
                            if (ForceOnlySpecificEntry)
                            {
                                Environment.Exit(0);
                            }
                        }
                    }
                    TextureCache.ResetCache();
                };

                loadInstanceThread = new Thread(() =>
                {
                    try
                    {
                        try
                        {
                            failure = !data.Read(entry, loader);
                        }
                        catch (ReadFailedError ex)
                        {
                            MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            failure = true;

                            throw;
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Failed to load Entry", "Error", MessageBoxButtons.OK,
                                        MessageBoxIcon.Error);
                        failure = true;
                    }
                    loader.IsDone = true;
                });
                loadInstanceThread.Start();
                loader.ShowDialog(this);
            }
            else
            {
                EntryEditor editor = new EntryEditor();
                editor.ForceHex = forceHex;
                Task.Run(() => openEditor(editor, index));
                editor.ShowDialog(this);
            }
        }