// Copyright (c) 2022 Dominic Masters
// 
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT

#pragma once
#include "../Asset.hpp"
#include "asset/AssetLoader.hpp"
#include "display/Tileset.hpp"

namespace Dawn {
  class TilesetAsset : public Asset {
    protected:
      AssetLoader loader;
      uint8_t state = 0x00;

    public:
      struct TilesetGrid tileset;

      /**
       * Creates a new TilesetAsset Loader.
       * 
       * @param assMan Asset Manager this tileset asset belongs to.
       * @param name Tileset asset name.
       */
      TilesetAsset(AssetManager *assMan, std::string name);

      void updateSync() override;
      void updateAsync() override;
  };
}