Back to Home

ESO Lua File v101039

ingame/crafting/sharedcraftinginventory.lua

[◄ back to folders ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
ZO_SharedCraftingInventory = ZO_InitializingObject:Subclass()
local SCROLL_TYPE_ITEM = 1
function ZO_SharedCraftingInventory:Initialize(control, slotType, connectInfoFn, connectInfoControl)
    self.control = control
    self.control.owner = self
    self.baseSlotType = slotType
    self.itemCounts = {}
    self.questRunes = {}
    self.alchemyQuestInfo = {}
    self.improvementQuestInfo = {}
    self:InitializeList()
    if not connectInfoControl then connectInfoControl = control:GetNamedChild("InfoBar") end
    if connectInfoControl then connectInfoFn(connectInfoControl) end
    local function HandleInventoryChanged()
        self:HandleDirtyEvent()
    end
    control:RegisterForEvent(EVENT_INVENTORY_FULL_UPDATE, HandleInventoryChanged)
    control:RegisterForEvent(EVENT_INVENTORY_SINGLE_SLOT_UPDATE, HandleInventoryChanged)
    local function OnCraftingAnimationStateChanged()
        self:HandleVisibleDirtyEvent()
        ClearMenu()
    end
    CALLBACK_MANAGER:RegisterCallback("CraftingAnimationsStarted", OnCraftingAnimationStateChanged)
    CALLBACK_MANAGER:RegisterCallback("CraftingAnimationsStopped", OnCraftingAnimationStateChanged)
    CRAFT_ADVISOR_MANAGER:RegisterCallback("QuestInformationUpdated", function(updatedQuestInfo) 
        self.questRunes = updatedQuestInfo.runeIds
        self.alchemyQuestInfo = updatedQuestInfo.alchemyInfo
        self.improvementQuestInfo = updatedQuestInfo.improvementInfo
        self.hasRecipesForQuest = updatedQuestInfo.hasRecipesForQuest
        self:HandleDirtyEvent()
    end)
end
function ZO_SharedCraftingInventory:InitializeList()
    -- intended to be overridden
end
function ZO_SharedCraftingInventory:AddListDataTypes()
    -- intended to be overridden
end
function ZO_SharedCraftingInventory:OnShow()
    if self.dirty then
        self:PerformFullRefresh()
    end
end
function ZO_SharedCraftingInventory:IsLocked(bagId, slotIndex)
    -- intended to be overridden if the slot should appear as locked, but should call base to keep locking on craft
end
function ZO_SharedCraftingInventory:GetScrollDataType(bagId, slotIndex)
    -- intended to be overridden for custom data types
    return SCROLL_TYPE_ITEM
end
function ZO_SharedCraftingInventory:HandleDirtyEvent()
        self.dirty = true
    else
        self:PerformFullRefresh()
    end
end
function ZO_SharedCraftingInventory:PerformFullRefresh()
    -- intended to be overwritten
end
function ZO_SharedCraftingInventory:OnItemSelected(selectedData)
    -- intended to be overwritten
end
function ZO_SharedCraftingInventory:ShowAppropriateSlotDropCallouts(bagId, slotIndex)
    -- intended to be overwritten
end
function ZO_SharedCraftingInventory:HideAllSlotDropCallouts()
    -- intended to be overwritten
end
function ZO_SharedCraftingInventory:Refresh(data)
    -- intended to be overwritten
end
function ZO_SharedCraftingInventory:ChangeFilter(filterData)
    self.activeTab:SetText(filterData.activeTabText)
    -- intended to be overwritten, but should call base
end
--- When set, overrides the crafting inventory's default sort function.
function ZO_SharedCraftingInventory:SetOverrideItemSort(itemSortFunction)
    self.sortFunction = itemSortFunction
end
function ZO_SharedCraftingInventory:SetCustomExtraData(customExtraDataFunction)
end
function ZO_SharedCraftingInventory:SetCustomSort(customDataSortFunction)
end
function ZO_SharedCraftingInventory:SetVerticalScrollCraftEntryType(type)
    self.verticalScrollCraftEntryType = type
end
    -- intended to be overwritten
    return nil
end
assert(18 == BAG_MAX_VALUE) -- if you add a new bag, check to see if you need to add it to crafting inventories
ZO_ALL_CRAFTING_INVENTORY_BAGS_AND_WORN = 
{
    BAG_BACKPACK, BAG_BANK, BAG_SUBSCRIBER_BANK, BAG_WORN, BAG_COMPANION_WORN
}
ZO_ALL_CRAFTING_INVENTORY_BAGS_WITHOUT_WORN = 
{
    BAG_BACKPACK, BAG_BANK, BAG_SUBSCRIBER_BANK
}
function ZO_SharedCraftingInventory:GetIndividualInventorySlotsAndAddToScrollData(predicate, filterFunction, filterType, data, useWornBag)
    -- intended to be overwritten
    return nil
end
function ZO_SharedCraftingInventory:GetStackCount(bagId, slotIndex)
    local itemInstanceId = GetItemInstanceId(bagId, slotIndex)
    return self.itemCounts[itemInstanceId] or 0
end
function ZO_SharedCraftingInventory:Show()
    self.control:SetHidden(false)
end
function ZO_SharedCraftingInventory:Hide()
    self.control:SetHidden(true)
end
function ZO_SharedCraftingInventory:SetNoItemLabelText(text)
    -- intended to be overwritten
end