Have a basic map prototype gui working.
This commit is contained in:
parent
8b3573b01d
commit
a53f81715d
4 changed files with 60 additions and 3 deletions
|
@ -11,7 +11,8 @@ namespace guecs {
|
||||||
|
|
||||||
void UI::layout(std::string grid) {
|
void UI::layout(std::string grid) {
|
||||||
$grid = grid;
|
$grid = grid;
|
||||||
$parser.parse($grid);
|
bool good = $parser.parse($grid);
|
||||||
|
dbc::check(good, "LEL parsing failed.");
|
||||||
|
|
||||||
for(auto& [name, cell] : $parser.cells) {
|
for(auto& [name, cell] : $parser.cells) {
|
||||||
auto ent = entity(name);
|
auto ent = entity(name);
|
||||||
|
|
|
@ -43,6 +43,7 @@ namespace gui {
|
||||||
$level.world->set_the<Debug>({});
|
$level.world->set_the<Debug>({});
|
||||||
|
|
||||||
$main_ui.init();
|
$main_ui.init();
|
||||||
|
$map_ui.init();
|
||||||
|
|
||||||
$combat_ui.init();
|
$combat_ui.init();
|
||||||
$status_ui.init();
|
$status_ui.init();
|
||||||
|
@ -320,6 +321,7 @@ namespace gui {
|
||||||
void FSM::render() {
|
void FSM::render() {
|
||||||
if(in_state(State::MAPPING)) {
|
if(in_state(State::MAPPING)) {
|
||||||
$window.clear();
|
$window.clear();
|
||||||
|
$map_ui.render($window);
|
||||||
} else if(in_state(State::NEXT_LEVEL)) {
|
} else if(in_state(State::NEXT_LEVEL)) {
|
||||||
$window.clear();
|
$window.clear();
|
||||||
$boss_fight_ui->render($window);
|
$boss_fight_ui->render($window);
|
||||||
|
|
51
map_view.cpp
51
map_view.cpp
|
@ -1,6 +1,11 @@
|
||||||
#include "map_view.hpp"
|
#include "map_view.hpp"
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include "dbc.hpp"
|
||||||
|
#include "components.hpp"
|
||||||
|
#include "rand.hpp"
|
||||||
|
#include "animation.hpp"
|
||||||
|
#include "rand.hpp"
|
||||||
|
|
||||||
namespace gui {
|
namespace gui {
|
||||||
using namespace components;
|
using namespace components;
|
||||||
|
@ -8,13 +13,57 @@ namespace gui {
|
||||||
MapViewUI::MapViewUI(GameLevel &level) :
|
MapViewUI::MapViewUI(GameLevel &level) :
|
||||||
$level(level)
|
$level(level)
|
||||||
{
|
{
|
||||||
|
$gui.position(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||||
|
$gui.layout(
|
||||||
|
"[*%(100,900)left|*%(200,900)map_grid| _]"
|
||||||
|
"[_ | _ | _]"
|
||||||
|
"[_ | _ | _]"
|
||||||
|
"[_ | _ | _]"
|
||||||
|
"[_ | _ | _]"
|
||||||
|
"[_ | _ | _]"
|
||||||
|
"[_ | _ | _]"
|
||||||
|
"[_ | _ | _]"
|
||||||
|
"[_ | _ | _]"
|
||||||
|
"[bottom_status_left | bottom_status_right ]");
|
||||||
|
|
||||||
|
auto cell = $gui.cell_for($gui.entity("map_grid"));
|
||||||
|
$grid.position(cell.x, cell.y, cell.w, cell.h);
|
||||||
|
$grid.layout(
|
||||||
|
"[cell_11|cell_12|cell_13|cell_14|cell_15|cell_16|cell_17]"
|
||||||
|
"[cell_21|cell_22|cell_23|cell_24|cell_25|cell_26|cell_27]"
|
||||||
|
"[cell_31|cell_32|cell_33|cell_34|cell_35|cell_36|cell_37]"
|
||||||
|
"[cell_41|cell_42|cell_43|cell_44|cell_45|cell_46|cell_47]"
|
||||||
|
"[cell_51|cell_52|cell_53|cell_54|cell_55|cell_56|cell_57]");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapViewUI::update_level(GameLevel &level) {
|
void MapViewUI::update_level(GameLevel &level) {
|
||||||
$level = level;
|
$level = level;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapViewUI::draw_map() {
|
void MapViewUI::init() {
|
||||||
|
$gui.world().set_the<guecs::Background>({$gui.$parser});
|
||||||
|
|
||||||
|
for(auto& [name, cell] : $gui.cells()) {
|
||||||
|
auto box = $gui.entity(name);
|
||||||
|
if(name != "map_grid") {
|
||||||
|
$gui.set<guecs::Rectangle>(box, {});
|
||||||
|
$gui.set<guecs::Label>(box, {name});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$gui.init();
|
||||||
|
|
||||||
|
for(auto& [name, cell] : $grid.cells()) {
|
||||||
|
auto box = $grid.entity(name);
|
||||||
|
$grid.set<guecs::Rectangle>(box, {});
|
||||||
|
$grid.set<guecs::Label>(box, {name});
|
||||||
|
}
|
||||||
|
|
||||||
|
$grid.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapViewUI::render(sf::RenderWindow &window) {
|
||||||
|
$gui.render(window);
|
||||||
|
$grid.render(window);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,18 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "levelmanager.hpp"
|
#include "levelmanager.hpp"
|
||||||
|
#include "textures.hpp"
|
||||||
|
#include "guecs.hpp"
|
||||||
|
|
||||||
namespace gui {
|
namespace gui {
|
||||||
class MapViewUI {
|
class MapViewUI {
|
||||||
public:
|
public:
|
||||||
|
guecs::UI $gui;
|
||||||
|
guecs::UI $grid;
|
||||||
GameLevel $level;
|
GameLevel $level;
|
||||||
|
|
||||||
MapViewUI(GameLevel &level);
|
MapViewUI(GameLevel &level);
|
||||||
void draw_map();
|
void init();
|
||||||
|
void render(sf::RenderWindow &window);
|
||||||
void update_level(GameLevel &level);
|
void update_level(GameLevel &level);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue