100 lines
2.8 KiB
C++
100 lines
2.8 KiB
C++
#include "scriptnode.h"
|
|
#include "engine.h"
|
|
#include "sparrowshell/sparrowshell.h"
|
|
#include <iostream>
|
|
#include <sstream>
|
|
#include <string>
|
|
#include "Version.h"
|
|
#include "SparrowInput/Version.h"
|
|
#include "SparrowRenderer/Version.h"
|
|
#include "SparrowSerializer/Version.h"
|
|
#include "guitools.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()
|
|
{
|
|
LUA_SET_FUN(getDeltaTime);
|
|
LUA_SET_FUN(print);
|
|
LUA_SET_FUN(version);
|
|
LUA_SET_FUN(clear);
|
|
LUA_SET_FUN(picker);
|
|
LUA_SET_FUN(materialEditor);
|
|
LUA_SET_FUN(rendering);
|
|
}
|
|
|
|
void ScriptNode::update(){
|
|
static bool test = true;
|
|
if(test)
|
|
test=false;
|
|
}
|
|
|
|
void ScriptNode::execute(std::string to_execute){
|
|
try{
|
|
m_script.script(to_execute);
|
|
}catch(sol::error error_lua){
|
|
this->getEngine().getShell()->out(error_lua.what(),glm::vec3(1,0,0));
|
|
}
|
|
}
|
|
|
|
std::vector<std::string> ScriptNode::possibleCompletion(std::string search){
|
|
std::vector<std::string> result;
|
|
for(std::string& name : functions_name)
|
|
if(name.find(search)==0)
|
|
result.push_back(name);
|
|
return result;
|
|
}
|
|
|
|
void ScriptNode::print(std::string to_print){
|
|
this->getEngine().getShell()->out(to_print.append("\n"));
|
|
}
|
|
|
|
void ScriptNode::version(){
|
|
std::ostringstream oss;
|
|
oss << " SparrowEngine version: "<< SparrowEngine_VERSION_MAJOR << "." << SparrowEngine_VERSION_MINOR;
|
|
this->getEngine().getShell()->out(oss.str());
|
|
oss.str("");
|
|
oss << " SparrowInput version: "<< SparrowInput_VERSION_MAJOR << "." << SparrowInput_VERSION_MINOR;
|
|
this->getEngine().getShell()->out(oss.str());
|
|
oss.str("");
|
|
oss << " SparrowRenderer version: "<< SparrowRenderer_VERSION_MAJOR << "." << SparrowRenderer_VERSION_MINOR;
|
|
this->getEngine().getShell()->out(oss.str());
|
|
oss.str("");
|
|
oss << " SparrowSerializer version: "<< SparrowSerializer_VERSION_MAJOR << "." << SparrowSerializer_VERSION_MINOR;
|
|
this->getEngine().getShell()->out(oss.str());
|
|
}
|
|
|
|
void ScriptNode::clear(){
|
|
this->getEngine().getShell()->clear();
|
|
}
|
|
|
|
float ScriptNode::getDeltaTime(){
|
|
return this->getEngine().getDeltaTime()/1000.;
|
|
}
|
|
|
|
void ScriptNode::testfunc(int i, float x=0.f,float y=0.f, float z=0.f){
|
|
std::string s;
|
|
s= "Pop item ";
|
|
s+= std::to_string(i)+" at position (";
|
|
s+=std::to_string(x);
|
|
s+=",";
|
|
s+=std::to_string(y);
|
|
s+=",";
|
|
s+=std::to_string(z);
|
|
s+=")";
|
|
this->getEngine().getShell()->out(s.append("\n"));
|
|
}
|
|
|
|
void ScriptNode::picker(){
|
|
this->getEngine().getGuiTools()->togglePicker();
|
|
}
|
|
|
|
void ScriptNode::materialEditor(){
|
|
this->getEngine().getGuiTools()->toggleMaterialEditor();
|
|
}
|
|
|
|
void ScriptNode::rendering(){
|
|
this->getEngine().getGuiTools()->toggleRenderingPipelineGui();
|
|
}
|