KLSuitItem.lua 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. ---@class KLSuitItem:UIKmlLuaPanelBase
  2. ---@field view KLSuitItemView
  3. ---@field baseUI KLSuitPanel
  4. ---@field equips cfg_fashion_column[]
  5. local KLSuitItem = class(UIKmlLuaPanelBase)
  6. local this = KLSuitItem
  7. ---创建时调用一次
  8. function this:Init()
  9. GUI:DataListInitData(self.view.datalist11,
  10. function()
  11. return self:ItemCountFunc()
  12. end,
  13. function(realIndex)
  14. return self:ItemGetFunc(realIndex)
  15. end,
  16. function(realIndex, kmlCtrl)
  17. return self:ItemInitFunc(realIndex, kmlCtrl)
  18. end,
  19. function(realIndex, kmlCtrl)
  20. return self:ItemUpdateFunc(realIndex, kmlCtrl)
  21. end)
  22. ---@type table<KingML.KmlControl,KLSuitEquipItem>
  23. self.equipItems = {}
  24. end
  25. function this:ItemCountFunc()
  26. return #self.equips
  27. end
  28. function this:ItemGetFunc()
  29. ---@type KLSuitEquipItem
  30. local item = GUI:UIPanel_Open("dev/outui/AppearGroup/Item/KLSuitEquip/KLSuitEquipItem", self.view.datalist11, self, nil, true)
  31. local kmlCtrl = item.view.root
  32. self.equipItems[kmlCtrl] = item
  33. return kmlCtrl
  34. end
  35. function this:ItemInitFunc()
  36. end
  37. ---@param kmlCtrl KingML.KmlControl
  38. function this:ItemUpdateFunc(realIndex, kmlCtrl)
  39. local item = self.equipItems[kmlCtrl]
  40. local luaIndex = realIndex + 1
  41. local dt = self.equips[luaIndex]
  42. local isSelect = table.contains(self.appearCfgIds, dt.id)
  43. local isUnlocked = table.contains(self.stateCfgIds, dt.id)
  44. if not isUnlocked then
  45. isSelect = false
  46. end
  47. item:UpdateUI(self.suitIndex,luaIndex,dt.id, isSelect,isUnlocked)
  48. end
  49. ---@param appearCfgIds table<EEquipSlotType,number>
  50. ---@param equips cfg_fashion_column[]
  51. function this:UpdateUI(appearCfgIds, stateCfgIds, equips, titleStr, itemY, suitIndex)
  52. ---@type table<EEquipSlotType,number>
  53. self.appearCfgIds = appearCfgIds
  54. self.stateCfgIds = stateCfgIds
  55. self.equips = equips
  56. self.title = titleStr
  57. self.itemY = itemY
  58. self.suitIndex = suitIndex
  59. GUI:Text_setString(self.view.Title, self.title)
  60. local w = GUI:GetWidth(self.view.root)
  61. GUI:setContentSize(self.view.root, w, self.itemY)
  62. GUI:DataListUpdateData(self.view.datalist11)
  63. end
  64. ---创建或者刷新界面数据时调用
  65. function this:Refresh()
  66. end
  67. ---注册UI事件和服务器消息
  68. function this:RegistEvents()
  69. end
  70. function this:Close()
  71. end
  72. return this