changes to client-side commands and added some physics related things

This commit is contained in:
Evil Factory
2021-10-07 11:46:57 -03:00
parent 33f74c4a73
commit 578bba38a2
4 changed files with 52 additions and 12 deletions
@@ -3097,20 +3097,38 @@ namespace Barotrauma
}
});
commands.Add(new Command("lua_cl", "lua_cl: runs a string on the client", (string[] args) =>
commands.Add(new Command("cl_lua", "lua_cl: runs a string on the client", (string[] args) =>
{
if (GameMain.Client != null)
GameMain.Lua.DoString(string.Join(" ", args));
else
ThrowError("Client not connected to any server.");
if (GameMain.Client == null)
{
ThrowError("Client not connected to a server.");
return;
}
if (!GameMain.Client.HasPermission(ClientPermissions.ConsoleCommands))
{
ThrowError("Command not permitted.");
return;
}
GameMain.Lua.DoString(string.Join(" ", args));
}));
commands.Add(new Command("reloadlua_cl", "reloads lua on the client", (string[] args) =>
commands.Add(new Command("cl_reloadlua", "reloads lua on the client", (string[] args) =>
{
if (GameMain.Client != null)
GameMain.Lua.Initialize();
else
ThrowError("Client not connected to any server.");
if (GameMain.Client == null)
{
ThrowError("Client not connected to a server.");
return;
}
if (!GameMain.Client.HasPermission(ClientPermissions.ConsoleCommands))
{
ThrowError("Command not permitted.");
return;
}
GameMain.Lua.Initialize();
}));
}
@@ -10,6 +10,7 @@ using System.IO;
using System.Net;
using System.Linq;
using System.Xml.Linq;
using FarseerPhysics.Dynamics;
namespace Barotrauma
{
@@ -88,6 +89,14 @@ namespace Barotrauma
}
}
public World World
{
get
{
return GameMain.World;
}
}
public void OverrideTraitors(bool o)
{
overrideTraitors = o;
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Text;
using MoonSharp.Interpreter;
using Microsoft.Xna.Framework;
using FarseerPhysics.Dynamics;
namespace Barotrauma
{
@@ -17,6 +18,13 @@ namespace Barotrauma
RegisterAction<Entity>();
RegisterAction();
Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Func<Fixture, Vector2, Vector2, float, float>), v =>
{
var function = v.Function;
return (Func<Fixture, Vector2, Vector2, float, float>)((Fixture a, Vector2 b, Vector2 c, float d) => new LuaResult(function.Call(a, b, c, d)).Float());
});
#if CLIENT
Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(GUIButton.OnClickedHandler), v =>
{
@@ -39,7 +47,6 @@ namespace Barotrauma
#endif
}
public static void RegisterAction<T>()
{
Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Action<T>), v =>
@@ -11,6 +11,7 @@ using System.Diagnostics;
using System.Linq;
using MoonSharp.Interpreter.Interop;
using System.Reflection;
using FarseerPhysics.Dynamics;
#if CLIENT
using Microsoft.Xna.Framework.Graphics;
@@ -251,7 +252,7 @@ namespace Barotrauma
public void Initialize()
{
Stop();
luaSetup = this;
PrintMessage("Lua! Version " + AssemblyInfo.GitRevision);
@@ -352,6 +353,10 @@ namespace Barotrauma
UserData.RegisterType<Skill>();
UserData.RegisterType<SkillPrefab>();
UserData.RegisterType<World>();
UserData.RegisterType<Fixture>();
UserData.RegisterType(typeof(Physics));
UserData.RegisterType<Screen>();
UserData.RegisterType<GameScreen>();
UserData.RegisterType<Camera>();
@@ -462,6 +467,7 @@ namespace Barotrauma
lua.Globals["SubmarineInfo"] = UserData.CreateStatic<SubmarineInfo>();
lua.Globals["Rectangle"] = UserData.CreateStatic<Rectangle>();
lua.Globals["Entity"] = UserData.CreateStatic<Entity>();
lua.Globals["Physics"] = UserData.CreateStatic(typeof(Physics));
#if SERVER