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

summaryrefslogtreecommitdiff
path: root/source/game/scripting/StarRootLuaBindings.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2024-03-15 21:28:11 +1100
committerKae <80987908+Novaenia@users.noreply.github.com>2024-03-15 21:28:11 +1100
commit6fa0afd758a6351873df813cd7e70b1904714ed6 (patch)
treefbf45f18af0962a1d9ed3a2f44d8bb208c032645 /source/game/scripting/StarRootLuaBindings.cpp
parent696abcca71274fbda2470f1941cb2e06b6ff8c61 (diff)
experimental asset load scripts
Diffstat (limited to 'source/game/scripting/StarRootLuaBindings.cpp')
-rw-r--r--source/game/scripting/StarRootLuaBindings.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/source/game/scripting/StarRootLuaBindings.cpp b/source/game/scripting/StarRootLuaBindings.cpp
index 6759811..0c66a7b 100644
--- a/source/game/scripting/StarRootLuaBindings.cpp
+++ b/source/game/scripting/StarRootLuaBindings.cpp
@@ -30,7 +30,6 @@ 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));
@@ -63,6 +62,15 @@ LuaCallbacks LuaBindings::makeRootCallbacks() {
callbacks.registerCallbackWithSignature<Maybe<String>, String, Maybe<String>>("materialMiningSound", bind(RootCallbacks::materialMiningSound, root, _1, _2));
callbacks.registerCallbackWithSignature<Maybe<String>, String, Maybe<String>>("materialFootstepSound", bind(RootCallbacks::materialFootstepSound, root, _1, _2));
+ callbacks.registerCallback("assetsByExtension", [root](LuaEngine& engine, String const& extension) -> LuaTable {
+ auto& extensions = root->assets()->scanExtension(extension);
+ auto table = engine.createTable(extensions.size(), 0);
+ size_t i = 0;
+ for (auto& file : extensions)
+ table.set(++i, file);
+ return table;
+ });
+
callbacks.registerCallback("assetOrigin", [root](String const& path) -> Maybe<String> {
auto assets = root->assets();
if (auto descriptor = assets->assetDescriptor(path))
@@ -242,10 +250,6 @@ 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());