Player Attributes (#578)
* feat: add max interaction distance functionality to Player class and Lua bindings * feat: add getter and setter for max interaction distance in Player class documentation * feat: add speed and gravity scale properties with corresponding getters and setters in Player class * fix: replace deprecated __max and __min with std::max and std::min in setMaxInteractionDistance * feat: add time scale functionality with getters and setters in World and Engine classes * remove speed and gravity scale functions from player and world libraries * remove time scale setting on world open and close * rename interaction distance functions for consistency * refactor: update interaction distance functions and remove time scale methods * refactor: revert classes.lua to dev * refactor: remove time scale functionality from Engine and World classes * fix: Now I’ve definitely rolled back `classes.lua`. * refactor: remove unused player attributes and clean up player class * Update Player.hpp removed unused methods from Player.cpp
This commit is contained in:
@@ -196,6 +196,14 @@ void Player::setLoadingChunks(bool flag) {
|
||||
loadingChunks = flag;
|
||||
}
|
||||
|
||||
float Player::getMaxInteractionDistance() const {
|
||||
return maxInteractionDistance;
|
||||
}
|
||||
|
||||
void Player::setMaxInteractionDistance(float distance) {
|
||||
maxInteractionDistance = std::max(1.0f, std::min(200.0f, distance));
|
||||
}
|
||||
|
||||
entityid_t Player::getEntity() const {
|
||||
return eid;
|
||||
}
|
||||
@@ -250,6 +258,7 @@ dv::value Player::serialize() const {
|
||||
root["rotation"] = dv::to_value(rotation);
|
||||
root["spawnpoint"] = dv::to_value(spawnpoint);
|
||||
|
||||
root["max-interaction-distance"] = maxInteractionDistance;
|
||||
root["flight"] = flight;
|
||||
root["noclip"] = noclip;
|
||||
root["suspended"] = suspended;
|
||||
@@ -283,6 +292,8 @@ void Player::deserialize(const dv::value& src) {
|
||||
const auto& sparr = src["spawnpoint"];
|
||||
setSpawnPoint(glm::vec3(
|
||||
sparr[0].asNumber(), sparr[1].asNumber(), sparr[2].asNumber()));
|
||||
|
||||
if (src.has("max-interaction-distance")) maxInteractionDistance = src["max-interaction-distance"].asNumber();
|
||||
|
||||
flight = src["flight"].asBoolean();
|
||||
noclip = src["noclip"].asBoolean();
|
||||
|
||||
@@ -46,6 +46,7 @@ class Player : public Serializable {
|
||||
int64_t id;
|
||||
std::string name;
|
||||
float speed;
|
||||
|
||||
int chosenSlot;
|
||||
glm::vec3 position;
|
||||
glm::vec3 spawnpoint {};
|
||||
@@ -56,6 +57,10 @@ class Player : public Serializable {
|
||||
bool infiniteItems = true;
|
||||
bool instantDestruction = true;
|
||||
bool loadingChunks = true;
|
||||
|
||||
// attributes
|
||||
float maxInteractionDistance = 10.0f;
|
||||
|
||||
entityid_t eid = ENTITY_AUTO;
|
||||
entityid_t selectedEid = 0;
|
||||
|
||||
@@ -90,6 +95,7 @@ public:
|
||||
void setChosenSlot(int index);
|
||||
|
||||
int getChosenSlot() const;
|
||||
|
||||
float getSpeed() const;
|
||||
|
||||
bool isSuspended() const;
|
||||
@@ -110,6 +116,9 @@ public:
|
||||
bool isLoadingChunks() const;
|
||||
void setLoadingChunks(bool flag);
|
||||
|
||||
float getMaxInteractionDistance() const;
|
||||
void setMaxInteractionDistance(float distance);
|
||||
|
||||
entityid_t getEntity() const;
|
||||
void setEntity(entityid_t eid);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user