local WearingShow = {} WearingShow.__index = WearingShow 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") local LocalPlayer = game.Players.LocalPlayer local CommonFolder = LocalPlayer:WaitForChild("PlayerScripts"):WaitForChild("UI"):WaitForChild("Common") local EquipmentModelDetail = require(CommonFolder:WaitForChild("EquipmentModelDetail")) function WearingShow:Init(data: table) local self = {} self.Data = data self.Variables = { ["_btnClick"] = 0, ["_imgBg"] = 0, ["_imgIcon"] = 0, ["_tmpQuality"] = 0, ["_tmpName"] = 0, ["_imgView"] = 0, } self.Connections = {} setmetatable(self, WearingShow) return self end function WearingShow:Refresh() -- 槽位为空 if self.Data.id == nil then self.Variables._imgIcon.Image = "" self.Variables._imgBg.Visible = true self.Variables._tmpQuality.Text = "" self.Variables._tmpName.Text = "" else -- 槽位有装备 local itemData = Utils:GetIdDataFromJson(JsonItemProp, self.Data.orgId) self.Variables._imgIcon.Image = Localization:GetImageData(itemData.iconId) self.Variables._imgBg.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 end function WearingShow:OnInitFinish() local con = self.Variables._btnClick.MouseButton1Click:Connect(function() if self.Data == {} then -- TODO: 之后做提示弹窗 else self.TopUI:ShowDetailData(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 WearingShow:Destroy() for k, v in pairs(self) do self[k] = nil end self = nil end return WearingShow