134 lines
4.7 KiB
Lua
134 lines
4.7 KiB
Lua
|
XUiGridLikeMessageItem = XClass(nil, "XUiGridLikeMessageItem")
|
|||
|
|
|||
|
local ArrowDown = CS.UnityEngine.Vector3.one
|
|||
|
local ArrowUp = CS.UnityEngine.Vector3(1, -1, 1)
|
|||
|
local ImgContentSize = CS.UnityEngine.Vector2.zero
|
|||
|
local ItemContentSize = CS.UnityEngine.Vector2.zero
|
|||
|
|
|||
|
function XUiGridLikeMessageItem:Ctor(ui)
|
|||
|
self.GameObject = ui.gameObject
|
|||
|
self.Transform = ui.transform
|
|||
|
self:InitAutoScript()
|
|||
|
self:InitUiAfterAuto()
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridLikeMessageItem:Init(uiRoot)
|
|||
|
self.UiRoot = uiRoot
|
|||
|
end
|
|||
|
|
|||
|
-- auto
|
|||
|
-- Automatic generation of code, forbid to edit
|
|||
|
function XUiGridLikeMessageItem:InitAutoScript()
|
|||
|
self:AutoInitUi()
|
|||
|
self:AutoAddListener()
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridLikeMessageItem:AutoInitUi()
|
|||
|
self.TxtTitle = self.Transform:Find("TxtTitle"):GetComponent("Text")
|
|||
|
self.ImgArrow = self.Transform:Find("ImgArrow"):GetComponent("Image")
|
|||
|
self.ImgContent = self.Transform:Find("ImgContent"):GetComponent("Image")
|
|||
|
self.TxtInfo = self.Transform:Find("ImgContent/TxtInfo"):GetComponent("Text")
|
|||
|
self.BtnOnUnlock = self.Transform:Find("BtnOnUnlock"):GetComponent("Button")
|
|||
|
self.ImgRedDot = self.Transform:Find("ImgRedDot"):GetComponent("Image")
|
|||
|
self.ImgLockBg = self.Transform:Find("ImgLockBg"):GetComponent("Image")
|
|||
|
self.ImgLock = self.Transform:Find("ImgLockBg/ImgLock"):GetComponent("Image")
|
|||
|
self.Txtlock = self.Transform:Find("Txtlock"):GetComponent("Text")
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridLikeMessageItem:RegisterClickEvent(uiNode, func)
|
|||
|
if func == nil then
|
|||
|
XLog.Error("XUiGridLikeMessageItem:RegisterClickEvent函数参数错误:参数func不能为空")
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
if type(func) ~= "function" then
|
|||
|
XLog.Error("XUiGridLikeMessageItem:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func))
|
|||
|
end
|
|||
|
|
|||
|
local listener = function(...)
|
|||
|
func(self, ...)
|
|||
|
end
|
|||
|
|
|||
|
CsXUiHelper.RegisterClickEvent(uiNode, listener)
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridLikeMessageItem:AutoAddListener()
|
|||
|
|
|||
|
end
|
|||
|
-- auto
|
|||
|
function XUiGridLikeMessageItem:InitUiAfterAuto()
|
|||
|
self.ImgArrowTransform = self.ImgArrow.transform
|
|||
|
self.ImgArrowTransform.localScale = ArrowDown
|
|||
|
self.ImgContentTransform = self.ImgContent.transform
|
|||
|
self.BtnOnUnlockCanvasGroup = self.Transform:Find("BtnOnUnlock"):GetComponent("CanvasGroup")
|
|||
|
self.TransformSizeDelta = self.Transform.sizeDelta
|
|||
|
self.ImgContentSizeDelta = self.ImgContentTransform.sizeDelta
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridLikeMessageItem:OnRefresh(datas)
|
|||
|
self.CharacterDatas = datas
|
|||
|
local characterId = self.UiRoot:GetCurrFavorabilityCharacter()
|
|||
|
local isUnlock = XDataCenter.FavorabilityManager.IsInformationUnlock(characterId, self.CharacterDatas.Id)
|
|||
|
local canUnlock = XDataCenter.FavorabilityManager.CanInformationUnlock(characterId, self.CharacterDatas.Id)
|
|||
|
|
|||
|
if isUnlock then
|
|||
|
self:ChangeBtnStates(true, false, false, "")
|
|||
|
self.TxtTitle.text = self.CharacterDatas.Title
|
|||
|
else
|
|||
|
self.TxtTitle.text = ""
|
|||
|
if canUnlock then
|
|||
|
self:ChangeBtnStates(false, true, false, "")
|
|||
|
else
|
|||
|
self:ChangeBtnStates(false, false, true, datas.ConditionDescript)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
self:ToggleContent(self.CharacterDatas.IsToggle or false)
|
|||
|
if self.CharacterDatas.IsToggle then
|
|||
|
self.ImgArrowTransform.localScale = ArrowUp
|
|||
|
else
|
|||
|
self.ImgArrowTransform.localScale = ArrowDown
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridLikeMessageItem:OnToggle()
|
|||
|
self.CharacterDatas.IsToggle = not self.CharacterDatas.IsToggle
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridLikeMessageItem:ToggleContent(isToggle)
|
|||
|
if self.CharacterDatas == nil then return end
|
|||
|
|
|||
|
self.ImgContent.gameObject:SetActive(isToggle)
|
|||
|
if isToggle then
|
|||
|
self.TxtInfo.text = self.CharacterDatas.Content
|
|||
|
local txtHeight = self.TxtInfo.preferredHeight
|
|||
|
ImgContentSize = CS.UnityEngine.Vector2(self.ImgContentSizeDelta.x, txtHeight + 30)
|
|||
|
ItemContentSize = CS.UnityEngine.Vector2(self.TransformSizeDelta.x, ImgContentSize.y + self.TransformSizeDelta.y)
|
|||
|
else
|
|||
|
self.TxtInfo.text = ""
|
|||
|
ItemContentSize = self.TransformSizeDelta
|
|||
|
ImgContentSize = CS.UnityEngine.Vector2(self.ImgContentSizeDelta.x, 0)
|
|||
|
end
|
|||
|
|
|||
|
self:OnResize()
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridLikeMessageItem:ChangeBtnStates(arrow, reddot, lockbg, lockTxt)
|
|||
|
self.ImgArrow.gameObject:SetActive(arrow)
|
|||
|
self.ImgRedDot.gameObject:SetActive(reddot)
|
|||
|
self.BtnOnUnlock.gameObject:SetActive(reddot)
|
|||
|
self.ImgLockBg.gameObject:SetActive(lockbg)
|
|||
|
self.Txtlock.text = lockTxt
|
|||
|
|
|||
|
if reddot then
|
|||
|
self.BtnOnUnlockCanvasGroup.alpha = 1
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridLikeMessageItem:OnResize()
|
|||
|
self.Transform.sizeDelta = ItemContentSize
|
|||
|
self.ImgContentTransform.sizeDelta = ImgContentSize
|
|||
|
end
|
|||
|
|
|||
|
|
|||
|
return XUiGridLikeMessageItem
|