feat(branding): replace ASCII fox banner with embedded image
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
using Dalamud.Interface.Textures;
|
||||
|
||||
namespace HellionChat.Branding;
|
||||
|
||||
// UI sibling of HellionForgeAscii.FoxMini: the embedded Hellion Forge fox
|
||||
// banner PNG. Uses ITextureProvider.GetFromManifestResource, a "Get" shared
|
||||
// texture, so Dalamud owns the cache and lifetime. No manual dispose, no async
|
||||
// handling in the plugin. Static to mirror HellionForgeAscii (zero injectable
|
||||
// deps; Plugin.TextureProvider is a static [PluginService]).
|
||||
internal static class FoxBannerTexture
|
||||
{
|
||||
private const string ResourceName = "HellionChat.Branding.fox-banner.png";
|
||||
|
||||
// Resolved fresh on every access. Dalamud keeps the shared texture cached
|
||||
// internally and decodes it asynchronously, so GetWrapOrDefault() returns
|
||||
// null for the first few frames until the decode finishes.
|
||||
public static ISharedImmediateTexture Shared =>
|
||||
Plugin.TextureProvider.GetFromManifestResource(
|
||||
typeof(FoxBannerTexture).Assembly,
|
||||
ResourceName
|
||||
);
|
||||
}
|
||||
@@ -1,25 +1,18 @@
|
||||
namespace HellionChat.Branding;
|
||||
|
||||
// Lazy-loaded provenance art that ships embedded with the DLL. Two
|
||||
// variants:
|
||||
// Lazy-loaded ASCII art that ships embedded with the DLL.
|
||||
//
|
||||
// - FoxBanner: the full-size silhouette with "Hellion Forge" inside
|
||||
// the body — rendered in the first-run wizard and the Information
|
||||
// tab as a small "about the makers" anchor.
|
||||
// - FoxMini: the four-line fox-head + curly-tail that gets stitched
|
||||
// into the DI-logger bootstrap line so an xllog reader sees the
|
||||
// same signature on every plugin load.
|
||||
//
|
||||
// Both files live as embedded resources under HellionChat.Branding.* so
|
||||
// the plugin DLL is self-contained — no on-disk asset lookup that could
|
||||
// The file lives as an embedded resource under HellionChat.Branding.* so
|
||||
// the plugin DLL is self-contained; no on-disk asset lookup that could
|
||||
// silently miss after a partial deploy.
|
||||
internal static class HellionForgeAscii
|
||||
{
|
||||
private static string? _foxBanner;
|
||||
private static string? _foxMini;
|
||||
|
||||
public static string FoxBanner => _foxBanner ??= Load("HellionChat.Branding.fox-banner.txt");
|
||||
|
||||
public static string FoxMini => _foxMini ??= Load("HellionChat.Branding.fox-mini.txt");
|
||||
|
||||
private static string Load(string resourceName)
|
||||
|
||||
Reference in New Issue
Block a user