PGRData/Script/matrix/xui/xuicollectionwall/xuicollectionwallgrid/XUiGridViewCollection.lua

87 lines
No EOL
2.9 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local XUiGridViewCollection = XClass(nil, "XUiGridViewCollection")
local XUiCollectionStyle = require("XUi/XUiMedal/XUiCollectionStyle")
local Vector3 = CS.UnityEngine.Vector3
function XUiGridViewCollection:Ctor(ui, collectionData, inType, otherPlayerCollection)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.OtherPlayerCollection = otherPlayerCollection
self.Id = collectionData.Id
self.InType = inType
self.CollectionStyleDic = {} -- Key:收藏品Id Value:XUiCollectionStyle脚本
XTool.InitUiObject(self)
-- 监听点击
self.GoInputHandler = self.Transform:GetComponent(typeof(CS.XGoInputHandler))
if XTool.UObjIsNil(self.GoInputHandler) then
self.GoInputHandler = self.GameObject:AddComponent(typeof(CS.XGoInputHandler))
end
if not XTool.UObjIsNil(self.GoInputHandler) then
self.GoInputHandler:AddPointerClickListener(function(eventData)
self:OnClick(eventData)
end)
end
self:InitComponent()
self:Refresh(collectionData)
end
function XUiGridViewCollection:InitComponent()
local data
if self.InType == XDataCenter.MedalManager.InType.OtherPlayer then
data = self.OtherPlayerCollection
elseif self.InType == XDataCenter.MedalManager.InType.Normal then
-- 查看自己
data = XDataCenter.MedalManager.GetScoreTitleById(self.Id)
end
local styleObj = self.CollectionStyleNode.gameObject:LoadPrefab(data.PrefabPath)
self.CollectionStyleDic[data] = XUiCollectionStyle.New(styleObj, data)
self.RImBlack.gameObject:SetActiveEx(false)
end
function XUiGridViewCollection:Refresh(collectionData)
local gridSize = XCollectionWallConfigs.GetCollectionSize(collectionData.SizeId)
local gridPos = {}
gridPos.x = collectionData.X
gridPos.y = collectionData.Y
self:SetPos(gridPos, gridSize)
self.TxtName.text = XMedalConfigs.GetCollectionNameById(collectionData.Id)
end
function XUiGridViewCollection:SetPos(gridPos, gridSize)
if XTool.UObjIsNil(self.Transform) then
return
end
local posVector2 = XDataCenter.CollectionWallManager.GetLocalPosByGridPos(gridPos, gridSize)
self.Transform.localPosition = Vector3(posVector2.x, posVector2.y, 0)
end
---
--- 点击
function XUiGridViewCollection:OnClick()
local data
if self.InType == XDataCenter.MedalManager.InType.OtherPlayer then
data = self.OtherPlayerCollection
elseif self.InType == XDataCenter.MedalManager.InType.Normal then
-- 查看自己
data = XDataCenter.MedalManager.GetScoreTitleById(self.Id)
end
if not data then
XLog.Error("XUiGridViewCollection:OnClick函数错误找不到对应的收藏品数据")
return
end
XLuaUiManager.Open("UiCollectionTip", data, XDataCenter.MedalManager.InType.Normal)
end
function XUiGridViewCollection:Destroy()
self.GoInputHandler:RemoveAllListeners()
end
return XUiGridViewCollection