Initial version - 1.2.0.60
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
local ActionBarCtrl = class("ActionBarCtrl", BaseCtrl)
|
||||
local GamepadUIManager = require("GameCore.Module.GamepadUIManager")
|
||||
ActionBarCtrl._mapNodeConfig = {
|
||||
rtContent = {sComponentName = "Transform"},
|
||||
goAction = {}
|
||||
}
|
||||
ActionBarCtrl._mapEventConfig = {
|
||||
GamepadUIChange = "OnEvent_GamepadUIChange"
|
||||
}
|
||||
function ActionBarCtrl:InitActionBar(tbConfig)
|
||||
if self.tbConfig and #tbConfig == #self.tbConfig then
|
||||
local bAllSame = true
|
||||
for i, v in ipairs(tbConfig) do
|
||||
if v.sAction ~= self.tbConfig[i].sAction then
|
||||
bAllSame = false
|
||||
break
|
||||
end
|
||||
end
|
||||
if bAllSame then
|
||||
return
|
||||
end
|
||||
end
|
||||
self.tbActionObj = {}
|
||||
self.tbActionImg = {}
|
||||
self.tbConfig = tbConfig
|
||||
delChildren(self._mapNode.rtContent)
|
||||
for _, v in pairs(tbConfig) do
|
||||
local goAction = instantiate(self._mapNode.goAction, self._mapNode.rtContent)
|
||||
goAction:SetActive(true)
|
||||
local imgAction = goAction.transform:Find("imgAction"):GetComponent("Image")
|
||||
local imgAction2 = goAction.transform:Find("imgAction2"):GetComponent("Image")
|
||||
local txtAction = goAction.transform:Find("txtAction"):GetComponent("TMP_Text")
|
||||
NovaAPI.SetTMPText(txtAction, ConfigTable.GetUIText(v.sLang))
|
||||
self.tbActionObj[v.sAction] = goAction
|
||||
self.tbActionImg[v.sAction] = imgAction
|
||||
if v.sAction2 then
|
||||
imgAction2.gameObject:SetActive(true)
|
||||
self.tbActionObj[v.sAction2] = goAction
|
||||
self.tbActionImg[v.sAction2] = imgAction2
|
||||
end
|
||||
end
|
||||
self:RefreshActionImage()
|
||||
end
|
||||
function ActionBarCtrl:ClearActionBar()
|
||||
self.tbActionObj = {}
|
||||
self.tbActionImg = {}
|
||||
self.tbConfig = nil
|
||||
delChildren(self._mapNode.rtContent)
|
||||
end
|
||||
function ActionBarCtrl:RefreshActionImage()
|
||||
local nUIType = GamepadUIManager.GetCurUIType()
|
||||
if nUIType == AllEnum.GamepadUIType.Other then
|
||||
self.gameObject:SetActive(false)
|
||||
return
|
||||
end
|
||||
self.gameObject:SetActive(true)
|
||||
for sAction, imgAction in pairs(self.tbActionImg) do
|
||||
local sIcon
|
||||
if nUIType == AllEnum.GamepadUIType.PS then
|
||||
sIcon = ConfigTable.GetField("GamepadAction", sAction, "PlayStationIcon")
|
||||
elseif nUIType == AllEnum.GamepadUIType.Xbox then
|
||||
sIcon = ConfigTable.GetField("GamepadAction", sAction, "XboxIcon")
|
||||
elseif nUIType == AllEnum.GamepadUIType.Keyboard or nUIType == AllEnum.GamepadUIType.Mouse then
|
||||
sIcon = ConfigTable.GetField("GamepadAction", sAction, "KeyboardIcon")
|
||||
end
|
||||
if sIcon == nil or sIcon == "" then
|
||||
self.tbActionObj[sAction]:SetActive(false)
|
||||
else
|
||||
self.tbActionObj[sAction]:SetActive(true)
|
||||
self:SetPngSprite(imgAction, sIcon)
|
||||
NovaAPI.SetImageNativeSize(imgAction)
|
||||
end
|
||||
end
|
||||
end
|
||||
function ActionBarCtrl:OnEvent_GamepadUIChange(sName, nBeforeType, nAfterType)
|
||||
if not self.tbActionImg then
|
||||
return
|
||||
end
|
||||
self:RefreshActionImage()
|
||||
end
|
||||
return ActionBarCtrl
|
||||
Reference in New Issue
Block a user