// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "scene/Scene.hpp" #include "prefabs/SimpleSpinningCubePrefab.hpp" #include "scene/components/display/Camera.hpp" #include "scene/components/ui/text/UIRichTextLabel.hpp" #include "prefabs/VNTextbox.hpp" namespace Dawn { class HelloWorldScene : public Scene { protected: Camera *camera; SimpleSpinningCubePrefab *cube; void stage() override { camera = Camera::create(this); camera->transform->lookAt(glm::vec3(3, 3, 3), glm::vec3(0, 0, 0)); cube = SimpleSpinningCubePrefab::create(this); auto canvasItem = this->createSceneItem(); auto canvas = canvasItem->addComponent(); canvas->camera = camera; auto textboxItem = this->createSceneItem(); auto textbox = textboxItem->addComponent(); textbox->richText = "Hello World"; textbox->transform->setParent(canvas->transform); } std::vector getRequiredAssets() override { auto assMan = &this->game->assetManager; std::vector assets; vectorAppend(&assets, SimpleSpinningCubePrefab::getRequiredAssets(assMan)); assets.push_back(assMan->get("font_main")); return assets; } public: HelloWorldScene(DawnGame *game) : Scene(game) {} }; }