PetsEquipVO.lua 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. local PetsEquipData = class( "PetsEquipData" )
  2. function PetsEquipData:ctor()
  3. self.dataByMakeIndex = {}
  4. self.dataByPos = {} --MakeIndex
  5. end
  6. function PetsEquipData:GetData()
  7. return self.dataByMakeIndex
  8. end
  9. function PetsEquipData:GetPetsPosData(petsIdx, pos)
  10. local posData = self.dataByPos[petsIdx] or {}
  11. if posData and next(posData) then
  12. return posData[pos]
  13. end
  14. return nil
  15. end
  16. function PetsEquipData:GetDataByMakeIndex(MakeIndex)
  17. if self.dataByMakeIndex[MakeIndex] then
  18. return self.dataByMakeIndex[MakeIndex]
  19. end
  20. return nil
  21. end
  22. function PetsEquipData:GetDataByPos(petIdx, pos)
  23. local item = nil
  24. if self.dataByPos[petIdx] and self.dataByPos[petIdx][pos] then
  25. local MakeIndex = self.dataByPos[petIdx][pos].MakeIndex
  26. if MakeIndex then
  27. item = self:GetDataByMakeIndex(MakeIndex)
  28. end
  29. end
  30. return item
  31. end
  32. function PetsEquipData:ClearData()
  33. self.dataByMakeIndex = {}
  34. self.dataByPos = {}
  35. end
  36. function PetsEquipData:AddEquipData(item, petIdx)
  37. local MakeIndex = item.MakeIndex
  38. local Where = item.Where
  39. self.dataByMakeIndex[MakeIndex] = item
  40. if not self.dataByPos[petIdx] then
  41. self.dataByPos[petIdx]= {}
  42. end
  43. if not self.dataByPos[petIdx][Where] then
  44. self.dataByPos[petIdx][Where] = {}
  45. end
  46. self.dataByPos[petIdx][Where].MakeIndex = MakeIndex
  47. if self.dataByPos[petIdx][Where] and next(self.dataByPos[petIdx][Where]) then
  48. end
  49. end
  50. function PetsEquipData:DelEquipData(item, petIdx)
  51. local equip = self:GetDataByMakeIndex(item.MakeIndex)
  52. if equip then
  53. local Where = equip.Where
  54. self.dataByPos[petIdx][Where] = nil
  55. self.dataByMakeIndex[item.MakeIndex] = nil
  56. end
  57. end
  58. function PetsEquipData:ChangeItem(item)
  59. local MakeIndex = item.MakeIndex
  60. if self.dataByMakeIndex[MakeIndex] then
  61. self.dataByMakeIndex[MakeIndex] = item
  62. end
  63. end
  64. function PetsEquipData:ClearDataByPetIdx(petIdx)
  65. local needClearList = {}
  66. if self.dataByPos[petIdx] then
  67. for _, data in pairs(self.dataByPos[petIdx]) do
  68. if data.MakeIndex then
  69. self.dataByMakeIndex[data.MakeIndex] = nil
  70. end
  71. end
  72. end
  73. self.dataByPos[petIdx] = {}
  74. end
  75. return PetsEquipData