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
2.7 KiB
Lua

local TemplateSkinCtrl = class("TemplateSkinCtrl", BaseCtrl)
TemplateSkinCtrl._mapNodeConfig = {
imgChose = {},
imgItemIcon = {sComponentName = "Image"},
imgFavorite = {},
goChoseTop = {},
txtChooseTxt = {
sComponentName = "TMP_Text",
sLanguageId = "Skin_Choose"
},
goLock = {},
goAccessChannel = {},
imgShopBg = {},
imgActivityBg = {},
imgAdvanceBg = {},
txtChannel = {sComponentName = "TMP_Text"},
imgSelect = {},
img3D = {},
imgCG = {},
imgMusic = {},
img2D = {},
btnGrid = {
sComponentName = "UIButton",
callback = "OnBtnItemClick"
}
}
TemplateSkinCtrl._mapEventConfig = {
[EventId.CharacterSkinChange] = "OnCharacterSkinChange"
}
function TemplateSkinCtrl:SetSkinData(skinData, bShowFavorite, bPreview)
local skinCfg = skinData:GetCfgData()
self.nCharId = skinData:GetCharId()
self.nSkinId = skinData:GetId()
self:RefreshChoseSkin()
self._mapNode.imgSelect.gameObject:SetActive(false)
self._mapNode.imgFavorite.gameObject:SetActive(bShowFavorite and skinData:CheckUnlock() and skinData:CheckFavorCG())
self:SetPngSprite(self._mapNode.imgItemIcon, skinCfg.Icon .. AllEnum.CharHeadIconSurfix.SK)
self._mapNode.goLock.gameObject:SetActive(not skinData:CheckUnlock() and not bPreview)
self._mapNode.imgShopBg.gameObject:SetActive(skinCfg.SourceDesc == GameEnum.skinSourceType.TIMELIMIT or skinCfg.SourceDesc == GameEnum.skinSourceType.BATTLEPASS)
self._mapNode.imgActivityBg.gameObject:SetActive(skinCfg.SourceDesc == GameEnum.skinSourceType.ACTIVITY)
self._mapNode.imgAdvanceBg.gameObject:SetActive(skinCfg.SourceDesc == GameEnum.skinSourceType.ADVANCE)
local sText = AllEnum.CharSkinSource[skinCfg.SourceDesc]
if sText ~= nil then
NovaAPI.SetTMPText(self._mapNode.txtChannel, ConfigTable.GetUIText(sText))
end
local tbSkinTags = skinData:GetSkinExtraTags()
for k, v in pairs(tbSkinTags) do
if v == GameEnum.skinExtraTag.MODEL then
self._mapNode.img3D:SetActive(true)
elseif v == GameEnum.skinExtraTag.IMAGE then
self._mapNode.imgCG:SetActive(true)
elseif v == GameEnum.skinExtraTag.MUSIC then
self._mapNode.imgMusic:SetActive(true)
elseif v == GameEnum.skinExtraTag.TWOD then
self._mapNode.img2D:SetActive(true)
end
end
end
function TemplateSkinCtrl:SetSelect(bSelect)
self._mapNode.imgSelect:SetActive(bSelect)
end
function TemplateSkinCtrl:RefreshChoseSkin(usingSkinId)
if nil == usingSkinId then
usingSkinId = PlayerData.Char:GetCharUsedSkinId(self.nCharId)
end
self._mapNode.imgChose.gameObject:SetActive(self.nSkinId == usingSkinId)
self._mapNode.goChoseTop.gameObject:SetActive(self.nSkinId == usingSkinId)
end
function TemplateSkinCtrl:OnCharacterSkinChange()
self:RefreshChoseSkin()
end
function TemplateSkinCtrl:OnBtnItemClick()
end
return TemplateSkinCtrl