Files
SL1900 5e0d58cfad 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
2025-12-03 01:00:00 +09:00

75 lines
3.2 KiB
Lua

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