147 lines
4.1 KiB
Lua
147 lines
4.1 KiB
Lua
------------------------------------------------
|
|
--作者: 杨全福
|
|
--日期: 2021-02-24
|
|
--文件: MainCustomBtnSystem.lua
|
|
--模块: MainCustomBtnSystem
|
|
--描述: 自定义按钮系统
|
|
------------------------------------------------
|
|
|
|
local L_MainCustomBtn = require "Logic.MainCustomBtnSystem.MainCustomBtn"
|
|
|
|
local MainCustomBtnSystem = {
|
|
BtnList = List:New(),
|
|
}
|
|
|
|
function MainCustomBtnSystem:Initialize()
|
|
self.BtnList:Clear()
|
|
end
|
|
|
|
function MainCustomBtnSystem:UnInitialize()
|
|
self.BtnList:Clear()
|
|
end
|
|
|
|
local function L_BtnShort(left, right)
|
|
local _lTime = left:GetRemainTime()
|
|
local _rTime = right:GetRemainTime()
|
|
if not left.UseRemainTime then
|
|
_lTime = -999999999
|
|
end
|
|
if not right.UseRemainTime then
|
|
_rTime = -999999999
|
|
end
|
|
|
|
if _lTime == _rTime then
|
|
return left.ID < right.ID
|
|
end
|
|
return _lTime < _rTime
|
|
end
|
|
|
|
--添加限时按钮
|
|
function MainCustomBtnSystem:AddLimitBtn(iconID, showText, remainTime, customData, clickBack, showEffect, showRedPoint, remainTimeSuf, useServerTime, tweenRot, vfxId)
|
|
local _newBtn = L_MainCustomBtn:New()
|
|
_newBtn.IconID = iconID
|
|
_newBtn.ShowText = showText
|
|
_newBtn.UseServerTime = useServerTime
|
|
_newBtn:SetRemainTime(remainTime)
|
|
_newBtn.RemainTimeSuf = remainTimeSuf
|
|
_newBtn.CustomData = customData
|
|
_newBtn.ClickCallBack = clickBack
|
|
_newBtn.UseRemainTime = true
|
|
_newBtn.ShowEffect = showEffect
|
|
_newBtn.ShowRedPoint = showRedPoint
|
|
_newBtn.TweenRot = tweenRot
|
|
_newBtn.VfxId = vfxId
|
|
self.BtnList:Add(_newBtn)
|
|
self.BtnList:Sort(L_BtnShort)
|
|
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_UPDATECUSTONBTNS)
|
|
return _newBtn.ID
|
|
end
|
|
|
|
--添加不限时按钮
|
|
function MainCustomBtnSystem:AddBtn(iconID, showText, customData, clickBack, showEffect, showRedPoint, tweenRot, vfxId)
|
|
local _newBtn = L_MainCustomBtn:New()
|
|
_newBtn.IconID = iconID
|
|
_newBtn.ShowText = showText
|
|
_newBtn.RemainTime = 0
|
|
_newBtn.CustomData = customData
|
|
_newBtn.ClickCallBack = clickBack
|
|
_newBtn.UseRemainTime = false
|
|
_newBtn.ShowEffect = showEffect
|
|
_newBtn.ShowRedPoint = showRedPoint
|
|
_newBtn.TweenRot = tweenRot
|
|
_newBtn.VfxId = vfxId
|
|
self.BtnList:Add(_newBtn)
|
|
self.BtnList:Sort(L_BtnShort)
|
|
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_UPDATECUSTONBTNS)
|
|
return _newBtn.ID
|
|
end
|
|
|
|
--设置显示红点
|
|
function MainCustomBtnSystem:SetShowRedPoint(id, show)
|
|
local _succ = false
|
|
for i = 1, #self.BtnList do
|
|
local _btn = self.BtnList[i]
|
|
if _btn.ID == id then
|
|
if _btn.ShowRedPoint ~= show then
|
|
_btn.ShowRedPoint = show
|
|
_succ = true
|
|
end
|
|
break
|
|
end
|
|
end
|
|
if _succ then
|
|
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_UPDATECUSTONBTNS)
|
|
end
|
|
return _succ
|
|
end
|
|
|
|
--设置显示特效
|
|
function MainCustomBtnSystem:SetShowEffect(id, show)
|
|
local _succ = false
|
|
for i = 1, #self.BtnList do
|
|
local _btn = self.BtnList[i]
|
|
if _btn.ID == id then
|
|
if _btn.ShowEffect ~= show then
|
|
_btn.ShowEffect = show
|
|
_succ = true
|
|
end
|
|
break
|
|
end
|
|
end
|
|
|
|
if _succ then
|
|
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_UPDATECUSTONBTNS)
|
|
end
|
|
return _succ
|
|
end
|
|
--删除按钮
|
|
function MainCustomBtnSystem:RemoveBtn(id)
|
|
local _succ = false
|
|
for i = 1, #self.BtnList do
|
|
if self.BtnList[i].ID == id then
|
|
self.BtnList:RemoveAt(i)
|
|
_succ = true
|
|
break
|
|
end
|
|
end
|
|
if _succ then
|
|
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_UPDATECUSTONBTNS)
|
|
end
|
|
end
|
|
--更新
|
|
function MainCustomBtnSystem:Update()
|
|
local _remove = false
|
|
for i = #self.BtnList, 1, -1 do
|
|
local _btn = self.BtnList[i]
|
|
if _btn.UseRemainTime and _btn:GetRemainTime() <= 0 then
|
|
self.BtnList:RemoveAt(i)
|
|
_remove = true
|
|
end
|
|
end
|
|
|
|
if _remove then
|
|
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_UPDATECUSTONBTNS)
|
|
end
|
|
end
|
|
|
|
return MainCustomBtnSystem |