summaryrefslogtreecommitdiff
path: root/src/floor.cpp
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-02-02 02:13:52 +0500
committerilotterytea <iltsu@alright.party>2025-02-02 02:13:52 +0500
commit0ae2d10bdfd3d4fe7483829fb9c9257973e644c7 (patch)
tree4c8ca329017a22bee01c65cc1673a479f95c3f1f /src/floor.cpp
parent4d6e94ad9b905df16c0c67ea9043395a1f19400a (diff)
feat: level package
Diffstat (limited to 'src/floor.cpp')
-rw-r--r--src/floor.cpp73
1 files changed, 0 insertions, 73 deletions
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 <SFML/Graphics/RectangleShape.hpp>
-#include <SFML/Graphics/RenderWindow.hpp>
-#include <SFML/Graphics/Sprite.hpp>
-#include <SFML/System/Angle.hpp>
-#include <SFML/System/Vector2.hpp>
-#include <algorithm>
-#include <iterator>
-
-#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<TilesetTile> &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