From 246c84d5d11cbe78b87b4e77e254e6b070152855 Mon Sep 17 00:00:00 2001 From: zhurengong <2731412072@qq.com> Date: Thu, 31 Mar 2022 23:57:59 +0800 Subject: [PATCH] implemented script to clr conversions for all gui event handlers --- .../SharedSource/Lua/LuaCustomConverters.cs | 61 +++++++++++-------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs index e49ae1a65..c58749400 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs @@ -26,37 +26,39 @@ namespace Barotrauma }); #if CLIENT - Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIButton.OnClickedHandler), v => - { + RegisterAction(); + RegisterAction(); - var function = v.Function; - return (GUIButton.OnClickedHandler)((GUIButton a, object b) => new LuaResult(GameMain.Lua.CallFunction(function, a, b)).Bool()); - }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIComponent.SecondaryButtonDownHandler), v => { var function = v.Function; return (GUIComponent.SecondaryButtonDownHandler)((GUIComponent a1, object a2) => new LuaResult(GameMain.Lua.CallFunction(function, a1, a2)).Bool()); }); - Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUITextBlock.TextGetterHandler), v => - { - var function = v.Function; - return (GUITextBlock.TextGetterHandler)(() => new LuaResult(GameMain.Lua.CallFunction(function, new object[] {})).String()); - }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIButton.OnClickedHandler), v => { var function = v.Function; return (GUIButton.OnClickedHandler)((GUIButton a1, object a2) => new LuaResult(GameMain.Lua.CallFunction(function, a1, a2)).Bool()); }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIButton.OnButtonDownHandler), v => { var function = v.Function; return (GUIButton.OnButtonDownHandler)(() => new LuaResult(GameMain.Lua.CallFunction(function)).Bool()); }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIButton.OnPressedHandler), v => { var function = v.Function; return (GUIButton.OnPressedHandler)(() => new LuaResult(GameMain.Lua.CallFunction(function)).Bool()); }); - Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUITextBox.OnTextChangedHandler), v => - { - var function = v.Function; - return (GUITextBox.OnTextChangedHandler)((GUITextBox a, string b) => new LuaResult(GameMain.Lua.CallFunction(function, a, b)).Bool()); - }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIColorPicker.OnColorSelectedHandler), v => { var function = v.Function; return (GUIColorPicker.OnColorSelectedHandler)((GUIColorPicker a1, Color a2) => new LuaResult(GameMain.Lua.CallFunction(function, a1, a2)).Bool()); }); - Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUITextBox.OnEnterHandler), v => - { - var function = v.Function; - return (GUITextBox.OnEnterHandler)((GUITextBox a, string b) => new LuaResult(GameMain.Lua.CallFunction(function, a, b)).Bool()); - }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIDropDown.OnSelectedHandler), v => { var function = v.Function; return (GUIDropDown.OnSelectedHandler)((GUIComponent a1, object a2) => new LuaResult(GameMain.Lua.CallFunction(function, a1, a2)).Bool()); }); - Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUITickBox.OnSelectedHandler), v => - { - var function = v.Function; - return (GUITickBox.OnSelectedHandler)((GUITickBox a) => new LuaResult(GameMain.Lua.CallFunction(function, a)).Bool()); - }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIListBox.OnSelectedHandler), v => { var function = v.Function; return (GUIListBox.OnSelectedHandler)((GUIComponent a1, object a2) => new LuaResult(GameMain.Lua.CallFunction(function, a1, a2)).Bool()); }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIListBox.OnRearrangedHandler), v => { var function = v.Function; return (GUIListBox.OnRearrangedHandler)((GUIListBox a1, object a2) => GameMain.Lua.CallFunction(function, a1, a2)); }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIListBox.CheckSelectedHandler), v => { var function = v.Function; return (GUIListBox.CheckSelectedHandler)(() => new LuaResult(GameMain.Lua.CallFunction(function)).Object()); }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUINumberInput.OnValueChangedHandler), v => { var function = v.Function; return (GUINumberInput.OnValueChangedHandler)((GUINumberInput a1) => GameMain.Lua.CallFunction(function, a1)); }); + + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIProgressBar.ProgressGetterHandler), v => { var function = v.Function; return (GUIProgressBar.ProgressGetterHandler)(() => new LuaResult(GameMain.Lua.CallFunction(function)).Float()); }); + + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIRadioButtonGroup.RadioButtonGroupDelegate), v => { var function = v.Function; return (GUIRadioButtonGroup.RadioButtonGroupDelegate)((GUIRadioButtonGroup a1, int? a2) => GameMain.Lua.CallFunction(function, a1, a2)); }); + + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIScrollBar.OnMovedHandler), v => { var function = v.Function; return (GUIScrollBar.OnMovedHandler)((GUIScrollBar a1, float a2) => new LuaResult(GameMain.Lua.CallFunction(function, a1, a2)).Bool()); }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIScrollBar.ScrollConversion), v => { var function = v.Function; return (GUIScrollBar.ScrollConversion)((GUIScrollBar a1, float a2) => new LuaResult(GameMain.Lua.CallFunction(function, a1, a2)).Float()); }); + + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUITextBlock.TextGetterHandler), v => { var function = v.Function; return (GUITextBlock.TextGetterHandler)(() => new LuaResult(GameMain.Lua.CallFunction(function, new object[] { })).String()); }); + + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUITextBox.OnEnterHandler), v => { var function = v.Function; return (GUITextBox.OnEnterHandler)((GUITextBox a1, string a2) => new LuaResult(GameMain.Lua.CallFunction(function, a1, a2)).Bool()); }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUITextBox.OnTextChangedHandler), v => { var function = v.Function; return (GUITextBox.OnTextChangedHandler)((GUITextBox a1, string a2) => new LuaResult(GameMain.Lua.CallFunction(function, a1, a2)).Bool()); }); + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(TextBoxEvent), v => { var function = v.Function; return (TextBoxEvent)((GUITextBox a1, Microsoft.Xna.Framework.Input.Keys a2) => GameMain.Lua.CallFunction(function, a1, a2)); }); + + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUITickBox.OnSelectedHandler), v => { var function = v.Function; return (GUITickBox.OnSelectedHandler)((GUITickBox a1) => new LuaResult(GameMain.Lua.CallFunction(function, a1)).Bool()); }); #endif @@ -97,6 +99,15 @@ namespace Barotrauma }); } + public static void RegisterAction() + { + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Action), v => + { + var function = v.Function; + return (Action)((a1, a2) => GameMain.Lua.CallFunction(function, a1, a2)); + }); + } + public static void RegisterAction() { Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Action), v =>