Working on assets

This commit is contained in:
2022-12-01 22:37:42 -08:00
parent 535e2b2dc5
commit ba9881e39d
18 changed files with 355 additions and 42 deletions

View File

@ -4,7 +4,7 @@
# https://opensource.org/licenses/MIT
# Sources
# target_sources(${DAWN_TARGET_NAME}
# PRIVATE
# PokerGameTextbox.cpp
# )
target_sources(${DAWN_TARGET_NAME}
PRIVATE
PokerPlayerDisplay.cpp
)

View File

@ -11,12 +11,20 @@
namespace Dawn {
class PokerGameTextbox {
public:
static VisualNovelTextbox * create(UICanvas *canvas) {
auto textbox = canvas->addElement<VisualNovelTextbox>();
auto assetFont = canvas->getGame()->assetManager.load<TrueTypeAsset>("truetype_ark");
auto assetTexture = canvas->getGame()->assetManager.load<TextureAsset>("texture_test");
static std::vector<Asset*> getAssets(AssetManager *man) {
return std::vector<Asset*>{
man->get<TrueTypeAsset>("truetype_ark"),
man->get<TextureAsset>("texture_test")
};
}
static VisualNovelTextbox * create(UICanvas *canvas) {
auto assMan = &canvas->getGame()->assetManager;
auto assetFont = assMan->get<TrueTypeAsset>("truetype_ark");
auto assetTexture = assMan->get<TextureAsset>("texture_test");
auto textbox = canvas->addElement<VisualNovelTextbox>();
textbox->setBorder(&assetTexture->texture, glm::vec2(16, 16));
textbox->setFont(&assetFont->font);
textbox->setFontSize(40);

View File

@ -0,0 +1,62 @@
// Copyright (c) 2022 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#include "PokerPlayerDisplay.hpp"
#include "game/DawnGame.hpp"
using namespace Dawn;
void PokerPlayerDisplay::updatePositions() {
UIEmpty::updatePositions();
this->labelChips.setTransform(
UI_COMPONENT_ALIGN_START, UI_COMPONENT_ALIGN_START,
glm::vec4(0, this->labelName.getHeight(), 0, 0),
0
);
}
PokerPlayerDisplay::PokerPlayerDisplay(UICanvas *canvas) :
UIEmpty(canvas),
labelName(canvas),
labelChips(canvas)
{
this->font = canvas->getGame()->assetManager.get<TrueTypeAsset>("truetype_ark");
this->addChild(&this->labelName);
this->labelName.setFont(&this->font->font);
this->labelName.setFontSize(40);
this->labelName.setTransform(
UI_COMPONENT_ALIGN_START, UI_COMPONENT_ALIGN_START,
glm::vec4(0, 0, 0, 0),
0.0f
);
this->addChild(&this->labelChips);
this->labelChips.setFont(&this->font->font);
this->labelChips.setFontSize(40);
this->font->eventLoaded.addListener(this, &PokerPlayerDisplay::onFontLoaded);
}
void PokerPlayerDisplay::setPlayer(PokerPlayer *player) {
assertNull(this->player);
this->player = player;
this->labelName.setText("Player");
this->labelChips.setText("Chips");
this->updatePositions();
}
void PokerPlayerDisplay::onFontLoaded() {
this->labelName.setFont(&this->font->font);
this->labelChips.setFont(&this->font->font);
this->updatePositions();
}
PokerPlayerDisplay::~PokerPlayerDisplay() {
this->font->eventLoaded.removeListener(this, &PokerPlayerDisplay::onFontLoaded);
}

View File

@ -0,0 +1,32 @@
// Copyright (c) 2022 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#pragma once
#include "ui/UILabel.hpp"
#include "ui/UIEmpty.hpp"
#include "poker/PokerPlayer.hpp"
#include "asset/assets/TrueTypeAsset.hpp"
namespace Dawn {
class PokerPlayerDisplay : public UIEmpty {
private:
void onFontLoaded();
protected:
PokerPlayer *player = nullptr;
UILabel labelName;
UILabel labelChips;
TrueTypeAsset *font;
void updatePositions() override;
public:
PokerPlayerDisplay(UICanvas *canvas);
void setPlayer(PokerPlayer *player);
~PokerPlayerDisplay();
};
}