UIChangeHeadCtr.lua 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. local UIChangeHeadCtr = class("UIChangeHeadCtr", require("UICtrBase"))
  2. local GetSex = function(key)
  3. local sex = key
  4. while sex >= 10 do
  5. sex = sex * 0.1
  6. end
  7. return math.floor(sex)
  8. end
  9. function UIChangeHeadCtr:Init(view)
  10. self.view = view
  11. end
  12. function UIChangeHeadCtr:SetData(data)
  13. self.asyncIdx = 0
  14. self:RefreshHeadPortraitsSort()
  15. if data == nil then return end
  16. self.data = data
  17. end
  18. function UIChangeHeadCtr:GetAsyncIdx()
  19. self.asyncIdx = self.asyncIdx + 1
  20. return self.asyncIdx
  21. end
  22. function UIChangeHeadCtr:GetData()
  23. return self.data
  24. end
  25. function UIChangeHeadCtr:OnDispose()
  26. self.data = nil
  27. self.view = nil
  28. end
  29. ----Custom start----
  30. function UIChangeHeadCtr:RefreshHeadPortraits()
  31. local headPortraits = {}
  32. local datas = ManagerContainer.CfgMgr:GetHeadPortraitDatas()
  33. local sex = ManagerContainer.DataMgr.UserData:GetSex()
  34. for key, value in pairs(datas) do
  35. if Constant.OpenPay or not value.NoPay then
  36. if GetSex(key) == sex then
  37. table.insert(headPortraits, {cfgId = key})
  38. end
  39. end
  40. end
  41. self.headPortraits = headPortraits
  42. self:RefreshHeadPortraitsSort()
  43. end
  44. function UIChangeHeadCtr:GetActiveHeadProtraitError(cfgId)
  45. local state = ManagerContainer.DataMgr.HeadProtraitData:GetState(cfgId)
  46. if state == Enum.TaskStateType.NoCompeleted then
  47. return 1
  48. elseif state == Enum.TaskStateType.Received then
  49. return 2
  50. end
  51. return 0
  52. end
  53. function UIChangeHeadCtr:GetSetHeadProtraitError(cfgId)
  54. if cfgId == ManagerContainer.DataMgr.UserData:GetUserHeadPortraitId() then
  55. return 1
  56. end
  57. local state = ManagerContainer.DataMgr.HeadProtraitData:GetState(cfgId)
  58. if state == Enum.TaskStateType.NoCompeleted then
  59. return 2
  60. elseif state == Enum.TaskStateType.CompletedAndNoReceive then
  61. return 3
  62. end
  63. return 0
  64. end
  65. function UIChangeHeadCtr:RefreshHeadPortraitsSort()
  66. if not self.headPortraits then return end
  67. table.sort(self.headPortraits, function(a, b)
  68. local stateA = ManagerContainer.DataMgr.HeadProtraitData:GetState(a.cfgId)
  69. local stateB = ManagerContainer.DataMgr.HeadProtraitData:GetState(b.cfgId)
  70. if stateA == stateB then
  71. return b.cfgId > a.cfgId
  72. else
  73. return stateA > stateB
  74. end
  75. end)
  76. end
  77. function UIChangeHeadCtr:GetHeadPortraits()
  78. if not self.headPortraits then
  79. self:RefreshHeadPortraits()
  80. end
  81. return self.headPortraits
  82. end
  83. ----Custom end ----
  84. return UIChangeHeadCtr