179 lines
4.0 KiB
Lua
179 lines
4.0 KiB
Lua
local UIWidgetBase = require_ex('Common/Core/UIWidgetBase')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CinematicExUI = HL.Class('CinematicExUI', UIWidgetBase)
|
|
|
|
|
|
CinematicExUI.m_exNodeExistTime = HL.Field(HL.Number) << -1
|
|
|
|
|
|
CinematicExUI.m_pause = HL.Field(HL.Boolean) << false
|
|
|
|
|
|
CinematicExUI.m_tickKey = HL.Field(HL.Number) << -1
|
|
|
|
|
|
CinematicExUI.m_exNodeTween = HL.Field(HL.Any)
|
|
|
|
|
|
|
|
|
|
CinematicExUI._OnFirstTimeInit = HL.Override() << function(self)
|
|
self.view.touch.onClick:RemoveAllListeners()
|
|
self.view.touch.onClick:AddListener(function()
|
|
if self.m_exNodeExistTime < 0 then
|
|
self:_TrySwitchExNode(true)
|
|
else
|
|
self:RefreshExistTime(Tables.cinematicConst.cinematicUIShowTime + UIConst.CINEMATIC_TWEEN_TIME)
|
|
end
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
CinematicExUI.InitCinematicExUI = HL.Method() << function(self)
|
|
self:_FirstTimeInit()
|
|
self:Clear()
|
|
self:_EnableControllerKeyCheckTick()
|
|
end
|
|
|
|
|
|
|
|
CinematicExUI.Clear = HL.Method() << function(self)
|
|
self.m_pause = false
|
|
self.view.exUINode.gameObject:SetActive(false)
|
|
self:RefreshExistTime(-1)
|
|
self:_ClearExNodeTween()
|
|
self:_ClearTickUpdate()
|
|
self:_DisableControllerKeyCheckTick()
|
|
end
|
|
|
|
|
|
|
|
|
|
CinematicExUI.RefreshExistTime = HL.Method(HL.Number) << function(self, existTime)
|
|
self.m_exNodeExistTime = existTime
|
|
end
|
|
|
|
|
|
|
|
|
|
CinematicExUI.SetPause = HL.Method(HL.Boolean) << function(self, pause)
|
|
self.m_pause = pause
|
|
end
|
|
|
|
|
|
|
|
|
|
CinematicExUI._TrySwitchExNode = HL.Method(HL.Boolean) << function(self, show)
|
|
if self.m_exNodeTween then
|
|
return
|
|
end
|
|
|
|
local exUINode = self.view.exUINode
|
|
local active = exUINode.gameObject.activeSelf
|
|
if show and not active then
|
|
self:_ClearExNodeTween()
|
|
exUINode.gameObject:SetActive(true)
|
|
exUINode.alpha = 0
|
|
self.m_exNodeTween = exUINode:DOFade(1, UIConst.CINEMATIC_TWEEN_TIME)
|
|
self:RefreshExistTime(Tables.cinematicConst.cinematicUIShowTime + UIConst.CINEMATIC_TWEEN_TIME)
|
|
self.m_exNodeTween:OnComplete(function()
|
|
self:_ClearExNodeTween()
|
|
end)
|
|
|
|
self:_ClearTickUpdate()
|
|
self.m_tickKey = LuaUpdate:Add("Tick", function(deltaTime)
|
|
if not self.m_pause then
|
|
if self.m_exNodeExistTime > 0 then
|
|
self.m_exNodeExistTime = self.m_exNodeExistTime - deltaTime
|
|
else
|
|
self:_TrySwitchExNode(false)
|
|
end
|
|
end
|
|
end)
|
|
|
|
elseif not show and active then
|
|
self:_ClearExNodeTween()
|
|
exUINode.gameObject:SetActive(true)
|
|
exUINode.alpha = 1
|
|
self.m_exNodeTween = exUINode:DOFade(0, UIConst.CINEMATIC_TWEEN_TIME)
|
|
self.m_exNodeTween:OnComplete(function()
|
|
self:_ClearExNodeTween()
|
|
exUINode.gameObject:SetActive(false)
|
|
self:_ClearTickUpdate()
|
|
end)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
CinematicExUI._ClearExNodeTween = HL.Method() << function(self)
|
|
if self.m_exNodeTween then
|
|
self.m_exNodeTween:Kill()
|
|
end
|
|
self.m_exNodeTween = nil
|
|
end
|
|
|
|
|
|
|
|
CinematicExUI._ClearTickUpdate = HL.Method() << function(self)
|
|
if self.m_tickKey > 0 then
|
|
LuaUpdate:Remove(self.m_tickKey)
|
|
end
|
|
self.m_tickKey = -1
|
|
end
|
|
|
|
|
|
|
|
|
|
CinematicExUI.m_controllerKeyCheckTick = HL.Field(HL.Number) << -1
|
|
|
|
|
|
|
|
CinematicExUI._EnableControllerKeyCheckTick = HL.Method() << function(self)
|
|
if not DeviceInfo.usingController then
|
|
return
|
|
end
|
|
|
|
self.m_controllerKeyCheckTick = LuaUpdate:Add("Tick", function(deltaTime)
|
|
if InputManagerInst:AnyGamepadKey() then
|
|
if self.m_exNodeExistTime < 0 then
|
|
self:_TrySwitchExNode(true)
|
|
else
|
|
self:RefreshExistTime(Tables.cinematicConst.cinematicUIShowTime + UIConst.CINEMATIC_TWEEN_TIME)
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
CinematicExUI._DisableControllerKeyCheckTick = HL.Method() << function(self)
|
|
if self.m_controllerKeyCheckTick > 0 then
|
|
LuaUpdate:Remove(self.m_controllerKeyCheckTick)
|
|
self.m_controllerKeyCheckTick = -1
|
|
end
|
|
end
|
|
|
|
|
|
|
|
HL.Commit(CinematicExUI)
|
|
return CinematicExUI
|
|
|