X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fserver%2Fserver_player.h;h=afd7119679066d13177f1ba001836be15e74ca6a;hb=a7a35ec6669d512a54b57550a17f17d582f15b4d;hp=ad035fcd43138ec6e8d77e7a6f7f996f1bf69a4e;hpb=7edcc13168d2d0738225d8adb5e431a069919ccf;p=dragonblocks_alpha.git diff --git a/src/server/server_player.h b/src/server/server_player.h index ad035fc..afd7119 100644 --- a/src/server/server_player.h +++ b/src/server/server_player.h @@ -1,23 +1,33 @@ #ifndef _SERVER_PLAYER_H_ #define _SERVER_PLAYER_H_ +#include +#include #include #include -#include +#include "item.h" #include "types.h" -typedef struct -{ - u64 id; // unique identifier - DragonnetPeer *peer; - pthread_rwlock_t ref; // programming socks make you 100% cuter +typedef struct { + u64 id; // unique identifier + Refcount rc; // delete yourself if no one cares about you + + DragonnetPeer *peer; // not to be confused with beer + pthread_rwlock_t lock_peer; // programming socks make you 100% cuter - bool auth; - char *name; // player name - pthread_rwlock_t auth_lock; // why + bool auth; // YES OR NO I DEMAND AN ANSWER + char *name; // player name + pthread_rwlock_t lock_auth; // poggers based cringe - v3f64 pos; // player position - pthread_rwlock_t pos_lock; // i want to commit die + v3f64 pos; // player position + v3f32 rot; // you wont guess what this is + pthread_rwlock_t lock_pos; // git commit crime + + struct { + ItemStack left; + ItemStack right; + } inventory; + pthread_mutex_t mtx_inv; } ServerPlayer; void server_player_init(); @@ -26,14 +36,13 @@ void server_player_deinit(); void server_player_add(DragonnetPeer *peer); void server_player_remove(DragonnetPeer *peer); -u64 server_player_find(char *name); - ServerPlayer *server_player_grab(u64 id); -void server_player_drop(ServerPlayer *player); +ServerPlayer *server_player_grab_named(char *name); bool server_player_auth(ServerPlayer *player, char *name); void server_player_disconnect(ServerPlayer *player); -void server_player_send_pos(ServerPlayer *player); -void server_player_iterate(void (cb)(ServerPlayer *, void *), void *arg); +void server_player_move(ServerPlayer *player, v3f64 pos, v3f32 rot); +void server_player_iterate(void *func, void *arg); +void server_player_inventory_changed(ServerPlayer *player); -#endif +#endif // _SERVER_PLAYER_H_