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,74 @@
|
||||
local SkillActionIconCtrl = class("SkillActionIconCtrl", BaseCtrl)
|
||||
local GamepadUIManager = require("GameCore.Module.GamepadUIManager")
|
||||
local MouseName = {
|
||||
leftButton = 1,
|
||||
rightButton = 2,
|
||||
middleButton = 3,
|
||||
backButton = 4,
|
||||
forwardButton = 5
|
||||
}
|
||||
local ImageKey = {backspace = 1, enter = 2}
|
||||
SkillActionIconCtrl._mapNodeConfig = {
|
||||
Keyboard = {},
|
||||
goKey = {},
|
||||
imgKeyboard = {sComponentName = "Image"},
|
||||
txtKeyboard = {sComponentName = "TMP_Text"},
|
||||
Mouse = {},
|
||||
imgMouse = {sComponentName = "Image"},
|
||||
Gamepad = {},
|
||||
imgGamepad = {sComponentName = "Image"},
|
||||
KeyNone = {}
|
||||
}
|
||||
SkillActionIconCtrl._mapEventConfig = {
|
||||
GamepadUIChange = "OnEvent_GamepadUIChange"
|
||||
}
|
||||
function SkillActionIconCtrl:Awake()
|
||||
self.bMobile = NovaAPI.IsMobilePlatform()
|
||||
end
|
||||
function SkillActionIconCtrl:SetActionBind(sGamepadBind, mapKeyboardBind)
|
||||
self.sGamepadBind = sGamepadBind
|
||||
self.mapKeyboardBind = mapKeyboardBind
|
||||
self:RefreshActionBind()
|
||||
end
|
||||
function SkillActionIconCtrl:RefreshActionBind()
|
||||
local nUIType = GamepadUIManager.GetCurUIType()
|
||||
self._mapNode.KeyNone:SetActive(false)
|
||||
self._mapNode.Gamepad:SetActive(nUIType == AllEnum.GamepadUIType.PS or nUIType == AllEnum.GamepadUIType.Xbox)
|
||||
self._mapNode.Keyboard:SetActive((nUIType == AllEnum.GamepadUIType.Other or nUIType == AllEnum.GamepadUIType.Keyboard or nUIType == AllEnum.GamepadUIType.Mouse) and not self.bMobile and not MouseName[self.mapKeyboardBind.name])
|
||||
self._mapNode.Mouse:SetActive((nUIType == AllEnum.GamepadUIType.Other or nUIType == AllEnum.GamepadUIType.Keyboard or nUIType == AllEnum.GamepadUIType.Mouse) and not self.bMobile and MouseName[self.mapKeyboardBind.name])
|
||||
if nUIType == AllEnum.GamepadUIType.Other or nUIType == AllEnum.GamepadUIType.Keyboard or nUIType == AllEnum.GamepadUIType.Mouse then
|
||||
if not self.bMobile then
|
||||
if self.mapKeyboardBind.name == "" then
|
||||
self._mapNode.Keyboard:SetActive(false)
|
||||
self._mapNode.Mouse:SetActive(false)
|
||||
self._mapNode.KeyNone:SetActive(true)
|
||||
elseif MouseName[self.mapKeyboardBind.name] then
|
||||
local sIcon = ConfigTable.GetField("GamepadButton", self.mapKeyboardBind.name, "XboxIcon")
|
||||
self:SetPngSprite(self._mapNode.imgMouse, sIcon)
|
||||
elseif ImageKey[self.mapKeyboardBind.name] then
|
||||
self._mapNode.imgKeyboard.gameObject:SetActive(true)
|
||||
self._mapNode.goKey:SetActive(false)
|
||||
local sIcon = ConfigTable.GetField("GamepadButton", self.mapKeyboardBind.name, "XboxIcon")
|
||||
self:SetPngSprite(self._mapNode.imgKeyboard, sIcon)
|
||||
NovaAPI.SetImageNativeSize(self._mapNode.imgKeyboard)
|
||||
else
|
||||
self._mapNode.imgKeyboard.gameObject:SetActive(false)
|
||||
self._mapNode.goKey:SetActive(true)
|
||||
local sName = GamepadUIManager.GetInputName(self.mapKeyboardBind)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtKeyboard, sName)
|
||||
end
|
||||
end
|
||||
else
|
||||
local sIcon
|
||||
if nUIType == AllEnum.GamepadUIType.PS then
|
||||
sIcon = ConfigTable.GetField("GamepadButton", self.sGamepadBind, "PlayStationIcon")
|
||||
elseif nUIType == AllEnum.GamepadUIType.Xbox then
|
||||
sIcon = ConfigTable.GetField("GamepadButton", self.sGamepadBind, "XboxIcon")
|
||||
end
|
||||
self:SetPngSprite(self._mapNode.imgGamepad, sIcon)
|
||||
end
|
||||
end
|
||||
function SkillActionIconCtrl:OnEvent_GamepadUIChange(sName, nBeforeType, nAfterType)
|
||||
self:RefreshActionBind()
|
||||
end
|
||||
return SkillActionIconCtrl
|
||||
Reference in New Issue
Block a user