ESO Lua File v100010

ingame/playeremote/playeremotequickslot.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
local ZO_PlayerEmoteQuickslot = ZO_InteractiveRadialMenuController:Subclass()
function ZO_PlayerEmoteQuickslot:New(...)
    return ZO_InteractiveRadialMenuController.New(self, ...)
end
function ZO_PlayerEmoteQuickslot:Initialize(control, entryTemplate, animationTemplate, entryAnimationTemplate)
    ZO_InteractiveRadialMenuController.Initialize(self, control, entryTemplate, animationTemplate, entryAnimationTemplate)
    self.icon = self.menuControl:GetNamedChild("Icon")
end
-- functions overridden from base
function ZO_PlayerEmoteQuickslot:PrepareForInteraction()
    if not SCENE_MANAGER:IsShowing("hud") then
        return false
    end
    return true
end
function ZO_PlayerEmoteQuickslot:SetupEntryControl(control, data)
    if data then
        control.label:SetText(data.name)
        if data.selected then
            control.glow:SetAlpha(1)
            control.animation:GetLastAnimation():SetAnimatedControl(nil)
        else
            control.glow:SetAlpha(0)
            control.animation:GetLastAnimation():SetAnimatedControl(control.glow)
        end
        if IsInGamepadPreferredMode() then
              control.label:SetFont("ZoFontGamepad42")
         else
              control.label:SetFont("ZoInteractionPrompt")
         end
    end
end
function ZO_PlayerEmoteQuickslot:OnSelectionChangedCallback(selectedEntry)
    if selectedEntry then
        self.icon:SetTexture(selectedEntry.activeIcon)
        self.icon:SetHidden(false)
    else
        self.icon:SetHidden(true)
    end
end
local EMPTY_QUICKSLOT_TEXTURE = "EsoUI/Art/Quickslots/quickslot_emptySlot.dds"
local EMPTY_QUICKSLOT_STRING = GetString(SI_QUICKSLOTS_EMPTY)
function ZO_PlayerEmoteQuickslot:PopulateMenu()
    local slottedEmotes = PLAYER_EMOTE_MANAGER:GetSlottedEmotes()
    for i = 1, #slottedEmotes do
        local emoteID = slottedEmotes[i]
        local emoteInfo = PLAYER_EMOTE_MANAGER:GetEmoteItemInfo(emoteID)
        if emoteInfo then
            local emoteIcons = PLAYER_EMOTE_MANAGER:GetEmoteIconForCategory(emoteInfo.emoteCategory)
            self.menu:AddEntry(emoteInfo.emoteName, emoteIcons.inactiveIcon, emoteIcons.activeIcon, function() PlayEmoteByIndex(emoteInfo.emoteIndex) end, {name=emoteInfo.emoteName})
        else
            self.menu:AddEntry(EMPTY_QUICKSLOT_STRING, EMPTY_QUICKSLOT_TEXTURE, EMPTY_QUICKSLOT_TEXTURE, nil, {name=EMPTY_QUICKSLOT_STRING})
        end
    end
    self.icon:SetHidden(true)
end
-- Global Functions
    self.label = self:GetNamedChild("Label")
end
    PLAYER_EMOTE_QUICKSLOT = ZO_PlayerEmoteQuickslot:New(control, "ZO_PlayerEmoteRadialMenuEntryTemplate", nil, "SelectableItemRadialMenuEntryAnimation")
end