diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaGame.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaGame.cs index dcb689aff..75bc2a3dc 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaGame.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaGame.cs @@ -445,6 +445,26 @@ namespace Barotrauma.LuaCs } ); } + + public void AddCommand(string name, LuaCsAction onExecute, LuaCsFunc getValidArgs = null, bool isCheat = false) + { + _consoleCommands.RegisterCommand(name, "", + (string[] args) => + { + onExecute(new object[] { args }); + }, + () => + { + if (getValidArgs == null) { return null; } + var validArgs = getValidArgs(); + if (validArgs is DynValue luaValue) + { + return luaValue.ToObject(); + } + return (string[][])validArgs; + } + ); + } public bool IsDisposed => throw new NotImplementedException();