fix: Save/Load Funktionen korrigiert.

This commit is contained in:
binaerverkehr 2026-05-11 10:19:31 +02:00
parent dc5239aa4c
commit da973dd968

View file

@ -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"]