源战役客户端
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 

128 rader
3.8 KiB

CSMainRoleModelItem = CSMainRoleModelItem or BaseClass(BaseItem)
local CSMainRoleModelItem = CSMainRoleModelItem
function CSMainRoleModelItem:__init()
self.base_file = "csMain"
self.layout_file = "CSMainRoleModelItem"
self.model = CSMainModel:getInstance()
self:Load()
end
function CSMainRoleModelItem:Load_callback()
self.nodes = {
"modelCon:obj", "emptyRole:img:obj", "name:tmp",
"designationImg:img",
}
self:GetChildren(self.nodes)
self.name_tmp.text = "<#a9c1e1>虚位以待</color>"
lua_resM:setOutsideImageSprite(self, self.emptyRole_img, GameResPath.GetCSMainImage("cs_main_empty_role"))
SetLocalScale(self.emptyRole,0.75,0.75,0.75)
SetAnchoredPositionY(self.designationImg,150)
SetAnchoredPositionY(self.name,100)
-- SetLocalPositionZ(self.name,-1000)
self:AddEvents()
if self.need_refreshData then
self:UpdateView()
end
end
function CSMainRoleModelItem:AddEvents( )
--60306刷新figure
local function on_update_role_show(role_id)
if not self.is_loaded then return end
if role_id == self.data.rid then
self.data = self.model:GetCSMainDirectorDataByPos(self.index)
self:UpdateRoleShow()
end
end
self:BindEvent(self.model, CSMainConst.UPDATE_CS_MAIN_BASE_VIEW_ROLE_REQUEST, on_update_role_show)
end
function CSMainRoleModelItem:UpdateView( )
local need_request_figure_1 = self.data.rid ~= 0 and self.data.role_id == 0 --位置不为空但figure为空需要重新请求
local need_request_figure_2 = self.data.rid ~= 0 and TimeUtil:getServerTime() - self.data.time >= 1800 --figure消息过时30分钟以上需要重新请求
if need_request_figure_1 or need_request_figure_2 then
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60306,self.data.rid)
else
self:UpdateRoleShow()
end
local dsgt_type = self.index <= 3 and 1 or 2
local dsgt_id = self.model:GetCSMainDsgtId(dsgt_type)
local data = {
parent = self,
dress_id = dsgt_id,
designationImg = self.designationImg,
scale = 0.9,
}
FuncOpenModel:getInstance():ShowDesign(data)
SetAnchoredPositionY(self.emptyRole, CSMainConst.RoleModelPos[self.index].empty_role_y)
end
function CSMainRoleModelItem:UpdateRoleShow( )
local is_empty_role = self.data.rid == 0
self.modelCon_obj:SetActive(not is_empty_role)
self.emptyRole_obj:SetActive(is_empty_role)
if not is_empty_role then
self.name_tmp.text = self.data.name
else
self.name_tmp.text = "<#a9c1e1>虚位以待</color>"
end
if not is_empty_role then
--clothe_res_id如果为空加载模型会报错,这里检查一下,是不是有问题
local clothe_res_id = GetRoleClotheId(self.data.level_model_list)
if not clothe_res_id then--如果后端发的figure的clothe_res_id不正常,手动修复一下
self.data.level_model_list = {
[1] = {part_pos = 1, level_model_id = self.data.career*1000},
[2] = {part_pos = 2, level_model_id = self.data.career*1000},
[3] = {part_pos = 3, level_model_id = self.data.career*1000},
[4] = {part_pos = 5, level_model_id = self.data.career*1000},
}
end
local role_y = CSMainConst.RoleModelPos[self.index].role_y
-- if self.index == 1 then
-- role_y = role_y + 15
-- end
local res_data = {
father_node = self,
transform = self.modelCon,
-- layer_name = "Activity",
fashion_type = FuncOpenModel.TypeId.Clothes,
role_vo = self.data,
scale = CSMainConst.RoleModelPos[self.index].scale,
raycast_size = Vector2(0,0),
ui_model_type = UIModelCommon.ModelType.Model,
position = Vector3(0, role_y, CSMainConst.RoleModelPos[self.index].model_z_depth)
}
FuncOpenModel:getInstance():SetModelRes(res_data)
end
end
function CSMainRoleModelItem:SetData(index,data)
self.index = index
self.data = data
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
end
function CSMainRoleModelItem:__delete( )
end