add player.is_suspended, player.set_suspended

This commit is contained in:
MihailRis
2025-01-15 22:25:51 +03:00
parent 40cdebb175
commit 43f0cbe3fe
6 changed files with 59 additions and 0 deletions
+8
View File
@@ -224,6 +224,14 @@ float Player::getSpeed() const {
return speed;
}
bool Player::isSuspended() const {
return suspended;
}
void Player::setSuspended(bool flag) {
suspended = flag;
}
bool Player::isFlight() const {
return flight;
}
+4
View File
@@ -47,6 +47,7 @@ class Player : public Serializable {
glm::vec3 position;
glm::vec3 spawnpoint {};
std::shared_ptr<Inventory> inventory;
bool suspended = false;
bool flight = false;
bool noclip = false;
bool infiniteItems = true;
@@ -85,6 +86,9 @@ public:
int getChosenSlot() const;
float getSpeed() const;
bool isSuspended() const;
void setSuspended(bool flag);
bool isFlight() const;
void setFlight(bool flag);
+21
View File
@@ -4,6 +4,7 @@
#include "items/Inventories.hpp"
#include "world/Level.hpp"
#include "world/World.hpp"
#include "objects/Entities.hpp"
Players::Players(Level& level) : level(level) {}
@@ -36,6 +37,26 @@ Player* Players::create() {
return player;
}
void Players::suspend(int64_t id) {
if (auto player = get(id)) {
if (player->isSuspended()) {
return;
}
player->setSuspended(true);
level.entities->despawn(player->getEntity());
player->setEntity(0);
}
}
void Players::resume(int64_t id) {
if (auto player = get(id)) {
if (!player->isSuspended()) {
return;
}
player->setSuspended(false);
}
}
void Players::remove(int64_t id) {
players.erase(id);
}
+4
View File
@@ -25,6 +25,10 @@ public:
Player* create();
void suspend(int64_t id);
void resume(int64_t id);
void remove(int64_t id);
dv::value serialize() const override;