1 #ifndef _SERVER_PLAYER_H_
2 #define _SERVER_PLAYER_H_
4 #include <dragonnet/peer.h>
5 #include <dragonstd/refcount.h>
12 u64 id; // unique identifier
13 Refcount rc; // delete yourself if no one cares about you
15 DragonnetPeer *peer; // not to be confused with beer
16 pthread_rwlock_t lock_peer; // programming socks make you 100% cuter
18 bool auth; // YES OR NO I DEMAND AN ANSWER
19 char *name; // player name
20 pthread_rwlock_t lock_auth; // poggers based cringe
22 v3f64 pos; // player position
23 v3f32 rot; // you wont guess what this is
24 pthread_rwlock_t lock_pos; // git commit crime
30 pthread_rwlock_t lock_inv;
33 void server_player_init();
34 void server_player_deinit();
36 void server_player_add(DragonnetPeer *peer);
37 void server_player_remove(DragonnetPeer *peer);
39 ServerPlayer *server_player_grab(u64 id);
40 ServerPlayer *server_player_grab_named(char *name);
42 bool server_player_auth(ServerPlayer *player, char *name);
43 void server_player_disconnect(ServerPlayer *player);
44 void server_player_move(ServerPlayer *player, v3f64 pos, v3f32 rot);
45 void server_player_iterate(void *func, void *arg);
47 #endif // _SERVER_PLAYER_H_