Update main.py, api.py and seven other files
This commit is contained in:
@@ -1,16 +1,19 @@
|
||||
from copy import deepcopy
|
||||
from dataclasses import dataclass
|
||||
from nullptr.util import sg
|
||||
|
||||
@dataclass
|
||||
class Base:
|
||||
symbol: str
|
||||
dirty: bool
|
||||
store: object
|
||||
|
||||
def __init__(self, symbol, store):
|
||||
self.symbol = symbol
|
||||
self.store = store
|
||||
self.dirty = True
|
||||
self.symbol = symbol
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.symbol)
|
||||
|
||||
def seta(self, attr, d, name=None):
|
||||
if name is None:
|
||||
name = attr
|
||||
@@ -25,17 +28,19 @@ class Base:
|
||||
setattr(self, attr, lst)
|
||||
|
||||
def __setattr__(self, name, value):
|
||||
if name != 'dirty':
|
||||
self.dirty = True
|
||||
if name not in ['symbol','store']:
|
||||
self.store.dirty(self)
|
||||
super().__setattr__(name, value)
|
||||
|
||||
def update(self, d):
|
||||
pass
|
||||
|
||||
def dict(self):
|
||||
r = deepcopy(self.__dict__)
|
||||
del r['store']
|
||||
del r['dirty']
|
||||
r = {}
|
||||
for k,v in self.__dict__.items():
|
||||
if k == 'store':
|
||||
continue
|
||||
r[k] = deepcopy(v)
|
||||
return r
|
||||
|
||||
def path(self):
|
||||
|
||||
20
nullptr/models/jumpgate.py
Normal file
20
nullptr/models/jumpgate.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from .base import Base
|
||||
from typing import List
|
||||
|
||||
class Jumpgate(Base):
|
||||
range: int
|
||||
faction: str
|
||||
systems:List[str] = []
|
||||
|
||||
def update(self, d):
|
||||
self.setlst('systems', d, 'connectedSystems', 'symbol')
|
||||
self.seta('faction', d, 'factionSymbol')
|
||||
self.seta('range', d, 'jumpRange')
|
||||
|
||||
@classmethod
|
||||
def ext(self):
|
||||
return 'jmp'
|
||||
|
||||
def path(self):
|
||||
sector, system, symbol = self.symbol.split('-')
|
||||
return f'atlas/{sector}/{system[0:1]}/{system}/{symbol}.{self.ext()}'
|
||||
@@ -17,5 +17,5 @@ class Marketplace(Base):
|
||||
return 'mkt'
|
||||
|
||||
def path(self):
|
||||
sector, system, symbol, _ = self.symbol.split('-')
|
||||
sector, system, symbol = self.symbol.split('-')
|
||||
return f'atlas/{sector}/{system[0:1]}/{system}/{symbol}.{self.ext()}'
|
||||
|
||||
@@ -14,8 +14,7 @@ class Waypoint(Base):
|
||||
self.seta('y', d)
|
||||
self.seta('type', d)
|
||||
self.seta('faction', d, 'faction.symbol')
|
||||
if 'traits' in d:
|
||||
self.traits = [mg(t, 'symbol') for t in d['traits'] ]
|
||||
self.setlst('traits', d, 'traits', 'symbol')
|
||||
|
||||
@classmethod
|
||||
def ext(self):
|
||||
|
||||
Reference in New Issue
Block a user