local DyeAppearanceInfo = class("DyeAppearanceInfo") function DyeAppearanceInfo:initialize() self.serverInfo_DyeAppearanceDict = {} end function DyeAppearanceInfo:SetDyeAppearanceInfos(infos) for i, v in ipairs(infos) do self.serverInfo_DyeAppearanceDict[v.appearanceId] = v end end function DyeAppearanceInfo:GetDyeAppearanceCount() return table.getDictCount(self.serverInfo_DyeAppearanceDict) end function DyeAppearanceInfo:UpdatePartInfo(appearanceId, partInfo) local info = self.serverInfo_DyeAppearanceDict[appearanceId] if info then local partId = partInfo.partId for i, v in ipairs(info.partList) do if v.partId == partId then info.partList[i] = partInfo break end end end end function DyeAppearanceInfo:UpdateDyeColor(appearanceId, partDyeInfo) local info = self.serverInfo_DyeAppearanceDict[appearanceId] if info then for _, v in ipairs(partDyeInfo) do local partId = v.partId local curColorId = v.curColorId for _, part in ipairs(info.partList) do if part.partId == partId then part.curColorId = curColorId break end end end end end function DyeAppearanceInfo:GetIsAppearanceActive(appearanceId) local info = self.serverInfo_DyeAppearanceDict[appearanceId] if info then return true end return false end function DyeAppearanceInfo:GetCurDyePartColorId(appearanceId) local part1, part2, part3, part4 local info = self.serverInfo_DyeAppearanceDict[appearanceId] if info then for i, v in ipairs(info.partList) do if v.partId == 1 then part1 = v.curColorId elseif v.partId == 2 then part2 = v.curColorId elseif v.partId == 3 then part3 = v.curColorId elseif v.partId == 4 then part4 = v.curColorId end end end return part1, part2, part3, part4 end function DyeAppearanceInfo:GetPartActiveColorList(appearanceId, partIndex) local info = self.serverInfo_DyeAppearanceDict[appearanceId] if info then local partInfo for i, v in ipairs(info.partList) do if v.partId == partIndex then partInfo = v break end end return partInfo.colorList end return nil end function DyeAppearanceInfo:GetIsColorActive(appearanceId, partIndex, colorId) local info = self.serverInfo_DyeAppearanceDict[appearanceId] if info then local partInfo for i, v in ipairs(info.partList) do if v.partId == partIndex then partInfo = v break end end for i, v in ipairs(partInfo.colorList) do if v == colorId then return true end end end return false end function DyeAppearanceInfo:GetAppearanceLibraryLevel(appearanceId) local info = self.serverInfo_DyeAppearanceDict[appearanceId] if info then return info.DCPictorialLv end return 0 end function DyeAppearanceInfo:GetDyeLibrarySuitList(appearanceId) local info = self.serverInfo_DyeAppearanceDict[appearanceId] if info then return info.HSPictorialSuit end return nil end return DyeAppearanceInfo