From d6b7895cab3a73f1182afb449e265db90213ad86 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Fri, 6 Jan 2023 21:01:06 -0800 Subject: [PATCH] E --- src/dawn/prefab/Prefab.hpp | 16 +++--- src/dawn/prefab/SceneItemPrefab.hpp | 22 +++++--- src/dawn/prefab/UIPrefab.hpp | 18 ++++--- src/dawn/prefabs/display/SimpleCubePrefab.hpp | 39 -------------- src/dawn/scene/components/ui/UICanvas.cpp | 2 +- src/dawn/scene/components/ui/UICanvas.hpp | 2 +- src/dawn/util/array.hpp | 11 ++++ src/dawn/visualnovel/VisualNovelManager.cpp | 1 - .../SimpleVisualNovelBackground.cpp | 2 +- src/dawn/visualnovel/scene/SimpleVNScene.cpp | 11 ++-- src/dawn/visualnovel/scene/SimpleVNScene.hpp | 1 + src/dawnpokergame/CMakeLists.txt | 1 - src/dawnpokergame/game/DawnGame.cpp | 4 +- src/dawnpokergame/prefabs/CMakeLists.txt | 10 ---- src/dawnpokergame/prefabs/VNPenny.hpp | 52 ------------------ .../prefabs/characters/PennyPrefab.hpp | 53 +++++++++++++++++++ .../prefabs/ui/UIBorderPrefab.hpp | 25 +++++++++ .../prefabs/ui/VisualNovelTextboxPrefab.hpp | 34 ++++++++++++ src/dawnpokergame/scenes/PokerVNScene.cpp | 8 +-- .../scenes/PrefabTestingScene.hpp | 32 ----------- src/dawnpokergame/scenes/TestScene.hpp | 36 +++++-------- 21 files changed, 190 insertions(+), 190 deletions(-) delete mode 100644 src/dawn/prefabs/display/SimpleCubePrefab.hpp delete mode 100644 src/dawnpokergame/prefabs/CMakeLists.txt delete mode 100644 src/dawnpokergame/prefabs/VNPenny.hpp create mode 100644 src/dawnpokergame/prefabs/characters/PennyPrefab.hpp create mode 100644 src/dawnpokergame/prefabs/ui/UIBorderPrefab.hpp create mode 100644 src/dawnpokergame/prefabs/ui/VisualNovelTextboxPrefab.hpp delete mode 100644 src/dawnpokergame/scenes/PrefabTestingScene.hpp diff --git a/src/dawn/prefab/Prefab.hpp b/src/dawn/prefab/Prefab.hpp index 8373b99a..4192448f 100644 --- a/src/dawn/prefab/Prefab.hpp +++ b/src/dawn/prefab/Prefab.hpp @@ -8,26 +8,28 @@ #include "scene/Scene.hpp" namespace Dawn { - template + template class Prefab { public: /** * Returns the list of assets required for this prefab. * + * @param man Asset Manasger for getting required assets from. * @return List of required assets this prefab. */ - static std::vector getRequiredAssets() { - return T::prefabAssets(); + static std::vector getRequiredAssets(AssetManager *man) { + return P::prefabAssets(man); } /** - * Creates a new instance of this asset. + * Creates a new instance of this prefabricated asset. * - * @param scene Scene this item belongs to. + * @param context Custom context that this prefab needs to initialize. * @return The instance of the created prefab. */ - static T * create(Scene *scene, UICanvas *canvas) { - return T::prefabCreate(scene, canvas); + static T * create(J *context) { + assertNotNull(context); + return P::prefabCreate(context); } }; } \ No newline at end of file diff --git a/src/dawn/prefab/SceneItemPrefab.hpp b/src/dawn/prefab/SceneItemPrefab.hpp index 377f9adb..6fc5ba6f 100644 --- a/src/dawn/prefab/SceneItemPrefab.hpp +++ b/src/dawn/prefab/SceneItemPrefab.hpp @@ -11,17 +11,27 @@ namespace Dawn { template class SceneItemPrefab : public SceneItem, - public Prefab + public Prefab { - protected: - public: - static T * prefabCreate(Scene *scene, UICanvas *canvas) { + /** + * Creates an instance of this prefab for the given scene. + * + * @param scene Scene that this prefab is going to be added to. + * @return The created prefab instance. + */ + static T * prefabCreate(Scene *scene) { T *item = scene->createSceneItemOfType(); - item->prefabInit(); + item->prefabInit(&scene->game->assetManager); return item; } + /** + * Constructor for this SceneItemPrefab. + * + * @param scene Scene that this prefab belongs to. + * @param id ID of this scene item. + */ SceneItemPrefab(Scene *scene, sceneitemid_t id) : SceneItem(scene, id) { @@ -32,6 +42,6 @@ namespace Dawn { * Virtual method called by the subclass for initialization after the * prefab has been created. */ - virtual void prefabInit() = 0; + virtual void prefabInit(AssetManager *man) = 0; }; } \ No newline at end of file diff --git a/src/dawn/prefab/UIPrefab.hpp b/src/dawn/prefab/UIPrefab.hpp index 7bd81351..002bb82e 100644 --- a/src/dawn/prefab/UIPrefab.hpp +++ b/src/dawn/prefab/UIPrefab.hpp @@ -5,19 +5,23 @@ #pragma once #include "Prefab.hpp" +#include "ui/UIComponent.hpp" namespace Dawn { - template + template class UIPrefab : - public Prefab + public Prefab { public: - static T * prefabCreate(Scene *scene) { - - } - static void apply(T *item) { - + assertNotNull(item); + P::prefabApply(&item->getGame()->assetManager , item); + } + + static T * prefabCreate(UICanvas *canvas) { + T * item = canvas->addElement(); + P::apply(item); + return item; } }; } \ No newline at end of file diff --git a/src/dawn/prefabs/display/SimpleCubePrefab.hpp b/src/dawn/prefabs/display/SimpleCubePrefab.hpp deleted file mode 100644 index 6d4207cc..00000000 --- a/src/dawn/prefabs/display/SimpleCubePrefab.hpp +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) 2022 Dominic Masters -// -// This software is released under the MIT License. -// https://opensource.org/licenses/MIT - -#pragma once -#include "prefab/SceneItemPrefab.hpp" -#include "scene/components/Components.hpp" -#include "display/mesh/CubeMesh.hpp" - -namespace Dawn { - class SimpleCubePrefab : public SceneItemPrefab { - public: - MeshRenderer *renderer = nullptr; - MeshHost *host = nullptr; - Material *material = nullptr; - - static std::vector prefabAssets() { - return std::vector(); - } - - SimpleCubePrefab(Scene *scene, sceneitemid_t id) : - SceneItemPrefab(scene, id) - { - - } - - void prefabInit() override { - this->renderer = this->addComponent(); - this->host = this->addComponent(); - this->material = this->addComponent(); - - this->host->mesh.createBuffers(CUBE_VERTICE_COUNT, CUBE_INDICE_COUNT); - CubeMesh::buffer(&this->host->mesh, glm::vec3(-0.5f, -0.5f, -0.5f), glm::vec3(1, 1, 1), 0, 0); - - std::cout << "Preab Init" << std::endl; - } - }; -} \ No newline at end of file diff --git a/src/dawn/scene/components/ui/UICanvas.cpp b/src/dawn/scene/components/ui/UICanvas.cpp index 37faae67..383f921f 100644 --- a/src/dawn/scene/components/ui/UICanvas.cpp +++ b/src/dawn/scene/components/ui/UICanvas.cpp @@ -10,7 +10,7 @@ using namespace Dawn; -UICanvas * UICanvas::createCanvas(Scene *scene) { +UICanvas * UICanvas::create(Scene *scene) { auto item = scene->createSceneItem(); return item->addComponent(); } diff --git a/src/dawn/scene/components/ui/UICanvas.hpp b/src/dawn/scene/components/ui/UICanvas.hpp index abadbb7b..e67ac356 100644 --- a/src/dawn/scene/components/ui/UICanvas.hpp +++ b/src/dawn/scene/components/ui/UICanvas.hpp @@ -32,7 +32,7 @@ namespace Dawn { * @param scene Scene to create the UI Canvas for. * @return Created UI Canvas. */ - static UICanvas * createCanvas(Scene *scene); + static UICanvas * create(Scene *scene); // std::vector children; diff --git a/src/dawn/util/array.hpp b/src/dawn/util/array.hpp index 168905c2..036cc133 100644 --- a/src/dawn/util/array.hpp +++ b/src/dawn/util/array.hpp @@ -19,4 +19,15 @@ namespace Dawn { ++it; } } + + template + void vectorAppend(std::vector *list, std::vector append) { + assertNotNull(list); + + auto it = append.begin(); + while(it != append.end()) { + list->push_back(*it); + ++it; + } + } } diff --git a/src/dawn/visualnovel/VisualNovelManager.cpp b/src/dawn/visualnovel/VisualNovelManager.cpp index d70bfe34..c600b6e7 100644 --- a/src/dawn/visualnovel/VisualNovelManager.cpp +++ b/src/dawn/visualnovel/VisualNovelManager.cpp @@ -22,7 +22,6 @@ void VisualNovelManager::onStart() { this->fader = this->uiCanvas->findElement(); assertNotNull(this->textBox); - assertNotNull(this->fader); this->getScene()->eventSceneUnpausedUpdate.addListener(this, &VisualNovelManager::onUnpausedUpdate); diff --git a/src/dawn/visualnovel/components/SimpleVisualNovelBackground.cpp b/src/dawn/visualnovel/components/SimpleVisualNovelBackground.cpp index 08907621..0545d987 100644 --- a/src/dawn/visualnovel/components/SimpleVisualNovelBackground.cpp +++ b/src/dawn/visualnovel/components/SimpleVisualNovelBackground.cpp @@ -9,7 +9,7 @@ using namespace Dawn; SimpleVisualNovelBackground * SimpleVisualNovelBackground::create(Scene *s) { auto item = s->createSceneItem(); - item->addComponent(); + // item->addComponent(); item->addComponent(); item->addComponent(); auto background = item->addComponent(); diff --git a/src/dawn/visualnovel/scene/SimpleVNScene.cpp b/src/dawn/visualnovel/scene/SimpleVNScene.cpp index 68ed2215..81fe0e90 100644 --- a/src/dawn/visualnovel/scene/SimpleVNScene.cpp +++ b/src/dawn/visualnovel/scene/SimpleVNScene.cpp @@ -14,23 +14,26 @@ SimpleVNScene::SimpleVNScene(DawnGame *game) : Scene(game) { std::vector SimpleVNScene::getRequiredAssets() { auto assMan = &this->game->assetManager; - // return PokerGameTextbox::getAssets(assMan); + std::vector assets; + vectorAppend(&assets, VisualNovelTextboxPrefab::getRequiredAssets(assMan)); return std::vector(); } void SimpleVNScene::stage() { + auto assMan = &this->game->assetManager; + // Camera this->camera = Camera::create(this); this->camera->transform->lookAtPixelPerfect( glm::vec3(0, 0, 0), glm::vec3(0, 0, 0), - 1.0f, + this->camera->getRenderTarget()->getHeight(), camera->fov ); // UI - this->canvas = UICanvas::createCanvas(this); - // this->textbox = Prefab::create(this)->getComponent(); + this->canvas = UICanvas::create(this); + this->textbox = VisualNovelTextboxPrefab::create(this->canvas); this->background = SimpleVisualNovelBackground::create(this); // VN Manager diff --git a/src/dawn/visualnovel/scene/SimpleVNScene.hpp b/src/dawn/visualnovel/scene/SimpleVNScene.hpp index 9d69344a..f6838744 100644 --- a/src/dawn/visualnovel/scene/SimpleVNScene.hpp +++ b/src/dawn/visualnovel/scene/SimpleVNScene.hpp @@ -13,6 +13,7 @@ #include "visualnovel/events/VisualNovelPauseEvent.hpp" #include "visualnovel/events/VisualNovelFadeEvent.hpp" #include "visualnovel/events/VisualNovelChangeSimpleBackgroundEvent.hpp" +#include "prefabs/ui/VisualNovelTextboxPrefab.hpp" namespace Dawn { class SimpleVNScene : public Scene { diff --git a/src/dawnpokergame/CMakeLists.txt b/src/dawnpokergame/CMakeLists.txt index 3b258a40..ca536f96 100644 --- a/src/dawnpokergame/CMakeLists.txt +++ b/src/dawnpokergame/CMakeLists.txt @@ -17,7 +17,6 @@ target_include_directories(${DAWN_TARGET_NAME} # Subdirs add_subdirectory(game) -add_subdirectory(prefabs) add_subdirectory(ui) add_subdirectory(visualnovel) add_subdirectory(save) diff --git a/src/dawnpokergame/game/DawnGame.cpp b/src/dawnpokergame/game/DawnGame.cpp index f2e17521..9336af7b 100644 --- a/src/dawnpokergame/game/DawnGame.cpp +++ b/src/dawnpokergame/game/DawnGame.cpp @@ -5,7 +5,7 @@ #include "DawnGame.hpp" #include "scenes/Scene_1_1.hpp" -#include "scenes/PrefabTestingScene.hpp" +#include "scenes/TestScene.hpp" using namespace Dawn; @@ -23,7 +23,7 @@ int32_t DawnGame::init() { this->localeManager.init(); this->renderManager.init(); - this->scene = new PrefabTestingScene(this); + this->scene = new TestScene(this); return DAWN_GAME_INIT_RESULT_SUCCESS; } diff --git a/src/dawnpokergame/prefabs/CMakeLists.txt b/src/dawnpokergame/prefabs/CMakeLists.txt deleted file mode 100644 index 40d68310..00000000 --- a/src/dawnpokergame/prefabs/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright (c) 2022 Dominic Masters -# -# This software is released under the MIT License. -# https://opensource.org/licenses/MIT - -# Sources -# target_sources(${DAWN_TARGET_NAME} -# PRIVATE -# VNPlayer.cpp -# ) \ No newline at end of file diff --git a/src/dawnpokergame/prefabs/VNPenny.hpp b/src/dawnpokergame/prefabs/VNPenny.hpp deleted file mode 100644 index 3c9c20ff..00000000 --- a/src/dawnpokergame/prefabs/VNPenny.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) 2022 Dominic Masters -// -// This software is released under the MIT License. -// https://opensource.org/licenses/MIT - -#pragma once -#include "asset/AssetManager.hpp" -#include "poker/PokerPlayer.hpp" -#include "scene/components/Components.hpp" -#include "visualnovel/components/VisualNovelCharacter.hpp" -#include "display/animation/TiledSpriteAnimation.hpp" - -namespace Dawn { - class VNPenny { - public: - static std::vector getAssets(AssetManager *assMan) { - return std::vector{ - assMan->get("texture_penny"), - assMan->get("tileset_penny") - }; - } - - static SceneItem * create(Scene *scene) { - auto item = scene->createSceneItem(); - - auto textureAsset = scene->game->assetManager.get("texture_penny"); - auto tilesetAsset = scene->game->assetManager.get("tileset_penny"); - - auto meshRenderer = item->addComponent(); - auto material = item->addComponent(); - auto meshHost = item->addComponent(); - auto tiledSprite = item->addComponent(); - auto animation = item->addComponent(); - auto pokerPlayer = item->addComponent(); - auto vnCharacter = item->addComponent(); - - vnCharacter->nameKey = "character.penny.name"; - - auto param = material->getShader()->getParameterByName("u_Text"); - material->textureValues[param] = &textureAsset->texture; - - tiledSprite->setTilesetAndSize(&tilesetAsset->tileset); - - auto anim = new TiledSpriteAnimation(tiledSprite); - anim->addSequentialKeyframes(0.1f, 0, 22); - anim->loop = true; - animation->animation = anim; - - return item; - } - }; -} \ No newline at end of file diff --git a/src/dawnpokergame/prefabs/characters/PennyPrefab.hpp b/src/dawnpokergame/prefabs/characters/PennyPrefab.hpp new file mode 100644 index 00000000..1a767894 --- /dev/null +++ b/src/dawnpokergame/prefabs/characters/PennyPrefab.hpp @@ -0,0 +1,53 @@ +// Copyright (c) 2023 Dominic Masters +// +// This software is released under the MIT License. +// https://opensource.org/licenses/MIT + +#pragma once +#include "prefab/SceneItemPrefab.hpp" +#include "asset/AssetManager.hpp" +#include "poker/PokerPlayer.hpp" +#include "scene/components/Components.hpp" +#include "visualnovel/components/VisualNovelCharacter.hpp" +#include "display/animation/TiledSpriteAnimation.hpp" + +namespace Dawn { + class PennyPrefab : public SceneItemPrefab { + public: + static std::vector prefabAssets(AssetManager *assMan) { + return std::vector{ + assMan->get("texture_penny"), + assMan->get("tileset_penny") + }; + } + + PennyPrefab(Scene *scene, sceneitemid_t id) : SceneItemPrefab(scene, id){} + + void prefabInit(AssetManager *man) override { + auto textureAsset = man->get("texture_penny"); + auto tilesetAsset = man->get("tileset_penny"); + + auto meshRenderer = this->addComponent(); + auto material = this->addComponent(); + auto meshHost = this->addComponent(); + auto tiledSprite = this->addComponent(); + auto animation = this->addComponent(); + auto pokerPlayer = this->addComponent(); + auto vnCharacter = this->addComponent(); + + vnCharacter->nameKey = "character.penny.name"; + + auto param = material->getShader()->getParameterByName("u_Text"); + material->textureValues[param] = &textureAsset->texture; + + tiledSprite->setTilesetAndSize(&tilesetAsset->tileset); + tiledSprite->setTile(0); + this->transform.setLocalPosition(glm::vec3(0, 0, 0)); + + // auto anim = new TiledSpriteAnimation(tiledSprite); + // anim->addSequentialKeyframes(0.1f, 0, 22); + // anim->loop = true; + // animation->animation = anim; + } + }; +} \ No newline at end of file diff --git a/src/dawnpokergame/prefabs/ui/UIBorderPrefab.hpp b/src/dawnpokergame/prefabs/ui/UIBorderPrefab.hpp new file mode 100644 index 00000000..586d2b6c --- /dev/null +++ b/src/dawnpokergame/prefabs/ui/UIBorderPrefab.hpp @@ -0,0 +1,25 @@ +// Copyright (c) 2023 Dominic Masters +// +// This software is released under the MIT License. +// https://opensource.org/licenses/MIT + +#pragma once +#include "prefab/UIPrefab.hpp" +#include "ui/UIBorder.hpp" + +namespace Dawn { + class UIBorderPrefab : public UIPrefab { + public: + static std::vector prefabAssets(AssetManager *man) { + std::vector assets; + assets.push_back(man->get("texture_test")); + return assets; + } + + static void prefabApply(AssetManager *man, UIBorder *border) { + auto text = man->get("texture_test"); + border->texture = &text->texture; + border->setBorderSize(glm::vec2(16, 16)); + } + }; +} \ No newline at end of file diff --git a/src/dawnpokergame/prefabs/ui/VisualNovelTextboxPrefab.hpp b/src/dawnpokergame/prefabs/ui/VisualNovelTextboxPrefab.hpp new file mode 100644 index 00000000..fcdba540 --- /dev/null +++ b/src/dawnpokergame/prefabs/ui/VisualNovelTextboxPrefab.hpp @@ -0,0 +1,34 @@ +// 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_ark")); + return assets; + } + + static void prefabApply(AssetManager *man, VisualNovelTextbox *textbox) { + auto assetFont = man->get("truetype_ark"); + UIBorderPrefab::apply(&textbox->border); + textbox->setFont(&assetFont->font); + textbox->setFontSize(40); + textbox->setLabelPadding(glm::vec2(10, 8)); + textbox->setTransform( + UI_COMPONENT_ALIGN_STRETCH, UI_COMPONENT_ALIGN_END, + glm::vec4(0, 238, 0, 0), + 0.0f + ); + } + }; +} \ No newline at end of file diff --git a/src/dawnpokergame/scenes/PokerVNScene.cpp b/src/dawnpokergame/scenes/PokerVNScene.cpp index 98269537..f0cf6e60 100644 --- a/src/dawnpokergame/scenes/PokerVNScene.cpp +++ b/src/dawnpokergame/scenes/PokerVNScene.cpp @@ -14,7 +14,7 @@ PokerVNScene::PokerVNScene(DawnGame *game) : SimpleVNScene(game) { std::vector PokerVNScene::getRequiredAssets() { auto assMan = &this->game->assetManager; std::vector assets, l; - vectorAppend(&assets, &(l = SimpleVNScene::getRequiredAssets())); + vectorAppend(&assets,SimpleVNScene::getRequiredAssets()); vectorAppend(&assets, &(l = PokerPlayerDisplay::getAssets(assMan))); return assets; } @@ -29,9 +29,9 @@ void PokerVNScene::vnStage() { int32_t i = 0; while(it != this->pokerPlayers.end()) { auto player = *it; - auto uiPlayer = canvas->addElement(); - uiPlayer->setTransform(UI_COMPONENT_ALIGN_START, UI_COMPONENT_ALIGN_START, glm::vec4(i * 220, 0, 220, 200), 0); - uiPlayer->setPlayer(player); + // auto uiPlayer = canvas->addElement(); + // uiPlayer->setTransform(UI_COMPONENT_ALIGN_START, UI_COMPONENT_ALIGN_START, glm::vec4(i * 220, 0, 220, 200), 0); + // uiPlayer->setPlayer(player); ++it; ++i; } diff --git a/src/dawnpokergame/scenes/PrefabTestingScene.hpp b/src/dawnpokergame/scenes/PrefabTestingScene.hpp deleted file mode 100644 index 690ed1b8..00000000 --- a/src/dawnpokergame/scenes/PrefabTestingScene.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) 2022 Dominic Masters -// -// This software is released under the MIT License. -// https://opensource.org/licenses/MIT - -#pragma once -#include "scene/Scene.hpp" -#include "game/DawnGame.hpp" -#include "prefabs/display/SimpleCubePrefab.hpp" - -namespace Dawn { - class PrefabTestingScene : public Scene { - protected: - SimpleCubePrefab *cube = nullptr; - Camera *camera = nullptr; - - public: - PrefabTestingScene(DawnGame *game) : Scene(game) { - - } - - std::vector getRequiredAssets() override { - return std::vector(); - } - - void stage() override { - camera = Camera::create(this); - camera->transform->lookAt(glm::vec3(5, 5, 5), glm::vec3(0, 0, 0)); - cube = SimpleCubePrefab::create(this); - } - }; -} \ No newline at end of file diff --git a/src/dawnpokergame/scenes/TestScene.hpp b/src/dawnpokergame/scenes/TestScene.hpp index 37744b69..43d6e2df 100644 --- a/src/dawnpokergame/scenes/TestScene.hpp +++ b/src/dawnpokergame/scenes/TestScene.hpp @@ -5,21 +5,21 @@ #pragma once #include "PokerVNScene.hpp" -#include "prefabs/VNPenny.hpp" +#include "prefabs/characters/PennyPrefab.hpp" namespace Dawn { class TestScene : public PokerVNScene { protected: - SceneItem *penny; - SceneItem *julie; - SceneItem *sammy; - SceneItem *lucy; + PennyPrefab *penny; + PennyPrefab *julie; + PennyPrefab *sammy; + PennyPrefab *lucy; void vnStage() override { - penny = VNPenny::create(this); - julie = VNPenny::create(this); - sammy = VNPenny::create(this); - lucy = VNPenny::create(this); + penny = PennyPrefab::create(this); + julie = PennyPrefab::create(this); + sammy = PennyPrefab::create(this); + lucy = PennyPrefab::create(this); PokerVNScene::vnStage(); } @@ -39,27 +39,19 @@ namespace Dawn { auto start = new VisualNovelChangeSimpleBackgroundEvent( vnManager, &texture->texture ); - - start - ->then(new VisualNovelTextboxEvent(vnManager, penny->getComponent(), "scene.1.1")) - // ->then(new PokerNewGameEvent(vnManager)) - ->then(new VisualNovelTextboxEvent(vnManager, penny->getComponent(), "undefined")) - // ->then(new PokerInitialEvent(vnManager)) - ; - + + start->then(new VisualNovelTextboxEvent(vnManager, penny->getComponent(), "scene.1.1")); return start; } public: - TestScene(DawnGame *game) : PokerVNScene(game) { - - } + TestScene(DawnGame *game) : PokerVNScene(game) {} std::vector getRequiredAssets() override { auto assMan = &this->game->assetManager; std::vector assets; - vectorAppend(&assets, &PokerVNScene::getRequiredAssets()); - vectorAppend(&assets, &VNPenny::getAssets(assMan)); + vectorAppend(&assets, PokerVNScene::getRequiredAssets()); + vectorAppend(&assets, PennyPrefab::getRequiredAssets(assMan)); assets.push_back(assMan->get("texture_tavern_night")); return assets; }