add player.is_suspended, player.set_suspended
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user