PGRData/Resources/Scripts/XEntity/XItem/XItem.lua
2022-12-26 14:06:01 +05:30

73 lines
No EOL
1.5 KiB
Lua

XItem = XClass(nil, "XItem")
local Default = {
Id = 0,
Count = 0,
BuyTimes = 0,
RefreshTime = 0,
CreateTime = 0,
}
function XItem:Ctor(itemData, template)
for key in pairs(Default) do
self[key] = Default[key]
end
if template then
self.Template = template
self.Id = template.Id
end
self:RefreshItem(itemData)
end
function XItem:RefreshItem(itemData)
if not itemData then
return
end
if itemData.Count then
self:SetCount(itemData.Count)
end
if itemData.BuyTimes then
self:SetBuyTimes(itemData.BuyTimes)
end
if itemData.RefreshTime then
self.RefreshTime = itemData.RefreshTime
end
if itemData.CreateTime then
self.CreateTime = itemData.CreateTime
end
end
function XItem:SetCount(count)
if self.Count == count then
return
end
self.Count = count
CsXGameEventManager.Instance:Notify(XEventId.EVENT_ITEM_COUNT_UPDATE_PREFIX .. self.Id, self.Id, self.Count)
XEventManager.DispatchEvent(XEventId.EVENT_ITEM_COUNT_UPDATE_PREFIX .. self.Id, self.Id, self.Count)
end
function XItem:SetBuyTimes(buyTimes)
if buyTimes == self.BuyTimes then
return
end
self.BuyTimes = buyTimes
XEventManager.DispatchEvent(XEventId.EVENT_ITEM_BUYTIEMS_UPDATE_PREFIX .. self.Id, self.Id, self.BuyTimes)
end
function XItem:GetCount()
return self.Count
end
function XItem:GetMaxCount()
return self.Template.MaxCount
end