62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
#include <Tileset.hpp>
|
|
#include <Level.hpp>
|
|
#include <Entity.hpp>
|
|
#include <Layer.hpp>
|
|
|
|
void CreateSampleLevel()
|
|
{
|
|
Level level;
|
|
level.name = "Test Level";
|
|
level.author = "Automated Tooling";
|
|
level.rows = 128;
|
|
level.cols = 128;
|
|
level.tileset_path = "tileset.json";
|
|
|
|
write_file_contents("level.json", json::deparse(level.Serialize()));
|
|
}
|
|
|
|
void CreateSampleTileset()
|
|
{
|
|
// TODO: Read texture size via std_image.
|
|
Tileset tileset("tileset", "../megacommando.png", 1024, 1280, 16, 16, 0);
|
|
|
|
write_file_contents("tileset.json", json::deparse(tileset.Serialize()));
|
|
}
|
|
|
|
|
|
int main()
|
|
{
|
|
|
|
if (!std::filesystem::exists("tileset.json"))
|
|
CreateSampleTileset();
|
|
|
|
if (!std::filesystem::exists("level.json"))
|
|
CreateSampleLevel();
|
|
|
|
Tileset tileset = Tileset(std::filesystem::path("tileset.json"));
|
|
|
|
Tile specialized_tile;
|
|
specialized_tile.name = "Special Tile";
|
|
specialized_tile.id = 9999;
|
|
specialized_tile.quad = {0,0,16,16};
|
|
json::object meta;
|
|
meta["color"] = json::string("#FFAAFF");
|
|
specialized_tile.metadata = meta;
|
|
|
|
tileset.tiles.push_back(specialized_tile);
|
|
|
|
Level level = Level(std::filesystem::path("level.json"));
|
|
|
|
Layer layer(128, 128, 16, 16);
|
|
layer.binary_path = "test.lvl";
|
|
layer.ReadBinaryData();
|
|
|
|
level.layers.push_back(layer);
|
|
|
|
write_file_contents("level.json", json::deparse(level.Serialize()));
|
|
write_file_contents("tileset.json", json::deparse(tileset.Serialize()));
|
|
|
|
std::cout << "Completed all tests" << std::endl;
|
|
|
|
return 0;
|
|
} |