Dawn/src/dawnliminal/scenes/HelloWorldScene.hpp
2023-06-18 13:46:15 -07:00

46 lines
1.5 KiB
C++

// 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<UICanvas>();
canvas->camera = camera;
auto textboxItem = this->createSceneItem();
auto textbox = textboxItem->addComponent<UIRichTextLabel>();
textbox->richText = "<font font=\"font_main\">Hello World</font>";
textbox->transform->setParent(canvas->transform);
}
std::vector<Asset*> getRequiredAssets() override {
auto assMan = &this->game->assetManager;
std::vector<Asset*> assets;
vectorAppend(&assets, SimpleSpinningCubePrefab::getRequiredAssets(assMan));
assets.push_back(assMan->get<TrueTypeAsset>("font_main"));
return assets;
}
public:
HelloWorldScene(DawnGame *game) : Scene(game) {}
};
}