Just breaking stuff
This commit is contained in:
10
archive/dawnpokergame/ui/CMakeLists.txt
Normal file
10
archive/dawnpokergame/ui/CMakeLists.txt
Normal file
@ -0,0 +1,10 @@
|
||||
# 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
|
||||
PokerPlayerDisplay.cpp
|
||||
)
|
32
archive/dawnpokergame/ui/PokerGameBorder.hpp
Normal file
32
archive/dawnpokergame/ui/PokerGameBorder.hpp
Normal 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/UIBorder.hpp"
|
||||
#include "asset/assets/TextureAsset.hpp"
|
||||
#include "game/DawnGame.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class PokerGameBorder {
|
||||
public:
|
||||
static std::vector<Asset*> getAssets(AssetManager *man) {
|
||||
return std::vector<Asset*>{
|
||||
man->get<TextureAsset>("texture_test")
|
||||
};
|
||||
}
|
||||
|
||||
static void apply(UIBorder *border) {
|
||||
auto text = border->getGame()->assetManager.get<TextureAsset>("texture_test");
|
||||
border->texture = &text->texture;
|
||||
border->setBorderSize(glm::vec2(16, 16));
|
||||
}
|
||||
|
||||
static UIBorder * create(UICanvas *canvas) {
|
||||
auto border = canvas->addElement<UIBorder>();
|
||||
PokerGameBorder::apply(border);
|
||||
return border;
|
||||
}
|
||||
};
|
||||
}
|
46
archive/dawnpokergame/ui/PokerGameTextbox.hpp
Normal file
46
archive/dawnpokergame/ui/PokerGameTextbox.hpp
Normal file
@ -0,0 +1,46 @@
|
||||
// Copyright (c) 2022 Dominic Masters
|
||||
//
|
||||
// This software is released under the MIT License.
|
||||
// https://opensource.org/licenses/MIT
|
||||
|
||||
#pragma once
|
||||
#include "ui/PokerGameBorder.hpp"
|
||||
#include "visualnovel/ui/VisualNovelTextbox.hpp"
|
||||
#include "asset/assets/TrueTypeAsset.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class PokerGameTextbox {
|
||||
public:
|
||||
static std::vector<Asset*> getAssets(AssetManager *man) {
|
||||
assertNotNull(man);
|
||||
|
||||
std::vector<Asset*> assets;
|
||||
vectorAppend(&assets, &PokerGameBorder::getAssets(man));
|
||||
assets.push_back(man->get<TrueTypeAsset>("truetype_ark"));
|
||||
return assets;
|
||||
}
|
||||
|
||||
static void apply(VisualNovelTextbox *textbox) {
|
||||
assertNotNull(textbox);
|
||||
|
||||
auto assetFont = textbox->getGame()->assetManager.get<TrueTypeAsset>("truetype_ark");
|
||||
PokerGameBorder::apply(&textbox->border);
|
||||
textbox->setFont(&assetFont->font);
|
||||
textbox->setFontSize(40);
|
||||
textbox->setLabelPadding(glm::vec2(10, 8));
|
||||
}
|
||||
|
||||
static VisualNovelTextbox * create(UICanvas *canvas) {
|
||||
assertNotNull(canvas);
|
||||
|
||||
auto textbox = canvas->addElement<VisualNovelTextbox>();
|
||||
PokerGameTextbox::apply(textbox);
|
||||
textbox->setTransform(
|
||||
UI_COMPONENT_ALIGN_STRETCH, UI_COMPONENT_ALIGN_END,
|
||||
glm::vec4(0, 238, 0, 0),
|
||||
0.0f
|
||||
);
|
||||
return textbox;
|
||||
}
|
||||
};
|
||||
}
|
101
archive/dawnpokergame/ui/PokerPlayerDisplay.cpp
Normal file
101
archive/dawnpokergame/ui/PokerPlayerDisplay.cpp
Normal file
@ -0,0 +1,101 @@
|
||||
// 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;
|
||||
|
||||
PokerPlayerDisplay::PokerPlayerDisplay(UICanvas *canvas) :
|
||||
UIEmpty(canvas),
|
||||
labelName(canvas),
|
||||
labelChips(canvas),
|
||||
borderInner(canvas),
|
||||
border(canvas),
|
||||
animChips(&animChipsValue)
|
||||
{
|
||||
this->font = getGame()->assetManager.get<TrueTypeAsset>("truetype_ark");
|
||||
|
||||
// Border
|
||||
this->addChild(&this->border);
|
||||
PokerGameBorder::apply(&this->border);
|
||||
this->border.setTransform(
|
||||
UI_COMPONENT_ALIGN_STRETCH, UI_COMPONENT_ALIGN_STRETCH,
|
||||
glm::vec4(0, 0, 0, 0),
|
||||
0.0f
|
||||
);
|
||||
|
||||
// Border Inner
|
||||
this->addChild(&this->borderInner);
|
||||
this->borderInner.setTransform(
|
||||
UI_COMPONENT_ALIGN_STRETCH, UI_COMPONENT_ALIGN_STRETCH,
|
||||
glm::vec4(this->border.getBorderSize(), this->border.getBorderSize()),
|
||||
0.0f
|
||||
);
|
||||
|
||||
// Player Name
|
||||
this->borderInner.addChild(&this->labelName);
|
||||
this->labelName.setText("undefined");
|
||||
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
|
||||
);
|
||||
|
||||
// Chips label
|
||||
this->borderInner.addChild(&this->labelChips);
|
||||
this->labelChips.setFont(&this->font->font);
|
||||
this->labelChips.setFontSize(40);
|
||||
this->labelChips.setTransform(
|
||||
UI_COMPONENT_ALIGN_START, UI_COMPONENT_ALIGN_START,
|
||||
glm::vec4(0, this->labelName.getContentHeight(), 0, 0),
|
||||
0.0f
|
||||
);
|
||||
|
||||
// Anim
|
||||
this->animChips.easing = &easeOutQuart;
|
||||
|
||||
// Events
|
||||
getScene()->eventSceneUnpausedUpdate.addListener(this, &PokerPlayerDisplay::onSceneUpdate);
|
||||
}
|
||||
|
||||
void PokerPlayerDisplay::setPlayer(PokerPlayer *player) {
|
||||
assertNull(this->player);
|
||||
this->player = player;
|
||||
|
||||
player->eventChipsChanged.addListener(this, &PokerPlayerDisplay::onPlayerChipsChanged);
|
||||
|
||||
this->labelName.setText("undefined");
|
||||
this->animChips.clear();
|
||||
this->animChips.restart();
|
||||
this->animChipsValue = player->chips;
|
||||
|
||||
this->updatePositions();
|
||||
}
|
||||
|
||||
void PokerPlayerDisplay::onSceneUpdate() {
|
||||
this->animChips.tick(getGame()->timeManager.delta);
|
||||
|
||||
// std::stringstream stream;
|
||||
// stream.precision(0);
|
||||
// stream << "$";
|
||||
// stream << this->animChipsValue;
|
||||
this->labelChips.setText("undefined");
|
||||
}
|
||||
|
||||
void PokerPlayerDisplay::onPlayerChipsChanged() {
|
||||
std::cout << "Chips" << player->chips << std::endl;
|
||||
|
||||
this->animChips.clear();
|
||||
this->animChips.addKeyframe(0.0f, this->animChipsValue);
|
||||
this->animChips.addKeyframe(1.0f, this->player->chips);
|
||||
this->animChips.restart();
|
||||
}
|
||||
|
||||
PokerPlayerDisplay::~PokerPlayerDisplay() {
|
||||
this->canvas->getScene()->eventSceneUnpausedUpdate.removeListener(this, &PokerPlayerDisplay::onSceneUpdate);
|
||||
}
|
48
archive/dawnpokergame/ui/PokerPlayerDisplay.hpp
Normal file
48
archive/dawnpokergame/ui/PokerPlayerDisplay.hpp
Normal file
@ -0,0 +1,48 @@
|
||||
// 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 "ui/UIBorder.hpp"
|
||||
#include "poker/PokerPlayer.hpp"
|
||||
#include "asset/AssetManager.hpp"
|
||||
#include "asset/assets/TrueTypeAsset.hpp"
|
||||
#include "display/animation/SimpleAnimation.hpp"
|
||||
#include "ui/PokerGameBorder.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class PokerPlayerDisplay : public UIEmpty {
|
||||
private:
|
||||
SimpleAnimation<int32_t> animChips;
|
||||
int32_t animChipsValue;
|
||||
|
||||
protected:
|
||||
PokerPlayer *player = nullptr;
|
||||
UILabel labelName;
|
||||
UILabel labelChips;
|
||||
UIEmpty borderInner;
|
||||
UIBorder border;
|
||||
|
||||
TrueTypeAsset *font;
|
||||
|
||||
void onPlayerChipsChanged();
|
||||
void onSceneUpdate();
|
||||
|
||||
public:
|
||||
static std::vector<Asset*> getAssets(AssetManager *assMan) {
|
||||
std::vector<Asset*> assets;
|
||||
assets = PokerGameBorder::getAssets(assMan);
|
||||
assets.push_back(assMan->get<TrueTypeAsset>("truetype_alice"));
|
||||
return assets;
|
||||
}
|
||||
|
||||
PokerPlayerDisplay(UICanvas *canvas);
|
||||
|
||||
void setPlayer(PokerPlayer *player);
|
||||
|
||||
~PokerPlayerDisplay();
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user