Solved a circular import issue
This commit is contained in:
@ -417,83 +417,6 @@ class ExpansionsManager:
|
|||||||
self._createExpansion(expansionID)
|
self._createExpansion(expansionID)
|
||||||
|
|
||||||
|
|
||||||
class Expansion:
|
|
||||||
"""
|
|
||||||
A meta class implementation meant to describe how to interact with any kind
|
|
||||||
of expansions.
|
|
||||||
|
|
||||||
Attributes:
|
|
||||||
players (tuple of str):
|
|
||||||
tags (tuple of flag):
|
|
||||||
|
|
||||||
Methods:
|
|
||||||
step:
|
|
||||||
reset:
|
|
||||||
close:
|
|
||||||
|
|
||||||
Signals:
|
|
||||||
onError:
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, ID: str, expansionsManager: ExpansionsManager):
|
|
||||||
"""
|
|
||||||
Initialise the creation of an expansion and raise an error if not
|
|
||||||
available.
|
|
||||||
"""
|
|
||||||
self._ID = ID
|
|
||||||
self._manager = expansionsManager
|
|
||||||
self.onError = Hook()
|
|
||||||
|
|
||||||
@property
|
|
||||||
def config(self):
|
|
||||||
return copy.deepcopy(self._manager.config[self._ID]["config"])
|
|
||||||
|
|
||||||
@property
|
|
||||||
def players(self):
|
|
||||||
""" Players that have access to this expansion. """
|
|
||||||
return self._manager.config[self._ID]["players"]
|
|
||||||
|
|
||||||
@players.setter
|
|
||||||
def players(self, newPlayers):
|
|
||||||
""" Players that have access to this expansion. """
|
|
||||||
self._manager.config[self._ID]["players"] = tuple(newPlayers)
|
|
||||||
self._manager.expansionPlayersChanged(self._ID)
|
|
||||||
|
|
||||||
@players.deleter
|
|
||||||
def players(self):
|
|
||||||
self._manager.config[self._ID]["players"] = ()
|
|
||||||
self._manager.expansionPlayersChanged(self._ID)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def tags(self):
|
|
||||||
""" Players that have access to this expansion. """
|
|
||||||
return self._manager.config[self._ID]["tags"]
|
|
||||||
|
|
||||||
@tags.setter
|
|
||||||
def tags(self, newPlayers):
|
|
||||||
""" Players that have access to this expansion. """
|
|
||||||
self._manager.config[self._ID]["tags"] = tuple(newPlayers)
|
|
||||||
|
|
||||||
@tags.deleter
|
|
||||||
def tags(self):
|
|
||||||
self._manager.config[self._ID]["tags"] = ()
|
|
||||||
|
|
||||||
@abc.abstractmethod
|
|
||||||
def step(self, action):
|
|
||||||
"""
|
|
||||||
Call close if an error is thrown
|
|
||||||
"""
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
@abc.abstractmethod
|
|
||||||
def reset(self):
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
@abc.abstractmethod
|
|
||||||
def close(self):
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# Test run to make sure nothing is flagrantly flawed
|
# Test run to make sure nothing is flagrantly flawed
|
||||||
configPath = Path(__file__).parent / "players.json"
|
configPath = Path(__file__).parent / "players.json"
|
||||||
@ -508,3 +431,4 @@ if __name__ == "__main__":
|
|||||||
brosef.state = ["alive"]
|
brosef.state = ["alive"]
|
||||||
# TODO Verify that changing the gameID works as intended
|
# TODO Verify that changing the gameID works as intended
|
||||||
# TODO Test out the expansion manager
|
# TODO Test out the expansion manager
|
||||||
|
# Implement a way to search within expansions
|
||||||
|
|||||||
Reference in New Issue
Block a user