Compare commits
3 Commits
63f44aacec
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
3d8bcc0efb
|
|||
| 23aea1777f | |||
| d16567ea18 |
@ -6,7 +6,7 @@ import copy
|
|||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from NoPELib.player_settings import ExpansionsManager
|
from .player_settings import ExpansionsManager
|
||||||
|
|
||||||
|
|
||||||
class Hook:
|
class Hook:
|
||||||
@ -56,7 +56,7 @@ class Expansion:
|
|||||||
self._manager = expansionsManager
|
self._manager = expansionsManager
|
||||||
self.midStepError = Hook()
|
self.midStepError = Hook()
|
||||||
self.midStepError.connect(expansionsManager._midStepError)
|
self.midStepError.connect(expansionsManager._midStepError)
|
||||||
|
|
||||||
def __call__(self, action):
|
def __call__(self, action):
|
||||||
try:
|
try:
|
||||||
assert not self._closed, "Can't use an expansion that has been closed."
|
assert not self._closed, "Can't use an expansion that has been closed."
|
||||||
@ -70,7 +70,7 @@ class Expansion:
|
|||||||
}
|
}
|
||||||
self.midStepError(self._ID)
|
self.midStepError(self._ID)
|
||||||
return step_info
|
return step_info
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def config(self):
|
def config(self):
|
||||||
"""
|
"""
|
||||||
@ -130,12 +130,12 @@ class serialShocker(Expansion):
|
|||||||
super().__init__(ID, expansionsManager)
|
super().__init__(ID, expansionsManager)
|
||||||
if self.config["COM_port"] not in serialShocker._api:
|
if self.config["COM_port"] not in serialShocker._api:
|
||||||
self._assignApi()
|
self._assignApi()
|
||||||
self.shocker = serialShocker._api[self.config["COM_port"]].shocker(["shocker_ID"])
|
self.shocker = serialShocker._api[self.config["COM_port"]].shocker(self.config["shocker_ID"])
|
||||||
|
|
||||||
def _assignApi(self):
|
def _assignApi(self):
|
||||||
from pishock import SerialAPI
|
from pishock import SerialAPI
|
||||||
serialShocker._api[self.config["COM_port"]] = SerialAPI(self.config["COM_port"])
|
serialShocker._api[self.config["COM_port"]] = SerialAPI(self.config["COM_port"])
|
||||||
|
|
||||||
def step(self, action):
|
def step(self, action):
|
||||||
"""
|
"""
|
||||||
Arguments:
|
Arguments:
|
||||||
@ -155,11 +155,11 @@ class serialShocker(Expansion):
|
|||||||
"error": None,
|
"error": None,
|
||||||
"done": True
|
"done": True
|
||||||
}
|
}
|
||||||
return step_info
|
return step_info
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
if self.config["COM_port"] not in serialShocker._api:
|
if self.config["COM_port"] not in serialShocker._api:
|
||||||
serialShocker._api[self.config["COM_port"]].restart()
|
serialShocker._api[self.config["COM_port"]].restart()
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import copy
|
|||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import expansionsLib
|
from . import expansionsLib
|
||||||
|
|
||||||
_log = logging.getLogger('NoPE-Lib')
|
_log = logging.getLogger('NoPE-Lib')
|
||||||
|
|
||||||
@ -328,6 +328,7 @@ class ExpansionsManager:
|
|||||||
return possiblyValidExpansions
|
return possiblyValidExpansions
|
||||||
|
|
||||||
def _createExpansion(self, expansionID):
|
def _createExpansion(self, expansionID):
|
||||||
|
terminalErrors = SystemExit, KeyboardInterrupt, GeneratorExit
|
||||||
try:
|
try:
|
||||||
# Create the expansion
|
# Create the expansion
|
||||||
expansionClass = self._getClassFillMissing(expansionID)
|
expansionClass = self._getClassFillMissing(expansionID)
|
||||||
@ -340,6 +341,8 @@ class ExpansionsManager:
|
|||||||
else:
|
else:
|
||||||
self._playersLookUp[player] = [expansionID]
|
self._playersLookUp[player] = [expansionID]
|
||||||
return expansion
|
return expansion
|
||||||
|
except terminalErrors as e:
|
||||||
|
raise e
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return e
|
return e
|
||||||
|
|
||||||
@ -437,7 +440,7 @@ class ExpansionsManager:
|
|||||||
self._playersLookUp[playerName].pop(expansionID)
|
self._playersLookUp[playerName].pop(expansionID)
|
||||||
for playerName in addedPlayers:
|
for playerName in addedPlayers:
|
||||||
self._playersLookUp[playerName].append(expansionID)
|
self._playersLookUp[playerName].append(expansionID)
|
||||||
|
|
||||||
def lookupPlayer(self, playerName):
|
def lookupPlayer(self, playerName):
|
||||||
"""
|
"""
|
||||||
Get a tuple of all expansions available to a player.
|
Get a tuple of all expansions available to a player.
|
||||||
|
|||||||
Reference in New Issue
Block a user