diff --git a/scripts/tilemap.py b/scripts/tilemap.py index ad7d0a0..aca209a 100644 --- a/scripts/tilemap.py +++ b/scripts/tilemap.py @@ -1,6 +1,5 @@ import pygame as pg import json -from scripts.models import Tile NEIGHBOR_OFFSETS = [ (0, 0), @@ -37,8 +36,16 @@ class Tilemap: self.tilemap = {} self.offgrid_tiles = [] for i in range(10): - self.tilemap[str(3 + i) + ";10"] = Tile("grass", 1, (3 + i, 10)) - self.tilemap["10;" + str(5 + i)] = Tile("stone", 1, (10, i + 5)) + self.tilemap[str(3 + i) + ";10"] = { + "type": "grass", + "variant": 1, + "pos": (3 + i, 10), + } + self.tilemap["10;" + str(5 + i)] = { + "type": "stone", + "variant": 1, + "pos": (10, i + 5), + } def render(self, surface: pg.Surface, offset: tuple = (0, 0)): for tile in self.offgrid_tiles: @@ -127,27 +134,21 @@ class Tilemap: tile["variant"] = AUTOTILE_MAP[neighbors] def save(self, path: str) -> None: - data = { - "tilemap": {k: tile.to_dict() for k, tile in self.tilemap.items()}, + "tilemap": self.tilemap, "tile_size": self.tile_size, - "offgrid": [tile.to_dict() for tile in self.offgrid_tiles], + "offgrid": self.offgrid_tiles, } with open(path, "w") as f: json.dump(data, f) - def load(self, path: str): + def load(self, path: str) -> None: """Lädt die gespeicherte Tilemap.""" with open(path, "r") as f: map_data: dict = json.load(f) - self.tilemap: dict[str:Tile] = {} - self.offgrid_tiles: list[Tile] = [] - - for key, data in map_data.items(): - self.tilemap[key] = Tile.from_dict(data) - - for tile in map_data["offgrid"]: - self.offgrid_tiles.append(Tile.from_dict(tile)) + self.tilemap: dict[str, dict] = map_data["tilemap"] + self.tile_size: int = map_data["tile_size"] + self.offgrid_tiles: list[dict] = map_data["offgrid"]