24 lines
625 B
Python
24 lines
625 B
Python
|
|
from dataclasses import dataclass
|
||
|
|
|
||
|
|
|
||
|
|
@dataclass
|
||
|
|
class Tile:
|
||
|
|
type: str
|
||
|
|
variant: int
|
||
|
|
pos: list[int]
|
||
|
|
|
||
|
|
def grid_key(self) -> str:
|
||
|
|
"""Erzeugt den String-Key für die Tilemap."""
|
||
|
|
return f"{self.pos[0]};{self.pos[1]}"
|
||
|
|
|
||
|
|
def to_dict(self) -> dict:
|
||
|
|
"""Konvertiert zurück in ein Dict (für JSON-Speicherung)."""
|
||
|
|
|
||
|
|
return {"type": self.type, "variant": self.variant, "pos": list(self.pos)}
|
||
|
|
|
||
|
|
@staticmethod
|
||
|
|
def from_dict(data: dict) -> "Tile":
|
||
|
|
"""Erstellt ein Tile aus einem Dictionary."""
|
||
|
|
|
||
|
|
return Tile(type=data["type"], variant=data["variant"], pos=data["pos"])
|