Program Listing for File Tilemap.hpp

Return to documentation for file (gui/API/TileMap/Tilemap.hpp)

#pragma once

#include "API/Inventory/Inventory.hpp"
#include "Tile.hpp"

#include <vector>

class Tilemap {
private:
  int _sizeX = 0;
  int _sizeY = 0;
  std::vector<std::vector<Tile>> _tilemap;

public:
  Tilemap()
  {
    _tilemap.clear();
    _tilemap.resize(0);
    _sizeX = 0;
    _sizeY = 0;
  }

  ~Tilemap() = default;

  std::pair<int, int> GetSize() const;

  [[nodiscard]] std::vector<std::vector<Tile>> GetTilemap();

  void SetSize(int x, int y);

  void SetTileInventory(
    int x,
    int y,
    size_t food,
    size_t linemate,
    size_t deraumere,
    size_t sibur,
    size_t mendiane,
    size_t phiras,
    size_t thystame);

  void AddToInventory(int x, int y, Item item, int quantity);

  [[nodiscard]] Inventory GetTileInventory(int x, int y);

  [[nodiscard]] int GetItemQuantity(Item id);
};