tileset.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # Flexlay - A Generic 2D Game Editor
  2. # Copyright (C) 2014 Ingo Ruhnke <grumbel@gmail.com>
  3. #
  4. # This program is free software: you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation, either version 3 of the License, or
  7. # (at your option) any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. # GNU General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU General Public License
  15. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. from typing import Optional
  17. from flexlay.tile import Tile
  18. class Tileset:
  19. def __init__(self, tile_size: int) -> None:
  20. self.tiles: dict[int, Optional[Tile]] = {}
  21. self.tile_size = tile_size
  22. def add_tile(self, tile_id: int, tile: Optional[Tile]) -> None:
  23. self.tiles[tile_id] = tile
  24. def create(self, tile_id: int) -> Tile:
  25. tile = self.tiles.get(tile_id)
  26. assert tile is not None
  27. return tile
  28. def get_tile_size(self) -> int:
  29. return self.tile_size
  30. def get_tiles(self) -> list[int]:
  31. return list(self.tiles.keys())
  32. # EOF #