using System.Diagnostics.CodeAnalysis; using Lumina.Excel; using Lumina.Excel.Sheets; namespace Dalamud.Plugin.Services; #pragma warning disable SA1400 // Access modifier should be declared: Interface members are public by default /// /// Interface for determining unlock state of various content in the game. /// [Experimental("Dalamud001")] public interface IUnlockState : IDalamudService { /// /// A delegate type used for the event. /// /// A RowRef of the unlocked thing. delegate void UnlockDelegate(RowRef rowRef); /// /// Event triggered when something was unlocked. /// event UnlockDelegate? Unlock; /// /// Determines whether the specified Action is unlocked. /// /// The Action row to check. /// if unlocked; otherwise, . bool IsActionUnlocked(Lumina.Excel.Sheets.Action row); /// /// Determines whether the specified AetherCurrentCompFlgSet is unlocked. /// /// The AetherCurrentCompFlgSet row to check. /// if unlocked; otherwise, . bool IsAetherCurrentCompFlgSetUnlocked(AetherCurrentCompFlgSet row); /// /// Determines whether the specified AetherCurrent is unlocked. /// /// The AetherCurrent row to check. /// if unlocked; otherwise, . bool IsAetherCurrentUnlocked(AetherCurrent row); /// /// Determines whether the specified AozAction (Blue Mage Action) is unlocked. /// /// The AozAction row to check. /// if unlocked; otherwise, . bool IsAozActionUnlocked(AozAction row); /// /// Determines whether the specified BannerBg (Portrait Backgrounds) is unlocked. /// /// The BannerBg row to check. /// if unlocked; otherwise, . bool IsBannerBgUnlocked(BannerBg row); /// /// Determines whether the specified BannerCondition is unlocked. /// /// The BannerCondition row to check. /// if unlocked; otherwise, . bool IsBannerConditionUnlocked(BannerCondition row); /// /// Determines whether the specified BannerDecoration (Portrait Accents) is unlocked. /// /// The BannerDecoration row to check. /// if unlocked; otherwise, . bool IsBannerDecorationUnlocked(BannerDecoration row); /// /// Determines whether the specified BannerFacial (Portrait Expressions) is unlocked. /// /// The BannerFacial row to check. /// if unlocked; otherwise, . bool IsBannerFacialUnlocked(BannerFacial row); /// /// Determines whether the specified BannerFrame (Portrait Frames) is unlocked. /// /// The BannerFrame row to check. /// if unlocked; otherwise, . bool IsBannerFrameUnlocked(BannerFrame row); /// /// Determines whether the specified BannerTimeline (Portrait Poses) is unlocked. /// /// The BannerTimeline row to check. /// if unlocked; otherwise, . bool IsBannerTimelineUnlocked(BannerTimeline row); /// /// Determines whether the specified BuddyAction (Action of the players Chocobo Companion) is unlocked. /// /// The BuddyAction row to check. /// if unlocked; otherwise, . bool IsBuddyActionUnlocked(BuddyAction row); /// /// Determines whether the specified BuddyEquip (Equipment of the players Chocobo Companion) is unlocked. /// /// The BuddyEquip row to check. /// if unlocked; otherwise, . bool IsBuddyEquipUnlocked(BuddyEquip row); /// /// Determines whether the specified CharaMakeCustomize (Hairstyles and Face Paint patterns) is unlocked. /// /// The CharaMakeCustomize row to check. /// if unlocked; otherwise, . bool IsCharaMakeCustomizeUnlocked(CharaMakeCustomize row); /// /// Determines whether the specified ChocoboTaxiStand (Chocobokeeps of the Chocobo Porter service) is unlocked. /// /// The ChocoboTaxiStand row to check. /// if unlocked; otherwise, . bool IsChocoboTaxiStandUnlocked(ChocoboTaxiStand row); /// /// Determines whether the specified Companion (Minions) is unlocked. /// /// The Companion row to check. /// if unlocked; otherwise, . bool IsCompanionUnlocked(Companion row); /// /// Determines whether the specified CraftAction is unlocked. /// /// The CraftAction row to check. /// if unlocked; otherwise, . bool IsCraftActionUnlocked(CraftAction row); /// /// Determines whether the specified CSBonusContentType is unlocked. /// /// The CSBonusContentType row to check. /// if unlocked; otherwise, . bool IsCSBonusContentTypeUnlocked(CSBonusContentType row); /// /// Determines whether the specified Emote is unlocked. /// /// The Emote row to check. /// if unlocked; otherwise, . bool IsEmoteUnlocked(Emote row); /// /// Determines whether the specified EmjVoiceNpc (Doman Mahjong Characters) is unlocked. /// /// The EmjVoiceNpc row to check. /// if unlocked; otherwise, . bool IsEmjVoiceNpcUnlocked(EmjVoiceNpc row); /// /// Determines whether the specified EmjCostume (Doman Mahjong Character Costume) is unlocked. /// /// The EmjCostume row to check. /// if unlocked; otherwise, . bool IsEmjCostumeUnlocked(EmjCostume row); /// /// Determines whether the specified GeneralAction is unlocked. /// /// The GeneralAction row to check. /// if unlocked; otherwise, . bool IsGeneralActionUnlocked(GeneralAction row); /// /// Determines whether the specified Glasses is unlocked. /// /// The Glasses row to check. /// if unlocked; otherwise, . bool IsGlassesUnlocked(Glasses row); /// /// Determines whether the specified HowTo is unlocked. /// /// The HowTo row to check. /// if unlocked; otherwise, . bool IsHowToUnlocked(HowTo row); /// /// Determines whether the specified InstanceContent is unlocked. /// /// The InstanceContent row to check. /// if unlocked; otherwise, . bool IsInstanceContentUnlocked(InstanceContent row); /// /// Determines whether the specified Item is considered unlockable. /// /// The Item row to check. /// if unlockable; otherwise, . bool IsItemUnlockable(Item row); /// /// Determines whether the specified Item is unlocked. /// /// The Item row to check. /// if unlocked; otherwise, . bool IsItemUnlocked(Item row); /// /// Determines whether the specified McGuffin is unlocked. /// /// The McGuffin row to check. /// if unlocked; otherwise, . bool IsMcGuffinUnlocked(McGuffin row); /// /// Determines whether the specified MJILandmark (Island Sanctuary landmark) is unlocked. /// /// The MJILandmark row to check. /// if unlocked; otherwise, . bool IsMJILandmarkUnlocked(MJILandmark row); /// /// Determines whether the specified MKDLore (Occult Record) is unlocked. /// /// The MKDLore row to check. /// if unlocked; otherwise, . bool IsMKDLoreUnlocked(MKDLore row); /// /// Determines whether the specified Mount is unlocked. /// /// The Mount row to check. /// if unlocked; otherwise, . bool IsMountUnlocked(Mount row); /// /// Determines whether the specified NotebookDivision (Categories in Crafting/Gathering Log) is unlocked. /// /// The NotebookDivision row to check. /// if unlocked; otherwise, . bool IsNotebookDivisionUnlocked(NotebookDivision row); /// /// Determines whether the specified Orchestrion roll is unlocked. /// /// The Orchestrion row to check. /// if unlocked; otherwise, . bool IsOrchestrionUnlocked(Orchestrion row); /// /// Determines whether the specified Ornament (Fashion Accessories) is unlocked. /// /// The Ornament row to check. /// if unlocked; otherwise, . bool IsOrnamentUnlocked(Ornament row); /// /// Determines whether the specified Perform (Performance Instruments) is unlocked. /// /// The Perform row to check. /// if unlocked; otherwise, . bool IsPerformUnlocked(Perform row); /// /// Determines whether the specified PublicContent is unlocked. /// /// The PublicContent row to check. /// if unlocked; otherwise, . bool IsPublicContentUnlocked(PublicContent row); /// /// Determines whether the specified Recipe is unlocked. /// /// The Recipe row to check. /// if unlocked; otherwise, . bool IsRecipeUnlocked(Recipe row); /// /// Determines whether the underlying RowRef type is unlocked. /// /// The RowRef to check. /// if unlocked; otherwise, . bool IsRowRefUnlocked(RowRef rowRef); /// /// Determines whether the underlying RowRef type is unlocked. /// /// The type of the Excel row. /// The RowRef to check. /// if unlocked; otherwise, . bool IsRowRefUnlocked(RowRef rowRef) where T : struct, IExcelRow; /// /// Determines whether the specified SecretRecipeBook (Master Recipe Books) is unlocked. /// /// The SecretRecipeBook row to check. /// if unlocked; otherwise, . bool IsSecretRecipeBookUnlocked(SecretRecipeBook row); /// /// Determines whether the specified Trait is unlocked. /// /// The Trait row to check. /// if unlocked; otherwise, . bool IsTraitUnlocked(Trait row); /// /// Determines whether the specified TripleTriadCard is unlocked. /// /// The TripleTriadCard row to check. /// if unlocked; otherwise, . bool IsTripleTriadCardUnlocked(TripleTriadCard row); /// /// Determines whether the specified unlock link is unlocked or quest is completed. /// /// The unlock link id or quest id (quest ids in this case are over 65536). /// if unlocked; otherwise, . bool IsUnlockLinkUnlocked(uint unlockLink); /// /// Determines whether the specified unlock link is unlocked. /// /// The unlock link id. /// if unlocked; otherwise, . bool IsUnlockLinkUnlocked(ushort unlockLink); }