2025-08-15 17:28:23 +08:00

81 lines
2.6 KiB
Plaintext

local PackageShow = {}
PackageShow.__index = PackageShow
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Utils = require(ReplicatedStorage.Tools.Utils)
local Localization = require(ReplicatedStorage.Tools.Localization)
local JsonEquipment = require(ReplicatedStorage.Json.Equipment)
local JsonItemProp = require(ReplicatedStorage.Json.ItemProp)
local FolderEquipment = ReplicatedStorage:WaitForChild("Prefabs"):WaitForChild("Equipments")
--> Variables
local LocalPlayer = game.Players.LocalPlayer
--> Components
local CommonFolder = LocalPlayer:WaitForChild("PlayerScripts"):WaitForChild("UI"):WaitForChild("Common")
local EquipmentModelDetail = require(CommonFolder:WaitForChild("EquipmentModelDetail"))
function PackageShow:Init(data: table)
local self = {}
self.Data = data
self.Variables = {
["_btnClick"] = 0,
["_imgIcon"] = 0,
["_tmpQuality"] = 0,
["_tmpName"] = 0,
["_imgView"] = 0,
}
self.Connections = {}
setmetatable(self, PackageShow)
return self
end
function PackageShow:Refresh()
local itemData = Utils:GetIdDataFromJson(JsonItemProp, self.Data.orgId)
self.Variables._imgIcon.Image = Localization:GetImageData(itemData.iconId)
self.Variables._imgIcon.Visible = false
self.Variables._tmpQuality.Text = Localization:GetColoredEquipmentQualityDesc(self.Data.quality)
self.Variables._tmpName.Text = Localization:GetLanguageData(itemData.nameId)
-- 模型展示
EquipmentModelDetail:ShowDetail(self.Variables["_imgView"], self.Data.orgId, false)
end
function PackageShow:OnInitFinish()
local con = self.Variables._btnClick.MouseButton1Click:Connect(function()
if self.Data == {} then
-- TODO: 之后做提示弹窗
else
self.TopUI:SetSelectId(self.Data.id)
end
end)
table.insert(self.Connections, con)
if self.Data.instance then
local wearingCon = self.Data.instance:GetAttributeChangedSignal("wearing"):Connect(function()
local oldWearing = self.Data.wearing
local newWearing = self.Data.instance:GetAttribute("wearing")
if oldWearing ~= newWearing then
if newWearing > 0 then
self.TopUI:WearRefresh(self.Data)
else
self.TopUI:UnwearRefresh(self.Data)
end
end
end)
table.insert(self.Connections, wearingCon)
end
end
function PackageShow:Destroy()
for k, v in pairs(self) do
self[k] = nil
end
self = nil
end
return PackageShow