From a5233b4686e856afdf4d88f3e12eb3d7eb96133f Mon Sep 17 00:00:00 2001 From: Evil Factory <36804725+evilfactory@users.noreply.github.com> Date: Fri, 1 Oct 2021 19:13:25 -0300 Subject: [PATCH] more GUI stuff --- .../ClientSource/Lua/LuaClasses.cs | 32 +++++++++++++++---- .../SharedSource/Lua/LuaCustomConverters.cs | 15 +++++++-- .../SharedSource/Lua/LuaSetup.cs | 24 +++++++++++++- 3 files changed, 62 insertions(+), 9 deletions(-) diff --git a/Barotrauma/BarotraumaClient/ClientSource/Lua/LuaClasses.cs b/Barotrauma/BarotraumaClient/ClientSource/Lua/LuaClasses.cs index 45e0f566d..6acf5e72a 100644 --- a/Barotrauma/BarotraumaClient/ClientSource/Lua/LuaClasses.cs +++ b/Barotrauma/BarotraumaClient/ClientSource/Lua/LuaClasses.cs @@ -16,10 +16,20 @@ namespace Barotrauma env = _env; RectTransform = UserData.CreateStatic(); - GUILayoutGroup = UserData.CreateStatic(); - GUIButton = UserData.CreateStatic(); - GUITextBox = UserData.CreateStatic(); + LayoutGroup = UserData.CreateStatic(); + Button = UserData.CreateStatic(); + TextBox = UserData.CreateStatic(); + Canvas = UserData.CreateStatic(); + Frame = UserData.CreateStatic(); + TextBlock = UserData.CreateStatic(); + TickBox = UserData.CreateStatic(); + Image = UserData.CreateStatic(); + ListBox = UserData.CreateStatic(); + Anchor = UserData.CreateStatic(); + Alignment = UserData.CreateStatic(); + Pivot = UserData.CreateStatic(); + } public ChatBox ChatBox @@ -31,10 +41,20 @@ namespace Barotrauma } public static object RectTransform; - public static object GUILayoutGroup; - public static object GUIButton; - public static object GUITextBox; + public static object LayoutGroup; + public static object Button; + public static object TextBox; + public static object Canvas; + public static object Frame; + public static object TextBlock; + public static object TickBox; + public static object Image; + public static object ListBox; + + public static object Pivot; public static object Anchor; + public static object Alignment; + } } } diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs index 71da4e977..73a78c061 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs @@ -16,8 +16,19 @@ namespace Barotrauma RegisterAction(); RegisterAction(); RegisterAction(); + + +#if CLIENT + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIButton.OnClickedHandler), v => + { + + var function = v.Function; + return (GUIButton.OnClickedHandler)((GUIButton a, object b) => new LuaResult(function.Call(a, b)).Bool()); + }); +#endif } + public static void RegisterAction() { Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Action), v => @@ -27,8 +38,6 @@ namespace Barotrauma }); } - - public static void RegisterAction() { Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Action), v => @@ -37,5 +46,7 @@ namespace Barotrauma return (Action)(() => function.Call()); }); } + } + } diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs index bf48c2e4e..4a14a950b 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs @@ -12,6 +12,10 @@ using System.Linq; using MoonSharp.Interpreter.Interop; using System.Reflection; +#if CLIENT +using Microsoft.Xna.Framework.Graphics; +#endif + namespace Barotrauma { partial class LuaSetup @@ -219,6 +223,8 @@ namespace Barotrauma public void Stop() { + hook.Call("stop", new object[] { }); + hook = new LuaHook(null); game = new LuaGame(null); networking = new LuaNetworking(null); @@ -229,6 +235,8 @@ namespace Barotrauma public void Initialize() { + Stop(); + luaSetup = this; PrintMessage("Lua!"); @@ -241,7 +249,6 @@ namespace Barotrauma UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); - UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); @@ -337,6 +344,7 @@ namespace Barotrauma AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); #if SERVER @@ -344,13 +352,24 @@ namespace Barotrauma #elif CLIENT UserData.RegisterType(); UserData.RegisterType(); + UserData.RegisterType(); UserData.RegisterType(); + UserData.RegisterType(); + UserData.RegisterType(); + UserData.RegisterType(); + + AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); #endif lua = new Script(CoreModules.Preset_SoftSandbox); @@ -416,11 +435,14 @@ namespace Barotrauma lua.Globals["ServerPacketHeader"] = UserData.CreateStatic(); lua.Globals["RandSync"] = UserData.CreateStatic(); lua.Globals["SubmarineInfo"] = UserData.CreateStatic(); + lua.Globals["Rectangle"] = UserData.CreateStatic(); #if SERVER #elif CLIENT lua.Globals["GUI"] = new LuaGUI(this); + lua.Globals["Sprite"] = UserData.CreateStatic(); + #endif