ESO UI API Patch Highlights (V100020)
Below is a summary of important changes to the ESO UI API in this update.Item Style
Item Style has been converted from an enumeration to an identifier. This was done to allow the addition item styles without requiring client code changes. All functions that took an item style enumeration now take an item style ID. For existing item styles, the ID value is the same as the old enumeration value. The enumeration constants are also still available through the addon compatibility aliases.
Here are the API functions to get information about a style:
- GetItemStyleName(styleId) – styleName.
- GetItemStyleInfo(styleId) – alwaysHideIfLocked.
- GetItemStyleMaterialLink(styleId, LinkStyle) – link.
Iterating over the item styles should be done using the following APIs:
- GetNumValidItemStyles() – numStyles.
- GetValidItemStyleId(index) – styleId.
There are also a couple functions to get specific styles that are used programmatically:
- GetImperialStyleId() – imperialStyleId.
- GetMoragTongStyleId() – moragTongStyleId.
- GetUniversalStyleId() – universalStyleId.
The currency APIs are undergoing a restructuring to better generalize into the future. When complete, the currency APIs will accept a currency type and a currency location (character, bank, etc) as keys. There will also only be one update event that contains the amount, currency type, currency location, and reason. In this patch, some API functions have been removed, but they have been aliased.Skills
We have added some new APIs to get skill line indices from skill IDs and skill line IDs:
- GetSkillLineIndicesFromSkillId(skillId) – SkillType, skillIndex.
- GetSkillLineIndicesFromSkillLineId(skillLineId) – SkillType, skillIndex.
We have also modified GetSkillLineInfo to also return the skill line ID.3D Controls
3D controls with no parent that are positioned using world coordinates now update their position automatically when you cross a boundary. We also added two APIs to help convert between Gui Render 3D positions and World positions:
- GuiRender3DPositionToWorldPosition(renderX, renderY, renderZ) – worldX, worldY, worldZ.
- WorldPositionToGuiRender3DPosition(worldX, worldY, worldZ) – renderX, renderY, renderZ.
We have added several new guild permissions:
- GUILD_PERMISSION_ BANK_WITHDRAW_GOLD
- GUILD_PERMISSION_ BANK_VIEW_GOLD
- GUILD_PERMISSION_ BANK_VIEW_WITHDRAW_HISTORY
- GUILD_PERMISSION_ BANK_VIEW_DEPOSIT_HISTORY
We have also added some new APIs to define relationships between guild permissions to support permissions that require another permission to be enabled before they can be edited. These relationships are enforced by the client.
- GetNumGuildPermissionDependencies(GuildPermission) – numDependencies.
- GetGuildPermissionDependency(GuildPermission, index) – dependentPermission.
- GetNumGuildPermissionRequisites(GuildPermission) – numRequisites.
- GetGuildPermissionRequisite(GuildPermission, index) – requisitePermission.
- GetGuildKioskCycleTimes() – despawnTimestampS, bidEndTimestampS, respawnTimestampS.
- CancelSmithingTraitResearch(TradeskillType, researchLineIndex, traitIndex).
- GetKillingAttackInfo(index) now also returns the number of times the attack hit the player.
- EVENT_LOOT_RECEIVED now also has a field indicating if the loot was stolen.