def init_file(self):
        with open(self.filepath, 'wb') as file:

            data = PyDatagram()
            data.add_uint8(0)

            file.write(PyDatagramIterator(data).get_remaining_bytes())
Exemplo n.º 2
0
 def init_file(self):
     with open(self.filepath, 'wb') as file:
 
         data = PyDatagram()
         data.add_uint8(0)
         
         file.write(PyDatagramIterator(data).get_remaining_bytes())
    def get_main_section_state(self) -> WorldState:
        """
        Fetch current world model from the server.
        """
        # send datagram asking for current world data (player's location, other player names, positions etc.)
        data = PyDatagram()
        data.add_uint8(WorldStateRequest.ID)
        self.net_client.writer.send(data, self.net_client.server_connection)

        # wait for datagram from the server
        self.net_client.manager.wait_for_readers(self.net_client.timeout /
                                                 1000)

        if not self.net_client.reader.data_available():
            raise Exception(
                "No response from the server about the main section model.")

        datagram = NetDatagram()

        if not self.net_client.reader.get_data(datagram):
            raise Exception("Main section model response unavailable.")

        iterator = PyDatagramIterator(datagram)
        world_state_message = self.message_parser(iterator,
                                                  MessageType.response)
        return world_state_message.data
    def save_file(self):
        if self.is_loading:
            return

        with open(self.filepath, 'wb') as file:

            dg = PyDatagram()

            dg.add_uint8(len(self.menu.buttons))
            for button in self.menu.buttons:
                self.save_button(button.get_data(), dg)

            file.write(PyDatagramIterator(dg).getRemainingBytes())
Exemplo n.º 5
0
 def save_file(self):
     if self.is_loading:
         return
 
     with open(self.filepath, 'wb') as file:
         
         dg = PyDatagram()
         
         dg.add_uint8(len(self.menu.buttons))
         for button in self.menu.buttons:
             self.save_button(button.get_data(), dg)
             
         file.write(PyDatagramIterator(dg).getRemainingBytes())
Exemplo n.º 6
0
    def _parse_msg_hton(self, msgid, data):
        msg = PyDatagram()
        msg.add_uint8(msgid)

        if msgid == MessageTypes.update_entity:
            msg.add_uint32(data['netid'])
            msg.add_string(data['data'])
        elif msgid == MessageTypes.remove_entity:
            msg.add_uint32(data['netid'])
        elif msgid == MessageTypes.register_player:
            pass
        elif msgid == MessageTypes.player_id:
            msg.add_uint32(data['netid'])
        elif msgid == MessageTypes.player_input:
            msg.add_uint32(data['netid'])
            msg.add_int8(data['movement_x'])
            msg.add_string(data['action_set'])
        else:
            raise RuntimeError("Unknown msgid:", msgid)

        return msg
Exemplo n.º 7
0
    def _parse_msg_hton(self, msgid, data):
        msg = PyDatagram()
        msg.add_uint8(msgid)

        if msgid == MessageTypes.update_entity:
            msg.add_uint32(data['netid'])
            msg.add_string(data['data'])
        elif msgid == MessageTypes.remove_entity:
            msg.add_uint32(data['netid'])
        elif msgid == MessageTypes.register_player:
            pass
        elif msgid == MessageTypes.player_id:
            msg.add_uint32(data['netid'])
        elif msgid == MessageTypes.player_input:
            msg.add_uint32(data['netid'])
            msg.add_int8(data['movement_x'])
            msg.add_string(data['action_set'])
        else:
            raise RuntimeError("Unknown msgid:", msgid)

        return msg