add player name

This commit is contained in:
MihailRis 2024-11-23 05:38:18 +03:00
parent 97a4741a73
commit acc4d2540d
6 changed files with 50 additions and 1 deletions

View File

@ -77,6 +77,13 @@ player.get_spawnpoint(playerid: int) -> number, number, number
Spawn point setter and getter Spawn point setter and getter
```lua
player.set_name(playerid: int, name: str)
player.get_name(playerid: int) -> str
```
Player name setter and getter
```lua ```lua
player.get_selected_block(playerid: int) -> x,y,z player.get_selected_block(playerid: int) -> x,y,z
``` ```

View File

@ -77,6 +77,13 @@ player.get_spawnpoint(playerid: int) -> number, number, number
Сеттер и геттер точки спавна игрока Сеттер и геттер точки спавна игрока
```lua
player.set_name(playerid: int, name: str)
player.get_name(playerid: int) -> str
```
Сеттер и геттер имени игрока
```lua ```lua
player.get_selected_block(playerid: int) -> x,y,z player.get_selected_block(playerid: int) -> x,y,z
``` ```

View File

@ -236,6 +236,20 @@ static int l_set_camera(lua::State* L) {
return 0; return 0;
} }
static int l_get_name(lua::State* L) {
if (auto player = get_player(L, 1)) {
return lua::pushstring(L, player->getName());
}
return 0;
}
static int l_set_name(lua::State* L) {
if (auto player = get_player(L, 1)) {
player->setName(lua::require_string(L, 2));
}
return 0;
}
const luaL_Reg playerlib[] = { const luaL_Reg playerlib[] = {
{"get_pos", lua::wrap<l_get_pos>}, {"get_pos", lua::wrap<l_get_pos>},
{"set_pos", lua::wrap<l_set_pos>}, {"set_pos", lua::wrap<l_set_pos>},
@ -261,5 +275,7 @@ const luaL_Reg playerlib[] = {
{"set_entity", lua::wrap<l_set_entity>}, {"set_entity", lua::wrap<l_set_entity>},
{"get_camera", lua::wrap<l_get_camera>}, {"get_camera", lua::wrap<l_get_camera>},
{"set_camera", lua::wrap<l_set_camera>}, {"set_camera", lua::wrap<l_set_camera>},
{"get_name", lua::wrap<l_get_name>},
{"set_name", lua::wrap<l_set_name>},
{NULL, NULL} {NULL, NULL}
}; };

View File

@ -30,6 +30,7 @@ constexpr int SPAWN_ATTEMPTS_PER_UPDATE = 64;
Player::Player( Player::Player(
Level* level, Level* level,
int64_t id, int64_t id,
const std::string& name,
glm::vec3 position, glm::vec3 position,
float speed, float speed,
std::shared_ptr<Inventory> inv, std::shared_ptr<Inventory> inv,
@ -37,6 +38,7 @@ Player::Player(
) )
: level(level), : level(level),
id(id), id(id),
name(name),
speed(speed), speed(speed),
chosenSlot(0), chosenSlot(0),
position(position), position(position),
@ -269,6 +271,14 @@ entityid_t Player::getSelectedEntity() const {
return selectedEid; return selectedEid;
} }
void Player::setName(const std::string& name) {
this->name = name;
}
const std::string& Player::getName() const {
return name;
}
const std::shared_ptr<Inventory>& Player::getInventory() const { const std::shared_ptr<Inventory>& Player::getInventory() const {
return inventory; return inventory;
} }
@ -285,6 +295,7 @@ dv::value Player::serialize() const {
auto root = dv::object(); auto root = dv::object();
root["id"] = id; root["id"] = id;
root["name"] = name;
root["position"] = dv::to_value(position); root["position"] = dv::to_value(position);
root["rotation"] = dv::to_value(cam); root["rotation"] = dv::to_value(cam);
@ -308,6 +319,7 @@ dv::value Player::serialize() const {
void Player::deserialize(const dv::value& src) { void Player::deserialize(const dv::value& src) {
src.at("id").get(id); src.at("id").get(id);
src.at("name").get(name);
const auto& posarr = src["position"]; const auto& posarr = src["position"];

View File

@ -42,6 +42,7 @@ struct CursorSelection {
class Player : public Serializable { class Player : public Serializable {
Level* level; Level* level;
int64_t id; int64_t id;
std::string name;
float speed; float speed;
int chosenSlot; int chosenSlot;
glm::vec3 position; glm::vec3 position;
@ -63,6 +64,7 @@ public:
Player( Player(
Level* level, Level* level,
int64_t id, int64_t id,
const std::string& name,
glm::vec3 position, glm::vec3 position,
float speed, float speed,
std::shared_ptr<Inventory> inv, std::shared_ptr<Inventory> inv,
@ -100,9 +102,12 @@ public:
entityid_t getSelectedEntity() const; entityid_t getSelectedEntity() const;
void setName(const std::string& name);
const std::string& getName() const;
const std::shared_ptr<Inventory>& getInventory() const; const std::shared_ptr<Inventory>& getInventory() const;
glm::vec3 getPosition() const { const glm::vec3& getPosition() const {
return position; return position;
} }

View File

@ -23,6 +23,7 @@ Player* Players::create() {
auto playerPtr = std::make_unique<Player>( auto playerPtr = std::make_unique<Player>(
level, level,
level->getWorld()->getInfo().nextPlayerId++, level->getWorld()->getInfo().nextPlayerId++,
"",
glm::vec3(0, DEF_PLAYER_Y, 0), glm::vec3(0, DEF_PLAYER_Y, 0),
DEF_PLAYER_SPEED, DEF_PLAYER_SPEED,
level->inventories->create(DEF_PLAYER_INVENTORY_SIZE), level->inventories->create(DEF_PLAYER_INVENTORY_SIZE),
@ -53,6 +54,7 @@ void Players::deserialize(const dv::value& src) {
auto playerPtr = std::make_unique<Player>( auto playerPtr = std::make_unique<Player>(
level, level,
0, 0,
"",
glm::vec3(0, DEF_PLAYER_Y, 0), glm::vec3(0, DEF_PLAYER_Y, 0),
DEF_PLAYER_SPEED, DEF_PLAYER_SPEED,
level->inventories->create(DEF_PLAYER_INVENTORY_SIZE), level->inventories->create(DEF_PLAYER_INVENTORY_SIZE),