summaryrefslogtreecommitdiff
path: root/src/floor.cpp
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-02-01 22:38:12 +0500
committerilotterytea <iltsu@alright.party>2025-02-01 22:38:12 +0500
commit2f54da5844b959c29788b2a0883ee5dae5bdbbd2 (patch)
tree401dedebe78fe5e8bdaec9cb25367368ad632535 /src/floor.cpp
parent6317119d02897c13f3f90ade86446f110b852ed7 (diff)
feat: place textured tiles
Diffstat (limited to 'src/floor.cpp')
-rw-r--r--src/floor.cpp23
1 files changed, 14 insertions, 9 deletions
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 <SFML/Graphics/RectangleShape.hpp>
#include <SFML/Graphics/RenderWindow.hpp>
+#include <SFML/Graphics/Sprite.hpp>
#include <SFML/System/Vector2.hpp>
#include <algorithm>
#include <iterator>
+#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<TilesetTile> &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) {