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:
GHOST11111100
2025-09-26 21:59:15 +03:00
committed by GitHub
parent 4c815db222
commit 792ee63f22
8 changed files with 52 additions and 3 deletions
+11
View File
@@ -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();
+9
View File
@@ -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);