34 lines
618 B
Python
34 lines
618 B
Python
import time
|
|
from dataclasses import dataclass, field, asdict
|
|
|
|
|
|
@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 Save:
|
|
version: int
|
|
cat: Cat
|
|
|
|
def to_dict(self):
|
|
return asdict(self)
|
|
|
|
@staticmethod
|
|
def from_dict(data):
|
|
return Save(data["version"], Cat.from_dict(data["cat"]))
|