107 lines
2.4 KiB
Plaintext
107 lines
2.4 KiB
Plaintext
local BaseCell = autoImport("BaseCell")
|
|
UIEmojiCell = class("UIEmojiCell", BaseCell)
|
|
|
|
UIEmojiType = {
|
|
Action = 1,
|
|
Emoji = 2,
|
|
}
|
|
|
|
function UIEmojiCell:Init()
|
|
self.actionObj = self:FindGO("Action");
|
|
self.actionSymbol = self:FindComponent("Symbol", UISprite);
|
|
self:AddCellClickEvent();
|
|
end
|
|
|
|
function UIEmojiCell:SetData(data)
|
|
if(not data)then
|
|
return;
|
|
end
|
|
|
|
self.id = data.id;
|
|
self.type = data.type;
|
|
self.name = data.name;
|
|
|
|
self:UnloadEmoji();
|
|
if(data.type == UIEmojiType.Action)then
|
|
self.actionObj:SetActive(true)
|
|
self:SetAction(data.name);
|
|
elseif(data.type == UIEmojiType.Emoji)then
|
|
self.actionObj:SetActive(false)
|
|
self:LoadEmoji(data.name);
|
|
end
|
|
end
|
|
|
|
local tempV3 = LuaVector3();
|
|
function UIEmojiCell:LoadEmoji(name)
|
|
local resID = ResourcePathHelper.Emoji( name );
|
|
if(resID == self.resID and not Slua.IsNull(self.emoji) )then
|
|
return;
|
|
end
|
|
|
|
self.resID = resID;
|
|
|
|
self.emoji = Game.AssetManager_UI:CreateSceneUIAsset(resID, self.gameObject);
|
|
tempV3:Set(0,0,0);
|
|
self.emoji.transform.localPosition = tempV3;
|
|
UIUtil.ChangeLayer(self.emoji, self.gameObject.layer)
|
|
tempV3:Set(1,1,1);
|
|
self.emoji.transform.localScale = tempV3;
|
|
self.emoji.transform.localRotation = LuaQuaternion.identity;
|
|
self.emoji.gameObject:SetActive(true);
|
|
self.emoji.name = name;
|
|
|
|
local anim = self.emoji:GetComponent(SkeletonAnimation);
|
|
anim.AnimationName = "ui_animation";
|
|
anim:Reset();
|
|
anim.loop = true;
|
|
|
|
SpineLuaHelper.PlayAnim(anim, "ui_animation", nil);
|
|
|
|
local uispine = self.emoji:GetComponent(UISpine)
|
|
uispine.depth = 10;
|
|
end
|
|
|
|
function UIEmojiCell:UnloadEmoji()
|
|
if( self.resID and not Slua.IsNull(self.emoji) )then
|
|
Game.GOLuaPoolManager:AddToSceneUIPool(self.resID, self.emoji);
|
|
end
|
|
self.resID = nil;
|
|
self.emoji = nil;
|
|
end
|
|
|
|
function UIEmojiCell:SetAction( name )
|
|
if(self.actionSymbol)then
|
|
if(IconManager:SetActionIcon(name, self.actionSymbol))then
|
|
self.actionSymbol:MakePixelPerfect();
|
|
end
|
|
end
|
|
end
|
|
|
|
function UIEmojiCell:OnRemove(depth)
|
|
self:UnloadEmoji();
|
|
end
|
|
|
|
local tempColor = LuaColor(1,1,1,1);
|
|
function UIEmojiCell:Forbid(state)
|
|
self.forbidState = state;
|
|
|
|
if(state == 1)then
|
|
if(self.type == UIEmojiType.Action)then
|
|
tempColor:Set(1/255,2/255,3/255);
|
|
self:SetTextureColor(self.actionObj, tempColor, true)
|
|
end
|
|
elseif(state == 2)then
|
|
if(self.type == UIEmojiType.Emoji)then
|
|
|
|
end
|
|
else
|
|
tempColor:Set(1,1,1,1);
|
|
self:SetTextureColor(self.actionObj, tempColor, true)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|