summaryrefslogtreecommitdiff
path: root/src
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
parentd29b001d82547e3c2f2e5ef4cf30b84ce59934b7 (diff)
downloadpowder-cbc80de6522b5562f9490b0cdb620371f25be2f9.zip
powder-cbc80de6522b5562f9490b0cdb620371f25be2f9.tar.gz
some new sim and ren lua api functions
Diffstat (limited to 'src')
-rw-r--r--src/cat/LuaScriptInterface.cpp118
-rw-r--r--src/cat/LuaScriptInterface.h8
-rw-r--r--src/gui/game/GameController.cpp12
-rw-r--r--src/gui/game/GameController.h2
-rw-r--r--src/gui/game/GameView.cpp19
-rw-r--r--src/gui/game/GameView.h3
6 files changed, 152 insertions, 10 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];
diff --git a/src/gui/game/GameController.cpp b/src/gui/game/GameController.cpp
index d8ff3c6..f4992b2 100644
--- a/src/gui/game/GameController.cpp
+++ b/src/gui/game/GameController.cpp
@@ -661,7 +661,7 @@ bool GameController::KeyPress(int key, Uint16 character, bool shift, bool ctrl,
SwitchGravity();
break;
case 'd':
- gameView->ToggleDebug();
+ gameView->SetDebugHUD(!gameView->GetDebugHUD());
break;
case 's':
gameView->BeginStampSelection();
@@ -932,6 +932,16 @@ bool GameController::GetHudEnable()
return gameView->GetHudEnable();
}
+void GameController::SetDebugHUD(bool hudState)
+{
+ gameView->SetDebugHUD(hudState);
+}
+
+bool GameController::GetDebugHUD()
+{
+ return gameView->GetDebugHUD();
+}
+
void GameController::SetActiveColourPreset(int preset)
{
gameModel->SetActiveColourPreset(preset);
diff --git a/src/gui/game/GameController.h b/src/gui/game/GameController.h
index b67df41..cc49f3b 100644
--- a/src/gui/game/GameController.h
+++ b/src/gui/game/GameController.h
@@ -101,6 +101,8 @@ public:
void ShowGravityGrid();
void SetHudEnable(bool hudState);
bool GetHudEnable();
+ void SetDebugHUD(bool hudState);
+ bool GetDebugHUD();
void SetActiveMenu(int menuID);
std::vector<Menu*> GetMenuList();
void SetActiveTool(int toolSelection, Tool * tool);
diff --git a/src/gui/game/GameView.cpp b/src/gui/game/GameView.cpp
index 12414c7..a3b1fe7 100644
--- a/src/gui/game/GameView.cpp
+++ b/src/gui/game/GameView.cpp
@@ -595,6 +595,18 @@ bool GameView::GetHudEnable()
return showHud;
}
+void GameView::SetDebugHUD(bool mode)
+{
+ showDebug = mode;
+ if (ren)
+ ren->debugLines = showDebug;
+}
+
+bool GameView::GetDebugHUD()
+{
+ return showDebug;
+}
+
ui::Point GameView::GetMousePosition()
{
return mousePosition;
@@ -1201,13 +1213,6 @@ void GameView::OnMouseWheel(int x, int y, int d)
}
}
-void GameView::ToggleDebug()
-{
- showDebug = !showDebug;
- if (ren)
- ren->debugLines = showDebug;
-}
-
void GameView::BeginStampSelection()
{
selectMode = SelectStamp;
diff --git a/src/gui/game/GameView.h b/src/gui/game/GameView.h
index 328b67c..08709df 100644
--- a/src/gui/game/GameView.h
+++ b/src/gui/game/GameView.h
@@ -131,10 +131,11 @@ public:
void SetSample(SimulationSample sample);
void SetHudEnable(bool hudState);
bool GetHudEnable();
+ void SetDebugHUD(bool mode);
+ bool GetDebugHUD();
bool CtrlBehaviour(){ return ctrlBehaviour; }
bool ShiftBehaviour(){ return shiftBehaviour; }
void ExitPrompt();
- void ToggleDebug();
SelectMode GetSelectMode() { return selectMode; }
void BeginStampSelection();