From f7616648beb55e8b151c797323c70a98c994a5da Mon Sep 17 00:00:00 2001 From: Anselme Date: Mon, 28 Aug 2017 16:51:26 +0200 Subject: [PATCH] added the standard LUA libraries to the LUA context --- src/sparrowshell/scriptnode.cpp | 5 +++++ src/sparrowshell/scriptnode.h | 2 ++ src/tools/utils.cpp | 37 +++++++++++++++++++++++++++++++++ src/tools/utils.h | 3 +++ 4 files changed, 47 insertions(+) diff --git a/src/sparrowshell/scriptnode.cpp b/src/sparrowshell/scriptnode.cpp index e575ff1..1940eea 100644 --- a/src/sparrowshell/scriptnode.cpp +++ b/src/sparrowshell/scriptnode.cpp @@ -7,12 +7,17 @@ #include "SparrowInput/Version.h" #include "SparrowRenderer/Version.h" #include "SparrowSerializer/Version.h" +#include "tools/utils.h" #define LUA_DEFINE(var) S[#var]=var #define LUA_SET_FUN(var) m_script.set_function(#var,&ScriptNode::var,this);this->functions_name.push_back(#var); ScriptNode::ScriptNode() { + m_script.open_libraries(sol::lib::base); + m_script.open_libraries(sol::lib::math); + utils::initScriptingUtilsFunctions(this); + LUA_SET_FUN(getDeltaTime); LUA_SET_FUN(print); LUA_SET_FUN(version); diff --git a/src/sparrowshell/scriptnode.h b/src/sparrowshell/scriptnode.h index b8723a5..4290d6b 100644 --- a/src/sparrowshell/scriptnode.h +++ b/src/sparrowshell/scriptnode.h @@ -21,6 +21,8 @@ public: void version(); void clear(); float getDeltaTime(); + sol::state& getScriptEngine() { return m_script; } + void addAutoCompletionSymbol(const std::string& symbolName) { functions_name.push_back(symbolName); } }; diff --git a/src/tools/utils.cpp b/src/tools/utils.cpp index bb55e71..44f7159 100644 --- a/src/tools/utils.cpp +++ b/src/tools/utils.cpp @@ -3,6 +3,7 @@ //#include "scene/scenetree.h" #include "scene/meshnode.h" #include "iostream" +#include "sparrowshell/scriptnode.h" std::vector utils::split(const std::string &line, char sep){ std::vector tokens; @@ -14,6 +15,41 @@ std::vector utils::split(const std::string &line, char sep){ tokens.push_back(line.substr(start)); return tokens; } + +void utils::initScriptingUtilsFunctions(ScriptNode* scriptNode) +{ + +} + +void utils::initStandardScene() +{ + /* + * GUI + * + * ENTITIES + * PLAYER + * MOBS + * + * OBJECTS + * ITEMS // the player can interact with it, it is permanent and is saved in the map + * GIBS // only for decorative purposes and ephemere + * PROJECTILES // ballistic object + * + * MAP + * ENVIRONMENT + * FOG + * SUN + * SKY + * GEOMETRY + * CHUNK_NODES // procedural geometry + * MODEL_NODES // modelized geometry + * + * + * + * + */ +} + /* void utils::setPosition2D(MeshNode *mnode, glm::vec2 pos){ const glm::mat4 &tr = mnode->getTransform(); @@ -42,3 +78,4 @@ void setDepth2D(MeshNode* mnode, float depth){ //mesh.setDepth(depth); } */ + diff --git a/src/tools/utils.h b/src/tools/utils.h index d17cfcd..00c18a4 100644 --- a/src/tools/utils.h +++ b/src/tools/utils.h @@ -6,10 +6,13 @@ #include class MeshNode; +class ScriptNode; namespace utils { std::vector split(const std::string &line, char sep); +void initScriptingUtilsFunctions(ScriptNode* scriptNode); +void initStandardScene(); //void setPosition2D(MeshNode*, glm::vec2); //void resize2D(MeshNode*, glm::vec2, glm::vec2); //void scale2D(MeshNode*, glm::vec2);