Quantcast
Update 33 (Version 7.3) - ESOUI
Thread Tools Display Modes
01/31/22, 09:38 AM   #1
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,511
Update 33 (Version 7.3)

The next dlc "Ascending Tide" will be available on the PTS later today.

New API Version: 101033

PTS Dev Guild
We have created guilds on the EU and NA server for all addon developers, which get copied over during the PTS cycle for a new update, so we can test guild related things, ask for help with testing or just chat. If you need an invite, ask here or over on our Gitter channel. You are also free to join them on the live servers so you don't always have to be reinvited when the PTS is wiped.

Notable Changes
LinksI'll edit the OP with more useful information as you post it and add the links as they become available.
__________________
https://www.imperialtradingcompany.eu/ - My Addons - The Vault (Early updates and experimental projects) - My patreon - My blog
>siri.exe MyAddon
Does your addon work? [y/n] n
There is a typo in there.

Last edited by sirinsidiator : 04/25/22 at 09:41 AM.
  Reply With Quote
01/31/22, 07:34 PM   #2
ZOS_DanBatson
ZOS Staff!
 
ZOS_DanBatson's Avatar
Yes this person is from ZeniMax!
Join Date: Jul 2015
Posts: 120
API Documentation
Attached Files
File Type: txt APIPatchNotesP33.txt (9.5 KB, 347 views)
File Type: txt ESOUIDocumentationP33.txt (840.4 KB, 413 views)
  Reply With Quote
02/12/22, 09:31 AM   #3
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,162
As information:
The new UNIVERSAL_DECONSTRUCTION.deconstructionPanel (and the gamepad one) will get a callback for when the filters (that are: tabs e.g. all/armor/weapon/jewelry/enchantments) or the chosen multiselect dropdown filters change

Lua Code:
  1. function TestOnFilterChanged(tab, craftingTypes, includeBanked)
  2.     d("Filter changed:")
  3.     d("Tab.key:")
  4.     d( tab.key )
  5. --tab.key will identify the selecte filter table of global ZO_UNIVERSAL_DECONSTRUCTION_FILTER_TYPES, which are enchantments, jewelry, armor, weapons, all
  6.     d("Crafting Types:")
  7.     d(craftingTypes)
  8.     df("%s banked items", includeBanked and "Include" or "Exclude")
  9. end
  10.  
  11.  
  12. UNIVERSAL_DECONSTRUCTION.deconstructionPanel:RegisterCallback("OnFilterChanged", TestOnFilterChanged)
  13. UNIVERSAL_DECONSTRUCTION_GAMEPAD.deconstructionPanel:RegisterCallback("OnFilterChanged", TestOnFilterChanged)

You will be able to detect the currently active tab via:
UNIVERSAL_DECONSTRUCTION.deconstructionPanel:GetCurrentFilter() which returns the filter table of ZO_UNIVERSAL_DECONSTRUCTION_FILTER_TYPES, so UNIVERSAL_DECONSTRUCTION.deconstructionPanel:GetCurrentFilter().key shows you the key of that tab currently being active

It hits PTS when it's done
Thanks ZOS_DanBatson and Cardinal05, very appreciated you work on my feedback and will add this. It will help a lot!
  Reply With Quote
02/12/22, 09:35 AM   #4
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,162
Also notable:
New table searching functions were added
https://github.com/esoui/esoui/blob/...tableutils.lua

Lua Code:
  1. -- Creates a non-contiguous table, the keys of which are the unique values
  2. -- in the numerically indexed table t or, if t is scalar, the value of t.
  3. function ZO_CreateSet(t)
  4.     local s = {}
  5.     local tType = type(t)
  6.     if tType == "table" then
  7.         for _, v in ipairs(t) do
  8.             s[v] = true
  9.         end
  10.     elseif tType ~= "nil" then
  11.         s[t] = true
  12.     end
  13.     return s
  14. end
  15.  
  16. -- Returns a non-contiguous table, the keys of which are the intersecting keys
  17. -- shared between the non-contiguous sets s1 and s2.
  18. function ZO_IntersectSets(s1, s2)
  19.     local s = {}
  20.     for k in pairs(s1) do
  21.         if s2[k] then
  22.             s[k] = true
  23.         end
  24.     end
  25.     return s
  26. end
  27.  
  28. -- Returns true if the non-contiguous sets s1 and s2 share one or more keys.
  29. function ZO_AreIntersectingSets(s1, s2)
  30.     return next(ZO_IntersectSets(s1, s2)) ~= nil
  31. end
  32.  
  33. -- Returns a non-contiguous table, the keys of which are the intersecting values
  34. -- shared between the numerically indexed tables t1 and t2.
  35. function ZO_IntersectNumericallyIndexedTables(t1, t2)
  36.     local s1 = ZO_CreateSet(t1)
  37.     local s2 = ZO_CreateSet(t2)
  38.     return ZO_IntersectSets(s1, s2)
  39. end
  40.  
  41. -- Returns true if the numerically indexed tables t1 and t2 share one or more values.
  42. function ZO_AreIntersectingNumericallyIndexedTables(t1, t2)
  43.     local s = ZO_IntersectNumericallyIndexedTables(t1, t2)
  44.     return next(s) ~= nil
  45. end
  46.  
  47. -- Returns true if the non-contiguous sets s1 and s2 contain the same keys.
  48. function ZO_AreEqualSets(s1, s2)
  49.     local size1 = NonContiguousCount(s1)
  50.     local size2 = NonContiguousCount(s2)
  51.     if size1 ~= size2 then
  52.         return false
  53.     end
  54.     for k in pairs(s1) do
  55.         if not s2[k] then
  56.             return false
  57.         end
  58.     end
  59.     return true
  60. end

Used in the new universal deconstruction filter function e.g. to compare the filterType's itemFilter (enchantments) or itemTypeFilters (armor, weapon, jewelry) with the itemType/itemFilterType of an inventory item.
Lua Code:
  1. function ZO_UniversalDeconstructionPanel_Shared.DoesItemPassFilter(bagId, slotIndex, filterType)
  2.     local itemFilterTypes = {GetItemFilterTypeInfo(bagId, slotIndex)}
  3.     if ZO_IsElementInNumericallyIndexedTable(itemFilterTypes, ITEMFILTERTYPE_JEWELRY) and not ZO_IsJewelryCraftingEnabled() then
  4.         return false
  5.     end
  6.  
  7.     if filterType then
  8.         if filterType.itemTypes then
  9.             local itemType = GetItemType(bagId, slotIndex)
  10.             if not ZO_AreIntersectingNumericallyIndexedTables(filterType.itemTypes, itemType) then
  11.                 return false
  12.             end
  13.         end
  14.  
  15.         if filterType.itemFilterTypes then
  16.             if not ZO_AreIntersectingNumericallyIndexedTables(filterType.itemFilterTypes, itemFilterTypes) then
  17.                 return false
  18.             end
  19.         end
  20.     end
  21.  
  22.     return true
  23. end

Last edited by Baertram : 02/12/22 at 09:38 AM.
  Reply With Quote
04/18/22, 08:20 AM   #5
ZOS_DanBatson
ZOS Staff!
 
ZOS_DanBatson's Avatar
Yes this person is from ZeniMax!
Join Date: Jul 2015
Posts: 120
Updated docs
Attached Files
File Type: txt APIPatchNotesP33_2.txt (9.5 KB, 98 views)
File Type: txt ESOUIDocumentationP33_2.txt (842.7 KB, 77 views)
  Reply With Quote

ESOUI » Developer Discussions » Tutorials & Other Helpful Info » Update 33 (Version 7.3)

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off