You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
3 weeks ago
|
#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
|
||
|
}
|