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

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