mirror of
https://github.com/goatcorp/Dalamud.git
synced 2026-02-20 23:07:43 +01:00
Update to Lumina 5 (new Excel parsing) (#2022)
* Refactor and upgrade to new excel design * Obsolete ExcelResolver<T> and use only RowRef<T> * Better benchmarking for Lumina * Add custom game-supported RSV provider * Refactor and move Lazy<T> and nullable/cached row objects to RowRefs * Convert IRSVProvider to delegate, resolve strings by default * Split IExcelRow into IExcelSubrow * Extra lumina documentation * Minor RSV CS fixes * Fix UIGlowPayload warning * Fix rebase * Update to Lumina 5
This commit is contained in:
parent
08d8605871
commit
0b9af0e3f4
49 changed files with 460 additions and 403 deletions
|
|
@ -16,7 +16,7 @@ using Dalamud.Hooking;
|
|||
using Dalamud.Networking.Http;
|
||||
using Dalamud.Utility;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI.Info;
|
||||
using Lumina.Excel.GeneratedSheets;
|
||||
using Lumina.Excel.Sheets;
|
||||
using Serilog;
|
||||
|
||||
namespace Dalamud.Game.Network.Internal;
|
||||
|
|
@ -282,21 +282,17 @@ internal unsafe class NetworkHandlers : IInternalDisposableService
|
|||
if (this.configuration.DutyFinderTaskbarFlash)
|
||||
Util.FlashWindow();
|
||||
|
||||
var cfConditionSheet = Service<DataManager>.Get().GetExcelSheet<ContentFinderCondition>()!;
|
||||
var cfCondition = cfConditionSheet.GetRow(conditionId);
|
||||
var cfCondition = LuminaUtils.CreateRef<ContentFinderCondition>(conditionId);
|
||||
|
||||
if (cfCondition == null)
|
||||
if (!cfCondition.IsValid)
|
||||
{
|
||||
Log.Error("CFC key {ConditionId} not in Lumina data", conditionId);
|
||||
return result;
|
||||
}
|
||||
|
||||
var cfcName = cfCondition.Name.ToDalamudString();
|
||||
var cfcName = cfCondition.Value.Name.ToDalamudString();
|
||||
if (cfcName.Payloads.Count == 0)
|
||||
{
|
||||
cfcName = "Duty Roulette";
|
||||
cfCondition.Image = 112324;
|
||||
}
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
|
|
@ -308,7 +304,7 @@ internal unsafe class NetworkHandlers : IInternalDisposableService
|
|||
Service<ChatGui>.GetNullable()?.Print(b.Build());
|
||||
}
|
||||
|
||||
this.CfPop.InvokeSafely(cfCondition);
|
||||
this.CfPop.InvokeSafely(cfCondition.Value);
|
||||
}).ContinueWith(
|
||||
task => Log.Error(task.Exception, "CfPop.Invoke failed"),
|
||||
TaskContinuationOptions.OnlyOnFaulted);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue