// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "prefabs/ui/UIBorderPrefab.hpp" #include "visualnovel/ui/VisualNovelTextbox.hpp" namespace Dawn { class VisualNovelTextboxPrefab : public UIPrefab { public: static std::vector prefabAssets(AssetManager *man) { std::vector assets; assets.push_back(man->get("truetype_bizudp")); vectorAppend(&assets, UIBorderPrefab::getRequiredAssets(man)); return assets; } static void prefabApply(AssetManager *man, VisualNovelTextbox *textbox) { auto assetFont = man->get("truetype_bizudp"); UIBorderPrefab::apply(&textbox->border); textbox->setFont(&assetFont->font); textbox->setFontSize(36.0f); textbox->setLabelPadding(glm::vec2(2, 2)); textbox->label.textColor = COLOR_WHITE; textbox->setTransform( UI_COMPONENT_ALIGN_STRETCH, UI_COMPONENT_ALIGN_END, glm::vec4( 0, (assetFont->font.getLineHeight(textbox->getFontSize()) * 4) + (textbox->border.getBorderSize().y * 2.0f) + (textbox->getLabelPadding().y * 2.0f), 0, 0 ), 0.0f ); } }; }