Assets::Assets()
: path("assets/")
, data_path(path + "data/")
+, font_path(path + "fonts/")
, skin_path(path + "skins/")
-, tile_path(path + "tiles/") {
+, tile_path(path + "tiles/")
+, fonts{
+ graphics::Font(font_path + "DejaVuSans.ttf", 32),
+ graphics::Font(font_path + "DejaVuSans.ttf", 24),
+ graphics::Font(font_path + "DejaVuSans.ttf", 16)
+} {
{
std::ifstream resource_file(data_path + "resources");
io::TokenStreamReader resource_reader(resource_file);
ReadTileTypes(tile_reader);
}
+
graphics::Format format;
textures.tiles.Bind();
textures.tiles.Reserve(256, 256, 14, format);
in.Skip(io::Token::EQUALS);
if (name == "label") {
in.ReadString(data.resources[id].label);
+ } else if (name == "state") {
+ in.ReadIdentifier(name);
+ if (name == "solid") {
+ data.resources[id].state = world::Resource::SOLID;
+ } else if (name == "liquid") {
+ data.resources[id].state = world::Resource::LIQUID;
+ } else if (name == "gas") {
+ data.resources[id].state = world::Resource::GAS;
+ } else if (name == "plasma") {
+ data.resources[id].state = world::Resource::PLASMA;
+ } else {
+ throw std::runtime_error("unknown resource state '" + name + "'");
+ }
} else {
throw std::runtime_error("unknown resource property '" + name + "'");
}