diff --git a/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaClasses.cs b/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaClasses.cs index b8d09bb4e..5f430a201 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaClasses.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaClasses.cs @@ -28,6 +28,7 @@ namespace Barotrauma public ServerSettings ServerSettings => GameMain.Server.ServerSettings; + public void ClientWriteLobby(Client client) => GameMain.Server.ClientWriteLobby(client); public static void SendMessage(string msg, ChatMessageType? messageType = null, Client sender = null, Character character = null) { diff --git a/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs b/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs index 1261712aa..51f6a23ac 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs @@ -1826,7 +1826,7 @@ namespace Barotrauma.Networking } } - private void ClientWriteLobby(Client c) + public void ClientWriteLobby(Client c) { bool isInitialUpdate = false; diff --git a/Barotrauma/BarotraumaServer/ServerSource/Screens/NetLobbyScreen.cs b/Barotrauma/BarotraumaServer/ServerSource/Screens/NetLobbyScreen.cs index c24ba4ba1..6028b1fc7 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/Screens/NetLobbyScreen.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/Screens/NetLobbyScreen.cs @@ -217,6 +217,11 @@ namespace Barotrauma return subs; } + public void AddSub(SubmarineInfo sub) + { + subs.Add(sub); + } + public string LevelSeed { get diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses.cs b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses.cs index 16a9e5fad..92a43f990 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses.cs @@ -64,6 +64,14 @@ namespace Barotrauma } } + public EntitySpawner Spawner + { + get + { + return Entity.Spawner; + } + } + public GameSession GameSession { get diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs index e8b281153..80b4794e6 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs @@ -12,8 +12,28 @@ namespace Barotrauma public static void RegisterAll() { + RegisterSimpleAction(); + RegisterSimpleAction(); + } - } + public static void RegisterSimpleAction() + { + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Action), v => + { + var function = v.Function; + return (Action)(p => function.Call(p)); + }); + } - } + + + public static void RegisterSimpleAction() + { + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Action), v => + { + var function = v.Function; + return (Action)(() => function.Call()); + }); + } + } } diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs index 447640a81..8baa43914 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs @@ -274,6 +274,7 @@ namespace Barotrauma UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); + UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); @@ -293,7 +294,6 @@ namespace Barotrauma UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); - UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); @@ -303,7 +303,6 @@ namespace Barotrauma UserData.RegisterType(); UserData.RegisterType>(); UserData.RegisterType(); - UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); @@ -338,6 +337,7 @@ namespace Barotrauma AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); AddCallMetaMember(UserData.RegisterType()); + AddCallMetaMember(UserData.RegisterType()); #if SERVER @@ -415,6 +415,7 @@ namespace Barotrauma lua.Globals["ClientPacketHeader"] = UserData.CreateStatic(); lua.Globals["ServerPacketHeader"] = UserData.CreateStatic(); lua.Globals["RandSync"] = UserData.CreateStatic(); + lua.Globals["SubmarineInfo"] = UserData.CreateStatic(); #if SERVER diff --git a/docs/lua/Networking.lua b/docs/lua/Networking.lua index 37877e290..e44deef1f 100644 --- a/docs/lua/Networking.lua +++ b/docs/lua/Networking.lua @@ -17,7 +17,7 @@ function Networking.RequestPostHTTP(url, callback, textData, contentType) end function Networking.RequestGetHTTP(url, callback) end --- Creates a new net message, returns an IWriteMessage --- treturn IWriteMessage netMessage +-- @treturn IWriteMessage netMessage -- @realm shared function Networking.Start(netMessageName) end