96 lines
1.9 KiB
Lua
96 lines
1.9 KiB
Lua
local LuaSystemBase = require_ex('LuaSystem/LuaSystemBase')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UIRestoreSystem = HL.Class('UIRestoreSystem', LuaSystemBase.LuaSystemBase)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UIRestoreSystem.m_restoreRequestMap = HL.Field(HL.Table)
|
|
|
|
|
|
UIRestoreSystem.m_restoreRestoreData = HL.Field(HL.Table)
|
|
|
|
|
|
|
|
UIRestoreSystem.UIRestoreSystem = HL.Constructor() << function(self)
|
|
self:RegisterMessage(MessageConst.ON_LEAVE_DUNGEON, function(args)
|
|
local dungeonId = unpack(args)
|
|
self:_OnLeaveDungeon(dungeonId)
|
|
end)
|
|
self.m_restoreRequestMap = {}
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UIRestoreSystem.AddRequest = HL.Method(HL.String, HL.Function, HL.Opt(HL.Function)) << function(self, dungeonId, action, checkFunc)
|
|
local restoreData = {
|
|
dungeonId = dungeonId,
|
|
action = action,
|
|
checkFunc = checkFunc or function() return self:_DefaultCheck() end,
|
|
}
|
|
self.m_restoreRequestMap[dungeonId] = restoreData
|
|
end
|
|
|
|
|
|
|
|
UIRestoreSystem.TryRestore = HL.Method() << function(self)
|
|
if self.m_restoreRestoreData then
|
|
local restoreData = self.m_restoreRestoreData
|
|
self.m_restoreRestoreData = nil
|
|
if restoreData.checkFunc() then
|
|
restoreData.action()
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
|
|
UIRestoreSystem.HasValidAction = HL.Method().Return(HL.Boolean) << function(self)
|
|
if self.m_restoreRestoreData and self.m_restoreRestoreData.checkFunc() then
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
|
|
|
|
|
|
UIRestoreSystem._OnLeaveDungeon = HL.Method(HL.String) << function(self, dungeonId)
|
|
|
|
local request = self.m_restoreRequestMap[dungeonId]
|
|
self.m_restoreRestoreData = request
|
|
self.m_restoreRequestMap = {}
|
|
end
|
|
|
|
|
|
|
|
UIRestoreSystem._DefaultCheck = HL.Method().Return(HL.Boolean) << function(self)
|
|
local modeType = GameInstance.mode.modeType
|
|
|
|
|
|
return modeType == GEnums.GameModeType.Default or
|
|
modeType == GEnums.GameModeType.SpaceShip
|
|
end
|
|
|
|
HL.Commit(UIRestoreSystem)
|
|
return UIRestoreSystem |