Penumbra/Penumbra/UI/AdvancedWindow/ModEditWindowFactory.cs
Ottermandias fec7819bf2
Some checks failed
.NET Build / build (push) Has been cancelled
Current State.
2025-12-05 16:23:14 +01:00

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);
}
}