Add player.focus_car

This commit is contained in:
Maxim Khomutov 2023-07-23 01:57:01 +03:00
parent ddcfa56467
commit 9a8bcbfae0
2 changed files with 13 additions and 1 deletions

View File

@ -35,6 +35,7 @@ class Client:
self._ready = False self._ready = False
self._identifiers = [] self._identifiers = []
self._cars = [None] * 21 # Max 20 cars per player + 1 snowman self._cars = [None] * 21 # Max 20 cars per player + 1 snowman
self._focus_car = -1
self._snowman = {"id": -1, "packet": ""} self._snowman = {"id": -1, "packet": ""}
self._connect_time = 0 self._connect_time = 0
self._last_position = {} self._last_position = {}
@ -84,6 +85,10 @@ class Client:
def cars(self): def cars(self):
return {i: v for i, v in enumerate(self._cars) if v is not None} return {i: v for i, v in enumerate(self._cars) if v is not None}
@property
def focus_car(self):
return self._focus_car
@property @property
def last_position(self): def last_position(self):
return self._last_position return self._last_position
@ -540,8 +545,11 @@ class Client:
self.log.debug(f"Something changed/broken: {raw_data}") self.log.debug(f"Something changed/broken: {raw_data}")
await self._send(raw_data, to_all=True, to_self=False) await self._send(raw_data, to_all=True, to_self=False)
case "m": # Move focus cat case "m": # Move focus car
self.log.debug(f"Move focus to: {raw_data}") self.log.debug(f"Move focus to: {raw_data}")
cid, car_id = self._get_cid_vid(raw_data)
if car_id != -1 and cid == self.cid and self._cars[car_id]:
self._focus_car = car_id
await self._send(raw_data, to_all=True, to_self=True) await self._send(raw_data, to_all=True, to_self=True)
async def _connected_handler(self): async def _connected_handler(self):

View File

@ -33,6 +33,7 @@ class Client:
self._guest = True self._guest = True
self.__alive = True self.__alive = True
self._ready = False self._ready = False
self._focus_car = -1
self._identifiers = [] self._identifiers = []
self._cars: List[Optional[Dict[str, int]]] = [] self._cars: List[Optional[Dict[str, int]]] = []
self._snowman: Dict[str, Union[int, str]] = {"id": -1, "packet": ""} self._snowman: Dict[str, Union[int, str]] = {"id": -1, "packet": ""}
@ -58,6 +59,9 @@ class Client:
@property @property
def cars(self) -> dict: ... def cars(self) -> dict: ...
@property @property
def focus_car(self):
return self._focus_car
@property
def last_position(self) -> dict: ... def last_position(self) -> dict: ...
def is_disconnected(self) -> bool: ... def is_disconnected(self) -> bool: ...
async def kick(self, reason: str) -> None: ... async def kick(self, reason: str) -> None: ...