diff --git a/Barotrauma/BarotraumaClient/ClientSource/Lua/LuaClasses.cs b/Barotrauma/BarotraumaClient/ClientSource/Lua/LuaClasses.cs index db45ecdd6..45e0f566d 100644 --- a/Barotrauma/BarotraumaClient/ClientSource/Lua/LuaClasses.cs +++ b/Barotrauma/BarotraumaClient/ClientSource/Lua/LuaClasses.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Text; using Barotrauma.Networking; +using MoonSharp.Interpreter; namespace Barotrauma { @@ -13,6 +14,12 @@ namespace Barotrauma public LuaGUI(LuaSetup _env) { env = _env; + + RectTransform = UserData.CreateStatic(); + GUILayoutGroup = UserData.CreateStatic(); + GUIButton = UserData.CreateStatic(); + GUITextBox = UserData.CreateStatic(); + Anchor = UserData.CreateStatic(); } public ChatBox ChatBox @@ -22,6 +29,12 @@ namespace Barotrauma return GameMain.Client.ChatBox; } } + + public static object RectTransform; + public static object GUILayoutGroup; + public static object GUIButton; + public static object GUITextBox; + public static object Anchor; } } } diff --git a/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs b/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs index dcb4ae206..6a5f9c48d 100644 --- a/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs +++ b/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs @@ -420,6 +420,20 @@ namespace Barotrauma } }; #endif + new GUIButton(new RectTransform(new Point(300, 30), Frame.RectTransform, Anchor.TopRight) { AbsoluteOffset = new Point(40, 230) }, + "Remove Client-Side Lua", style: "GUIButtonLarge", color: GUI.Style.Red) + { + IgnoreLayoutGroups = true, + UserData = Tab.Empty, + ToolTip = "Remove Client-Side Lua.", + OnClicked = (tb, userdata) => + { + return false; + } + }; + + + var minButtonSize = new Point(120, 20); var maxButtonSize = new Point(480, 80); diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs index d69cf63e5..675b7beb5 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs @@ -198,7 +198,16 @@ namespace Barotrauma code = code + ")"; - return lua.DoString(code, tbl); + try + { + return lua.DoString(code, tbl); + } + catch(Exception e) + { + HandleLuaException(e); + } + + return null; } private void AddCallMetaMember(IUserDataDescriptor IUDD) @@ -322,12 +331,20 @@ namespace Barotrauma AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); #if SERVER #elif CLIENT UserData.RegisterType(); UserData.RegisterType(); + UserData.RegisterType(); + + AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); #endif lua = new Script(CoreModules.Preset_SoftSandbox); @@ -380,6 +397,7 @@ namespace Barotrauma lua.Globals["Vector3"] = UserData.CreateStatic(); lua.Globals["Vector4"] = UserData.CreateStatic(); lua.Globals["Color"] = UserData.CreateStatic(); + lua.Globals["Point"] = UserData.CreateStatic(); lua.Globals["ChatMessage"] = UserData.CreateStatic(); lua.Globals["Hull"] = UserData.CreateStatic(); lua.Globals["InvSlotType"] = UserData.CreateStatic();