예제 #1
0
 def from_datagram(cls, datagram: bytes) -> "ServerPackage":
     """Override #Package.from_datagram to include `game_state_update`."""
     header, payload = Header.deconstruct_datagram(datagram)
     state_update_bytesize = int.from_bytes(payload[:2], "big")
     game_state_update = GameStateUpdate.from_bytes(
         payload[2:state_update_bytesize + 2])
     payload = payload[state_update_bytesize + 2:]
     events = cls._read_out_event_block(payload)
     result = cls(header, game_state_update, events)
     result._datagram = datagram  # pylint: disable=protected-access
     return result
예제 #2
0
 def test_bytepacking(self):
     update = GameStateUpdate(5)
     bytepack = update.to_bytes()
     unpacked_update = GameStateUpdate.from_bytes(bytepack)
     assert update == unpacked_update