PGRData/Script/matrix/xui/xuigoldenminer/grid/XUiItemGrid.lua

79 lines
2.6 KiB
Lua
Raw Normal View History

2024-09-01 20:49:41 +00:00
---@class XUiGoldenMinerItemGrid
local XUiItemGrid = XClass(nil, "XUiItemGrid")
2024-09-01 20:49:41 +00:00
---黄金矿工通用道具格子
function XUiItemGrid:Ctor(ui, isGame)
self.GameObject = ui.gameObject
self.Transform = ui.transform
2024-09-01 20:49:41 +00:00
self.IsGame = isGame
XTool.InitUiObject(self)
self.DataDb = XDataCenter.GoldenMinerManager.GetGoldenMinerDataDb()
XUiHelper.RegisterClickEvent(self, self.BtnClick, self.OnBtnClick)
self.GameObject:SetActiveEx(true)
2024-09-01 20:49:41 +00:00
if isGame and self.PanelPropNot then
self.PanelPropNot.gameObject:SetActiveEx(false)
end
---@type XUiPc.XUiPcCustomKey
self.PcBtnShow = XUiHelper.TryGetComponent(self.Transform, "GridSubSkillPC", "XUiPcCustomKey")
if self.PcBtnShow then
self.PcBtnShow.gameObject:SetActiveEx(false)
end
end
2024-09-01 20:49:41 +00:00
---@param itemColumn XGoldenMinerItemData
function XUiItemGrid:Refresh(itemColumn, itemIndex)
self.ItemColumn = itemColumn
2024-09-01 20:49:41 +00:00
if self.PcBtnShow then
self.PcBtnShow:SetKey(CS.XOperationType.ActivityGame, itemIndex + XGoldenMinerConfigs.GAME_PC_KEY.D)
self.PcBtnShow.gameObject:SetActiveEx(XDataCenter.UiPcManager.IsPc())
end
if not itemColumn then
self:SetRImgIconActive(false)
return
end
local itemId = itemColumn:GetItemId()
local iconPath = XGoldenMinerConfigs.GetItemIcon(itemId)
if self.RImgIcon then
self.RImgIcon:SetRawImage(iconPath)
end
2024-09-01 20:49:41 +00:00
self:SetRImgIconActive(self.DataDb:IsUseItem(itemColumn:GetGridIndex()))
end
function XUiItemGrid:SetUseItemActive(isActive)
self.BtnClick.gameObject:SetActiveEx(isActive)
end
function XUiItemGrid:SetRImgIconActive(isActive)
if self.RImgIcon then
self.RImgIcon.gameObject:SetActiveEx(isActive)
end
if self.ImgNotItem then
self.ImgNotItem.gameObject:SetActiveEx(not isActive)
end
2024-09-01 20:49:41 +00:00
local icon = XGoldenMinerConfigs.GetGameItemBgIcon(isActive)
if self.IsGame and self.Bg and not string.IsNilOrEmpty(icon) then
self.Bg:SetSprite(icon)
end
end
function XUiItemGrid:GetItemColumn()
return self.ItemColumn
end
function XUiItemGrid:OnBtnClick()
local itemColumn = self.ItemColumn
local itemIndex = not XTool.IsTableEmpty(itemColumn) and itemColumn:GetGridIndex()
if not itemIndex then
return
end
2024-09-01 20:49:41 +00:00
if self.IsGame then --玩法中使用道具
XEventManager.DispatchEvent(XEventId.EVENT_GOLDEN_MINER_GAME_USE_ITEM, self)
else --商店中准备出售道具
XEventManager.DispatchEvent(XEventId.EVENT_GOLDEN_MINER_SHOP_OPEN_TIP, nil, self, self.Transform.position.x)
end
end
return XUiItemGrid