------------------------------------------------ --作者: 王圣 --日期: 2020-08-22 --文件: FashionTuJianData.lua --模块: FashionTuJianData --描述: 时装图鉴数据 ------------------------------------------------ local FashionData = { StarNum = 0, --是否穿戴 IsWear = false, --是否激活 IsActive = false, --是否是新增的 IsNew = false, CfgId = 0, Cfg = nil, IconId = -1, --模型ID ModelId = 0, --激活道具ID ItemId = 0, --{AttId : 属性ID, Value : 属性值, Add : 增加属性} ListAtt = List:New() } function FashionData:New(id, cfg) local _m = Utils.DeepCopy(self) _m.CfgId = id _m.Cfg = cfg return _m end --获取去配置ID function FashionData:GetCfgId() return self.CfgId end --获取获取配置数据 function FashionData:GetCfg() return self.Cfg end --获取类型 function FashionData:GetType() return self.Cfg.Type end --获取名字 function FashionData:GetName() return self.Cfg.Name end --获取模型id function FashionData:GetModelId(occ) if self.ModelId == -1 then if self.Cfg ~= nil then local list = Utils.SplitStr(self.Cfg.Res, ';') for i = 1,#list do local subList = Utils.SplitNumber(list[i], '_') if occ == subList[1] then self.ModelId = subList[2] end end end end return self.ModelId end --获取图鉴图标 function FashionData:GetIconId(occ) if self.IconId == -1 then if self.Cfg ~= nil then local list = Utils.SplitStr(self.Cfg.Icon, ';') for i = 1,#list do local subList = Utils.SplitNumber(list[i], '_') if occ == subList[1] then self.IconId = subList[2] end end end end return self.IconId end --获取套装属性列表 function FashionData:GetAttList() if #self.ListAtt == 0 then if self.Cfg ~= nil then local list = Utils.SplitStr(self.Cfg.RentAtt, ';') for i = 1,#list do local subList = Utils.SplitNumber(list[i], '_') local data = {AttId = subList[1], Value = subList[2], Add = subList[3]} self.ListAtt:Add(data) end end end return self.ListAtt end --获取激活道具 --获取时装星级 function FashionData:GetStarNum() return self.StarNum end --获取道具id function FashionData:GetItemId(occ) if self.ItemId == 0 then if self.Cfg ~= nil then local list = Utils.SplitStr(self.Cfg.ActiveItem, ';') for i = 1,#list do local subList = Utils.SplitNumber(list[i], '_') if occ == subList[1] then self.ItemId = subList[2] break end end end end return self.ItemId end function FashionData:GetNeedItemNum(starNum) local ret = 0 if self.Cfg ~= nil then local list = Utils.SplitStr(self.Cfg.StarItemnum, ';') for i = 1,#list do local subList = Utils.SplitNumber(list[i], '_') if starNum == subList[1] then ret = subList[2] break end end end return ret end --获取Quality function FashionData:GetQuality() local ret = 0 if self.Cfg ~= nil then ret = self.Cfg.Quality end return ret end --获取模型id function FashionData:GetModelId(occ) local ret = 0 if self.Cfg ~= nil then local list = Utils.SplitStr(self.Cfg.Res, ';') for i = 1,#list do local subList = Utils.SplitNumber(list[i], '_') if occ == subList[1] then ret = subList[2] break end end end return ret end --获取模型的Y坐标 function FashionData:GetModelYPos() local ret = 0 if self.Cfg ~= nil then ret = self.Cfg.ModelYPos end return ret end --获取模型X坐标 function FashionData:GetModelXPos() local ret = 0 if self.Cfg ~= nil then ret = self.Cfg.ModelXPos end return ret end --获取模型Z坐标 function FashionData:GetModelZPos() local ret = 0 if self.Cfg ~= nil then ret = self.Cfg.ModelZPos end return ret end --获取模型Y轴旋转值 function FashionData:GetModelYRot() local ret = 0 if self.Cfg ~= nil then ret = self.Cfg.ModelYRot end return ret end --获取模型Y轴旋转值 function FashionData:GetModelZRot() local ret = 0 if self.Cfg ~= nil then ret = self.Cfg.ModelZRot end return ret end --获取相机size function FashionData:GetCameraSize() local ret = 0 if self.Cfg ~= nil then ret = self.Cfg.CameraSize end return ret end --是否可以升星 function FashionData:CanUpStar(occ) if self.StarNum >= 5 then return false end local itemId = self:GetItemId(occ) local needNum = self:GetNeedItemNum(self.StarNum + 1) local count = GameCenter.ItemContianerSystem:GetItemCountFromCfgId(itemId) return count >= needNum end --判断是否可以激活 function FashionData:CanActive(occ) local itemId = self:GetItemId(occ) local needNum = self:GetNeedItemNum(0) local count = GameCenter.ItemContianerSystem:GetItemCountFromCfgId(itemId) return count >= needNum end function FashionData:IsEquialWithModelId(id, occ) return self:GetModelId(occ) == id end return FashionData