From 2f54da5844b959c29788b2a0883ee5dae5bdbbd2 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Sat, 1 Feb 2025 22:38:12 +0500 Subject: feat: place textured tiles --- src/floor.cpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'src/floor.cpp') diff --git a/src/floor.cpp b/src/floor.cpp index 9f94ad3..4365c73 100644 --- a/src/floor.cpp +++ b/src/floor.cpp @@ -2,26 +2,31 @@ #include #include +#include #include #include #include +#include "tileset.hpp" + namespace silly::editor { void TileFloor::render(sf::RenderWindow &window) const { - std::for_each( - this->tiles.begin(), this->tiles.end(), [&window](const Tile &t) { - sf::RectangleShape shape({16, 16}); - shape.setFillColor(sf::Color(255, 190, 190)); - shape.setPosition({t.position.x * 16.0f, t.position.y * 16.0f}); - window.draw(shape); - }); + std::for_each(this->tiles.begin(), this->tiles.end(), + [&window](const Tile &t) { + sf::Sprite s(t.tile->texture); + s.setPosition({t.position.x * (float)TILE_WIDTH, + t.position.y * (float)TILE_HEIGHT}); + + window.draw(s); + }); } - void TileFloor::place_tile(const sf::Vector2i &position) { + void TileFloor::place_tile(std::shared_ptr &tile, + const sf::Vector2i &position) { if (!std::any_of( this->tiles.begin(), this->tiles.end(), [&position](const Tile &t) { return t.position == position; })) { - this->tiles.push_back({position}); + this->tiles.push_back({position, tile}); } } void TileFloor::remove_tile(const sf::Vector2i &position) { -- cgit v1.2.3