54 lines
1002 B
Python
54 lines
1002 B
Python
import time
|
|
from dataclasses import asdict, dataclass, field
|
|
|
|
from untitled import content
|
|
|
|
|
|
@dataclass
|
|
class Cat:
|
|
name: str
|
|
traits: dict
|
|
fullness: float = 100
|
|
happiness: float = 100
|
|
sick: bool = False
|
|
depressed: bool = False
|
|
last_updated: float = field(default_factory=time.time)
|
|
|
|
def to_dict(self):
|
|
return asdict(self)
|
|
|
|
@staticmethod
|
|
def from_dict(data):
|
|
return Cat(**data)
|
|
|
|
|
|
@dataclass
|
|
class Player:
|
|
money: int = 0
|
|
inventory: dict = field(default_factory=lambda: dict(content.BASE_INVENTORY))
|
|
|
|
def to_dict(self):
|
|
return asdict(self)
|
|
|
|
@staticmethod
|
|
def from_dict(data):
|
|
return Player(**data)
|
|
|
|
|
|
@dataclass
|
|
class Save:
|
|
version: int
|
|
cat: Cat
|
|
player: Player
|
|
|
|
def to_dict(self):
|
|
return asdict(self)
|
|
|
|
@staticmethod
|
|
def from_dict(data):
|
|
return Save(
|
|
data["version"],
|
|
Cat.from_dict(data["cat"]),
|
|
Player.from_dict(data["player"]),
|
|
)
|