mirror of
https://github.com/The-Powder-Toy/The-Powder-Toy.git
synced 2025-08-13 11:54:04 +02:00
Eliminate polymorphism from the CommandInterface hierarchy
This is similar to what I did to Gravity in 9068920de3
. The idea is that we can choose between the implementations at compile time.
This commit is contained in:
@@ -90,7 +90,7 @@ GameController::GameController():
|
|||||||
|
|
||||||
gameView->SetDebugHUD(GlobalPrefs::Ref().Get("Renderer.DebugMode", false));
|
gameView->SetDebugHUD(GlobalPrefs::Ref().Get("Renderer.DebugMode", false));
|
||||||
|
|
||||||
CommandInterface::Create(this, gameModel);
|
commandInterface = CommandInterface::Create(this, gameModel);
|
||||||
|
|
||||||
Client::Ref().AddListener(this);
|
Client::Ref().AddListener(this);
|
||||||
|
|
||||||
@@ -146,7 +146,7 @@ GameController::~GameController()
|
|||||||
{
|
{
|
||||||
delete *iter;
|
delete *iter;
|
||||||
}
|
}
|
||||||
delete commandInterface;
|
commandInterface.reset();
|
||||||
delete gameModel;
|
delete gameModel;
|
||||||
if (gameView->CloseActiveWindow())
|
if (gameView->CloseActiveWindow())
|
||||||
{
|
{
|
||||||
@@ -1386,7 +1386,7 @@ void GameController::OpenOptions()
|
|||||||
void GameController::ShowConsole()
|
void GameController::ShowConsole()
|
||||||
{
|
{
|
||||||
if (!console)
|
if (!console)
|
||||||
console = new ConsoleController(NULL, commandInterface);
|
console = new ConsoleController(NULL, commandInterface.get());
|
||||||
if (console->GetView() != ui::Engine::Ref().GetWindow())
|
if (console->GetView() != ui::Engine::Ref().GetWindow())
|
||||||
ui::Engine::Ref().ShowWindow(console->GetView());
|
ui::Engine::Ref().ShowWindow(console->GetView());
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
#include "lua/CommandInterfacePtr.h"
|
||||||
#include "client/ClientListener.h"
|
#include "client/ClientListener.h"
|
||||||
#include "client/StartupInfo.h"
|
#include "client/StartupInfo.h"
|
||||||
#include "gui/interface/Point.h"
|
#include "gui/interface/Point.h"
|
||||||
@@ -28,7 +29,6 @@ class LocalBrowserController;
|
|||||||
class SearchController;
|
class SearchController;
|
||||||
class PreviewController;
|
class PreviewController;
|
||||||
class RenderController;
|
class RenderController;
|
||||||
class CommandInterface;
|
|
||||||
class VideoBuffer;
|
class VideoBuffer;
|
||||||
class Tool;
|
class Tool;
|
||||||
class Menu;
|
class Menu;
|
||||||
@@ -39,6 +39,8 @@ class TagsController;
|
|||||||
class ConsoleController;
|
class ConsoleController;
|
||||||
class GameController: public ClientListener
|
class GameController: public ClientListener
|
||||||
{
|
{
|
||||||
|
CommandInterfacePtr commandInterface;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool firstTick;
|
bool firstTick;
|
||||||
int foundSignID;
|
int foundSignID;
|
||||||
|
@@ -1712,7 +1712,7 @@ void GameModel::BeforeSim()
|
|||||||
{
|
{
|
||||||
if (!sim->sys_pause || sim->framerender)
|
if (!sim->sys_pause || sim->framerender)
|
||||||
{
|
{
|
||||||
commandInterface->HandleEvent(BeforeSimEvent{});
|
CommandInterface::Ref().HandleEvent(BeforeSimEvent{});
|
||||||
}
|
}
|
||||||
sim->BeforeSim();
|
sim->BeforeSim();
|
||||||
}
|
}
|
||||||
@@ -1720,5 +1720,5 @@ void GameModel::BeforeSim()
|
|||||||
void GameModel::AfterSim()
|
void GameModel::AfterSim()
|
||||||
{
|
{
|
||||||
sim->AfterSim();
|
sim->AfterSim();
|
||||||
commandInterface->HandleEvent(AfterSimEvent{});
|
CommandInterface::Ref().HandleEvent(AfterSimEvent{});
|
||||||
}
|
}
|
||||||
|
@@ -17,21 +17,12 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
|
|
||||||
CommandInterface *commandInterface = nullptr;
|
|
||||||
|
|
||||||
CommandInterface::CommandInterface(GameController *newGameController, GameModel *newGameModel)
|
CommandInterface::CommandInterface(GameController *newGameController, GameModel *newGameModel)
|
||||||
{
|
{
|
||||||
assert(!commandInterface);
|
|
||||||
commandInterface = this;
|
|
||||||
this->m = newGameModel;
|
this->m = newGameModel;
|
||||||
this->c = newGameController;
|
this->c = newGameController;
|
||||||
}
|
}
|
||||||
|
|
||||||
CommandInterface::~CommandInterface()
|
|
||||||
{
|
|
||||||
commandInterface = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CommandInterface::Log(LogType type, String message)
|
void CommandInterface::Log(LogType type, String message)
|
||||||
{
|
{
|
||||||
m->Log(message, type == LogError || type == LogNotice);
|
m->Log(message, type == LogError || type == LogNotice);
|
||||||
@@ -80,7 +71,7 @@ String CommandInterface::GetLastError()
|
|||||||
return lastError;
|
return lastError;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CommandInterface::Command(String command)
|
int CommandInterface::PlainCommand(String command)
|
||||||
{
|
{
|
||||||
lastError = "";
|
lastError = "";
|
||||||
std::deque<String> words;
|
std::deque<String> words;
|
||||||
@@ -273,7 +264,7 @@ AnyType CommandInterface::eval(std::deque<String> * words)
|
|||||||
return StringType(word);
|
return StringType(word);
|
||||||
}
|
}
|
||||||
|
|
||||||
String CommandInterface::FormatCommand(String command)
|
String CommandInterface::PlainFormatCommand(String command)
|
||||||
{
|
{
|
||||||
std::deque<String> words;
|
std::deque<String> words;
|
||||||
std::deque<AnyType> commandWords;
|
std::deque<AnyType> commandWords;
|
||||||
|
@@ -1,4 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
#include "CommandInterfacePtr.h"
|
||||||
|
#include "common/ExplicitSingleton.h"
|
||||||
#include "common/String.h"
|
#include "common/String.h"
|
||||||
#include "gui/game/GameControllerEvents.h"
|
#include "gui/game/GameControllerEvents.h"
|
||||||
#include "TPTSTypes.h"
|
#include "TPTSTypes.h"
|
||||||
@@ -8,34 +10,38 @@ class GameModel;
|
|||||||
class GameController;
|
class GameController;
|
||||||
class Tool;
|
class Tool;
|
||||||
|
|
||||||
class CommandInterface
|
class CommandInterface : public ExplicitSingleton<CommandInterface>
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
String lastError;
|
String lastError;
|
||||||
GameModel * m;
|
GameModel * m;
|
||||||
GameController * c;
|
GameController * c;
|
||||||
CommandInterface(GameController *newGameController, GameModel *newGameModel);
|
|
||||||
|
|
||||||
|
int PlainCommand(String command);
|
||||||
|
String PlainFormatCommand(String command);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
CommandInterface(GameController *newGameController, GameModel *newGameModel);
|
||||||
|
|
||||||
enum LogType { LogError, LogWarning, LogNotice };
|
enum LogType { LogError, LogWarning, LogNotice };
|
||||||
enum FormatType { FormatInt, FormatString, FormatChar, FormatFloat, FormatElement };
|
enum FormatType { FormatInt, FormatString, FormatChar, FormatFloat, FormatElement };
|
||||||
int GetPropertyOffset(ByteString key, FormatType & format);
|
int GetPropertyOffset(ByteString key, FormatType & format);
|
||||||
void Log(LogType type, String message);
|
void Log(LogType type, String message);
|
||||||
//void AttachGameModel(GameModel * m);
|
//void AttachGameModel(GameModel * m);
|
||||||
|
|
||||||
virtual void OnTick() { }
|
void OnTick();
|
||||||
virtual void Init() { }
|
void Init();
|
||||||
|
|
||||||
virtual bool HandleEvent(const GameControllerEvent &event) { return true; }
|
bool HandleEvent(const GameControllerEvent &event);
|
||||||
|
|
||||||
virtual int Command(String command);
|
int Command(String command);
|
||||||
virtual String FormatCommand(String command);
|
String FormatCommand(String command);
|
||||||
void SetLastError(String err)
|
void SetLastError(String err)
|
||||||
{
|
{
|
||||||
lastError = err;
|
lastError = err;
|
||||||
}
|
}
|
||||||
String GetLastError();
|
String GetLastError();
|
||||||
virtual ~CommandInterface();
|
|
||||||
|
|
||||||
AnyType eval(std::deque<String> * words);
|
AnyType eval(std::deque<String> * words);
|
||||||
int parseNumber(String str);
|
int parseNumber(String str);
|
||||||
@@ -48,7 +54,5 @@ public:
|
|||||||
AnyType tptS_quit(std::deque<String> * words);
|
AnyType tptS_quit(std::deque<String> * words);
|
||||||
ValueType testType(String word);
|
ValueType testType(String word);
|
||||||
|
|
||||||
static CommandInterface *Create(GameController *newGameController, GameModel *newGameModel);
|
static CommandInterfacePtr Create(GameController *newGameController, GameModel *newGameModel);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern CommandInterface *commandInterface;
|
|
||||||
|
9
src/lua/CommandInterfacePtr.h
Normal file
9
src/lua/CommandInterfacePtr.h
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
class CommandInterface;
|
||||||
|
struct CommandInterfaceDeleter
|
||||||
|
{
|
||||||
|
void operator ()(CommandInterface *ptr) const;
|
||||||
|
};
|
||||||
|
using CommandInterfacePtr = std::unique_ptr<CommandInterface, CommandInterfaceDeleter>;
|
@@ -18,7 +18,7 @@ LuaComponent::LuaComponent(lua_State *L) : component(nullptr), owner_ref(LUA_REF
|
|||||||
{
|
{
|
||||||
this->L = L; // I don't get how this doesn't cause crashes later on
|
this->L = L; // I don't get how this doesn't cause crashes later on
|
||||||
|
|
||||||
ci = static_cast<LuaScriptInterface *>(commandInterface);
|
ci = static_cast<LuaScriptInterface *>(&CommandInterface::Ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
int LuaComponent::position(lua_State *L)
|
int LuaComponent::position(lua_State *L)
|
||||||
|
@@ -102,7 +102,7 @@ static int luaUpdateWrapper(UPDATE_FUNC_ARGS)
|
|||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto &builtinElements = GetElements();
|
auto &builtinElements = GetElements();
|
||||||
auto *builtinUpdate = builtinElements[parts[i].type].Update;
|
auto *builtinUpdate = builtinElements[parts[i].type].Update;
|
||||||
auto &customElements = lsi->customElements;
|
auto &customElements = lsi->customElements;
|
||||||
@@ -152,7 +152,7 @@ static int luaGraphicsWrapper(GRAPHICS_FUNC_ARGS)
|
|||||||
{
|
{
|
||||||
return Element::defaultGraphics(GRAPHICS_FUNC_SUBCALL_ARGS);
|
return Element::defaultGraphics(GRAPHICS_FUNC_SUBCALL_ARGS);
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto &customElements = lsi->customElements;
|
auto &customElements = lsi->customElements;
|
||||||
auto *sim = lsi->sim;
|
auto *sim = lsi->sim;
|
||||||
if (customElements[cpart->type].graphics)
|
if (customElements[cpart->type].graphics)
|
||||||
@@ -215,7 +215,7 @@ static void luaCreateWrapper(ELEMENT_CREATE_FUNC_ARGS)
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto &customElements = lsi->customElements;
|
auto &customElements = lsi->customElements;
|
||||||
if (customElements[sim->parts[i].type].create)
|
if (customElements[sim->parts[i].type].create)
|
||||||
{
|
{
|
||||||
@@ -242,7 +242,7 @@ static bool luaCreateAllowedWrapper(ELEMENT_CREATE_ALLOWED_FUNC_ARGS)
|
|||||||
// instances of something that should be limited to one instance.
|
// instances of something that should be limited to one instance.
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto &customElements = lsi->customElements;
|
auto &customElements = lsi->customElements;
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
if (customElements[t].createAllowed)
|
if (customElements[t].createAllowed)
|
||||||
@@ -273,7 +273,7 @@ static void luaChangeTypeWrapper(ELEMENT_CHANGETYPE_FUNC_ARGS)
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto &customElements = lsi->customElements;
|
auto &customElements = lsi->customElements;
|
||||||
if (customElements[sim->parts[i].type].changeType)
|
if (customElements[sim->parts[i].type].changeType)
|
||||||
{
|
{
|
||||||
@@ -297,7 +297,7 @@ static bool luaCtypeDrawWrapper(CTYPEDRAW_FUNC_ARGS)
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto &customElements = lsi->customElements;
|
auto &customElements = lsi->customElements;
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
if (customElements[sim->parts[i].type].ctypeDraw)
|
if (customElements[sim->parts[i].type].ctypeDraw)
|
||||||
@@ -323,7 +323,7 @@ static bool luaCtypeDrawWrapper(CTYPEDRAW_FUNC_ARGS)
|
|||||||
|
|
||||||
static int allocate(lua_State *L)
|
static int allocate(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
luaL_checktype(L, 1, LUA_TSTRING);
|
luaL_checktype(L, 1, LUA_TSTRING);
|
||||||
luaL_checktype(L, 2, LUA_TSTRING);
|
luaL_checktype(L, 2, LUA_TSTRING);
|
||||||
auto group = tpt_lua_toByteString(L, 1).ToUpper();
|
auto group = tpt_lua_toByteString(L, 1).ToUpper();
|
||||||
@@ -410,7 +410,7 @@ static int allocate(lua_State *L)
|
|||||||
static int element(lua_State *L)
|
static int element(lua_State *L)
|
||||||
{
|
{
|
||||||
auto &builtinElements = GetElements();
|
auto &builtinElements = GetElements();
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto &customElements = lsi->customElements;
|
auto &customElements = lsi->customElements;
|
||||||
int id = luaL_checkinteger(L, 1);
|
int id = luaL_checkinteger(L, 1);
|
||||||
if (!SimulationData::CRef().IsElementOrNone(id))
|
if (!SimulationData::CRef().IsElementOrNone(id))
|
||||||
@@ -556,7 +556,7 @@ static int element(lua_State *L)
|
|||||||
static int property(lua_State *L)
|
static int property(lua_State *L)
|
||||||
{
|
{
|
||||||
auto &builtinElements = GetElements();
|
auto &builtinElements = GetElements();
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto &customElements = lsi->customElements;
|
auto &customElements = lsi->customElements;
|
||||||
int id = luaL_checkinteger(L, 1);
|
int id = luaL_checkinteger(L, 1);
|
||||||
if (!SimulationData::CRef().IsElementOrNone(id))
|
if (!SimulationData::CRef().IsElementOrNone(id))
|
||||||
@@ -750,7 +750,7 @@ static int ffree(lua_State *L)
|
|||||||
std::unique_lock lk(sd.elementGraphicsMx);
|
std::unique_lock lk(sd.elementGraphicsMx);
|
||||||
sd.elements[id].Enabled = false;
|
sd.elements[id].Enabled = false;
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->gameModel->BuildMenus();
|
lsi->gameModel->BuildMenus();
|
||||||
|
|
||||||
lua_getglobal(L, "elements");
|
lua_getglobal(L, "elements");
|
||||||
@@ -775,7 +775,7 @@ static int loadDefault(lua_State *L)
|
|||||||
std::unique_lock lk(sd.elementGraphicsMx);
|
std::unique_lock lk(sd.elementGraphicsMx);
|
||||||
auto &elements = sd.elements;
|
auto &elements = sd.elements;
|
||||||
auto &builtinElements = GetElements();
|
auto &builtinElements = GetElements();
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
{
|
{
|
||||||
auto loadDefaultOne = [L, &elements, &builtinElements](int id) {
|
auto loadDefaultOne = [L, &elements, &builtinElements](int id) {
|
||||||
lua_getglobal(L, "elements");
|
lua_getglobal(L, "elements");
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
static int fregister(lua_State *L)
|
static int fregister(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int eventType = luaL_checkinteger(L, 1);
|
int eventType = luaL_checkinteger(L, 1);
|
||||||
luaL_checktype(L, 2, LUA_TFUNCTION);
|
luaL_checktype(L, 2, LUA_TFUNCTION);
|
||||||
if (eventType < 0 || eventType >= int(lsi->gameControllerEventHandlers.size()))
|
if (eventType < 0 || eventType >= int(lsi->gameControllerEventHandlers.size()))
|
||||||
@@ -21,7 +21,7 @@ static int fregister(lua_State *L)
|
|||||||
|
|
||||||
static int unregister(lua_State *L)
|
static int unregister(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int eventType = luaL_checkinteger(L, 1);
|
int eventType = luaL_checkinteger(L, 1);
|
||||||
luaL_checktype(L, 2, LUA_TFUNCTION);
|
luaL_checktype(L, 2, LUA_TFUNCTION);
|
||||||
if (eventType < 0 || eventType >= int(lsi->gameControllerEventHandlers.size()))
|
if (eventType < 0 || eventType >= int(lsi->gameControllerEventHandlers.size()))
|
||||||
|
@@ -13,7 +13,7 @@ static int32_t int32Truncate(double n)
|
|||||||
|
|
||||||
static std::variant<Graphics *, Renderer *> currentGraphics()
|
static std::variant<Graphics *, Renderer *> currentGraphics()
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lsi->eventTraits & eventTraitSimGraphics)
|
if (lsi->eventTraits & eventTraitSimGraphics)
|
||||||
{
|
{
|
||||||
return lsi->ren;
|
return lsi->ren;
|
||||||
@@ -71,7 +71,7 @@ static int drawPixel(lua_State *L)
|
|||||||
else if (b > 255) b = 255;
|
else if (b > 255) b = 255;
|
||||||
if (a < 0 ) a = 0 ;
|
if (a < 0 ) a = 0 ;
|
||||||
else if (a > 255) a = 255;
|
else if (a > 255) a = 255;
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->g->BlendPixel({ x, y }, RGBA<uint8_t>(r, g, b, a));
|
lsi->g->BlendPixel({ x, y }, RGBA<uint8_t>(r, g, b, a));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -259,7 +259,7 @@ static int getHexColor(lua_State *L)
|
|||||||
|
|
||||||
static int setClipRect(lua_State *L)
|
static int setClipRect(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lsi->eventTraits & eventTraitSimGraphics)
|
if (lsi->eventTraits & eventTraitSimGraphics)
|
||||||
{
|
{
|
||||||
return luaL_error(L, "simulation graphics do not support clip rects");
|
return luaL_error(L, "simulation graphics do not support clip rects");
|
||||||
|
@@ -52,7 +52,7 @@ static int beginMessageBox(lua_State *L)
|
|||||||
auto cb = std::make_shared<LuaSmartRef>(); // * Bind to main lua state (might be different from L).
|
auto cb = std::make_shared<LuaSmartRef>(); // * Bind to main lua state (might be different from L).
|
||||||
cb->Assign(L, lua_gettop(L));
|
cb->Assign(L, lua_gettop(L));
|
||||||
new InformationMessage(title, message, large, { [cb]() {
|
new InformationMessage(title, message, large, { [cb]() {
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto L = lsi->L;
|
auto L = lsi->L;
|
||||||
cb->Push(L);
|
cb->Push(L);
|
||||||
if (lua_isfunction(L, -1))
|
if (lua_isfunction(L, -1))
|
||||||
@@ -76,7 +76,7 @@ static int beginThrowError(lua_State *L)
|
|||||||
auto cb = std::make_shared<LuaSmartRef>(); // * Bind to main lua state (might be different from L).
|
auto cb = std::make_shared<LuaSmartRef>(); // * Bind to main lua state (might be different from L).
|
||||||
cb->Assign(L, lua_gettop(L));
|
cb->Assign(L, lua_gettop(L));
|
||||||
new ErrorMessage("Error", errorMessage, { [cb]() {
|
new ErrorMessage("Error", errorMessage, { [cb]() {
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto L = lsi->L;
|
auto L = lsi->L;
|
||||||
cb->Push(L);
|
cb->Push(L);
|
||||||
if (lua_isfunction(L, -1))
|
if (lua_isfunction(L, -1))
|
||||||
@@ -103,7 +103,7 @@ static int beginInput(lua_State *L)
|
|||||||
auto cb = std::make_shared<LuaSmartRef>(); // * Bind to main lua state (might be different from L).
|
auto cb = std::make_shared<LuaSmartRef>(); // * Bind to main lua state (might be different from L).
|
||||||
cb->Assign(L, lua_gettop(L));
|
cb->Assign(L, lua_gettop(L));
|
||||||
auto handle = [cb](std::optional<String> input) {
|
auto handle = [cb](std::optional<String> input) {
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto L = lsi->L;
|
auto L = lsi->L;
|
||||||
cb->Push(L);
|
cb->Push(L);
|
||||||
if (lua_isfunction(L, -1))
|
if (lua_isfunction(L, -1))
|
||||||
@@ -142,7 +142,7 @@ static int beginConfirm(lua_State *L)
|
|||||||
auto cb = std::make_shared<LuaSmartRef>(); // * Bind to main lua state (might be different from L).
|
auto cb = std::make_shared<LuaSmartRef>(); // * Bind to main lua state (might be different from L).
|
||||||
cb->Assign(L, lua_gettop(L));
|
cb->Assign(L, lua_gettop(L));
|
||||||
auto handle = [cb](int result) {
|
auto handle = [cb](int result) {
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto L = lsi->L;
|
auto L = lsi->L;
|
||||||
cb->Push(L);
|
cb->Push(L);
|
||||||
if (lua_isfunction(L, -1))
|
if (lua_isfunction(L, -1))
|
||||||
@@ -168,7 +168,7 @@ static int beginConfirm(lua_State *L)
|
|||||||
|
|
||||||
static int console(lua_State *L)
|
static int console(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -184,7 +184,7 @@ static int console(lua_State *L)
|
|||||||
|
|
||||||
static int brushID(lua_State *L)
|
static int brushID(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lua_gettop(L) < 1)
|
if (lua_gettop(L) < 1)
|
||||||
{
|
{
|
||||||
lua_pushnumber(L, lsi->gameModel->GetBrushID());
|
lua_pushnumber(L, lsi->gameModel->GetBrushID());
|
||||||
@@ -201,7 +201,7 @@ static int brushID(lua_State *L)
|
|||||||
|
|
||||||
static int brushRadius(lua_State *L)
|
static int brushRadius(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lua_gettop(L) < 1)
|
if (lua_gettop(L) < 1)
|
||||||
{
|
{
|
||||||
auto radius = lsi->gameModel->GetBrush().GetRadius();
|
auto radius = lsi->gameModel->GetBrush().GetRadius();
|
||||||
@@ -215,7 +215,7 @@ static int brushRadius(lua_State *L)
|
|||||||
|
|
||||||
static int mousePosition(lua_State *L)
|
static int mousePosition(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto pos = lsi->gameController->GetView()->GetMousePosition();
|
auto pos = lsi->gameController->GetView()->GetMousePosition();
|
||||||
lua_pushnumber(L, pos.X);
|
lua_pushnumber(L, pos.X);
|
||||||
lua_pushnumber(L, pos.Y);
|
lua_pushnumber(L, pos.Y);
|
||||||
@@ -223,7 +223,7 @@ static int mousePosition(lua_State *L)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int activeTool(lua_State *L)
|
static int activeTool(lua_State *L)
|
||||||
{ auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
{ auto *lsi = GetLSI();
|
||||||
auto index = luaL_checkint(L, 1);
|
auto index = luaL_checkint(L, 1);
|
||||||
if (index < 0 || index >= NUM_TOOLINDICES)
|
if (index < 0 || index >= NUM_TOOLINDICES)
|
||||||
{
|
{
|
||||||
@@ -246,7 +246,7 @@ static int activeTool(lua_State *L)
|
|||||||
|
|
||||||
static int addComponent(lua_State *L)
|
static int addComponent(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
void *opaque = nullptr;
|
void *opaque = nullptr;
|
||||||
LuaComponent *luaComponent = nullptr;
|
LuaComponent *luaComponent = nullptr;
|
||||||
if ((opaque = Luna<LuaButton>::tryGet(L, 1)))
|
if ((opaque = Luna<LuaButton>::tryGet(L, 1)))
|
||||||
@@ -279,7 +279,7 @@ static int addComponent(lua_State *L)
|
|||||||
|
|
||||||
static int removeComponent(lua_State *L)
|
static int removeComponent(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
void *opaque = nullptr;
|
void *opaque = nullptr;
|
||||||
LuaComponent *luaComponent = nullptr;
|
LuaComponent *luaComponent = nullptr;
|
||||||
if ((opaque = Luna<LuaButton>::tryGet(L, 1)))
|
if ((opaque = Luna<LuaButton>::tryGet(L, 1)))
|
||||||
@@ -313,7 +313,7 @@ static int removeComponent(lua_State *L)
|
|||||||
|
|
||||||
static int grabTextInput(lua_State *L)
|
static int grabTextInput(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->textInputRefcount += 1;
|
lsi->textInputRefcount += 1;
|
||||||
lsi->gameController->GetView()->DoesTextInput = lsi->textInputRefcount > 0;
|
lsi->gameController->GetView()->DoesTextInput = lsi->textInputRefcount > 0;
|
||||||
return 0;
|
return 0;
|
||||||
@@ -321,7 +321,7 @@ static int grabTextInput(lua_State *L)
|
|||||||
|
|
||||||
static int dropTextInput(lua_State *L)
|
static int dropTextInput(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->textInputRefcount -= 1;
|
lsi->textInputRefcount -= 1;
|
||||||
lsi->gameController->GetView()->DoesTextInput = lsi->textInputRefcount > 0;
|
lsi->gameController->GetView()->DoesTextInput = lsi->textInputRefcount > 0;
|
||||||
return 0;
|
return 0;
|
||||||
@@ -356,7 +356,7 @@ static int closeWindow(lua_State *L)
|
|||||||
|
|
||||||
static int perfectCircleBrush(lua_State *L)
|
static int perfectCircleBrush(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (!lua_gettop(L))
|
if (!lua_gettop(L))
|
||||||
{
|
{
|
||||||
lua_pushboolean(L, lsi->gameModel->GetPerfectCircle());
|
lua_pushboolean(L, lsi->gameModel->GetPerfectCircle());
|
||||||
@@ -369,7 +369,7 @@ static int perfectCircleBrush(lua_State *L)
|
|||||||
|
|
||||||
static int activeMenu(lua_State *L)
|
static int activeMenu(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -401,7 +401,7 @@ static int menuEnabled(lua_State *L)
|
|||||||
auto &sd = SimulationData::Ref();
|
auto &sd = SimulationData::Ref();
|
||||||
sd.msections[menusection].doshow = enabled;
|
sd.msections[menusection].doshow = enabled;
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->gameModel->BuildMenus();
|
lsi->gameModel->BuildMenus();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -415,7 +415,7 @@ static int numMenus(lua_State *L)
|
|||||||
luaL_checktype(L, 1, LUA_TBOOLEAN);
|
luaL_checktype(L, 1, LUA_TBOOLEAN);
|
||||||
onlyEnabled = lua_toboolean(L, 1);
|
onlyEnabled = lua_toboolean(L, 1);
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lua_pushinteger(L, lsi->gameController->GetNumMenus(onlyEnabled));
|
lua_pushinteger(L, lsi->gameController->GetNumMenus(onlyEnabled));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
static int getUserName(lua_State *L)
|
static int getUserName(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lsi->gameModel->GetUser().UserID)
|
if (lsi->gameModel->GetUser().UserID)
|
||||||
{
|
{
|
||||||
tpt_lua_pushByteString(L, lsi->gameModel->GetUser().Username);
|
tpt_lua_pushByteString(L, lsi->gameModel->GetUser().Username);
|
||||||
@@ -24,7 +24,7 @@ static int getUserName(lua_State *L)
|
|||||||
|
|
||||||
static int installScriptManager(lua_State *L)
|
static int installScriptManager(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lsi->scriptManagerDownload)
|
if (lsi->scriptManagerDownload)
|
||||||
{
|
{
|
||||||
new ErrorMessage("Script download", "A script download is already pending");
|
new ErrorMessage("Script download", "A script download is already pending");
|
||||||
@@ -43,7 +43,7 @@ static int installScriptManager(lua_State *L)
|
|||||||
|
|
||||||
void LuaMisc::Tick(lua_State *L)
|
void LuaMisc::Tick(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lsi->scriptManagerDownload && lsi->scriptManagerDownload->CheckDone())
|
if (lsi->scriptManagerDownload && lsi->scriptManagerDownload->CheckDone())
|
||||||
{
|
{
|
||||||
struct Status
|
struct Status
|
||||||
@@ -117,7 +117,7 @@ void LuaMisc::Tick(lua_State *L)
|
|||||||
|
|
||||||
static int flog(lua_State *L)
|
static int flog(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int args = lua_gettop(L);
|
int args = lua_gettop(L);
|
||||||
String text;
|
String text;
|
||||||
bool hasText = false;
|
bool hasText = false;
|
||||||
@@ -154,7 +154,7 @@ static int screenshot(lua_State *L)
|
|||||||
int captureUI = luaL_optint(L, 1, 0);
|
int captureUI = luaL_optint(L, 1, 0);
|
||||||
int fileType = luaL_optint(L, 2, 0);
|
int fileType = luaL_optint(L, 2, 0);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
ByteString filename = lsi->gameController->TakeScreenshot(captureUI, fileType);
|
ByteString filename = lsi->gameController->TakeScreenshot(captureUI, fileType);
|
||||||
if (filename.size())
|
if (filename.size())
|
||||||
{
|
{
|
||||||
@@ -169,7 +169,7 @@ static int record(lua_State *L)
|
|||||||
if (!lua_isboolean(L, -1))
|
if (!lua_isboolean(L, -1))
|
||||||
return luaL_typerror(L, 1, lua_typename(L, LUA_TBOOLEAN));
|
return luaL_typerror(L, 1, lua_typename(L, LUA_TBOOLEAN));
|
||||||
bool record = lua_toboolean(L, -1);
|
bool record = lua_toboolean(L, -1);
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int recordingFolder = lsi->gameController->Record(record);
|
int recordingFolder = lsi->gameController->Record(record);
|
||||||
lua_pushinteger(L, recordingFolder);
|
lua_pushinteger(L, recordingFolder);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -182,7 +182,7 @@ static int compatChunk(lua_State *L)
|
|||||||
}
|
}
|
||||||
static int debug(lua_State *L)
|
static int debug(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
static int renderModes(lua_State *L)
|
static int renderModes(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int args = lua_gettop(L);
|
int args = lua_gettop(L);
|
||||||
if(args)
|
if(args)
|
||||||
{
|
{
|
||||||
@@ -40,7 +40,7 @@ static int renderModes(lua_State *L)
|
|||||||
|
|
||||||
static int hud(lua_State *L)
|
static int hud(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -54,7 +54,7 @@ static int hud(lua_State *L)
|
|||||||
|
|
||||||
static int debugHud(lua_State *L)
|
static int debugHud(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -68,7 +68,7 @@ static int debugHud(lua_State *L)
|
|||||||
|
|
||||||
static int useDisplayPreset(lua_State *L)
|
static int useDisplayPreset(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int cmode = luaL_optint(L, 1, 3)+1;
|
int cmode = luaL_optint(L, 1, 3)+1;
|
||||||
if (cmode == 11)
|
if (cmode == 11)
|
||||||
cmode = 0;
|
cmode = 0;
|
||||||
@@ -81,7 +81,7 @@ static int useDisplayPreset(lua_State *L)
|
|||||||
|
|
||||||
static int fireSize(lua_State *L)
|
static int fireSize(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lua_gettop(L) < 1)
|
if (lua_gettop(L) < 1)
|
||||||
{
|
{
|
||||||
lua_pushnumber(L, lsi->gameModel->GetRenderer()->GetFireIntensity());
|
lua_pushnumber(L, lsi->gameModel->GetRenderer()->GetFireIntensity());
|
||||||
@@ -94,7 +94,7 @@ static int fireSize(lua_State *L)
|
|||||||
|
|
||||||
static int displayModes(lua_State *L)
|
static int displayModes(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int args = lua_gettop(L);
|
int args = lua_gettop(L);
|
||||||
if(args)
|
if(args)
|
||||||
{
|
{
|
||||||
@@ -128,7 +128,7 @@ static int displayModes(lua_State *L)
|
|||||||
|
|
||||||
static int colorMode(lua_State *L)
|
static int colorMode(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int args = lua_gettop(L);
|
int args = lua_gettop(L);
|
||||||
if(args)
|
if(args)
|
||||||
{
|
{
|
||||||
@@ -145,7 +145,7 @@ static int colorMode(lua_State *L)
|
|||||||
|
|
||||||
static int decorations(lua_State *L)
|
static int decorations(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -160,7 +160,7 @@ static int decorations(lua_State *L)
|
|||||||
|
|
||||||
static int grid(lua_State *L)
|
static int grid(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -174,7 +174,7 @@ static int grid(lua_State *L)
|
|||||||
|
|
||||||
static int showBrush(lua_State *L)
|
static int showBrush(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -193,7 +193,7 @@ static int depth3d(lua_State *L)
|
|||||||
|
|
||||||
static int zoomEnabled(lua_State *L)
|
static int zoomEnabled(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lua_gettop(L) == 0)
|
if (lua_gettop(L) == 0)
|
||||||
{
|
{
|
||||||
lua_pushboolean(L, lsi->ren->zoomEnabled);
|
lua_pushboolean(L, lsi->ren->zoomEnabled);
|
||||||
@@ -209,7 +209,7 @@ static int zoomEnabled(lua_State *L)
|
|||||||
|
|
||||||
static int zoomWindow(lua_State *L)
|
static int zoomWindow(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto *ren = lsi->ren;
|
auto *ren = lsi->ren;
|
||||||
if (lua_gettop(L) == 0)
|
if (lua_gettop(L) == 0)
|
||||||
{
|
{
|
||||||
@@ -237,7 +237,7 @@ static int zoomWindow(lua_State *L)
|
|||||||
|
|
||||||
static int zoomScope(lua_State *L)
|
static int zoomScope(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto *ren = lsi->ren;
|
auto *ren = lsi->ren;
|
||||||
if (lua_gettop(L) == 0)
|
if (lua_gettop(L) == 0)
|
||||||
{
|
{
|
||||||
|
@@ -27,7 +27,7 @@ static int osExit(lua_State *L)
|
|||||||
|
|
||||||
static int mathRandom(lua_State *L)
|
static int mathRandom(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
// only thing that matters is that the rng not be sim->rng when !(eventTraits & eventTraitSimRng)
|
// only thing that matters is that the rng not be sim->rng when !(eventTraits & eventTraitSimRng)
|
||||||
auto &rng = (lsi->eventTraits & eventTraitSimRng) ? lsi->sim->rng : interfaceRng;
|
auto &rng = (lsi->eventTraits & eventTraitSimRng) ? lsi->sim->rng : interfaceRng;
|
||||||
int lower, upper;
|
int lower, upper;
|
||||||
@@ -72,7 +72,7 @@ static int mathRandomseed(lua_State *L)
|
|||||||
|
|
||||||
static void hook(lua_State *L, lua_Debug * ar)
|
static void hook(lua_State *L, lua_Debug * ar)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (ar->event == LUA_HOOKCOUNT && int(Platform::GetTime() - lsi->luaExecutionStart) > lsi->luaHookTimeout)
|
if (ar->event == LUA_HOOKCOUNT && int(Platform::GetTime() - lsi->luaExecutionStart) > lsi->luaHookTimeout)
|
||||||
{
|
{
|
||||||
luaL_error(L, "Error: Script not responding");
|
luaL_error(L, "Error: Script not responding");
|
||||||
@@ -107,7 +107,7 @@ int LuaToLoggableString(lua_State *L, int n)
|
|||||||
|
|
||||||
String LuaGetError()
|
String LuaGetError()
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
LuaToLoggableString(lsi->L, -1);
|
LuaToLoggableString(lsi->L, -1);
|
||||||
String err = tpt_lua_optString(lsi->L, -1, "failed to execute");
|
String err = tpt_lua_optString(lsi->L, -1, "failed to execute");
|
||||||
lua_pop(lsi->L, 1);
|
lua_pop(lsi->L, 1);
|
||||||
@@ -197,8 +197,10 @@ void LuaScriptInterface::InitCustomCanMove()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LuaScriptInterface::Init()
|
void CommandInterface::Init()
|
||||||
{
|
{
|
||||||
|
auto *lsi = static_cast<LuaScriptInterface *>(this);
|
||||||
|
auto *L = lsi->L;
|
||||||
if (Platform::FileExists("autorun.lua"))
|
if (Platform::FileExists("autorun.lua"))
|
||||||
{
|
{
|
||||||
if(luaL_loadfile(L, "autorun.lua") || tpt_lua_pcall(L, 0, 0, 0, eventTraitNone))
|
if(luaL_loadfile(L, "autorun.lua") || tpt_lua_pcall(L, 0, 0, 0, eventTraitNone))
|
||||||
@@ -287,7 +289,7 @@ void LuaSetProperty(lua_State *L, StructProperty property, intptr_t propertyAddr
|
|||||||
|
|
||||||
void LuaSetParticleProperty(lua_State *L, int particleID, StructProperty property, intptr_t propertyAddress, int stackPos)
|
void LuaSetParticleProperty(lua_State *L, int particleID, StructProperty property, intptr_t propertyAddress, int stackPos)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto *sim = lsi->sim;
|
auto *sim = lsi->sim;
|
||||||
if (property.Name == "type")
|
if (property.Name == "type")
|
||||||
{
|
{
|
||||||
@@ -373,10 +375,12 @@ static int pushGameControllerEvent(lua_State *L, const GameControllerEvent &even
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LuaScriptInterface::HandleEvent(const GameControllerEvent &event)
|
bool CommandInterface::HandleEvent(const GameControllerEvent &event)
|
||||||
{
|
{
|
||||||
|
auto *lsi = static_cast<LuaScriptInterface *>(this);
|
||||||
|
auto *L = lsi->L;
|
||||||
bool cont = true;
|
bool cont = true;
|
||||||
gameControllerEventHandlers[event.index()].Push(L);
|
lsi->gameControllerEventHandlers[event.index()].Push(L);
|
||||||
int len = lua_objlen(L, -1);
|
int len = lua_objlen(L, -1);
|
||||||
for (int i = 1; i <= len && cont; i++)
|
for (int i = 1; i <= len && cont; i++)
|
||||||
{
|
{
|
||||||
@@ -413,35 +417,38 @@ bool LuaScriptInterface::HandleEvent(const GameControllerEvent &event)
|
|||||||
return cont;
|
return cont;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LuaScriptInterface::OnTick()
|
void CommandInterface::OnTick()
|
||||||
{
|
{
|
||||||
LuaMisc::Tick(L);
|
auto *lsi = static_cast<LuaScriptInterface *>(this);
|
||||||
|
LuaMisc::Tick(lsi->L);
|
||||||
HandleEvent(TickEvent{});
|
HandleEvent(TickEvent{});
|
||||||
}
|
}
|
||||||
|
|
||||||
int LuaScriptInterface::Command(String command)
|
int CommandInterface::Command(String command)
|
||||||
{
|
{
|
||||||
|
auto *lsi = static_cast<LuaScriptInterface *>(this);
|
||||||
|
auto *L = lsi->L;
|
||||||
lastError = "";
|
lastError = "";
|
||||||
luacon_hasLastError = false;
|
lsi->luacon_hasLastError = false;
|
||||||
if (command[0] == '!')
|
if (command[0] == '!')
|
||||||
{
|
{
|
||||||
int ret = CommandInterface::Command(command.Substr(1));
|
int ret = PlainCommand(command.Substr(1));
|
||||||
lastError = GetLastError();
|
lastError = GetLastError();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int level = lua_gettop(L), ret = -1;
|
int level = lua_gettop(L), ret = -1;
|
||||||
currentCommand = true;
|
lsi->currentCommand = true;
|
||||||
if (lastCode.length())
|
if (lsi->lastCode.length())
|
||||||
lastCode += "\n";
|
lsi->lastCode += "\n";
|
||||||
lastCode += command;
|
lsi->lastCode += command;
|
||||||
ByteString tmp = ("return " + lastCode).ToUtf8();
|
ByteString tmp = ("return " + lsi->lastCode).ToUtf8();
|
||||||
luaL_loadbuffer(L, tmp.data(), tmp.size(), "@console");
|
luaL_loadbuffer(L, tmp.data(), tmp.size(), "@console");
|
||||||
if (lua_type(L, -1) != LUA_TFUNCTION)
|
if (lua_type(L, -1) != LUA_TFUNCTION)
|
||||||
{
|
{
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1);
|
||||||
ByteString lastCodeUtf8 = lastCode.ToUtf8();
|
ByteString lastCodeUtf8 = lsi->lastCode.ToUtf8();
|
||||||
luaL_loadbuffer(L, lastCodeUtf8.data(), lastCodeUtf8.size(), "@console");
|
luaL_loadbuffer(L, lastCodeUtf8.data(), lastCodeUtf8.size(), "@console");
|
||||||
}
|
}
|
||||||
if (lua_type(L, -1) != LUA_TFUNCTION)
|
if (lua_type(L, -1) != LUA_TFUNCTION)
|
||||||
@@ -451,11 +458,11 @@ int LuaScriptInterface::Command(String command)
|
|||||||
if (err.Contains("near '<eof>'")) //the idea stolen from lua-5.1.5/lua.c
|
if (err.Contains("near '<eof>'")) //the idea stolen from lua-5.1.5/lua.c
|
||||||
lastError = "...";
|
lastError = "...";
|
||||||
else
|
else
|
||||||
lastCode = "";
|
lsi->lastCode = "";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lastCode = "";
|
lsi->lastCode = "";
|
||||||
ret = tpt_lua_pcall(L, 0, LUA_MULTRET, 0, eventTraitNone);
|
ret = tpt_lua_pcall(L, 0, LUA_MULTRET, 0, eventTraitNone);
|
||||||
if (ret)
|
if (ret)
|
||||||
{
|
{
|
||||||
@@ -489,7 +496,7 @@ int LuaScriptInterface::Command(String command)
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
currentCommand = false;
|
lsi->currentCommand = false;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -670,11 +677,11 @@ static String highlight(String command)
|
|||||||
return result.Build();
|
return result.Build();
|
||||||
}
|
}
|
||||||
|
|
||||||
String LuaScriptInterface::FormatCommand(String command)
|
String CommandInterface::FormatCommand(String command)
|
||||||
{
|
{
|
||||||
if(command.size() && command[0] == '!')
|
if(command.size() && command[0] == '!')
|
||||||
{
|
{
|
||||||
return "!" + CommandInterface::FormatCommand(command.Substr(1));
|
return "!" + PlainFormatCommand(command.Substr(1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return highlight(command);
|
return highlight(command);
|
||||||
@@ -766,7 +773,7 @@ bool tpt_lua_equalsString(lua_State *L, int index, const char *data, size_t size
|
|||||||
|
|
||||||
int tpt_lua_pcall(lua_State *L, int numArgs, int numResults, int errorFunc, EventTraits newEventTraits)
|
int tpt_lua_pcall(lua_State *L, int numArgs, int numResults, int errorFunc, EventTraits newEventTraits)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->luaExecutionStart = Platform::GetTime();
|
lsi->luaExecutionStart = Platform::GetTime();
|
||||||
struct AtReturn
|
struct AtReturn
|
||||||
{
|
{
|
||||||
@@ -774,21 +781,26 @@ int tpt_lua_pcall(lua_State *L, int numArgs, int numResults, int errorFunc, Even
|
|||||||
|
|
||||||
AtReturn(EventTraits newEventTraits)
|
AtReturn(EventTraits newEventTraits)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
oldEventTraits = lsi->eventTraits;
|
oldEventTraits = lsi->eventTraits;
|
||||||
lsi->eventTraits = newEventTraits;
|
lsi->eventTraits = newEventTraits;
|
||||||
}
|
}
|
||||||
|
|
||||||
~AtReturn()
|
~AtReturn()
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->eventTraits = oldEventTraits;
|
lsi->eventTraits = oldEventTraits;
|
||||||
}
|
}
|
||||||
} atReturn(newEventTraits);
|
} atReturn(newEventTraits);
|
||||||
return lua_pcall(L, numArgs, numResults, errorFunc);
|
return lua_pcall(L, numArgs, numResults, errorFunc);
|
||||||
}
|
}
|
||||||
|
|
||||||
CommandInterface *CommandInterface::Create(GameController *newGameController, GameModel *newGameModel)
|
CommandInterfacePtr CommandInterface::Create(GameController *newGameController, GameModel *newGameModel)
|
||||||
{
|
{
|
||||||
return new LuaScriptInterface(newGameController, newGameModel);
|
return CommandInterfacePtr(new LuaScriptInterface(newGameController, newGameModel));
|
||||||
|
}
|
||||||
|
|
||||||
|
void CommandInterfaceDeleter::operator ()(CommandInterface *ptr) const
|
||||||
|
{
|
||||||
|
delete static_cast<LuaScriptInterface *>(ptr);
|
||||||
}
|
}
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
#include "LuaSmartRef.h"
|
#include "LuaSmartRef.h"
|
||||||
#include "CommandInterface.h"
|
#include "CommandInterface.h"
|
||||||
#include "gui/game/GameControllerEvents.h"
|
#include "gui/game/GameControllerEvents.h"
|
||||||
#include "CommandInterface.h"
|
|
||||||
#include "simulation/StructProperty.h"
|
#include "simulation/StructProperty.h"
|
||||||
#include "simulation/ElementDefs.h"
|
#include "simulation/ElementDefs.h"
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
@@ -95,13 +94,6 @@ public:
|
|||||||
|
|
||||||
char customCanMove[PT_NUM][PT_NUM];
|
char customCanMove[PT_NUM][PT_NUM];
|
||||||
void InitCustomCanMove();
|
void InitCustomCanMove();
|
||||||
|
|
||||||
void OnTick() override;
|
|
||||||
bool HandleEvent(const GameControllerEvent &event) override;
|
|
||||||
|
|
||||||
void Init() override;
|
|
||||||
int Command(String command) override;
|
|
||||||
String FormatCommand(String command) override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void tpt_lua_pushByteString(lua_State *L, const ByteString &str);
|
void tpt_lua_pushByteString(lua_State *L, const ByteString &str);
|
||||||
@@ -198,3 +190,8 @@ namespace LuaSocket
|
|||||||
void Open(lua_State *L);
|
void Open(lua_State *L);
|
||||||
void OpenTCP(lua_State *L);
|
void OpenTCP(lua_State *L);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline LuaScriptInterface *GetLSI()
|
||||||
|
{
|
||||||
|
return static_cast<LuaScriptInterface *>(&CommandInterface::Ref());
|
||||||
|
}
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
static int ambientHeatSim(lua_State *L)
|
static int ambientHeatSim(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -34,7 +34,7 @@ static int ambientHeatSim(lua_State *L)
|
|||||||
|
|
||||||
static int heatSim(lua_State *L)
|
static int heatSim(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -48,7 +48,7 @@ static int heatSim(lua_State *L)
|
|||||||
|
|
||||||
static int newtonianGravity(lua_State *L)
|
static int newtonianGravity(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -66,7 +66,7 @@ static int newtonianGravity(lua_State *L)
|
|||||||
|
|
||||||
static int paused(lua_State *L)
|
static int paused(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -80,14 +80,14 @@ static int paused(lua_State *L)
|
|||||||
|
|
||||||
static int partCount(lua_State *L)
|
static int partCount(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lua_pushinteger(L, lsi->sim->NUM_PARTS);
|
lua_pushinteger(L, lsi->sim->NUM_PARTS);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int decoSpace(lua_State *L)
|
static int decoSpace(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lua_gettop(L) < 1)
|
if (lua_gettop(L) < 1)
|
||||||
{
|
{
|
||||||
lua_pushnumber(L, lsi->gameModel->GetDecoSpace());
|
lua_pushnumber(L, lsi->gameModel->GetDecoSpace());
|
||||||
@@ -171,7 +171,7 @@ static int LuaBlockMap(lua_State *L, Accessor accessor)
|
|||||||
|
|
||||||
static int velocityX(lua_State *L)
|
static int velocityX(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
return LuaBlockMap(L, MIN_PRESSURE, MAX_PRESSURE, [lsi](Vec2<int> p) -> float & {
|
return LuaBlockMap(L, MIN_PRESSURE, MAX_PRESSURE, [lsi](Vec2<int> p) -> float & {
|
||||||
return lsi->sim->vx[p.Y][p.X];
|
return lsi->sim->vx[p.Y][p.X];
|
||||||
});
|
});
|
||||||
@@ -179,7 +179,7 @@ static int velocityX(lua_State *L)
|
|||||||
|
|
||||||
static int velocityY(lua_State *L)
|
static int velocityY(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
return LuaBlockMap(L, MIN_PRESSURE, MAX_PRESSURE, [lsi](Vec2<int> p) -> float & {
|
return LuaBlockMap(L, MIN_PRESSURE, MAX_PRESSURE, [lsi](Vec2<int> p) -> float & {
|
||||||
return lsi->sim->vy[p.Y][p.X];
|
return lsi->sim->vy[p.Y][p.X];
|
||||||
});
|
});
|
||||||
@@ -187,7 +187,7 @@ static int velocityY(lua_State *L)
|
|||||||
|
|
||||||
static int ambientHeat(lua_State *L)
|
static int ambientHeat(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
return LuaBlockMap(L, MIN_TEMP, MAX_TEMP, [lsi](Vec2<int> p) -> float & {
|
return LuaBlockMap(L, MIN_TEMP, MAX_TEMP, [lsi](Vec2<int> p) -> float & {
|
||||||
return lsi->sim->hv[p.Y][p.X];
|
return lsi->sim->hv[p.Y][p.X];
|
||||||
});
|
});
|
||||||
@@ -195,7 +195,7 @@ static int ambientHeat(lua_State *L)
|
|||||||
|
|
||||||
static int pressure(lua_State *L)
|
static int pressure(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
return LuaBlockMap(L, MIN_PRESSURE, MAX_PRESSURE, [lsi](Vec2<int> p) -> float & {
|
return LuaBlockMap(L, MIN_PRESSURE, MAX_PRESSURE, [lsi](Vec2<int> p) -> float & {
|
||||||
return lsi->sim->pv[p.Y][p.X];
|
return lsi->sim->pv[p.Y][p.X];
|
||||||
});
|
});
|
||||||
@@ -203,7 +203,7 @@ static int pressure(lua_State *L)
|
|||||||
|
|
||||||
static int gravityMass(lua_State *L)
|
static int gravityMass(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
return LuaBlockMap(L, [lsi](Vec2<int> p) -> float & {
|
return LuaBlockMap(L, [lsi](Vec2<int> p) -> float & {
|
||||||
return lsi->sim->gravmap[p.Y * XCELLS + p.X];
|
return lsi->sim->gravmap[p.Y * XCELLS + p.X];
|
||||||
});
|
});
|
||||||
@@ -211,7 +211,7 @@ static int gravityMass(lua_State *L)
|
|||||||
|
|
||||||
static int gravityField(lua_State *L)
|
static int gravityField(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto pos = Vec2{ luaL_checkint(L, 1), luaL_checkint(L, 2) };
|
auto pos = Vec2{ luaL_checkint(L, 1), luaL_checkint(L, 2) };
|
||||||
if (!CELLS.OriginRect().Contains(pos))
|
if (!CELLS.OriginRect().Contains(pos))
|
||||||
{
|
{
|
||||||
@@ -224,7 +224,7 @@ static int gravityField(lua_State *L)
|
|||||||
|
|
||||||
static int elecMap(lua_State *L)
|
static int elecMap(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
return LuaBlockMap(L, [lsi](Vec2<int> p) -> unsigned char & {
|
return LuaBlockMap(L, [lsi](Vec2<int> p) -> unsigned char & {
|
||||||
return lsi->sim->emap[p.Y][p.X];
|
return lsi->sim->emap[p.Y][p.X];
|
||||||
});
|
});
|
||||||
@@ -232,7 +232,7 @@ static int elecMap(lua_State *L)
|
|||||||
|
|
||||||
static int wallMap(lua_State *L)
|
static int wallMap(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
return LuaBlockMap(L, 0, UI_WALLCOUNT - 1, [lsi](Vec2<int> p) -> unsigned char & {
|
return LuaBlockMap(L, 0, UI_WALLCOUNT - 1, [lsi](Vec2<int> p) -> unsigned char & {
|
||||||
return lsi->sim->bmap[p.Y][p.X];
|
return lsi->sim->bmap[p.Y][p.X];
|
||||||
});
|
});
|
||||||
@@ -240,14 +240,14 @@ static int wallMap(lua_State *L)
|
|||||||
|
|
||||||
static int fanVelocityX(lua_State *L)
|
static int fanVelocityX(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
return LuaBlockMap(L, [lsi](Vec2<int> p) -> float & {
|
return LuaBlockMap(L, [lsi](Vec2<int> p) -> float & {
|
||||||
return lsi->sim->fvx[p.Y][p.X];
|
return lsi->sim->fvx[p.Y][p.X];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static int fanVelocityY(lua_State *L)
|
static int fanVelocityY(lua_State *L)
|
||||||
{ auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
{ auto *lsi = GetLSI();
|
||||||
return LuaBlockMap(L, [lsi](Vec2<int> p) -> float & {
|
return LuaBlockMap(L, [lsi](Vec2<int> p) -> float & {
|
||||||
return lsi->sim->fvy[p.Y][p.X];
|
return lsi->sim->fvy[p.Y][p.X];
|
||||||
});
|
});
|
||||||
@@ -255,7 +255,7 @@ static int fanVelocityY(lua_State *L)
|
|||||||
|
|
||||||
static int partNeighbors(lua_State *L)
|
static int partNeighbors(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto *sim = lsi->sim;
|
auto *sim = lsi->sim;
|
||||||
lua_newtable(L);
|
lua_newtable(L);
|
||||||
int id = 1;
|
int id = 1;
|
||||||
@@ -299,7 +299,7 @@ static int partNeighbors(lua_State *L)
|
|||||||
|
|
||||||
static int partChangeType(lua_State *L)
|
static int partChangeType(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int partIndex = lua_tointeger(L, 1);
|
int partIndex = lua_tointeger(L, 1);
|
||||||
if(partIndex < 0 || partIndex >= NPART || !lsi->sim->parts[partIndex].type)
|
if(partIndex < 0 || partIndex >= NPART || !lsi->sim->parts[partIndex].type)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -309,7 +309,7 @@ static int partChangeType(lua_State *L)
|
|||||||
|
|
||||||
static int partCreate(lua_State *L)
|
static int partCreate(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int newID = lua_tointeger(L, 1);
|
int newID = lua_tointeger(L, 1);
|
||||||
if (newID >= NPART || newID < -3)
|
if (newID >= NPART || newID < -3)
|
||||||
{
|
{
|
||||||
@@ -338,7 +338,7 @@ static int partCreate(lua_State *L)
|
|||||||
|
|
||||||
static int partID(lua_State *L)
|
static int partID(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int x = lua_tointeger(L, 1);
|
int x = lua_tointeger(L, 1);
|
||||||
int y = lua_tointeger(L, 2);
|
int y = lua_tointeger(L, 2);
|
||||||
|
|
||||||
@@ -360,7 +360,7 @@ static int partID(lua_State *L)
|
|||||||
|
|
||||||
static int partPosition(lua_State *L)
|
static int partPosition(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto *sim = lsi->sim;
|
auto *sim = lsi->sim;
|
||||||
int particleID = lua_tointeger(L, 1);
|
int particleID = lua_tointeger(L, 1);
|
||||||
int argCount = lua_gettop(L);
|
int argCount = lua_gettop(L);
|
||||||
@@ -394,7 +394,7 @@ static int partPosition(lua_State *L)
|
|||||||
|
|
||||||
static int partProperty(lua_State *L)
|
static int partProperty(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int argCount = lua_gettop(L);
|
int argCount = lua_gettop(L);
|
||||||
int particleID = luaL_checkinteger(L, 1);
|
int particleID = luaL_checkinteger(L, 1);
|
||||||
StructProperty property;
|
StructProperty property;
|
||||||
@@ -461,7 +461,7 @@ static int partProperty(lua_State *L)
|
|||||||
|
|
||||||
static int partKill(lua_State *L)
|
static int partKill(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if(lua_gettop(L)==2)
|
if(lua_gettop(L)==2)
|
||||||
lsi->sim->delete_part(lua_tointeger(L, 1), lua_tointeger(L, 2));
|
lsi->sim->delete_part(lua_tointeger(L, 1), lua_tointeger(L, 2));
|
||||||
else
|
else
|
||||||
@@ -475,7 +475,7 @@ static int partKill(lua_State *L)
|
|||||||
|
|
||||||
static int partExists(lua_State *L)
|
static int partExists(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int i = luaL_checkinteger(L, 1);
|
int i = luaL_checkinteger(L, 1);
|
||||||
lua_pushboolean(L, i >= 0 && i < NPART && lsi->sim->parts[i].type);
|
lua_pushboolean(L, i >= 0 && i < NPART && lsi->sim->parts[i].type);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -483,7 +483,7 @@ static int partExists(lua_State *L)
|
|||||||
|
|
||||||
static int createParts(lua_State *L)
|
static int createParts(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int x = luaL_optint(L,1,-1);
|
int x = luaL_optint(L,1,-1);
|
||||||
int y = luaL_optint(L,2,-1);
|
int y = luaL_optint(L,2,-1);
|
||||||
int rx = luaL_optint(L,3,5);
|
int rx = luaL_optint(L,3,5);
|
||||||
@@ -505,7 +505,7 @@ static int createParts(lua_State *L)
|
|||||||
|
|
||||||
static int createLine(lua_State *L)
|
static int createLine(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int x1 = luaL_optint(L,1,-1);
|
int x1 = luaL_optint(L,1,-1);
|
||||||
int y1 = luaL_optint(L,2,-1);
|
int y1 = luaL_optint(L,2,-1);
|
||||||
int x2 = luaL_optint(L,3,-1);
|
int x2 = luaL_optint(L,3,-1);
|
||||||
@@ -528,7 +528,7 @@ static int createLine(lua_State *L)
|
|||||||
|
|
||||||
static int createBox(lua_State *L)
|
static int createBox(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int x1 = luaL_optint(L,1,-1);
|
int x1 = luaL_optint(L,1,-1);
|
||||||
int y1 = luaL_optint(L,2,-1);
|
int y1 = luaL_optint(L,2,-1);
|
||||||
int x2 = luaL_optint(L,3,-1);
|
int x2 = luaL_optint(L,3,-1);
|
||||||
@@ -542,7 +542,7 @@ static int createBox(lua_State *L)
|
|||||||
|
|
||||||
static int floodParts(lua_State *L)
|
static int floodParts(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int x = luaL_optint(L,1,-1);
|
int x = luaL_optint(L,1,-1);
|
||||||
int y = luaL_optint(L,2,-1);
|
int y = luaL_optint(L,2,-1);
|
||||||
int c = luaL_optint(L,3,lsi->gameModel->GetActiveTool(0)->ToolID);
|
int c = luaL_optint(L,3,lsi->gameModel->GetActiveTool(0)->ToolID);
|
||||||
@@ -570,7 +570,7 @@ static int createWalls(lua_State *L)
|
|||||||
if (c < 0 || c >= UI_WALLCOUNT)
|
if (c < 0 || c >= UI_WALLCOUNT)
|
||||||
return luaL_error(L, "Unrecognised wall id '%d'", c);
|
return luaL_error(L, "Unrecognised wall id '%d'", c);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int ret = lsi->sim->CreateWalls(x, y, rx, ry, c, NULL);
|
int ret = lsi->sim->CreateWalls(x, y, rx, ry, c, NULL);
|
||||||
lua_pushinteger(L, ret);
|
lua_pushinteger(L, ret);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -591,7 +591,7 @@ static int createWallLine(lua_State *L)
|
|||||||
if (c < 0 || c >= UI_WALLCOUNT)
|
if (c < 0 || c >= UI_WALLCOUNT)
|
||||||
return luaL_error(L, "Unrecognised wall id '%d'", c);
|
return luaL_error(L, "Unrecognised wall id '%d'", c);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->sim->CreateWallLine(x1, y1, x2, y2, rx, ry, c, NULL);
|
lsi->sim->CreateWallLine(x1, y1, x2, y2, rx, ry, c, NULL);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -609,7 +609,7 @@ static int createWallBox(lua_State *L)
|
|||||||
if (c < 0 || c >= UI_WALLCOUNT)
|
if (c < 0 || c >= UI_WALLCOUNT)
|
||||||
return luaL_error(L, "Unrecognised wall id '%d'", c);
|
return luaL_error(L, "Unrecognised wall id '%d'", c);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->sim->CreateWallBox(x1, y1, x2, y2, c);
|
lsi->sim->CreateWallBox(x1, y1, x2, y2, c);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -629,7 +629,7 @@ static int floodWalls(lua_State *L)
|
|||||||
lua_pushinteger(L, 0);
|
lua_pushinteger(L, 0);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int ret = lsi->sim->FloodWalls(x, y, c, bm);
|
int ret = lsi->sim->FloodWalls(x, y, c, bm);
|
||||||
lua_pushinteger(L, ret);
|
lua_pushinteger(L, ret);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -653,7 +653,7 @@ static int toolBrush(lua_State *L)
|
|||||||
else if (tool < 0 || tool > (int)sd.tools.size())
|
else if (tool < 0 || tool > (int)sd.tools.size())
|
||||||
return luaL_error(L, "Invalid tool id '%d'", tool);
|
return luaL_error(L, "Invalid tool id '%d'", tool);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
Brush *brush = lsi->gameModel->GetBrushByID(brushID);
|
Brush *brush = lsi->gameModel->GetBrushByID(brushID);
|
||||||
if (!brush)
|
if (!brush)
|
||||||
return luaL_error(L, "Invalid brush id '%d'", brushID);
|
return luaL_error(L, "Invalid brush id '%d'", brushID);
|
||||||
@@ -683,7 +683,7 @@ static int toolLine(lua_State *L)
|
|||||||
if (tool < 0 || tool >= (int)sd.tools.size()+1)
|
if (tool < 0 || tool >= (int)sd.tools.size()+1)
|
||||||
return luaL_error(L, "Invalid tool id '%d'", tool);
|
return luaL_error(L, "Invalid tool id '%d'", tool);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
Brush *brush = lsi->gameModel->GetBrushByID(brushID);
|
Brush *brush = lsi->gameModel->GetBrushByID(brushID);
|
||||||
if (!brush)
|
if (!brush)
|
||||||
return luaL_error(L, "Invalid brush id '%d'", brushID);
|
return luaL_error(L, "Invalid brush id '%d'", brushID);
|
||||||
@@ -722,7 +722,7 @@ static int toolBox(lua_State *L)
|
|||||||
else if (tool < 0 || tool >= (int)sd.tools.size())
|
else if (tool < 0 || tool >= (int)sd.tools.size())
|
||||||
return luaL_error(L, "Invalid tool id '%d'", tool);
|
return luaL_error(L, "Invalid tool id '%d'", tool);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->sim->ToolBox(x1, y1, x2, y2, tool, strength);
|
lsi->sim->ToolBox(x1, y1, x2, y2, tool, strength);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -740,7 +740,7 @@ static int decoBrush(lua_State *L)
|
|||||||
int tool = luaL_optint(L,9,DECO_DRAW);
|
int tool = luaL_optint(L,9,DECO_DRAW);
|
||||||
int brushID = luaL_optint(L,10,BRUSH_CIRCLE);
|
int brushID = luaL_optint(L,10,BRUSH_CIRCLE);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
Brush *brush = lsi->gameModel->GetBrushByID(brushID);
|
Brush *brush = lsi->gameModel->GetBrushByID(brushID);
|
||||||
if (!brush)
|
if (!brush)
|
||||||
return luaL_error(L, "Invalid brush id '%d'", brushID);
|
return luaL_error(L, "Invalid brush id '%d'", brushID);
|
||||||
@@ -769,7 +769,7 @@ static int decoLine(lua_State *L)
|
|||||||
if (x1 < 0 || x2 < 0 || x1 >= XRES || x2 >= XRES || y1 < 0 || y2 < 0 || y1 >= YRES || y2 >= YRES)
|
if (x1 < 0 || x2 < 0 || x1 >= XRES || x2 >= XRES || y1 < 0 || y2 < 0 || y1 >= YRES || y2 >= YRES)
|
||||||
return luaL_error(L, "coordinates out of range (%d,%d),(%d,%d)", x1, y1, x2, y2);
|
return luaL_error(L, "coordinates out of range (%d,%d),(%d,%d)", x1, y1, x2, y2);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
Brush *brush = lsi->gameModel->GetBrushByID(brushID);
|
Brush *brush = lsi->gameModel->GetBrushByID(brushID);
|
||||||
if (!brush)
|
if (!brush)
|
||||||
return luaL_error(L, "Invalid brush id '%d'", brushID);
|
return luaL_error(L, "Invalid brush id '%d'", brushID);
|
||||||
@@ -795,14 +795,14 @@ static int decoBox(lua_State *L)
|
|||||||
if (x1 < 0 || x2 < 0 || x1 >= XRES || x2 >= XRES || y1 < 0 || y2 < 0 || y1 >= YRES || y2 >= YRES)
|
if (x1 < 0 || x2 < 0 || x1 >= XRES || x2 >= XRES || y1 < 0 || y2 < 0 || y1 >= YRES || y2 >= YRES)
|
||||||
return luaL_error(L, "coordinates out of range (%d,%d),(%d,%d)", x1, y1, x2, y2);
|
return luaL_error(L, "coordinates out of range (%d,%d),(%d,%d)", x1, y1, x2, y2);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->sim->ApplyDecorationBox(x1, y1, x2, y2, r, g, b, a, tool);
|
lsi->sim->ApplyDecorationBox(x1, y1, x2, y2, r, g, b, a, tool);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int decoColor(lua_State *L)
|
static int decoColor(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
RGBA<uint8_t> color(0, 0, 0, 0);
|
RGBA<uint8_t> color(0, 0, 0, 0);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
@@ -835,7 +835,7 @@ static int floodDeco(lua_State *L)
|
|||||||
if (x < 0 || x >= XRES || y < 0 || y >= YRES)
|
if (x < 0 || x >= XRES || y < 0 || y >= YRES)
|
||||||
return luaL_error(L, "coordinates out of range (%d,%d)", x, y);
|
return luaL_error(L, "coordinates out of range (%d,%d)", x, y);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
// hilariously broken, intersects with console and all Lua graphics
|
// hilariously broken, intersects with console and all Lua graphics
|
||||||
auto loc = RGB<uint8_t>::Unpack(lsi->ren->GetPixel({ x, y }));
|
auto loc = RGB<uint8_t>::Unpack(lsi->ren->GetPixel({ x, y }));
|
||||||
lsi->sim->ApplyDecorationFill(lsi->ren, x, y, r, g, b, a, loc.Red, loc.Green, loc.Blue);
|
lsi->sim->ApplyDecorationFill(lsi->ren, x, y, r, g, b, a, loc.Red, loc.Green, loc.Blue);
|
||||||
@@ -844,14 +844,14 @@ static int floodDeco(lua_State *L)
|
|||||||
|
|
||||||
static int clearSim(lua_State *L)
|
static int clearSim(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->gameController->ClearSim();
|
lsi->gameController->ClearSim();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int clearRect(lua_State *L)
|
static int clearRect(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int x = luaL_checkint(L,1);
|
int x = luaL_checkint(L,1);
|
||||||
int y = luaL_checkint(L,2);
|
int y = luaL_checkint(L,2);
|
||||||
int w = luaL_checkint(L,3)-1;
|
int w = luaL_checkint(L,3)-1;
|
||||||
@@ -862,7 +862,7 @@ static int clearRect(lua_State *L)
|
|||||||
|
|
||||||
static int resetTemp(lua_State *L)
|
static int resetTemp(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto *sim = lsi->sim;
|
auto *sim = lsi->sim;
|
||||||
auto &sd = SimulationData::CRef();
|
auto &sd = SimulationData::CRef();
|
||||||
auto &elements = sd.elements;
|
auto &elements = sd.elements;
|
||||||
@@ -900,7 +900,7 @@ static int resetPressure(lua_State *L)
|
|||||||
width = XCELLS-x1;
|
width = XCELLS-x1;
|
||||||
if(y1+height > YCELLS-1)
|
if(y1+height > YCELLS-1)
|
||||||
height = YCELLS-y1;
|
height = YCELLS-y1;
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
for (int nx = x1; nx<x1+width; nx++)
|
for (int nx = x1; nx<x1+width; nx++)
|
||||||
for (int ny = y1; ny<y1+height; ny++)
|
for (int ny = y1; ny<y1+height; ny++)
|
||||||
{
|
{
|
||||||
@@ -916,7 +916,7 @@ static int saveStamp(lua_State *L)
|
|||||||
int w = luaL_optint(L,3,XRES-1);
|
int w = luaL_optint(L,3,XRES-1);
|
||||||
int h = luaL_optint(L,4,YRES-1);
|
int h = luaL_optint(L,4,YRES-1);
|
||||||
bool includePressure = luaL_optint(L, 5, 1);
|
bool includePressure = luaL_optint(L, 5, 1);
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
ByteString name = lsi->gameController->StampRegion(ui::Point(x, y), ui::Point(x+w, y+h), includePressure);
|
ByteString name = lsi->gameController->StampRegion(ui::Point(x, y), ui::Point(x+w, y+h), includePressure);
|
||||||
tpt_lua_pushByteString(L, name);
|
tpt_lua_pushByteString(L, name);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -967,7 +967,7 @@ static int loadStamp(lua_State *L)
|
|||||||
}
|
}
|
||||||
gameSave->Transform(transform, { remX, remY });
|
gameSave->Transform(transform, { remX, remY });
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->sim->Load(gameSave.get(), includePressure, { quoX, quoY });
|
lsi->sim->Load(gameSave.get(), includePressure, { quoX, quoY });
|
||||||
lua_pushinteger(L, 1);
|
lua_pushinteger(L, 1);
|
||||||
|
|
||||||
@@ -1035,21 +1035,21 @@ static int loadSave(lua_State *L)
|
|||||||
int saveID = luaL_optint(L,1,0);
|
int saveID = luaL_optint(L,1,0);
|
||||||
int instant = luaL_optint(L,2,0);
|
int instant = luaL_optint(L,2,0);
|
||||||
int history = luaL_optint(L,3,0); //Exact second a previous save was saved
|
int history = luaL_optint(L,3,0); //Exact second a previous save was saved
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->gameController->OpenSavePreview(saveID, history, instant ? savePreviewInstant : savePreviewNormal);
|
lsi->gameController->OpenSavePreview(saveID, history, instant ? savePreviewInstant : savePreviewNormal);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int reloadSave(lua_State *L)
|
static int reloadSave(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->gameController->ReloadSim();
|
lsi->gameController->ReloadSim();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int getSaveID(lua_State *L)
|
static int getSaveID(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto *tempSave = lsi->gameModel->GetSave();
|
auto *tempSave = lsi->gameModel->GetSave();
|
||||||
if (tempSave)
|
if (tempSave)
|
||||||
{
|
{
|
||||||
@@ -1062,7 +1062,7 @@ static int getSaveID(lua_State *L)
|
|||||||
|
|
||||||
static int adjustCoords(lua_State *L)
|
static int adjustCoords(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int x = luaL_optint(L,1,0);
|
int x = luaL_optint(L,1,0);
|
||||||
int y = luaL_optint(L,2,0);
|
int y = luaL_optint(L,2,0);
|
||||||
ui::Point Coords = lsi->gameController->PointTranslate(ui::Point(x, y));
|
ui::Point Coords = lsi->gameController->PointTranslate(ui::Point(x, y));
|
||||||
@@ -1073,7 +1073,7 @@ static int adjustCoords(lua_State *L)
|
|||||||
|
|
||||||
static int prettyPowders(lua_State *L)
|
static int prettyPowders(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -1088,7 +1088,7 @@ static int prettyPowders(lua_State *L)
|
|||||||
|
|
||||||
static int gravityGrid(lua_State *L)
|
static int gravityGrid(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -1103,7 +1103,7 @@ static int gravityGrid(lua_State *L)
|
|||||||
|
|
||||||
static int edgeMode(lua_State *L)
|
static int edgeMode(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -1117,7 +1117,7 @@ static int edgeMode(lua_State *L)
|
|||||||
|
|
||||||
static int gravityMode(lua_State *L)
|
static int gravityMode(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -1131,7 +1131,7 @@ static int gravityMode(lua_State *L)
|
|||||||
|
|
||||||
static int customGravity(lua_State *L)
|
static int customGravity(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto *sim = lsi->sim;
|
auto *sim = lsi->sim;
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
@@ -1153,7 +1153,7 @@ static int customGravity(lua_State *L)
|
|||||||
|
|
||||||
static int airMode(lua_State *L)
|
static int airMode(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -1167,7 +1167,7 @@ static int airMode(lua_State *L)
|
|||||||
|
|
||||||
static int waterEqualization(lua_State *L)
|
static int waterEqualization(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -1181,7 +1181,7 @@ static int waterEqualization(lua_State *L)
|
|||||||
|
|
||||||
static int ambientAirTemp(lua_State *L)
|
static int ambientAirTemp(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int acount = lua_gettop(L);
|
int acount = lua_gettop(L);
|
||||||
if (acount == 0)
|
if (acount == 0)
|
||||||
{
|
{
|
||||||
@@ -1199,14 +1199,14 @@ static int elementCount(lua_State *L)
|
|||||||
if (element < 0 || element >= PT_NUM)
|
if (element < 0 || element >= PT_NUM)
|
||||||
return luaL_error(L, "Invalid element ID (%d)", element);
|
return luaL_error(L, "Invalid element ID (%d)", element);
|
||||||
|
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lua_pushnumber(L, lsi->sim->elementCount[element]);
|
lua_pushnumber(L, lsi->sim->elementCount[element]);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int canMove(lua_State *L)
|
static int canMove(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int movingElement = luaL_checkint(L, 1);
|
int movingElement = luaL_checkint(L, 1);
|
||||||
int destinationElement = luaL_checkint(L, 2);
|
int destinationElement = luaL_checkint(L, 2);
|
||||||
if (movingElement < 0 || movingElement >= PT_NUM)
|
if (movingElement < 0 || movingElement >= PT_NUM)
|
||||||
@@ -1252,7 +1252,7 @@ static int brushClosure(lua_State *L)
|
|||||||
|
|
||||||
static int brush(lua_State *L)
|
static int brush(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int argCount = lua_gettop(L);
|
int argCount = lua_gettop(L);
|
||||||
int positionX = luaL_checkint(L, 1);
|
int positionX = luaL_checkint(L, 1);
|
||||||
int positionY = luaL_checkint(L, 2);
|
int positionY = luaL_checkint(L, 2);
|
||||||
@@ -1290,7 +1290,7 @@ static int brush(lua_State *L)
|
|||||||
|
|
||||||
static int partsClosure(lua_State *L)
|
static int partsClosure(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
for (int i = lua_tointeger(L, lua_upvalueindex(1)); i <= lsi->sim->parts_lastActiveIndex; ++i)
|
for (int i = lua_tointeger(L, lua_upvalueindex(1)); i <= lsi->sim->parts_lastActiveIndex; ++i)
|
||||||
{
|
{
|
||||||
if (lsi->sim->parts[i].type)
|
if (lsi->sim->parts[i].type)
|
||||||
@@ -1306,7 +1306,7 @@ static int partsClosure(lua_State *L)
|
|||||||
|
|
||||||
static int neighboursClosure(lua_State *L)
|
static int neighboursClosure(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int cx = lua_tointeger(L, lua_upvalueindex(1));
|
int cx = lua_tointeger(L, lua_upvalueindex(1));
|
||||||
int cy = lua_tointeger(L, lua_upvalueindex(2));
|
int cy = lua_tointeger(L, lua_upvalueindex(2));
|
||||||
int rx = lua_tointeger(L, lua_upvalueindex(3));
|
int rx = lua_tointeger(L, lua_upvalueindex(3));
|
||||||
@@ -1387,7 +1387,7 @@ static int parts(lua_State *L)
|
|||||||
|
|
||||||
static int pmap(lua_State *L)
|
static int pmap(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int x = luaL_checkint(L, 1);
|
int x = luaL_checkint(L, 1);
|
||||||
int y = luaL_checkint(L, 2);
|
int y = luaL_checkint(L, 2);
|
||||||
if (x < 0 || x >= XRES || y < 0 || y >= YRES)
|
if (x < 0 || x >= XRES || y < 0 || y >= YRES)
|
||||||
@@ -1401,7 +1401,7 @@ static int pmap(lua_State *L)
|
|||||||
|
|
||||||
static int photons(lua_State *L)
|
static int photons(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int x = luaL_checkint(L, 1);
|
int x = luaL_checkint(L, 1);
|
||||||
int y = luaL_checkint(L, 2);
|
int y = luaL_checkint(L, 2);
|
||||||
if (x < 0 || x >= XRES || y < 0 || y >= YRES)
|
if (x < 0 || x >= XRES || y < 0 || y >= YRES)
|
||||||
@@ -1415,7 +1415,7 @@ static int photons(lua_State *L)
|
|||||||
|
|
||||||
static int frameRender(lua_State *L)
|
static int frameRender(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lua_gettop(L) == 0)
|
if (lua_gettop(L) == 0)
|
||||||
{
|
{
|
||||||
lua_pushinteger(L, lsi->sim->framerender);
|
lua_pushinteger(L, lsi->sim->framerender);
|
||||||
@@ -1430,7 +1430,7 @@ static int frameRender(lua_State *L)
|
|||||||
|
|
||||||
static int golSpeedRatio(lua_State *L)
|
static int golSpeedRatio(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lua_gettop(L) == 0)
|
if (lua_gettop(L) == 0)
|
||||||
{
|
{
|
||||||
lua_pushinteger(L, lsi->sim->GSPEED);
|
lua_pushinteger(L, lsi->sim->GSPEED);
|
||||||
@@ -1445,7 +1445,7 @@ static int golSpeedRatio(lua_State *L)
|
|||||||
|
|
||||||
static int takeSnapshot(lua_State *L)
|
static int takeSnapshot(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->gameController->HistorySnapshot();
|
lsi->gameController->HistorySnapshot();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1453,7 +1453,7 @@ static int takeSnapshot(lua_State *L)
|
|||||||
|
|
||||||
static int historyRestore(lua_State *L)
|
static int historyRestore(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
bool successful = lsi->gameController->HistoryRestore();
|
bool successful = lsi->gameController->HistoryRestore();
|
||||||
lua_pushboolean(L, successful);
|
lua_pushboolean(L, successful);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -1461,7 +1461,7 @@ static int historyRestore(lua_State *L)
|
|||||||
|
|
||||||
static int historyForward(lua_State *L)
|
static int historyForward(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
bool successful = lsi->gameController->HistoryForward();
|
bool successful = lsi->gameController->HistoryForward();
|
||||||
lua_pushboolean(L, successful);
|
lua_pushboolean(L, successful);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -1469,7 +1469,7 @@ static int historyForward(lua_State *L)
|
|||||||
|
|
||||||
static int replaceModeFlags(lua_State *L)
|
static int replaceModeFlags(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lua_gettop(L) == 0)
|
if (lua_gettop(L) == 0)
|
||||||
{
|
{
|
||||||
lua_pushinteger(L, lsi->gameController->GetReplaceModeFlags());
|
lua_pushinteger(L, lsi->gameController->GetReplaceModeFlags());
|
||||||
@@ -1536,14 +1536,14 @@ static int addCustomGol(lua_State *L)
|
|||||||
|
|
||||||
if (!AddCustomGol(ruleString, nameString, color1, color2))
|
if (!AddCustomGol(ruleString, nameString, color1, color2))
|
||||||
return luaL_error(L, "Duplicate name, cannot add");
|
return luaL_error(L, "Duplicate name, cannot add");
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->gameModel->BuildMenus();
|
lsi->gameModel->BuildMenus();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int removeCustomGol(lua_State *L)
|
static int removeCustomGol(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
ByteString nameString = tpt_lua_checkByteString(L, 1);
|
ByteString nameString = tpt_lua_checkByteString(L, 1);
|
||||||
bool removedAny = lsi->gameModel->RemoveCustomGOLType("DEFAULT_PT_LIFECUST_" + nameString);
|
bool removedAny = lsi->gameModel->RemoveCustomGOLType("DEFAULT_PT_LIFECUST_" + nameString);
|
||||||
if (removedAny)
|
if (removedAny)
|
||||||
@@ -1554,7 +1554,7 @@ static int removeCustomGol(lua_State *L)
|
|||||||
|
|
||||||
static int lastUpdatedID(lua_State *L)
|
static int lastUpdatedID(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lsi->sim->debug_mostRecentlyUpdated != -1)
|
if (lsi->sim->debug_mostRecentlyUpdated != -1)
|
||||||
{
|
{
|
||||||
lua_pushinteger(L, lsi->sim->debug_mostRecentlyUpdated);
|
lua_pushinteger(L, lsi->sim->debug_mostRecentlyUpdated);
|
||||||
@@ -1579,7 +1579,7 @@ static int updateUpTo(lua_State *L)
|
|||||||
{
|
{
|
||||||
return luaL_error(L, "ID not in valid range");
|
return luaL_error(L, "ID not in valid range");
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->sim->framerender = 1;
|
lsi->sim->framerender = 1;
|
||||||
lsi->gameModel->UpdateUpTo(upTo + 1);
|
lsi->gameModel->UpdateUpTo(upTo + 1);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1587,7 +1587,7 @@ static int updateUpTo(lua_State *L)
|
|||||||
|
|
||||||
static int temperatureScale(lua_State *L)
|
static int temperatureScale(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lua_gettop(L) == 0)
|
if (lua_gettop(L) == 0)
|
||||||
{
|
{
|
||||||
lua_pushinteger(L, lsi->gameModel->GetTemperatureScale());
|
lua_pushinteger(L, lsi->gameModel->GetTemperatureScale());
|
||||||
@@ -1614,7 +1614,7 @@ static int signsIndex(lua_State *L)
|
|||||||
luaL_error(L, "Invalid sign ID (stop messing with things): %i", id);
|
luaL_error(L, "Invalid sign ID (stop messing with things): %i", id);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto *sim = lsi->sim;
|
auto *sim = lsi->sim;
|
||||||
if (id >= (int)sim->signs.size())
|
if (id >= (int)sim->signs.size())
|
||||||
{
|
{
|
||||||
@@ -1662,7 +1662,7 @@ static int signsIndex(lua_State *L)
|
|||||||
|
|
||||||
static int signsNewIndex(lua_State *L)
|
static int signsNewIndex(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto *sim = lsi->sim;
|
auto *sim = lsi->sim;
|
||||||
ByteString key = tpt_lua_checkByteString(L, 2);
|
ByteString key = tpt_lua_checkByteString(L, 2);
|
||||||
|
|
||||||
@@ -1732,7 +1732,7 @@ static int signsNewIndex(lua_State *L)
|
|||||||
// Creates a new sign at the first open index
|
// Creates a new sign at the first open index
|
||||||
static int Sign_new(lua_State *L)
|
static int Sign_new(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lsi->sim->signs.size() >= MAXSIGNS)
|
if (lsi->sim->signs.size() >= MAXSIGNS)
|
||||||
return lua_pushnil(L), 1;
|
return lua_pushnil(L), 1;
|
||||||
|
|
||||||
@@ -1756,7 +1756,7 @@ static int Sign_new(lua_State *L)
|
|||||||
// Deletes a sign
|
// Deletes a sign
|
||||||
static int Sign_delete(lua_State *L)
|
static int Sign_delete(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
int signID = luaL_checkinteger(L, 1);
|
int signID = luaL_checkinteger(L, 1);
|
||||||
if (signID <= 0 || signID > (int)lsi->sim->signs.size())
|
if (signID <= 0 || signID > (int)lsi->sim->signs.size())
|
||||||
return luaL_error(L, "Sign doesn't exist");
|
return luaL_error(L, "Sign doesn't exist");
|
||||||
@@ -1781,7 +1781,7 @@ static int resetVelocity(lua_State *L)
|
|||||||
width = XCELLS-x1;
|
width = XCELLS-x1;
|
||||||
if(y1+height > YCELLS-1)
|
if(y1+height > YCELLS-1)
|
||||||
height = YCELLS-y1;
|
height = YCELLS-y1;
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
for (nx = x1; nx<x1+width; nx++)
|
for (nx = x1; nx<x1+width; nx++)
|
||||||
for (ny = y1; ny<y1+height; ny++)
|
for (ny = y1; ny<y1+height; ny++)
|
||||||
{
|
{
|
||||||
@@ -1793,7 +1793,7 @@ static int resetVelocity(lua_State *L)
|
|||||||
|
|
||||||
static int resetSpark(lua_State *L)
|
static int resetSpark(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lsi->gameController->ResetSpark();
|
lsi->gameController->ResetSpark();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1814,7 +1814,7 @@ static int resetGravityField(lua_State *L)
|
|||||||
width = XCELLS-x1;
|
width = XCELLS-x1;
|
||||||
if(y1+height > YCELLS-1)
|
if(y1+height > YCELLS-1)
|
||||||
height = YCELLS-y1;
|
height = YCELLS-y1;
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto *sim = lsi->sim;
|
auto *sim = lsi->sim;
|
||||||
for (nx = x1; nx<x1+width; nx++)
|
for (nx = x1; nx<x1+width; nx++)
|
||||||
for (ny = y1; ny<y1+height; ny++)
|
for (ny = y1; ny<y1+height; ny++)
|
||||||
@@ -1828,7 +1828,7 @@ static int resetGravityField(lua_State *L)
|
|||||||
|
|
||||||
static int randomSeed(lua_State *L)
|
static int randomSeed(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lua_gettop(L))
|
if (lua_gettop(L))
|
||||||
{
|
{
|
||||||
lsi->sim->rng.state({
|
lsi->sim->rng.state({
|
||||||
@@ -1847,14 +1847,14 @@ static int randomSeed(lua_State *L)
|
|||||||
|
|
||||||
static int hash(lua_State *L)
|
static int hash(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
lua_pushinteger(L, lsi->sim->CreateSnapshot()->Hash());
|
lua_pushinteger(L, lsi->sim->CreateSnapshot()->Hash());
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ensureDeterminism(lua_State *L)
|
static int ensureDeterminism(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lua_gettop(L))
|
if (lua_gettop(L))
|
||||||
{
|
{
|
||||||
lsi->sim->ensureDeterminism = lua_toboolean(L, 1);
|
lsi->sim->ensureDeterminism = lua_toboolean(L, 1);
|
||||||
@@ -1866,7 +1866,7 @@ static int ensureDeterminism(lua_State *L)
|
|||||||
|
|
||||||
void LuaSimulation::Open(lua_State *L)
|
void LuaSimulation::Open(lua_State *L)
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
auto &sd = SimulationData::CRef();
|
auto &sd = SimulationData::CRef();
|
||||||
static const luaL_Reg reg[] = {
|
static const luaL_Reg reg[] = {
|
||||||
#define LFUNC(v) { #v, v }
|
#define LFUNC(v) { #v, v }
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
void LuaSmartRef::Clear()
|
void LuaSmartRef::Clear()
|
||||||
{
|
{
|
||||||
auto *lsi = static_cast<LuaScriptInterface *>(commandInterface);
|
auto *lsi = GetLSI();
|
||||||
if (lsi)
|
if (lsi)
|
||||||
{
|
{
|
||||||
luaL_unref(lsi->L, LUA_REGISTRYINDEX, ref);
|
luaL_unref(lsi->L, LUA_REGISTRYINDEX, ref);
|
||||||
|
@@ -53,7 +53,7 @@ LuaWindow::LuaWindow(lua_State *L)
|
|||||||
if (sizeY < 10)
|
if (sizeY < 10)
|
||||||
sizeY = 10;
|
sizeY = 10;
|
||||||
|
|
||||||
ci = static_cast<LuaScriptInterface *>(commandInterface);
|
ci = static_cast<LuaScriptInterface *>(&CommandInterface::Ref());
|
||||||
|
|
||||||
class DrawnWindow : public ui::Window
|
class DrawnWindow : public ui::Window
|
||||||
{
|
{
|
||||||
|
@@ -1,6 +1,34 @@
|
|||||||
#include "CommandInterface.h"
|
#include "CommandInterface.h"
|
||||||
|
|
||||||
CommandInterface *CommandInterface::Create(GameController * c, GameModel * m)
|
CommandInterfacePtr CommandInterface::Create(GameController *newGameController, GameModel *newGameModel)
|
||||||
{
|
{
|
||||||
return new CommandInterface(c, m);
|
return CommandInterfacePtr(new CommandInterface(newGameController, newGameModel));
|
||||||
|
}
|
||||||
|
|
||||||
|
void CommandInterfaceDeleter::operator ()(CommandInterface *ptr) const
|
||||||
|
{
|
||||||
|
delete ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CommandInterface::OnTick()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CommandInterface::Init()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CommandInterface::HandleEvent(const GameControllerEvent &event)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CommandInterface::Command(String command)
|
||||||
|
{
|
||||||
|
return PlainCommand(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
String CommandInterface::FormatCommand(String command)
|
||||||
|
{
|
||||||
|
return PlainFormatCommand(command);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user