ESO Lua File v100010

ingame/mainmenu/mainmenu_shared.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
--
--[[ MainMenu Singleton ]]--
--
local MainMenu_Singleton = ZO_CallbackObject:Subclass()
function MainMenu_Singleton:New(...)
    local mainMenu = ZO_CallbackObject.New(self)
    mainMenu:Initialize(...) -- ZO_CallbackObject does not have an initialize function
    return mainMenu
end
function MainMenu_Singleton:Initialize()
    self.playerStateTable =
        {
            isSwimming = IsUnitSwimming("player"),
            isDead = IsUnitDead("player"),
            isWerewolf = IsWerewolf(),
        }
    local PLAYER_IS_DEAD = false
    local PLAYER_IS_ALIVE = true
    local PLAYER_IS_SWIMMING = true
    local PLAYER_IS_NOT_SWIMMING = false
    EVENT_MANAGER:RegisterForEvent("MainMenu_Singleton", EVENT_PLAYER_DEAD, function() self:OnPlayerAliveStateChanged(PLAYER_IS_DEAD) end)
    EVENT_MANAGER:RegisterForEvent("MainMenu_Singleton", EVENT_PLAYER_ALIVE, function() self:OnPlayerAliveStateChanged(PLAYER_IS_ALIVE) end)
    EVENT_MANAGER:RegisterForEvent("MainMenu_Singleton", EVENT_PLAYER_SWIMMING, function() self:OnPlayerSwimmingStateChanged(PLAYER_IS_SWIMMING) end)
    EVENT_MANAGER:RegisterForEvent("MainMenu_Singleton", EVENT_PLAYER_NOT_SWIMMING, function() self:OnPlayerSwimmingStateChanged(PLAYER_IS_NOT_SWIMMING) end)
    EVENT_MANAGER:RegisterForEvent("MainMenu_Singleton", EVENT_WEREWOLF_STATE_CHANGED, function(eventCode, isWerewolf) self:OnPlayerWerewolfStateChanged(isWerewolf) end)
    EVENT_MANAGER:RegisterForEvent("MainMenu_Singleton", EVENT_PLAYER_ACTIVATED, function() self:RefreshPlayerState() end)
end
function MainMenu_Singleton:OnPlayerAliveStateChanged(isAlive)
    self.playerStateTable.isDead = not isAlive
end
function MainMenu_Singleton:OnPlayerSwimmingStateChanged(isSwimming)
    self.playerStateTable.isSwimming = isSwimming
end
function MainMenu_Singleton:OnPlayerWerewolfStateChanged(isWerewolf)
    self.playerStateTable.isWerewolf = isWerewolf
end
function MainMenu_Singleton:OnPlayerStateUpdate()
    self:FireCallbacks("OnPlayerStateUpdate")
end
function MainMenu_Singleton:RefreshPlayerState()
    local stateTable = self.playerStateTable
    stateTable.isSwimming = IsUnitSwimming("player")
    stateTable.isDead = IsUnitDead("player")
    stateTable.isWerewolf = IsWerewolf()
end
function MainMenu_Singleton:IsPlayerDead()
    return self.playerStateTable.isDead
end
function MainMenu_Singleton:IsPlayerSwimming()
    return self.playerStateTable.isSwimming
end
function MainMenu_Singleton:IsPlayerWerewolf()
    return self.playerStateTable.isWerewolf
end
MAIN_MENU_SINGLETON = MainMenu_Singleton:New()