def _parse_msg_ntoh(self, datagram): msg = PyDatagramIterator(datagram) msgid = msg.get_uint8() data = {} if msgid == MessageTypes.update_entity: data['netid'] = msg.get_uint32() data['data'] = msg.get_string() elif msgid == MessageTypes.remove_entity: data['netid'] = msg.get_uint32() elif msgid == MessageTypes.register_player: pass elif msgid == MessageTypes.player_id: data['netid'] = msg.get_uint32() elif msgid == MessageTypes.player_input: data['netid'] = msg.get_uint32() data['movement_x'] = msg.get_int8() data['action_set'] = msg.get_string() else: RuntimeError("Unknown msgid:", msgid) return msgid, data
def _parse_msg_ntoh(self, datagram): msg = PyDatagramIterator(datagram) msgid = msg.get_uint8() data = {} if msgid == MessageTypes.update_entity: data['netid'] = msg.get_uint32() data['data'] = msg.get_string() elif msgid == MessageTypes.remove_entity: data['netid'] = msg.get_uint32() elif msgid == MessageTypes.register_player: pass elif msgid == MessageTypes.player_id: data['netid'] = msg.get_uint32() elif msgid == MessageTypes.player_input: data['netid'] = msg.get_uint32() data['movement_x'] = msg.get_int8() data['action_set'] = msg.get_string() else: RuntimeError("Unknown msgid:", msgid) return msgid, data
def on_frame(self): if not self.c_reader.data_available(): return datagram = NetDatagram() if not self.c_reader.get_data(datagram): return _iter = PyDatagramIterator(datagram) meths = { 'B': _iter.get_bool, 'I': _iter.get_int64, 'F': _iter.get_float64, 'S': _iter.get_string } msg = [meths[c]() for c in _iter.get_string()] self.reader_cb(msg, datagram.get_connection())