From ca1426eabc873f781eb0dd389d45634b7d183250 Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Mon, 22 Apr 2024 06:07:59 +1000 Subject: Lua chat callbacks + better font styling golly gee whiz!! i hope i didn't fuck something up --- source/core/StarText.cpp | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'source/core/StarText.cpp') diff --git a/source/core/StarText.cpp b/source/core/StarText.cpp index 11fca27..86c9f25 100644 --- a/source/core/StarText.cpp +++ b/source/core/StarText.cpp @@ -1,9 +1,35 @@ #include "StarText.hpp" - +#include "StarJsonExtra.hpp" #include namespace Star { +TextStyle::TextStyle(Json const& config) : TextStyle() { + if (config.isType(Json::Type::String)) + font = config.toString(); + else + loadJson(config); +} +TextStyle& TextStyle::loadJson(Json const& config) { + if (!config) + return *this; + + lineSpacing = config.getFloat("lineSpacing", lineSpacing); + if (auto jColor = config.opt("color")) + color = jsonToColor(*jColor).toRgba(); + if (auto jShadow = config.opt("shadow")) + shadow = jsonToColor(*jShadow).toRgba(); + fontSize = config.getUInt("fontSize", fontSize); + if (auto jFont = config.optString("font")) + font = *jFont; + if (auto jDirectives = config.optString("directives")) + directives = *jDirectives; + if (auto jBackDirectives = config.optString("backDirectives")) + backDirectives = *jBackDirectives; + + return *this; +} + namespace Text { static auto stripEscapeRegex = std::regex(strf("\\{:c}[^;]*{:c}", CmdEsc, EndEsc)); String stripEscapeCodes(String const& s) { -- cgit v1.2.3