54316313dc
Ship two ASCII variants as embedded resources under HellionChat.Branding: - fox-banner.txt — full silhouette with "Hellion Forge" set inside the body, rendered in the first-run wizard and the Settings Information tab as a folded "about the makers" anchor - fox-mini.txt — compact fox-head + curly-tail used by the DI-logger bootstrap banner A small HellionForgeAscii helper lazy-loads both strings; the wizard and information-tab render them in a collapsed TreeNode using the UiBuilder MonoFontHandle so the stipple-art lands pixel-aligned. Both art files are self-made (Julia Moon, free to use) and travel with the plugin DLL so a partial deploy can't lose them.
37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
namespace HellionChat.Branding;
|
|
|
|
// Lazy-loaded provenance art that ships embedded with the DLL. Two
|
|
// variants:
|
|
//
|
|
// - 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
|
|
// 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)
|
|
{
|
|
using var stream = typeof(HellionForgeAscii).Assembly.GetManifestResourceStream(
|
|
resourceName
|
|
);
|
|
if (stream is null)
|
|
return string.Empty;
|
|
|
|
using var reader = new StreamReader(stream);
|
|
return reader.ReadToEnd();
|
|
}
|
|
}
|