146 lines
3.8 KiB
Plaintext
146 lines
3.8 KiB
Plaintext
local BaseCell = autoImport("BaseCell");
|
|
GuildHeadCell = class("GuildHeadCell", BaseCell);
|
|
|
|
|
|
function GuildHeadCell:Init()
|
|
self.bg = self:FindComponent("Bg", UISprite);
|
|
self.icon = self:FindComponent("HeadIcon", UISprite);
|
|
self.customPic = self:FindComponent("CustomPic", UITexture);
|
|
self.choose = self:FindGO("ChooseSymbol");
|
|
self.examineSymbol = self:FindGO("ExamineSymbol");
|
|
if(self.examineSymbol)then
|
|
self.examineSymbol_label = self:FindComponent("Label", UILabel, self.examineSymbol);
|
|
end
|
|
self.addSymbol = self:FindGO("AddSymbol");
|
|
|
|
self:AddCellClickEvent();
|
|
|
|
self:SetCallIndex();
|
|
end
|
|
|
|
function GuildHeadCell:DeleteGO(key)
|
|
if(not Slua.IsNull(self[key]))then
|
|
GameObject.DestroyImmediate(self[key].gameObject);
|
|
self[key] = nil;
|
|
end
|
|
end
|
|
|
|
function GuildHeadCell:SetCallIndex(call_index)
|
|
self.call_index = call_index or UnionLogo.CallerIndex.LogoEditor;
|
|
end
|
|
|
|
function GuildHeadCell:SetData(data)
|
|
self.data = data;
|
|
if(data)then
|
|
self.gameObject:SetActive(true);
|
|
|
|
self.icon.gameObject:SetActive(data.type == GuildHeadData_Type.Config);
|
|
self.customPic.gameObject:SetActive(data.type == GuildHeadData_Type.Custom);
|
|
|
|
if(self.addSymbol)then
|
|
self.addSymbol:SetActive(data.type == GuildHeadData_Type.Add);
|
|
end
|
|
|
|
if(self.examineSymbol)then
|
|
if(data.type == GuildHeadData_Type.Custom)then
|
|
if(data.state == GuildCmd_pb.EICON_INIT)then
|
|
self.examineSymbol_label.text = ZhString.GuildHeadCell_Examine
|
|
elseif(data.state == GuildCmd_pb.EICON_FORBID)then
|
|
self.examineSymbol_label.text = ZhString.GuildHeadCell_Forbid
|
|
end
|
|
self.examineSymbol:SetActive(data.state ~= GuildCmd_pb.EICON_PASS);
|
|
else
|
|
self.examineSymbol:SetActive(false);
|
|
end
|
|
end
|
|
|
|
if(data.type == GuildHeadData_Type.Config)then
|
|
local sdata = data.staticData;
|
|
if(sdata)then
|
|
IconManager:SetGuildIcon(sdata.Icon, self.icon);
|
|
self.icon.width = 32;
|
|
self.icon.height = 32;
|
|
-- self.icon:MakePixelPerfect();
|
|
end
|
|
elseif(data.type == GuildHeadData_Type.Custom)then
|
|
if(self.customPic)then
|
|
local pic = FunctionGuild.Me():GetCustomPicCache(data.guildid, data.index);
|
|
if(pic)then
|
|
local time_name = pic.name;
|
|
if(tonumber(time_name) == data.time)then
|
|
self.customPic.mainTexture = pic;
|
|
else
|
|
self:LoadSetCustomPic();
|
|
end
|
|
else
|
|
self:LoadSetCustomPic();
|
|
end
|
|
end
|
|
end
|
|
|
|
if(self.choose)then
|
|
if(self.chooseData and self.chooseData.type == data.type and self.chooseData.id == data.id)then
|
|
self.choose:SetActive(true);
|
|
else
|
|
self.choose:SetActive(false);
|
|
end
|
|
end
|
|
else
|
|
self.gameObject:SetActive(false);
|
|
end
|
|
end
|
|
|
|
function GuildHeadCell:LoadSetCustomPic()
|
|
local data = self.data;
|
|
if(data == nil or data.type ~= GuildHeadData_Type.Custom)then
|
|
return;
|
|
end
|
|
|
|
local success_callback = function (bytes, localTimestamp)
|
|
local pic = Texture2D(128, 128, TextureFormat.RGB24, false);
|
|
pic.name = data.time;
|
|
local bRet = ImageConversion.LoadImage(pic, bytes)
|
|
|
|
FunctionGuild.Me():SetCustomPicCache(data.guildid, data.index, pic);
|
|
|
|
if(self.data and self.data.index == data.index)then
|
|
if(self.customPic)then
|
|
self.customPic.mainTexture = pic;
|
|
end
|
|
end
|
|
end
|
|
|
|
local pic_type = data.pic_type;
|
|
if(pic_type == nil or pic_type == "")then
|
|
pic_type = PhotoFileInfo.PictureFormat.JPG;
|
|
end
|
|
UnionLogo.Ins():SetUnionID(data.guildid);
|
|
UnionLogo.Ins():GetOriginImage(self.call_index,
|
|
data.index,
|
|
data.time,
|
|
pic_type,
|
|
nil,
|
|
success_callback,
|
|
error_callback,
|
|
is_keep_previous_callback,
|
|
is_through_personalphotocallback);
|
|
end
|
|
|
|
function GuildHeadCell:SetChoose(chooseData)
|
|
if(self.choose == nil)then
|
|
return;
|
|
end
|
|
|
|
self.chooseData = chooseData;
|
|
|
|
if(chooseData == nil)then
|
|
self.choose:SetActive(false);
|
|
return;
|
|
end
|
|
|
|
if(self.data and self.data.type == chooseData.type and self.data.id == chooseData.id)then
|
|
self.choose:SetActive(true);
|
|
else
|
|
self.choose:SetActive(false);
|
|
end
|
|
end |