67 lines
1.8 KiB
Plaintext
67 lines
1.8 KiB
Plaintext
autoImport("EventDispatcher")
|
|
FunctionPlayerHead = class("FunctionPlayerHead",EventDispatcher)
|
|
|
|
FunctionPlayerHead.PlayEmojiEvent = "FunctionPlayerHead.PlayEmojiEvent"
|
|
FunctionPlayerHead.EnableBlinkEye = "FunctionPlayerHead.EnableBlinkEye"
|
|
FunctionPlayerHead.PlayDefaultEmojiEvent = "FunctionPlayerHead.PlayDefaultEmojiEvent"
|
|
|
|
FunctionPlayerHead.RollBackDefaultEmoji = 0
|
|
|
|
function FunctionPlayerHead.Me()
|
|
if nil == FunctionPlayerHead.me then
|
|
FunctionPlayerHead.me = FunctionPlayerHead.new()
|
|
end
|
|
return FunctionPlayerHead.me
|
|
end
|
|
|
|
function FunctionPlayerHead:ctor()
|
|
self.cachedEmoji = {}
|
|
self.blinkEnabled = false
|
|
EventManager.Me():AddEventListener(TeamEvent.MemberExitTeam,self.MemberExitTeamHandler,self)
|
|
end
|
|
|
|
function FunctionPlayerHead:Reset()
|
|
end
|
|
|
|
function FunctionPlayerHead:MemberExitTeamHandler(event)
|
|
if(event and event.data) then
|
|
self:RemoveEmojiCache(event.data.id)
|
|
end
|
|
end
|
|
|
|
function FunctionPlayerHead:RemoveEmojiCache(id)
|
|
self.cachedEmoji[id] = nil
|
|
end
|
|
|
|
function FunctionPlayerHead:SetEmojiCache(id,emojiID)
|
|
--始終保持的狀態,需要快取下
|
|
if(emojiID == FunctionPlayerHead.RollBackDefaultEmoji) then
|
|
self:RemoveEmojiCache(id)
|
|
else
|
|
local config = Table_Avatar[emojiID]
|
|
if(config and config.Duration==0) then
|
|
self.cachedEmoji[id] = emojiID
|
|
else
|
|
self:RemoveEmojiCache(id)
|
|
end
|
|
end
|
|
end
|
|
|
|
function FunctionPlayerHead:GetEmojiCache(id)
|
|
return self.cachedEmoji[id]
|
|
end
|
|
|
|
--伺服器通知播表情
|
|
function FunctionPlayerHead:PlayEmoji(sdata)
|
|
self:SetEmojiCache(sdata.charid,sdata.expressionid)
|
|
if(sdata.expressionid == FunctionPlayerHead.RollBackDefaultEmoji) then
|
|
self:PassEvent(FunctionPlayerHead.PlayDefaultEmojiEvent,sdata)
|
|
else
|
|
self:PassEvent(FunctionPlayerHead.PlayEmojiEvent,sdata)
|
|
end
|
|
end
|
|
|
|
function FunctionPlayerHead:EnableBlinkEye()
|
|
self.blinkEnabled = true
|
|
self:PassEvent(FunctionPlayerHead.EnableBlinkEye)
|
|
end |