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