Skip to content
Snippets Groups Projects
Select Git revision
  • d7e8c3502ade28ae659bd137a048bc1e49f44ec6
  • main default protected
  • leveleditor
  • david-author
  • clang-tidy-cleanup
  • architecture-refactoring
  • cleanUpMenus
  • doxygen-cleanup
  • project-structure-refactoring
  • interpolation
  • buildingFeatures
  • win_end_screen
  • helpMenu
  • leveleditor-placement
  • text-rendering
  • updated_unit_contextmenu
  • level-from-commandline
  • unit_contextmenu
  • player
  • engine-scaling
  • clang-tidy
21 results

LevelScene.hpp

Blame
  • LevelScene.hpp 1.35 KiB
    #ifndef LEVELSCENE_HPP
    #define LEVELSCENE_HPP
    
    #include <QGraphicsScene>
    #include <QMouseEvent>
    #include <QWidget>
    #include <QGraphicsRectItem>
    #include <QGraphicsSceneMouseEvent>
    #include "EventBroker.hpp"
    #include "Tile.hpp"
    
    class LevelScene : public QGraphicsScene, public EventBroker {
    public:
        LevelScene(const std::string& name, int width, int height, std::vector<Tile*> tiles, const std::string& file_path, QWidget *parent = nullptr);
        static LevelScene* empty(const std::string& name, int width, int height, QWidget *parent = nullptr);
        static LevelScene* fromFile(const std::string& file_path, QWidget *parent = nullptr);
        std::string getName();
        int getWidth();
        int getHeight();
    private:
        void position(Tile* tile, int index);
        void createChildOn(Tile* tile);
        QGraphicsRectItem* createMarkerOn(Tile* tile);
        void onLevelNameUpdated(std::string new_name) override;
        void onLevelWriteRequested() override;
        void onTileEntered(Tile* tile) override;  
        void onTileExited(Tile* tile) override;
        void onTileClicked(Tile* tile) override;
        void onTileSelected(uint8_t id) override;
        Tile* active_tile;
        QGraphicsRectItem* active_tile_marker;
        QGraphicsRectItem* hovered_tile_marker;
        std::string name;
        int width;
        int height;
        std::vector<Tile*> tiles;
        std::string file_path;
    };
    
    #endif // LEVELSCENE_HPP