fix: Save/Load Funktionen korrigiert.
This commit is contained in:
parent
dc5239aa4c
commit
da973dd968
1 changed files with 16 additions and 15 deletions
|
|
@ -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"]
|
||||
|
|
|
|||
Loading…
Reference in a new issue