summaryrefslogtreecommitdiff
path: root/src/cat
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2013-05-30 00:35:46 (GMT)
committer jacob1 <jfu614@gmail.com>2013-05-30 00:35:46 (GMT)
commitcbc80de6522b5562f9490b0cdb620371f25be2f9 (patch)
tree3a041d9e3632e9f0eb7b85a3f958d6fe9343c187 /src/cat
parentd29b001d82547e3c2f2e5ef4cf30b84ce59934b7 (diff)
downloadpowder-cbc80de6522b5562f9490b0cdb620371f25be2f9.zip
powder-cbc80de6522b5562f9490b0cdb620371f25be2f9.tar.gz
some new sim and ren lua api functions
Diffstat (limited to 'src/cat')
-rw-r--r--src/cat/LuaScriptInterface.cpp118
-rw-r--r--src/cat/LuaScriptInterface.h8
2 files changed, 125 insertions, 1 deletions
diff --git a/src/cat/LuaScriptInterface.cpp b/src/cat/LuaScriptInterface.cpp
index bce6012..fcfa125 100644
--- a/src/cat/LuaScriptInterface.cpp
+++ b/src/cat/LuaScriptInterface.cpp
@@ -15,6 +15,7 @@
#include "gui/dialogues/TextPrompt.h"
#include "gui/dialogues/ConfirmPrompt.h"
#include "simulation/Simulation.h"
+#include "simulation/Air.h"
#include "ToolClasses.h"
#include "gui/game/GameModel.h"
#include "gui/game/Tool.h"
@@ -469,6 +470,13 @@ void LuaScriptInterface::initSimulationAPI()
{"loadStamp", simulation_loadStamp},
{"loadSave", simulation_loadSave},
{"adjustCoords", simulation_adjustCoords},
+ {"prettyPowders", simulation_prettyPowders},
+ {"gravityGrid", simulation_gravityGrid},
+ {"edgeMode", simulation_edgeMode},
+ {"gravityMode", simulation_gravityMode},
+ {"airMode", simulation_airMode},
+ {"waterEqualisation", simulation_waterEqualisation},
+ {"waterEqualization", simulation_waterEqualisation},
{NULL, NULL}
};
luaL_register(l, "simulation", simulationAPIMethods);
@@ -1317,6 +1325,86 @@ int LuaScriptInterface::simulation_adjustCoords(lua_State * l)
return 2;
}
+int LuaScriptInterface::simulation_prettyPowders(lua_State * l)
+{
+ int acount = lua_gettop(l);
+ if (acount == 0)
+ {
+ lua_pushnumber(l, luacon_sim->pretty_powder);
+ return 1;
+ }
+ int prettyPowder = luaL_optint(l, 1, 0);
+ luacon_sim->pretty_powder = prettyPowder;
+ luacon_model->UpdateQuickOptions();
+ return 0;
+}
+
+int LuaScriptInterface::simulation_gravityGrid(lua_State * l)
+{
+ int acount = lua_gettop(l);
+ if (acount == 0)
+ {
+ lua_pushnumber(l, luacon_model->GetGravityGrid());
+ return 1;
+ }
+ int gravityGrid = luaL_optint(l, 1, -1);
+ luacon_model->ShowGravityGrid(gravityGrid);
+ luacon_model->UpdateQuickOptions();
+ return 0;
+}
+
+int LuaScriptInterface::simulation_edgeMode(lua_State * l)
+{
+ int acount = lua_gettop(l);
+ if (acount == 0)
+ {
+ lua_pushnumber(l, luacon_model->GetEdgeMode());
+ return 1;
+ }
+ int edgeMode = luaL_optint(l, 1, -1);
+ luacon_model->SetEdgeMode(edgeMode);
+ return 0;
+}
+
+int LuaScriptInterface::simulation_gravityMode(lua_State * l)
+{
+ int acount = lua_gettop(l);
+ if (acount == 0)
+ {
+ lua_pushnumber(l, luacon_sim->gravityMode);
+ return 1;
+ }
+ int gravityMode = luaL_optint(l, 1, -1);
+ luacon_sim->gravityMode = gravityMode;
+ return 0;
+}
+
+int LuaScriptInterface::simulation_airMode(lua_State * l)
+{
+ int acount = lua_gettop(l);
+ if (acount == 0)
+ {
+ lua_pushnumber(l, luacon_sim->air->airMode);
+ return 1;
+ }
+ int airMode = luaL_optint(l, 1, -1);
+ luacon_sim->air->airMode = airMode;
+ return 0;
+}
+
+int LuaScriptInterface::simulation_waterEqualisation(lua_State * l)
+{
+ int acount = lua_gettop(l);
+ if (acount == 0)
+ {
+ lua_pushnumber(l, luacon_sim->water_equal_test);
+ return 1;
+ }
+ int waterMode = luaL_optint(l, 1, -1);
+ luacon_sim->water_equal_test = waterMode;
+ return 0;
+}
+
//// Begin Renderer API
@@ -1328,7 +1416,9 @@ void LuaScriptInterface::initRendererAPI()
{"displayModes", renderer_displayModes},
{"colourMode", renderer_colourMode},
{"colorMode", renderer_colourMode}, //Duplicate of above to make Americans happy
- {"decorations", renderer_decorations},
+ {"decorations", renderer_decorations}, //renderer_debugHUD
+ {"grid", renderer_grid},
+ {"debugHUD", renderer_debugHUD},
{NULL, NULL}
};
luaL_register(l, "renderer", rendererAPIMethods);
@@ -1486,6 +1576,32 @@ int LuaScriptInterface::renderer_decorations(lua_State * l)
}
}
+int LuaScriptInterface::renderer_grid(lua_State * l)
+{
+ int acount = lua_gettop(l);
+ if (acount == 0)
+ {
+ lua_pushnumber(l, luacon_ren->GetGridSize());
+ return 1;
+ }
+ int grid = luaL_optint(l, 1, -1);
+ luacon_ren->SetGridSize(grid);
+ return 0;
+}
+
+int LuaScriptInterface::renderer_debugHUD(lua_State * l)
+{
+ int acount = lua_gettop(l);
+ if (acount == 0)
+ {
+ lua_pushnumber(l, luacon_controller->GetDebugHUD());
+ return 1;
+ }
+ int debug = luaL_optint(l, 1, -1);
+ luacon_controller->SetDebugHUD(debug);
+ return 0;
+}
+
void LuaScriptInterface::initElementsAPI()
{
//Methods
diff --git a/src/cat/LuaScriptInterface.h b/src/cat/LuaScriptInterface.h
index 0c868d3..899ceb6 100644
--- a/src/cat/LuaScriptInterface.h
+++ b/src/cat/LuaScriptInterface.h
@@ -84,6 +84,12 @@ class LuaScriptInterface: public CommandInterface
static int simulation_loadStamp(lua_State * l);
static int simulation_loadSave(lua_State * l);
static int simulation_adjustCoords(lua_State * l);
+ static int simulation_prettyPowders(lua_State * l);
+ static int simulation_gravityGrid(lua_State * l);
+ static int simulation_edgeMode(lua_State * l);
+ static int simulation_gravityMode(lua_State * l);
+ static int simulation_airMode(lua_State * l);
+ static int simulation_waterEqualisation(lua_State * l);
//Renderer
void initRendererAPI();
@@ -91,6 +97,8 @@ class LuaScriptInterface: public CommandInterface
static int renderer_displayModes(lua_State * l);
static int renderer_colourMode(lua_State * l);
static int renderer_decorations(lua_State * l);
+ static int renderer_grid(lua_State * l);
+ static int renderer_debugHUD(lua_State * l);
//Elements
static pim::VirtualMachine * updateVirtualMachines[PT_NUM];