mirror of
https://github.com/xivdev/Penumbra.git
synced 2026-02-21 07:17:53 +01:00
Multiple advanced editors
This commit is contained in:
parent
3f48cd6910
commit
c24796a9d8
31 changed files with 293 additions and 68 deletions
|
|
@ -4,7 +4,7 @@ using Penumbra.GameData.Files;
|
|||
|
||||
namespace Penumbra.Mods.Editor;
|
||||
|
||||
public partial class MdlMaterialEditor(ModFileCollection files) : Luna.IService
|
||||
public partial class MdlMaterialEditor(ModFileCollection files)
|
||||
{
|
||||
[GeneratedRegex(@"/mt_c(?'RaceCode'\d{4})b0001_(?'Suffix'.*?)\.mtrl", RegexOptions.ExplicitCapture | RegexOptions.NonBacktracking)]
|
||||
private static partial Regex MaterialRegex();
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public class ModEditor(
|
|||
ModSwapEditor swapEditor,
|
||||
MdlMaterialEditor mdlMaterialEditor,
|
||||
FileCompactor compactor)
|
||||
: IDisposable, Luna.IService
|
||||
: IDisposable
|
||||
{
|
||||
public readonly ModNormalizer ModNormalizer = modNormalizer;
|
||||
public readonly ModMetaEditor MetaEditor = metaEditor;
|
||||
|
|
|
|||
28
Penumbra/Mods/Editor/ModEditorFactory.cs
Normal file
28
Penumbra/Mods/Editor/ModEditorFactory.cs
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
using Luna;
|
||||
using Penumbra.Meta;
|
||||
using Penumbra.Mods.Manager;
|
||||
using Penumbra.Mods.Manager.OptionEditor;
|
||||
using Penumbra.Services;
|
||||
|
||||
namespace Penumbra.Mods.Editor;
|
||||
|
||||
public class ModEditorFactory(
|
||||
ModNormalizer modNormalizer,
|
||||
ModGroupEditor groupEditor,
|
||||
MetaFileManager metaFileManager,
|
||||
ModManager modManager,
|
||||
CommunicatorService communicator,
|
||||
DuplicateManager duplicates,
|
||||
FileCompactor compactor) : IService
|
||||
{
|
||||
public ModEditor Create()
|
||||
{
|
||||
var metaEditor = new ModMetaEditor(groupEditor, metaFileManager);
|
||||
var files = new ModFileCollection();
|
||||
var fileEditor = new ModFileEditor(files, modManager, communicator);
|
||||
var swapEditor = new ModSwapEditor(modManager);
|
||||
var mdlMaterialEditor = new MdlMaterialEditor(files);
|
||||
|
||||
return new(modNormalizer, metaEditor, files, fileEditor, duplicates, swapEditor, mdlMaterialEditor, compactor);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@ using Penumbra.String.Classes;
|
|||
|
||||
namespace Penumbra.Mods.Editor;
|
||||
|
||||
public class ModFileCollection : IDisposable, Luna.IService
|
||||
public class ModFileCollection : IDisposable
|
||||
{
|
||||
private readonly List<FileRegistry> _available = [];
|
||||
private readonly List<FileRegistry> _mtrl = [];
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ using Penumbra.String.Classes;
|
|||
|
||||
namespace Penumbra.Mods.Editor;
|
||||
|
||||
public class ModFileEditor(ModFileCollection files, ModManager modManager, CommunicatorService communicator) : Luna.IService
|
||||
public class ModFileEditor(ModFileCollection files, ModManager modManager, CommunicatorService communicator)
|
||||
{
|
||||
public bool Changes { get; private set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace Penumbra.Mods.Editor;
|
|||
|
||||
public class ModMetaEditor(
|
||||
ModGroupEditor groupEditor,
|
||||
MetaFileManager metaFileManager) : MetaDictionary, IService
|
||||
MetaFileManager metaFileManager) : MetaDictionary
|
||||
{
|
||||
public sealed class OtherOptionData : HashSet<string>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ using Penumbra.Mods.SubMods;
|
|||
using Penumbra.String.Classes;
|
||||
using Penumbra.Util;
|
||||
|
||||
public class ModSwapEditor(ModManager modManager) : Luna.IService
|
||||
public class ModSwapEditor(ModManager modManager)
|
||||
{
|
||||
private readonly Dictionary<Utf8GamePath, FullPath> _swaps = [];
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,13 @@ using Penumbra.Services;
|
|||
|
||||
namespace Penumbra.Mods.Manager;
|
||||
|
||||
public class ModImportManager(ModManager modManager, Configuration config, ModEditor modEditor, MigrationManager migrationManager) : IDisposable, Luna.IService
|
||||
public class ModImportManager(
|
||||
ModManager modManager,
|
||||
Configuration config,
|
||||
DuplicateManager duplicates,
|
||||
ModNormalizer modNormalizer,
|
||||
MigrationManager migrationManager,
|
||||
FileCompactor compactor) : IDisposable, Luna.IService
|
||||
{
|
||||
private readonly ConcurrentQueue<string[]> _modsToUnpack = new();
|
||||
|
||||
|
|
@ -42,7 +48,8 @@ public class ModImportManager(ModManager modManager, Configuration config, ModEd
|
|||
if (files.Length == 0)
|
||||
return;
|
||||
|
||||
_import = new TexToolsImporter(files.Length, files, AddNewMod, config, modEditor, modManager, modEditor.Compactor, migrationManager);
|
||||
_import = new TexToolsImporter(files.Length, files, AddNewMod, config, duplicates, modNormalizer, modManager, compactor,
|
||||
migrationManager);
|
||||
}
|
||||
|
||||
public bool Importing
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue