PGRData/Script/matrix/xui/xuirestaurant/xuigrid/XUiGridBenchProduct.lua
2024-09-01 22:49:41 +02:00

70 lines
No EOL
2.2 KiB
Lua

---@class XUiGridBenchProduct
local XUiGridBenchProduct = XClass(nil, "XUiGridBenchProduct")
function XUiGridBenchProduct:Ctor(ui, onClick)
XTool.InitUiObjectByUi(self, ui)
self.OnClick = onClick
self.BtnClick.CallBack = function()
self:OnBtnClick()
end
self:SetSelect(false)
end
--- 格子刷新
---@param product XRestaurantProduct
---@return void
--------------------------
function XUiGridBenchProduct:Refresh(product, areaType, selectId, isUrgent)
if not product then
self.GameObject:SetActiveEx(false)
return
end
self.Product = product
local unlock = product:IsUnlock()
self.PanelDisable.gameObject:SetActiveEx(not unlock)
self.RImgIcon:SetRawImage(product:GetProductIcon())
self.TxtName.text = product:GetProperty("_Name")
local isHot = product:GetProperty("_HotSale")
self.PanelHot.gameObject:SetActiveEx(isHot and not isUrgent)
self.PanelUrgent.gameObject:SetActiveEx(isUrgent)
self.TxtInventory.text = product:GetCountDesc(1)
self.ImgFull.gameObject:SetActiveEx(product:IsFull())
local isIngredientArea = XRestaurantConfigs.CheckIsIngredientArea(areaType)
self.TxtExpenditure.gameObject:SetActiveEx(not isIngredientArea)
if not isIngredientArea then
self.RImgCurrency.gameObject:SetActiveEx(true)
self.TxtExpenditure.text = product:GetFinalPrice()
local icon = XDataCenter.ItemManager.GetItemIcon(XRestaurantConfigs.ItemId.RestaurantUpgradeCoin)
self.RImgCurrency:SetRawImage(icon)
end
local productId = product:GetProperty("_Id")
self.ImgQualityBg:SetSprite(product:GetQualityIcon(false))
self:SetSelect(productId == selectId)
end
function XUiGridBenchProduct:SetSelect(select)
self.IsSelect = select
self.ImgNormal.gameObject:SetActiveEx(not select)
self.ImgSelect.gameObject:SetActiveEx(select)
end
function XUiGridBenchProduct:OnBtnClick()
if not self.Product or self.IsSelect then
return
end
local unlock = self.Product:IsUnlock()
if not unlock then
XUiManager.TipText("NotUnlock")
return
end
self:SetSelect(true)
if self.OnClick then self.OnClick(self) end
end
return XUiGridBenchProduct