From 0ae2d10bdfd3d4fe7483829fb9c9257973e644c7 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Sun, 2 Feb 2025 02:13:52 +0500 Subject: feat: level package --- src/floor.cpp | 73 ----------------------------------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 src/floor.cpp (limited to 'src/floor.cpp') diff --git a/src/floor.cpp b/src/floor.cpp deleted file mode 100644 index aacf77e..0000000 --- a/src/floor.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include "floor.hpp" - -#include -#include -#include -#include -#include -#include -#include - -#include "tileset.hpp" - -namespace silly::editor { - void TileFloor::render(sf::RenderWindow &window) const { - for (auto l = this->layers.begin(); l != this->layers.end(); ++l) { - for (auto t = l->tiles.begin(); t != l->tiles.end(); ++t) { - sf::Sprite s(t->tile->texture); - s.setPosition({t->position.x * (float)TILE_WIDTH, - t->position.y * (float)TILE_HEIGHT}); - s.setRotation(sf::degrees(t->rotation)); - - sf::Vector2f origin; - sf::Vector2u size = t->tile->texture.getSize(); - - if (t->rotation == 90.0f) { - origin.y = size.y; - } else if (t->rotation == 180.0f) { - origin.x = size.x; - origin.y = size.y; - } else if (t->rotation == 270.0f) { - origin.x = size.x; - } - - s.setOrigin(origin); - - window.draw(s); - } - } - } - - void TileFloor::place_tile(std::shared_ptr &tile, - const sf::Vector2i &position, - const float &rotation) { - TileLayer &layer = this->layers.at(tile->type); - bool placed = false; - - for (auto it = layer.tiles.begin(); it != layer.tiles.end(); ++it) { - if (it->position != position) continue; - - it->rotation = rotation; - it->tile = tile; - placed = true; - break; - } - - if (!placed) { - layer.tiles.push_back({tile, position, rotation}); - } - } - void TileFloor::remove_tile(TilesetTileType type, - const sf::Vector2i &position) { - TileLayer &layer = this->layers.at(type); - - layer.tiles.resize(std::distance( - layer.tiles.begin(), - std::remove_if( - layer.tiles.begin(), layer.tiles.end(), - [&position](const Tile &t) { return t.position == position; }))); - } - - const int TileFloor::get_width() const { return this->width; } - const int TileFloor::get_height() const { return this->height; } -} \ No newline at end of file -- cgit v1.2.3