mirror of
https://github.com/xivdev/Penumbra.git
synced 2026-02-20 06:47:46 +01:00
78 lines
2.9 KiB
C#
78 lines
2.9 KiB
C#
using Dalamud.Interface.DragDrop;
|
|
using Dalamud.Plugin.Services;
|
|
using Luna;
|
|
using Penumbra.Collections.Manager;
|
|
using Penumbra.Import.Models;
|
|
using Penumbra.Import.Textures;
|
|
using Penumbra.Interop.ResourceTree;
|
|
using Penumbra.Meta;
|
|
using Penumbra.Mods;
|
|
using Penumbra.Mods.Editor;
|
|
using Penumbra.Services;
|
|
using Penumbra.UI.AdvancedWindow.Materials;
|
|
using Penumbra.UI.AdvancedWindow.Meta;
|
|
using Penumbra.UI.Classes;
|
|
|
|
namespace Penumbra.UI.AdvancedWindow;
|
|
|
|
public class ModEditWindowFactory(
|
|
FileDialogService fileDialog,
|
|
ItemSwapTabFactory itemSwapTabFactory,
|
|
IDataManager gameData,
|
|
Configuration config,
|
|
ModEditorFactory editorFactory,
|
|
ResourceTreeFactory resourceTreeFactory,
|
|
MetaFileManager metaFileManager,
|
|
ActiveCollections activeCollections,
|
|
ModMergeTab modMergeTab,
|
|
CommunicatorService communicator,
|
|
TextureManager textures,
|
|
ModelManager models,
|
|
IDragDropManager dragDropManager,
|
|
ResourceTreeViewerFactory resourceTreeViewerFactory,
|
|
IFramework framework,
|
|
WindowSystem windowSystem,
|
|
Logger log,
|
|
MtrlTabFactory mtrlTabFactory) : WindowFactory<ModEditWindow>(log, windowSystem), IUiService
|
|
{
|
|
protected override ModEditWindow CreateWindow(int index)
|
|
{
|
|
var editor = editorFactory.Create();
|
|
return new ModEditWindow(fileDialog, itemSwapTabFactory.Create(), gameData, config, editor, resourceTreeFactory, metaFileManager,
|
|
activeCollections, modMergeTab, communicator, textures, models, dragDropManager, resourceTreeViewerFactory, framework,
|
|
CreateMetaDrawers(editor.MetaEditor), mtrlTabFactory, index);
|
|
}
|
|
|
|
private MetaDrawers CreateMetaDrawers(ModMetaEditor metaEditor)
|
|
{
|
|
var eqdp = new EqdpMetaDrawer(metaEditor, metaFileManager);
|
|
var eqp = new EqpMetaDrawer(metaEditor, metaFileManager);
|
|
var est = new EstMetaDrawer(metaEditor, metaFileManager);
|
|
var globalEqp = new GlobalEqpMetaDrawer(metaEditor, metaFileManager);
|
|
var gmp = new GmpMetaDrawer(metaEditor, metaFileManager);
|
|
var imc = new ImcMetaDrawer(metaEditor, metaFileManager);
|
|
var rsp = new RspMetaDrawer(metaEditor, metaFileManager);
|
|
var atch = new AtchMetaDrawer(metaEditor, metaFileManager);
|
|
var shp = new ShpMetaDrawer(metaEditor, metaFileManager);
|
|
var atr = new AtrMetaDrawer(metaEditor, metaFileManager);
|
|
|
|
return new MetaDrawers(eqdp, eqp, est, globalEqp, gmp, imc, rsp, atch, shp, atr);
|
|
}
|
|
|
|
public void OpenForMod(Mod mod)
|
|
{
|
|
var window = Windows.FirstOrDefault(window => window.Mod == mod);
|
|
if (window is not null)
|
|
{
|
|
window.BringToFront();
|
|
return;
|
|
}
|
|
|
|
window = CreateWindowInternal();
|
|
if (window is null)
|
|
return;
|
|
|
|
window.ChangeMod(mod);
|
|
window.ChangeOption(mod.Default);
|
|
}
|
|
}
|