Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/scripting
diff options
context:
space:
mode:
Diffstat (limited to 'source/game/scripting')
-rw-r--r--source/game/scripting/StarPlayerLuaBindings.cpp5
-rw-r--r--source/game/scripting/StarRootLuaBindings.cpp11
-rw-r--r--source/game/scripting/StarRootLuaBindings.hpp2
3 files changed, 16 insertions, 2 deletions
diff --git a/source/game/scripting/StarPlayerLuaBindings.cpp b/source/game/scripting/StarPlayerLuaBindings.cpp
index 41198da..fe1c06d 100644
--- a/source/game/scripting/StarPlayerLuaBindings.cpp
+++ b/source/game/scripting/StarPlayerLuaBindings.cpp
@@ -85,6 +85,9 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) {
}
});
+ callbacks.registerCallback("name", [player]() { return player->name(); });
+ callbacks.registerCallback("setName", [player](String const& name) { player->setName(name); });
+
callbacks.registerCallback("species", [player]() { return player->species(); });
callbacks.registerCallback("setSpecies", [player](String const& species) { player->setSpecies(species); });
@@ -101,8 +104,6 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) {
player->setPersonality(parsePersonality(newPersonality, personalityConfig));
});
- void setPersonality(Personality const& personality);
-
callbacks.registerCallback("id", [player]() { return player->entityId(); });
callbacks.registerCallback("uniqueId", [player]() { return player->uniqueId(); });
callbacks.registerCallback("isAdmin", [player]() { return player->isAdmin(); });
diff --git a/source/game/scripting/StarRootLuaBindings.cpp b/source/game/scripting/StarRootLuaBindings.cpp
index d80d21d..de70950 100644
--- a/source/game/scripting/StarRootLuaBindings.cpp
+++ b/source/game/scripting/StarRootLuaBindings.cpp
@@ -30,6 +30,8 @@ LuaCallbacks LuaBindings::makeRootCallbacks() {
auto root = Root::singletonPtr();
+ callbacks.registerCallbackWithSignature<StringList, String>("assetsByExtension", bind(RootCallbacks::assetsByExtension, root, _1));
+ callbacks.registerCallbackWithSignature<String, String>("assetData", bind(RootCallbacks::assetData, root, _1));
callbacks.registerCallbackWithSignature<Json, String>("assetJson", bind(RootCallbacks::assetJson, root, _1));
callbacks.registerCallbackWithSignature<Json, String, Json>("makeCurrentVersionedJson", bind(RootCallbacks::makeCurrentVersionedJson, root, _1, _2));
callbacks.registerCallbackWithSignature<Json, Json, String>("loadVersionedJson", bind(RootCallbacks::loadVersionedJson, root, _1, _2));
@@ -170,6 +172,15 @@ LuaCallbacks LuaBindings::makeRootCallbacks() {
return callbacks;
}
+StringList LuaBindings::RootCallbacks::assetsByExtension(Root* root, String const& extension) {
+ return root->assets()->scanExtension(extension);
+}
+
+String LuaBindings::RootCallbacks::assetData(Root* root, String const& path) {
+ auto bytes = root->assets()->bytes(path);
+ return String(bytes->ptr(), bytes->size());
+}
+
Json LuaBindings::RootCallbacks::assetJson(Root* root, String const& path) {
return root->assets()->json(path);
}
diff --git a/source/game/scripting/StarRootLuaBindings.hpp b/source/game/scripting/StarRootLuaBindings.hpp
index 8d1bda4..570d2d7 100644
--- a/source/game/scripting/StarRootLuaBindings.hpp
+++ b/source/game/scripting/StarRootLuaBindings.hpp
@@ -13,6 +13,8 @@ namespace LuaBindings {
LuaCallbacks makeRootCallbacks();
namespace RootCallbacks {
+ StringList assetsByExtension(Root* root, String const& extension);
+ String assetData(Root* root, String const& path);
Json assetJson(Root* root, String const& path);
Json makeCurrentVersionedJson(Root* root, String const& identifier, Json const& content);
Json loadVersionedJson(Root* root, Json const& versionedJson, String const& expectedIdentifier);