local ex = Examiner;
-- Module
local mod = ex:CreateModule(GUILD,GUILD_INFORMATION);
mod.help = "Basic Guild Details";
mod:CreatePage(false);
mod:HasButton(true);
mod.canCache = true;
local page = mod.page;
local banner = {};
local bannerCache;
local GUILD_LOGO_SCALE = 1.2;
--------------------------------------------------------------------------------------------------------
-- Module Scripts --
--------------------------------------------------------------------------------------------------------
-- OnInspectReady
function mod:OnInspectReady(unit,guid)
-- local bkgR, bkgG, bkgB, borderR, borderG, borderB, emblemR, emblemG, emblemB, emblemFilename = GetGuildLogoInfo(ex.unit);
banner[1], banner[2], banner[3], banner[4], banner[5], banner[6], banner[7], banner[8], banner[9], banner[10] = GetGuildLogoInfo(ex.unit);
self:HasData(ex.info.guildMembers); -- WoD: Changed this from guildLevel to guildMembers, history repeats itself -- MoP: Changed this from guildID to guildLevel, as that is no longer available as 1st return in GetInspectGuildInfo()
self:UpdateGuildInfo();
end
-- OnCache
function mod:OnCache(entry)
if (self:CanCache()) then
entry.GuildBanner = CopyTable(banner);
end
end
-- OnCacheLoaded
function mod:OnCacheLoaded(entry,unit)
bannerCache = entry.GuildBanner;
self:HasData(ex.info.guildMembers);
self:UpdateGuildInfo();
end
-- OnClearInspect
function mod:OnClearInspect()
wipe(banner);
bannerCache = nil;
self:HasData(nil);
self:UpdateGuildInfo();
end
--------------------------------------------------------------------------------------------------------
-- Code --
--------------------------------------------------------------------------------------------------------
-- Update Widgets
function mod:UpdateGuildInfo()
local page = self.page;
local info = ex.info;
if (not info.guildMembers) then
page.guild:SetText();
page.info:SetText();
SetDoubleGuildTabardTextures(nil,mod.page.leftIcon,mod.page.rightIcon,mod.page.banner,mod.page.bannerBorder,banner); -- banner table should be empty here, so we draw a grey banner
else
page.guild:SetText(info.guild);
page.info:SetFormattedText("%s Points - %s %s",tostring(info.guildPoints),info.guildMembers,MEMBERS);
local bannerData = (ex.isCacheEntry and bannerCache or banner);
SetDoubleGuildTabardTextures(nil,mod.page.leftIcon,mod.page.rightIcon,mod.page.banner,mod.page.bannerBorder,bannerData);
end
end
--------------------------------------------------------------------------------------------------------
-- Widgets --
--------------------------------------------------------------------------------------------------------
-- FontStrings
page.guild = page:CreateFontString(nil,"ARTWORK");
page.guild:SetPoint("CENTER",0,-54);
page.guild:SetFont(GameFontNormal:GetFont(),18,"OUTLINE");
page.guild:SetTextColor(1,1,1);
page.info = page:CreateFontString(nil,"ARTWORK");
page.info:SetPoint("TOP",page.guild,"BOTTOM");
page.info:SetFont(GameFontNormal:GetFont(),12,"OUTLINE");
page.info:SetTextColor(1,1,0);
-- Banner
page.banner = page:CreateTexture(nil,"BACKGROUND",nil,1);
page.banner:SetSize(118 * GUILD_LOGO_SCALE,144 * GUILD_LOGO_SCALE);
page.banner:SetPoint("TOP",0,-6);
page.banner:SetTexture("Interface\\GuildFrame\\GuildInspect-Parts");
page.banner:SetTexCoord(0.23632813,0.46679688,0.70117188,0.98242188);
page.bannerBorder = page:CreateTexture(nil,"BACKGROUND",nil,2);
page.bannerBorder:SetSize(118 * GUILD_LOGO_SCALE,144 * GUILD_LOGO_SCALE);
page.bannerBorder:SetPoint("TOPLEFT",page.banner);
page.bannerBorder:SetTexture("Interface\\GuildFrame\\GuildInspect-Parts");
page.bannerBorder:SetTexCoord(0.00195313,0.23242188,0.70117188,0.98242188);
-- Banner Icons
page.leftIcon = page:CreateTexture(nil,"ARTWORK");
page.leftIcon:SetSize(50 * GUILD_LOGO_SCALE,125 * GUILD_LOGO_SCALE);
page.leftIcon:SetPoint("CENTER",page.banner,-25 * GUILD_LOGO_SCALE,0);
page.leftIcon:SetTexCoord(1,0,0,1);
page.rightIcon = page:CreateTexture(nil,"ARTWORK");
page.rightIcon:SetSize(50 * GUILD_LOGO_SCALE,125 * GUILD_LOGO_SCALE);
page.rightIcon:SetPoint("LEFT",page.leftIcon,"RIGHT",-1,0);