2015-01-11 15:28:30 +08:00
|
|
|
#include <sol.hpp>
|
|
|
|
#include <string>
|
|
|
|
#include <iostream>
|
|
|
|
|
2015-01-16 00:53:15 +08:00
|
|
|
// this example shows how to read data in from a lua table
|
2015-01-11 15:28:30 +08:00
|
|
|
|
2015-01-16 00:53:15 +08:00
|
|
|
int main() {
|
|
|
|
sol::state lua;
|
|
|
|
// table used as an array
|
|
|
|
lua.script("table1 = {\"hello\", \"table\"}");
|
|
|
|
// table with a nested table and the key value syntax
|
|
|
|
lua.script("table2 = {"
|
|
|
|
"[\"nestedTable\"] = {"
|
|
|
|
"[\"key1\"] = \"value1\","
|
|
|
|
"[\"key2\"]= \"value2\""
|
|
|
|
"},"
|
|
|
|
"[\"name\"]= \"table2\""
|
|
|
|
"}");
|
2015-01-11 15:28:30 +08:00
|
|
|
|
2015-01-16 00:53:15 +08:00
|
|
|
|
|
|
|
// using the values stored in table1
|
|
|
|
std::cout << lua.get<sol::table>("table1").get<std::string>(1) << " "
|
|
|
|
<< lua.get<sol::table>("table1").get<std::string>(2) << '\n';
|
|
|
|
|
|
|
|
auto t2 = lua.get<sol::table>("table2");
|
|
|
|
auto nestedTable = t2.get<sol::table>("nestedTable");
|
|
|
|
|
|
|
|
// some retrieval of values from the nested table
|
|
|
|
// the cleaner way of doing things
|
|
|
|
std::cout << "nested table: key1 : " << nestedTable.get<std::string>("key1") << ", key2: "
|
|
|
|
// yes you can chain the get<>() results
|
|
|
|
<< lua.get<sol::table>("table2").get<sol::table>("nestedTable").get<std::string>("key2")
|
|
|
|
<< '\n';
|
|
|
|
|
|
|
|
std::cout << "name of t2: " << t2.get<std::string>("name") << '\n';
|
|
|
|
}
|