#pragma once #include #include #include "bettola/network/tcpsocket.h" #include "bettola/network/udpsocket.h" #include "player.h" #include "world.h" class Game { public: Player* add_player(BettolaLib::Network::TCPSocket* socket); void remove_player(unsigned int player_id); void update_player_chunks(void); void process_udp_message(const char* buffer, size_t size, const sockaddr_in& from_addr); void broadcast_game_state(BettolaLib::Network::UDPSocket& udp_socket); Player* get_player_by_socket(const BettolaLib::Network::TCPSocket* socket); Player* get_player_by_id(unsigned int id); private: void _send_chunks_around(Player* player, int chunk_x, int chunk_z); std::vector _players; World _world; };