frontend/gui refactor

This commit is contained in:
MihailRis
2024-01-31 04:26:35 +03:00
parent 49fdcdfb27
commit 8c722b146e
17 changed files with 331 additions and 332 deletions
+21 -22
View File
@@ -51,18 +51,17 @@ using glm::vec3;
using glm::vec4;
using namespace gui;
inline std::shared_ptr<Label> create_label(gui::wstringsupplier supplier) {
static std::shared_ptr<Label> create_label(gui::wstringsupplier supplier) {
auto label = std::make_shared<Label>(L"-");
label->textSupplier(supplier);
return label;
}
void HudRenderer::createDebugPanel(Engine* engine) {
std::shared_ptr<UINode> HudRenderer::createDebugPanel(Engine* engine) {
auto level = frontend->getLevel();
Panel* panel = new Panel(vec2(250, 200), vec4(5.0f), 1.0f);
debugPanel = std::shared_ptr<UINode>(panel);
panel->listenInterval(1.0f, [this]() {
auto panel = std::make_shared<Panel>(vec2(250, 200), vec4(5.0f), 1.0f);
panel->listenInterval(0.5f, [this]() {
fpsString = std::to_wstring(fpsMax)+L" / "+std::to_wstring(fpsMin);
fpsMin = fps;
fpsMax = fps;
@@ -104,9 +103,9 @@ void HudRenderer::createDebugPanel(Engine* engine) {
std::wstring str = L"x: ";
str[0] += ax;
Label* label = new Label(str);
label->margin(vec4(2, 3, 2, 3));
label->setMargin(vec4(2, 3, 2, 3));
sub->add(label);
sub->color(vec4(0.0f));
sub->setColor(vec4(0.0f));
// Coord input
TextBox* box = new TextBox(L"");
@@ -162,6 +161,7 @@ void HudRenderer::createDebugPanel(Engine* engine) {
panel->add(checkbox);
}
panel->refresh();
return panel;
}
std::shared_ptr<InventoryView> HudRenderer::createContentAccess() {
@@ -265,14 +265,14 @@ HudRenderer::HudRenderer(Engine* engine, LevelFrontend* frontend)
frontend->getLevel()->content,
SlotLayout(glm::vec2(), false, false, nullptr, nullptr)
);
grabbedItemView->color(glm::vec4());
grabbedItemView->setColor(glm::vec4());
grabbedItemView->setInteractive(false);
contentAccess = createContentAccess();
contentAccessPanel = std::make_shared<Panel>(
contentAccess->size(), vec4(0.0f), 0.0f
contentAccess->getSize(), vec4(0.0f), 0.0f
);
contentAccessPanel->color(glm::vec4());
contentAccessPanel->setColor(glm::vec4());
contentAccessPanel->add(contentAccess);
contentAccessPanel->scrollable(true);
@@ -280,13 +280,13 @@ HudRenderer::HudRenderer(Engine* engine, LevelFrontend* frontend)
inventoryView = createInventory();
darkOverlay = std::make_unique<Panel>(glm::vec2(4000.0f));
darkOverlay->color(glm::vec4(0, 0, 0, 0.5f));
darkOverlay->setColor(glm::vec4(0, 0, 0, 0.5f));
uicamera = new Camera(vec3(), 1);
uicamera = std::make_unique<Camera>(vec3(), 1);
uicamera->perspective = false;
uicamera->flipped = true;
createDebugPanel(engine);
debugPanel = createDebugPanel(engine);
menu->reset();
gui->addBack(darkOverlay);
@@ -304,7 +304,6 @@ HudRenderer::~HudRenderer() {
gui->remove(darkOverlay);
gui->remove(contentAccessPanel);
gui->remove(debugPanel);
delete uicamera;
}
void HudRenderer::drawDebug(int fps){
@@ -318,8 +317,8 @@ void HudRenderer::update(bool visible) {
auto player = level->player;
auto menu = gui->getMenu();
debugPanel->visible(player->debug && visible);
menu->visible(pause);
debugPanel->setVisible(player->debug && visible);
menu->setVisible(pause);
if (!visible && inventoryOpen) {
closeInventory();
@@ -351,11 +350,11 @@ void HudRenderer::update(bool visible) {
Events::toggleCursor();
}
glm::vec2 invSize = contentAccessPanel->size();
inventoryView->visible(inventoryOpen);
contentAccessPanel->visible(inventoryOpen);
contentAccessPanel->size(glm::vec2(invSize.x, Window::height));
hotbarView->visible(visible);
vec2 invSize = contentAccessPanel->getSize();
inventoryView->setVisible(inventoryOpen);
contentAccessPanel->setVisible(inventoryOpen);
contentAccessPanel->setSize(vec2(invSize.x, Window::height));
hotbarView->setVisible(visible);
for (int i = keycode::NUM_1; i <= keycode::NUM_9; i++) {
if (Events::jpressed(i)) {
@@ -374,7 +373,7 @@ void HudRenderer::update(bool visible) {
player->setChosenSlot(slot);
}
darkOverlay->visible(pause);
darkOverlay->setVisible(pause);
}
void HudRenderer::closeInventory() {