public static async void ClientInvitationAccept(string clanTag) { if (NewbieProtectionSystem.ClientIsNewbie) { NewbieProtectionSystem.ClientNotifyNewbieCannotPerformAction(null); return; } if (ClientCheckIsUnderJoinCooldown(showErrorNotification: true)) { return; } var timeRemains = await Instance.CallServer( _ => _.ServerRemote_GetCooldownRemainsToJoinReturnToFaction(clanTag)); if (timeRemains > 0) { var factionEmblem = await ClientFactionEmblemTextureProvider.GetEmblemTextureAsync(clanTag, useCache : true); NotificationSystem.ClientShowNotification( title: CoreStrings.Faction_ErrorUnderJoinCooldown, // TODO: consider using a separate text constant here message: string.Format(CoreStrings.ShieldProtection_CooldownRemains_Format, ClientTimeFormatHelper.FormatTimeDuration(timeRemains)), NotificationColor.Bad, icon: factionEmblem); return; } DialogWindow.ShowDialog( title: CoreStrings.Faction_Join, text: string.Format(CoreStrings.Faction_DialogJoinConfirmation_Message_Format, @$ "\[{clanTag}\]")
public static Brush GetEmblemTextureBrush(string clanTag) { if (string.IsNullOrEmpty(clanTag)) { return(Brushes.Magenta); } if (CacheTextureBrushes.TryGetValue(clanTag, out var weakReferenceTextureBrush) && weakReferenceTextureBrush.TryGetTarget(out var textureBrush)) { return(textureBrush); } if (ClientFactionEmblemDataCache.TryGetValue(clanTag, out var emblem)) { var texture = ClientFactionEmblemTextureProvider.GetEmblemTexture(emblem, useCache: true); textureBrush = Api.Client.UI.GetTextureBrush(texture); CacheTextureBrushes[clanTag] = new WeakReference <TextureBrush>(textureBrush); return(textureBrush); } // create placeholder texture brush, load the emblem async, and insert loaded emblem in the texture textureBrush = Api.Client.UI.CreateTextureBrush(); CacheTextureBrushes[clanTag] = new WeakReference <TextureBrush>(textureBrush); LoadEmblemTextureAsync(clanTag, textureBrush); return(textureBrush); }
private static async void LoadEmblemTextureAsync(string clanTag, TextureBrush textureBrush) { var emblem = await ClientFactionEmblemDataCache.GetFactionEmblemAsync(clanTag); var texture = ClientFactionEmblemTextureProvider.GetEmblemTexture(emblem, useCache: true); Api.Client.UI.SetTextureBrushResource(textureBrush, texture); }