Skip to content

Commit 3067827

Browse files
committed
- Move Lumina Settings into the GameInfo object.
1 parent e3f3c33 commit 3067827

File tree

11 files changed

+84
-68
lines changed

11 files changed

+84
-68
lines changed

xivModdingFramework/Cache/XivCache.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,10 @@ public enum CacheRebuildReason
147147
/// <param name="gameDirectory"></param>
148148
/// <param name="language"></param>
149149
/// <param name="validateCache"></param>
150-
public static void SetGameInfo(DirectoryInfo gameDirectory = null, XivLanguage language = XivLanguage.None, int dxMode = 11, bool validateCache = true, bool enableCacheWorker = true)
150+
public static void SetGameInfo(DirectoryInfo gameDirectory = null, XivLanguage language = XivLanguage.None, int dxMode = 11, bool validateCache = true, bool enableCacheWorker = true,
151+
DirectoryInfo luminaDirectory = null, bool useLumina = false)
151152
{
152-
var gi = new GameInfo(gameDirectory, language, dxMode);
153+
var gi = new GameInfo(gameDirectory, language, dxMode, luminaDirectory, useLumina);
153154
SetGameInfo(gi, enableCacheWorker);
154155
}
155156
public static void SetGameInfo(GameInfo gameInfo = null, bool enableCacheWorker = true)

xivModdingFramework/General/CMP.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,12 @@ public static class CMP
3535
/// <param name="index"></param>
3636
/// <param name="modlist"></param>
3737
/// <returns></returns>
38-
internal static async Task ApplyRgspFile(string filePath, IndexFile index = null, ModList modlist = null, bool doLumina = false, DirectoryInfo luminaOutDir = null)
38+
internal static async Task ApplyRgspFile(string filePath, IndexFile index = null, ModList modlist = null)
3939
{
4040
var _dat = new Dat(XivCache.GameInfo.GameDirectory);
4141
var rgspData = await _dat.GetType2Data(filePath, false, index, modlist);
4242

43-
await ApplyRgspFile(rgspData, doLumina: doLumina, luminaOutDir: luminaOutDir);
43+
await ApplyRgspFile(rgspData);
4444
}
4545

4646
/// <summary>
@@ -50,11 +50,11 @@ internal static async Task ApplyRgspFile(string filePath, IndexFile index = null
5050
/// <param name="index"></param>
5151
/// <param name="modlist"></param>
5252
/// <returns></returns>
53-
internal static async Task ApplyRgspFile(byte[] data, IndexFile index = null, ModList modlist = null, bool doLumina = false, DirectoryInfo luminaOutDir = null)
53+
internal static async Task ApplyRgspFile(byte[] data, IndexFile index = null, ModList modlist = null)
5454
{
5555
var rgsp = new RacialGenderScalingParameter(data);
5656

57-
await SetScalingParameter(rgsp, index, modlist, doLumina, luminaOutDir);
57+
await SetScalingParameter(rgsp, index, modlist);
5858
}
5959

6060
/// <summary>
@@ -167,11 +167,11 @@ public static async Task<RacialGenderScalingParameter> GetScalingParameter(XivS
167167
/// <param name="index"></param>
168168
/// <param name="modlist"></param>
169169
/// <returns></returns>
170-
private static async Task SetScalingParameter(RacialGenderScalingParameter data, IndexFile index = null, ModList modlist = null, bool doLumina = false, DirectoryInfo luminaOutDir = null)
170+
private static async Task SetScalingParameter(RacialGenderScalingParameter data, IndexFile index = null, ModList modlist = null)
171171
{
172172
var cmp = await GetCharaMakeParameterSet(false, index, modlist);
173173
cmp.SetScalingParameter(data);
174-
await SaveCharaMakeParameterSet(cmp, index, modlist, doLumina, luminaOutDir);
174+
await SaveCharaMakeParameterSet(cmp, index, modlist);
175175
}
176176

177177
private static async Task<CharaMakeParameterSet> GetCharaMakeParameterSet(bool forceOriginal = false, IndexFile index = null, ModList modlist = null)
@@ -185,14 +185,14 @@ private static async Task<CharaMakeParameterSet> GetCharaMakeParameterSet(bool f
185185
return cmp;
186186
}
187187

188-
private static async Task SaveCharaMakeParameterSet(CharaMakeParameterSet cmp, IndexFile index = null, ModList modlist = null, bool doLumina = false, DirectoryInfo luminaOutDir = null)
188+
private static async Task SaveCharaMakeParameterSet(CharaMakeParameterSet cmp, IndexFile index = null, ModList modlist = null)
189189
{
190190
var _dat = new Dat(XivCache.GameInfo.GameDirectory);
191191
var dummyItem = new XivGenericItemModel();
192192
dummyItem.Name = "human.cmp";
193193
dummyItem.SecondaryCategory = Constants.InternalModSourceName;
194194

195-
await _dat.ImportType2Data(cmp.GetBytes(), HumanCmpPath, Constants.InternalModSourceName, dummyItem, index, modlist, doLumina, luminaOutDir);
195+
await _dat.ImportType2Data(cmp.GetBytes(), HumanCmpPath, Constants.InternalModSourceName, dummyItem, index, modlist);
196196
}
197197

198198
}

xivModdingFramework/General/GameInfo.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ public class GameInfo
2929
/// </summary>
3030
public DirectoryInfo GameDirectory { get; }
3131

32+
public DirectoryInfo LuminaDirectory { get; }
33+
34+
public bool UseLumina { get; }
35+
3236

3337
/// <summary>
3438
/// The current version of the game.
@@ -49,11 +53,13 @@ public class GameInfo
4953
/// </summary>
5054
/// <param name="gameDirectory">The directory in which the game is installed.</param>
5155
/// <param name="xivLanguage">The language to use when parsing the game data.</param>
52-
public GameInfo(DirectoryInfo gameDirectory, XivLanguage xivLanguage, int dxMode = 11)
56+
public GameInfo(DirectoryInfo gameDirectory, XivLanguage xivLanguage, int dxMode = 11, DirectoryInfo luminaDirectory = null, bool useLumina = false)
5357
{
5458
GameDirectory = gameDirectory;
5559
GameLanguage = xivLanguage;
5660
GameVersion = GetGameVersion();
61+
LuminaDirectory = luminaDirectory;
62+
UseLumina = useLumina;
5763
DxMode = dxMode;
5864

5965
if (!gameDirectory.FullName.Contains(Path.Combine("game", "sqpack", "ffxiv")))

xivModdingFramework/Materials/FileTypes/Mtrl.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -689,15 +689,15 @@ public void SaveColorSetExtraData(IItem item, XivMtrl xivMtrl, DirectoryInfo sav
689689
/// <param name="item">The item whos mtrl is being imported</param>
690690
/// <param name="source">The source/application that is writing to the dat.</param>
691691
/// <returns>The new offset</returns>
692-
public async Task<long> ImportMtrl(XivMtrl xivMtrl, IItem item, string source, IndexFile cachedIndexFile = null, ModList cachedModList = null, bool doLumina = false, DirectoryInfo luminaOutDir = null)
692+
public async Task<long> ImportMtrl(XivMtrl xivMtrl, IItem item, string source, IndexFile cachedIndexFile = null, ModList cachedModList = null)
693693
{
694694
try
695695
{
696696
var mtrlBytes = CreateMtrlFile(xivMtrl, item);
697697
var dat = new Dat(_gameDirectory);
698698

699699
// Create the actual raw MTRL first. - Files should always be created top down.
700-
long offset = await dat.ImportType2Data(mtrlBytes.ToArray(), xivMtrl.MTRLPath, source, item, cachedIndexFile, cachedModList, doLumina, luminaOutDir);
700+
long offset = await dat.ImportType2Data(mtrlBytes.ToArray(), xivMtrl.MTRLPath, source, item, cachedIndexFile, cachedModList);
701701

702702
// The MTRL file is now ready to go, but we need to validate the texture paths and create them if needed.
703703
var mapInfoList = xivMtrl.GetAllMapInfos(false);
@@ -716,7 +716,7 @@ public async Task<long> ImportMtrl(XivMtrl xivMtrl, IItem item, string source, I
716716
exists = await _index.FileExists(mapInfo.Path, IOUtil.GetDataFileFromPath(path));
717717
}
718718

719-
if(exists && !doLumina)
719+
if(exists && !XivCache.GameInfo.UseLumina)
720720
{
721721
continue;
722722
}
@@ -732,7 +732,7 @@ public async Task<long> ImportMtrl(XivMtrl xivMtrl, IItem item, string source, I
732732

733733
var di = Tex.GetDefaultTexturePath(mapInfo.Usage);
734734

735-
var newOffset = await _tex.ImportTex(xivTex.TextureTypeAndPath.Path, di.FullName, item, source, cachedIndexFile, cachedModList, doLumina, luminaOutDir);
735+
var newOffset = await _tex.ImportTex(xivTex.TextureTypeAndPath.Path, di.FullName, item, source, cachedIndexFile, cachedModList);
736736

737737
}
738738

xivModdingFramework/Models/FileTypes/Eqp.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ public async Task SaveGmpEntries(List<(uint PrimaryId, GimmickParameter GmpData)
169169

170170
}
171171

172-
public async Task SaveGimmickParameter(int equipmentId, GimmickParameter param, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null, bool doLumina = false, DirectoryInfo luminaOutDir = null)
172+
public async Task SaveGimmickParameter(int equipmentId, GimmickParameter param, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null)
173173
{
174174
if (equipmentId == 0)
175175
{
@@ -195,7 +195,7 @@ public async Task SaveGimmickParameter(int equipmentId, GimmickParameter param,
195195

196196
IOUtil.ReplaceBytesAt(data, param.GetBytes(), offset);
197197

198-
await SaveGimmickParameterFile(data, referenceItem, cachedIndexFile, cachedModList, doLumina, luminaOutDir);
198+
await SaveGimmickParameterFile(data, referenceItem, cachedIndexFile, cachedModList);
199199
}
200200

201201
public async Task<GimmickParameter> GetGimmickParameter(IItem item, bool forceDefault = false)
@@ -251,9 +251,9 @@ public async Task<GimmickParameter> GetGimmickParameter(int equipmentId, bool fo
251251
return param;
252252
}
253253

254-
private async Task SaveGimmickParameterFile(byte[] bytes, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null, bool doLumina = false, DirectoryInfo luminaOutDir = null)
254+
private async Task SaveGimmickParameterFile(byte[] bytes, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null)
255255
{
256-
await _dat.ImportType2Data(bytes, GimmickParameterFile, Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList, doLumina, luminaOutDir);
256+
await _dat.ImportType2Data(bytes, GimmickParameterFile, Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList);
257257
}
258258
private async Task<byte[]> LoadGimmickParameterFile(bool forceDefault = false)
259259
{
@@ -334,7 +334,7 @@ public async Task SaveEqpEntries(List<(uint PrimaryId, EquipmentParameter EqpDat
334334
/// <param name="equipmentId"></param>
335335
/// <param name="data"></param>
336336
/// <returns></returns>
337-
public async Task SaveEqpEntry(int equipmentId, EquipmentParameter data, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null, bool doLumina = false, DirectoryInfo luminaOutDir = null)
337+
public async Task SaveEqpEntry(int equipmentId, EquipmentParameter data, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null)
338338
{
339339
if (equipmentId < 0)
340340
{
@@ -371,7 +371,7 @@ public async Task SaveEqpEntry(int equipmentId, EquipmentParameter data, IItem r
371371

372372
IOUtil.ReplaceBytesAt(file, bytes, offset);
373373

374-
await _dat.ImportType2Data(file.ToArray(), EquipmentParameterFile, Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList, doLumina, luminaOutDir);
374+
await _dat.ImportType2Data(file.ToArray(), EquipmentParameterFile, Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList);
375375
}
376376

377377

@@ -678,7 +678,7 @@ private int ResolveEqpEntryOffset(byte[] file, int equipmentId)
678678
/// <param name="cachedIndexFile"></param>
679679
/// <param name="cachedModList"></param>
680680
/// <returns></returns>
681-
public async Task SaveEqdpEntries(Dictionary<XivRace, List<(uint PrimaryId, string Slot, EquipmentDeformationParameter Entry)>> entries, IItem referenceItem, IndexFile cachedIndexFile, ModList cachedModList, bool doLumina = false, DirectoryInfo luminaOutDir = null)
681+
public async Task SaveEqdpEntries(Dictionary<XivRace, List<(uint PrimaryId, string Slot, EquipmentDeformationParameter Entry)>> entries, IItem referenceItem, IndexFile cachedIndexFile, ModList cachedModList)
682682
{
683683
// Group entries into Accessories and Non-Accessories.
684684
var accessories = new Dictionary<XivRace, List<(uint PrimaryId, string Slot, EquipmentDeformationParameter Entry)>>();
@@ -792,7 +792,7 @@ public async Task SaveEqdpEntries(Dictionary<XivRace, List<(uint PrimaryId, stri
792792
data[offset + byteOffset] = byteToModify;
793793
}
794794

795-
await _dat.ImportType2Data(data, fileName, Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList, doLumina, luminaOutDir);
795+
await _dat.ImportType2Data(data, fileName, Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList);
796796
}
797797

798798
// Loop Accessories
@@ -865,14 +865,14 @@ public async Task SaveEqdpEntries(Dictionary<XivRace, List<(uint PrimaryId, stri
865865

866866
data[offset + byteOffset] = byteToModify;
867867
}
868-
await _dat.ImportType2Data(data, fileName, Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList, doLumina, luminaOutDir);
868+
await _dat.ImportType2Data(data, fileName, Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList);
869869

870870
}
871871

872872

873873
}
874874

875-
public async Task SaveEqdpEntries(uint primaryId, string slot, Dictionary<XivRace, EquipmentDeformationParameter> parameters, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null, bool doLumina = false, DirectoryInfo luminaOutDir = null)
875+
public async Task SaveEqdpEntries(uint primaryId, string slot, Dictionary<XivRace, EquipmentDeformationParameter> parameters, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null)
876876
{
877877
var isAccessory = EquipmentDeformationParameterSet.SlotsAsList(true).Contains(slot);
878878

@@ -950,7 +950,7 @@ public async Task SaveEqdpEntries(uint primaryId, string slot, Dictionary<XivRac
950950

951951
data[offset + byteOffset] = byteToModify;
952952

953-
await _dat.ImportType2Data(data, fileName, Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList, doLumina, luminaOutDir);
953+
await _dat.ImportType2Data(data, fileName, Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList);
954954
}
955955
}
956956

xivModdingFramework/Models/FileTypes/Est.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public static async Task<Dictionary<XivRace, HashSet<int>>> GetAllExtraSkeletons
167167
/// <param name="type"></param>
168168
/// <param name="modifiedEntries"></param>
169169
/// <returns></returns>
170-
public static async Task SaveExtraSkeletonEntries(EstType type, List<ExtraSkeletonEntry> modifiedEntries, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null, bool doLumina = false, DirectoryInfo luminaOutDir = null)
170+
public static async Task SaveExtraSkeletonEntries(EstType type, List<ExtraSkeletonEntry> modifiedEntries, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null)
171171
{
172172
var entries = await GetEstFile(type, false);
173173

@@ -197,7 +197,7 @@ public static async Task SaveExtraSkeletonEntries(EstType type, List<ExtraSkelet
197197
}
198198

199199
// Save file.
200-
await SaveEstFile(type, entries, referenceItem, cachedIndexFile, cachedModList, doLumina, luminaOutDir);
200+
await SaveEstFile(type, entries, referenceItem, cachedIndexFile, cachedModList);
201201
}
202202

203203
public static async Task<Dictionary<XivRace, ExtraSkeletonEntry>> GetExtraSkeletonEntries(IItem item, bool forceDefault = false)
@@ -343,7 +343,7 @@ private static async Task<Dictionary<XivRace, Dictionary<ushort, ExtraSkeletonEn
343343
return entries;
344344
}
345345

346-
private static async Task SaveEstFile(EstType type, Dictionary<XivRace, Dictionary<ushort, ExtraSkeletonEntry>> entries, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null, bool doLumina = false, DirectoryInfo luminaOutDir = null)
346+
private static async Task SaveEstFile(EstType type, Dictionary<XivRace, Dictionary<ushort, ExtraSkeletonEntry>> entries, IItem referenceItem = null, IndexFile cachedIndexFile = null, ModList cachedModList = null)
347347
{
348348
var count = entries.Select(x => x.Value.Count).Aggregate((x, y) => x + y);
349349

@@ -369,7 +369,7 @@ private static async Task SaveEstFile(EstType type, Dictionary<XivRace, Dictiona
369369

370370

371371
var _dat = new Dat(_gameDirectory);
372-
await _dat.ImportType2Data(data, EstFiles[type], Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList, doLumina, luminaOutDir);
372+
await _dat.ImportType2Data(data, EstFiles[type], Constants.InternalModSourceName, referenceItem, cachedIndexFile, cachedModList);
373373
}
374374

375375
}

0 commit comments

Comments
 (0)