源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

128 行
3.8 KiB

  1. CSMainRoleModelItem = CSMainRoleModelItem or BaseClass(BaseItem)
  2. local CSMainRoleModelItem = CSMainRoleModelItem
  3. function CSMainRoleModelItem:__init()
  4. self.base_file = "csMain"
  5. self.layout_file = "CSMainRoleModelItem"
  6. self.model = CSMainModel:getInstance()
  7. self:Load()
  8. end
  9. function CSMainRoleModelItem:Load_callback()
  10. self.nodes = {
  11. "modelCon:obj", "emptyRole:img:obj", "name:tmp",
  12. "designationImg:img",
  13. }
  14. self:GetChildren(self.nodes)
  15. self.name_tmp.text = "<#a9c1e1>虚位以待</color>"
  16. lua_resM:setOutsideImageSprite(self, self.emptyRole_img, GameResPath.GetCSMainImage("cs_main_empty_role"))
  17. SetLocalScale(self.emptyRole,0.75,0.75,0.75)
  18. SetAnchoredPositionY(self.designationImg,150)
  19. SetAnchoredPositionY(self.name,100)
  20. -- SetLocalPositionZ(self.name,-1000)
  21. self:AddEvents()
  22. if self.need_refreshData then
  23. self:UpdateView()
  24. end
  25. end
  26. function CSMainRoleModelItem:AddEvents( )
  27. --60306刷新figure
  28. local function on_update_role_show(role_id)
  29. if not self.is_loaded then return end
  30. if role_id == self.data.rid then
  31. self.data = self.model:GetCSMainDirectorDataByPos(self.index)
  32. self:UpdateRoleShow()
  33. end
  34. end
  35. self:BindEvent(self.model, CSMainConst.UPDATE_CS_MAIN_BASE_VIEW_ROLE_REQUEST, on_update_role_show)
  36. end
  37. function CSMainRoleModelItem:UpdateView( )
  38. local need_request_figure_1 = self.data.rid ~= 0 and self.data.role_id == 0 --位置不为空但figure为空需要重新请求
  39. local need_request_figure_2 = self.data.rid ~= 0 and TimeUtil:getServerTime() - self.data.time >= 1800 --figure消息过时30分钟以上需要重新请求
  40. if need_request_figure_1 or need_request_figure_2 then
  41. self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60306,self.data.rid)
  42. else
  43. self:UpdateRoleShow()
  44. end
  45. local dsgt_type = self.index <= 3 and 1 or 2
  46. local dsgt_id = self.model:GetCSMainDsgtId(dsgt_type)
  47. local data = {
  48. parent = self,
  49. dress_id = dsgt_id,
  50. designationImg = self.designationImg,
  51. scale = 0.9,
  52. }
  53. FuncOpenModel:getInstance():ShowDesign(data)
  54. SetAnchoredPositionY(self.emptyRole, CSMainConst.RoleModelPos[self.index].empty_role_y)
  55. end
  56. function CSMainRoleModelItem:UpdateRoleShow( )
  57. local is_empty_role = self.data.rid == 0
  58. self.modelCon_obj:SetActive(not is_empty_role)
  59. self.emptyRole_obj:SetActive(is_empty_role)
  60. if not is_empty_role then
  61. self.name_tmp.text = self.data.name
  62. else
  63. self.name_tmp.text = "<#a9c1e1>虚位以待</color>"
  64. end
  65. if not is_empty_role then
  66. --clothe_res_id如果为空加载模型会报错,这里检查一下,是不是有问题
  67. local clothe_res_id = GetRoleClotheId(self.data.level_model_list)
  68. if not clothe_res_id then--如果后端发的figure的clothe_res_id不正常,手动修复一下
  69. self.data.level_model_list = {
  70. [1] = {part_pos = 1, level_model_id = self.data.career*1000},
  71. [2] = {part_pos = 2, level_model_id = self.data.career*1000},
  72. [3] = {part_pos = 3, level_model_id = self.data.career*1000},
  73. [4] = {part_pos = 5, level_model_id = self.data.career*1000},
  74. }
  75. end
  76. local role_y = CSMainConst.RoleModelPos[self.index].role_y
  77. -- if self.index == 1 then
  78. -- role_y = role_y + 15
  79. -- end
  80. local res_data = {
  81. father_node = self,
  82. transform = self.modelCon,
  83. -- layer_name = "Activity",
  84. fashion_type = FuncOpenModel.TypeId.Clothes,
  85. role_vo = self.data,
  86. scale = CSMainConst.RoleModelPos[self.index].scale,
  87. raycast_size = Vector2(0,0),
  88. ui_model_type = UIModelCommon.ModelType.Model,
  89. position = Vector3(0, role_y, CSMainConst.RoleModelPos[self.index].model_z_depth)
  90. }
  91. FuncOpenModel:getInstance():SetModelRes(res_data)
  92. end
  93. end
  94. function CSMainRoleModelItem:SetData(index,data)
  95. self.index = index
  96. self.data = data
  97. if self.is_loaded then
  98. self.need_refreshData = false
  99. self:UpdateView()
  100. else
  101. self.need_refreshData = true
  102. end
  103. end
  104. function CSMainRoleModelItem:__delete( )
  105. end