A bit of a quick test for the GUI system, but not sure how to make this do more.
This commit is contained in:
parent
48df9248b2
commit
c7607533ce
6 changed files with 48 additions and 7 deletions
5
gui.cpp
5
gui.cpp
|
@ -252,8 +252,7 @@ void GUI::render_scene() {
|
||||||
$renderer.display();
|
$renderer.display();
|
||||||
}
|
}
|
||||||
|
|
||||||
int GUI::main() {
|
int GUI::main(bool run_once) {
|
||||||
// $sounds.play("ambient");
|
|
||||||
create_renderer();
|
create_renderer();
|
||||||
run_systems();
|
run_systems();
|
||||||
|
|
||||||
|
@ -266,7 +265,7 @@ int GUI::main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::this_thread::sleep_for(10ms);
|
std::this_thread::sleep_for(10ms);
|
||||||
} while($renderer.is_open());
|
} while(!run_once && $renderer.is_open());
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
2
gui.hpp
2
gui.hpp
|
@ -69,5 +69,5 @@ public:
|
||||||
void save_world();
|
void save_world();
|
||||||
void shake();
|
void shake();
|
||||||
|
|
||||||
int main();
|
int main(bool run_once=false);
|
||||||
};
|
};
|
||||||
|
|
2
main.cpp
2
main.cpp
|
@ -72,9 +72,7 @@ int main(int argc, char *argv[]) {
|
||||||
_setmode(_fileno(stdout), _O_U16TEXT);
|
_setmode(_fileno(stdout), _O_U16TEXT);
|
||||||
#endif
|
#endif
|
||||||
DinkyECS::World world;
|
DinkyECS::World world;
|
||||||
|
|
||||||
Map game_map(GAME_MAP_X, GAME_MAP_Y);
|
Map game_map(GAME_MAP_X, GAME_MAP_Y);
|
||||||
|
|
||||||
save::load_configs(world);
|
save::load_configs(world);
|
||||||
|
|
||||||
if(argc == 2) {
|
if(argc == 2) {
|
||||||
|
|
|
@ -33,6 +33,7 @@ runtests = executable('runtests', [
|
||||||
'pathing.cpp',
|
'pathing.cpp',
|
||||||
'lights.cpp',
|
'lights.cpp',
|
||||||
'systems.cpp',
|
'systems.cpp',
|
||||||
|
'gui.cpp',
|
||||||
'worldbuilder.cpp',
|
'worldbuilder.cpp',
|
||||||
'tests/fsm.cpp',
|
'tests/fsm.cpp',
|
||||||
'tests/dbc.cpp',
|
'tests/dbc.cpp',
|
||||||
|
@ -48,6 +49,7 @@ runtests = executable('runtests', [
|
||||||
'tests/sound.cpp',
|
'tests/sound.cpp',
|
||||||
'tests/pathing.cpp',
|
'tests/pathing.cpp',
|
||||||
'tests/lighting.cpp',
|
'tests/lighting.cpp',
|
||||||
|
'tests/gui.cpp',
|
||||||
'tests/worldbuilder.cpp',
|
'tests/worldbuilder.cpp',
|
||||||
],
|
],
|
||||||
dependencies: dependencies)
|
dependencies: dependencies)
|
||||||
|
|
41
tests/gui.cpp
Normal file
41
tests/gui.cpp
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
#include <fmt/core.h>
|
||||||
|
#include "gui.hpp"
|
||||||
|
#include "map.hpp"
|
||||||
|
#include "dinkyecs.hpp"
|
||||||
|
#include "worldbuilder.hpp"
|
||||||
|
#include "save.hpp"
|
||||||
|
#include "systems.hpp"
|
||||||
|
#include "collider.hpp"
|
||||||
|
#include "components.hpp"
|
||||||
|
|
||||||
|
using namespace fmt;
|
||||||
|
using namespace components;
|
||||||
|
using std::string;
|
||||||
|
|
||||||
|
TEST_CASE("load a basic gui run but don't loop", "[render]") {
|
||||||
|
DinkyECS::World world;
|
||||||
|
save::load_configs(world);
|
||||||
|
Map game_map(40, 40);
|
||||||
|
WorldBuilder builder(game_map);
|
||||||
|
builder.generate();
|
||||||
|
|
||||||
|
const auto &config = world.get_the<MapConfig>();
|
||||||
|
// configure a player as a fact of the world
|
||||||
|
Player player{world.entity()};
|
||||||
|
world.set_the<Player>(player);
|
||||||
|
|
||||||
|
world.set<Position>(player.entity, {game_map.place_entity(0)});
|
||||||
|
world.set<Motion>(player.entity, {0, 0});
|
||||||
|
world.set<Combat>(player.entity, {100, 10});
|
||||||
|
world.set<Tile>(player.entity, {config.PLAYER_TILE});
|
||||||
|
world.set<Inventory>(player.entity, {5});
|
||||||
|
world.set<LightSource>(player.entity, {6,1});
|
||||||
|
|
||||||
|
spatial_map collider;
|
||||||
|
world.set_the<spatial_map>(collider);
|
||||||
|
System::init_positions(world);
|
||||||
|
|
||||||
|
GUI gui(world, game_map);
|
||||||
|
gui.main(true); // runs once
|
||||||
|
}
|
|
@ -47,7 +47,7 @@ TEST_CASE("can render a text", "[render]") {
|
||||||
save::load_configs(world);
|
save::load_configs(world);
|
||||||
const auto& config = world.get_the<MapConfig>();
|
const auto& config = world.get_the<MapConfig>();
|
||||||
|
|
||||||
Panel map_view(0, 0, 20, 5, true);
|
Panel map_view(0, 0, 20, 20, true);
|
||||||
Map map(20,20);
|
Map map(20,20);
|
||||||
WorldBuilder builder(map);
|
WorldBuilder builder(map);
|
||||||
builder.generate();
|
builder.generate();
|
||||||
|
@ -72,6 +72,7 @@ TEST_CASE("can render a text", "[render]") {
|
||||||
|
|
||||||
for(int i = 2; i < 14; i++) {
|
for(int i = 2; i < 14; i++) {
|
||||||
renderer.resize_grid(i * 10, map_view);
|
renderer.resize_grid(i * 10, map_view);
|
||||||
|
map_canvas = Canvas(map_view.width * 2, map_view.height * 4);
|
||||||
run_renderer(renderer, map_view);
|
run_renderer(renderer, map_view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue