2025-06-04 05:02:57 +08:00

77 lines
2.0 KiB
Plaintext

local baseCell = autoImport("BaseCell")
HairStyleCell = class("HairStyleCell", baseCell)
local recycleTable = {}
E_Gender = {["None"] = 0, ["Male"] = 1, ["Female"] = 2}
function HairStyleCell:Init()
self.goIcon = self:FindGO("Icon")
self.spSelected = self:FindGO("Selected"):GetComponent(UISprite)
self:CancelSelected()
self.isSelected = false
self:AddClickEvent(self.gameObject, function ()
self:OnClick()
end)
if self.headIconCell == nil then
self.headIconCell = HeadIconCell.new()
self.headIconCell:CreateSelf(self.goIcon)
local bc = self.headIconCell.gameObject:GetComponent(BoxCollider)
if bc ~= nil then
bc.enabled = false
end
self.headIconCell:SetMinDepth(0)
self.headIconCell:SetScale(0.66)
end
end
function HairStyleCell:SetData(data)
local hairStyleID = data.hairStyleID or 0
local hairColorID = data.hairColorID or 0
local gender = data.gender or 0
local bodyID = data.bodyID or 0
self.data = data
recycleTable.hairID = data.hairStyleID
recycleTable.haircolor = data.hairColorID
if data.gender == E_Gender.Male then
recycleTable.gender = RoleConfig.Gender.Male
else
recycleTable.gender = RoleConfig.Gender.Female
end
local classConf = Table_Class[data.classID]
if classConf ~= nil then
if data.gender == E_Gender.Male then
recycleTable.bodyID = classConf.MaleBody
else
recycleTable.bodyID = classConf.FemaleBody
end
end
if data.gender == E_Gender.Male then
recycleTable.eyeID = 1
elseif data.gender == E_Gender.Female then
recycleTable.eyeID = 2
end
self.headIconCell:SetData(recycleTable)
TableUtility.TableClear(recycleTable)
end
function HairStyleCell:OnClick()
self:Notify(CreateRoleViewEvent.HairStyleClick, {isSelected = not self.isSelected, id = self.data.hairStyleID})
if (self.isSelected) then
self:CancelSelected()
else
self:Selected()
end
end
function HairStyleCell:Selected()
self.isSelected = true
self.spSelected.enabled = true
end
function HairStyleCell:CancelSelected()
self.isSelected = false
self.spSelected.enabled = false
end