Fly me to the moon!

This commit is contained in:
Richard Bronkhorst
2023-07-12 22:26:25 +02:00
parent 00db50687a
commit 3d3ceeab91
7 changed files with 29 additions and 19 deletions

View File

@@ -41,6 +41,12 @@ class Base:
def __eq__(self, other):
return type(self) == type(other) and self.symbol == other.symbol
def get_system(self):
parts = self.symbol.split('-')
system_str = f'{parts[0]}-{parts[1]}'
system = self.store.get('System', system_str, create=True)
return system
def seta(self, attr, d, name=None, interp=None):
if name is None:
@@ -51,10 +57,15 @@ class Base:
val = interp(val)
setattr(self, attr, val)
def setlst(self, attr, d, name, member):
def setlst(self, attr, d, name, member, interp=None):
val = sg(d, name)
if val is not None:
lst = [sg(x, member) for x in val]
lst = []
for x in val:
val = sg(x, member)
if interp is not None:
val = interp(val)
lst.append(val)
setattr(self, attr, lst)
def __setattr__(self, name, value):
@@ -87,6 +98,9 @@ class Base:
def __str__(self):
return self.f()
def __repr__(self):
return self.f()
def f(self, detail=1):
r = self.symbol
if detail > 1:

View File

@@ -1,4 +1,5 @@
from .base import Base
from .system import System
from dataclasses import field
class Jumpgate(Base):
@@ -6,9 +7,11 @@ class Jumpgate(Base):
self.range: int = 0
self.faction: str = ''
self.systems: list = []
self.system = self.get_system()
def update(self, d):
self.setlst('systems', d, 'connectedSystems', 'symbol')
getter = self.store.getter(System, create=True)
self.setlst('systems', d, 'connectedSystems', 'symbol', interp=getter)
self.seta('faction', d, 'factionSymbol')
self.seta('range', d, 'jumpRange')
@@ -20,5 +23,5 @@ class Jumpgate(Base):
r = self.symbol
if detail > 1:
r += '\n'
r += '\n'.join(self.systems)
r += '\n'.join([s.symbol for s in self.systems])
return r

View File

@@ -13,6 +13,7 @@ class Marketplace(Base):
self.prices:dict = {}
self.last_prices:int = 0
self.set_waypoint()
self.system = self.get_system()
def set_waypoint(self):
waypoint = self.store.get(Waypoint, self.symbol, create=True)

View File

@@ -9,7 +9,7 @@ class Waypoint(Base):
self.type:str = 'unknown'
self.traits:list = []
self.faction:str = ''
self.set_system()
self.system = self.get_system()
def update(self, d):
self.seta('x', d)
@@ -18,12 +18,6 @@ class Waypoint(Base):
self.seta('faction', d, 'faction.symbol')
self.setlst('traits', d, 'traits', 'symbol')
def set_system(self):
parts = self.symbol.split('-')
system_str = f'{parts[0]}-{parts[1]}'
system = self.store.get(System, system_str, create=True)
self.system = system
@classmethod
def ext(self):
return 'way'