initial cs-lua merge work

This commit is contained in:
Oiltanker
2022-04-11 22:44:53 +03:00
parent ae2b84cceb
commit 1e6ac68e86
44 changed files with 786 additions and 1046 deletions
@@ -25,7 +25,7 @@ namespace Barotrauma
GameServer.Log(GameServer.CharacterLogName(this) + " has died (Cause of death: " + causeOfDeath + ")", ServerLog.MessageType.Attack);
}
}
GameMain.Lua.hook.Call("characterDeath", new object[] { this,causeOfDeathAffliction });
GameMain.LuaCs.hook.Call("characterDeath", this,causeOfDeathAffliction);
if (HasAbilityFlag(AbilityFlags.RetainExperienceForNewCharacter))
{
@@ -43,7 +43,7 @@ namespace Barotrauma
var owner = GameMain.Server.ConnectedClients.Find(c => c.Character == this);
if (owner != null)
{
if (!GameMain.Lua.game.overrideTraitors)
if (!GameMain.LuaCs.game.overrideTraitors)
{
GameMain.Server.SendDirectChatMessage(TextManager.FormatServerMessage("KilledByTraitorNotification"), owner, ChatMessageType.ServerMessageBoxInGame);
}
@@ -700,7 +700,7 @@ namespace Barotrauma
var tempBuffer = new ReadWriteMessage();
WriteStatus(tempBuffer);
if (msgLengthBeforeStatus + tempBuffer.LengthBytes >= 255 && restrictMessageSize && GameMain.Lua.networking.restrictMessageSize)
if (msgLengthBeforeStatus + tempBuffer.LengthBytes >= 255 && restrictMessageSize && GameMain.LuaCs.networking.restrictMessageSize)
{
msg.Write(false);
if (msgLengthBeforeStatus < 255)
@@ -1243,17 +1243,17 @@ namespace Barotrauma
commands.Add(new Command("lua", "lua: runs a string", (string[] args) =>
{
GameMain.Lua.DoString(string.Join(" ", args));
GameMain.LuaCs.DoString(string.Join(" ", args));
}));
commands.Add(new Command("reloadlua", "reloads lua", (string[] args) =>
{
GameMain.Lua.Initialize();
GameMain.LuaCs.Initialize();
}));
commands.Add(new Command("install_cl_lua", "Installs client-Side Lua into your client.", (string[] args) =>
{
ContentPackage luaPackage = LuaSetup.GetPackage();
ContentPackage luaPackage = LuaCsSetup.GetLuaPackage();
if (luaPackage == null)
{
@@ -1293,7 +1293,7 @@ namespace Barotrauma
}
catch (Exception e)
{
GameMain.Lua.HandleLuaException(e);
GameMain.LuaCs.HandleLuaException(e);
return;
}
@@ -34,8 +34,7 @@ namespace Barotrauma
set { world = value; }
}
public static LuaSetup Lua;
public static NetSetup Net;
public static LuaCsSetup LuaCs;
public static GameServer Server;
public static NetworkMember NetworkMember
@@ -121,9 +120,7 @@ namespace Barotrauma
CheckContentPackage();
Lua = new LuaSetup();
Net = new NetSetup();
Net.Execute();
LuaCs = new LuaCsSetup();
}
@@ -350,9 +347,8 @@ namespace Barotrauma
TaskPool.Update();
CoroutineManager.Update((float)Timing.Step, (float)Timing.Step);
GameMain.Lua.Update();
GameMain.Lua.hook.Call("think", new object[] { });
GameMain.Net.Update();
GameMain.LuaCs.Update();
GameMain.LuaCs.hook.Call("think", new object[] { });
performanceCounterTimer.Stop();
LuaTimer.LastUpdateTime = performanceCounterTimer.ElapsedMilliseconds;
performanceCounterTimer.Reset();
@@ -437,7 +433,7 @@ namespace Barotrauma
public void Exit()
{
ShouldRun = false;
GameMain.Net.Stop();
GameMain.LuaCs.Stop();
}
}
}
@@ -104,7 +104,7 @@ namespace Barotrauma.Networking
bool isOwner = GameMain.Server.OwnerConnection != null && c.Connection == GameMain.Server.OwnerConnection;
if (similarity + c.ChatSpamSpeed > 5.0f && !isOwner && !GameMain.Lua.game.disableSpamFilter)
if (similarity + c.ChatSpamSpeed > 5.0f && !isOwner && !GameMain.LuaCs.game.disableSpamFilter)
{
GameMain.Server.KarmaManager.OnSpamFilterTriggered(c);
@@ -125,7 +125,7 @@ namespace Barotrauma.Networking
c.ChatSpamSpeed += similarity + 0.5f;
if (c.ChatSpamTimer > 0.0f && !isOwner && !GameMain.Lua.game.disableSpamFilter)
if (c.ChatSpamTimer > 0.0f && !isOwner && !GameMain.LuaCs.game.disableSpamFilter)
{
ChatMessage denyMsg = Create("", TextManager.Get("SpamFilterBlocked").Value, ChatMessageType.Server, null);
c.ChatSpamTimer = 10.0f;
@@ -133,8 +133,7 @@ namespace Barotrauma.Networking
return;
}
var should = new LuaResult(GameMain.Lua.hook.Call("chatMessage", new object[] { txt, c, type }));
var should = new LuaResult(GameMain.LuaCs.hook.Call("chatMessage", txt, c, type));
if (should.Bool())
{
@@ -202,7 +202,7 @@ namespace Barotrauma.Networking
#endif
}
GameMain.Lua.Initialize();
GameMain.LuaCs.Initialize();
TickRate = serverSettings.TickRate;
@@ -290,8 +290,8 @@ namespace Barotrauma.Networking
SendConsoleMessage("Granted all permissions to " + newClient.Name + ".", newClient);
}
GameMain.Lua.hook.Call("clientConnected", new object[] { newClient });
GameMain.LuaCs.hook.Call("clientConnected", newClient);
SendChatMessage($"ServerMessage.JoinedServer~[client]={clName}", ChatMessageType.Server, null, changeType: PlayerConnectionChangeType.Joined);
serverSettings.ServerDetailsChanged = true;
@@ -378,7 +378,7 @@ namespace Barotrauma.Networking
Character character = Character.CharacterList[i];
if (character.IsDead || !character.ClientDisconnected) { continue; }
if (!GameMain.Lua.game.disableDisconnectCharacter)
if (!GameMain.LuaCs.game.disableDisconnectCharacter)
{
character.KillDisconnectedTimer += deltaTime;
character.SetStun(1.0f);
@@ -700,7 +700,7 @@ namespace Barotrauma.Networking
ClientPacketHeader header = (ClientPacketHeader)inc.ReadByte();
GameMain.Lua.networking.NetMessageReceived(inc, header, connectedClient);
GameMain.LuaCs.networking.NetMessageReceived(inc, header, connectedClient);
switch (header)
{
@@ -1804,7 +1804,7 @@ namespace Barotrauma.Networking
outmsg.Write((byte)ServerNetObject.CLIENT_LIST);
outmsg.Write(LastClientListUpdateID);
GameMain.Lua.hook.Call("writeClientList", c, outmsg);
GameMain.LuaCs.hook.Call("writeClientList", c, outmsg);
outmsg.Write((byte)connectedClients.Count);
foreach (Client client in connectedClients)
@@ -2251,7 +2251,7 @@ namespace Barotrauma.Networking
AssignJobs(teamClients);
var result = new LuaResult(GameMain.Lua.hook.Call("jobsAssigned"));
var result = new LuaResult(GameMain.LuaCs.hook.Call("jobsAssigned"));
List<CharacterInfo> characterInfos = new List<CharacterInfo>();
foreach (Client client in teamClients)
@@ -2429,7 +2429,7 @@ namespace Barotrauma.Networking
{
if (!(GameMain.GameSession?.GameMode is CampaignMode))
{
if (!GameMain.Lua.game.overrideTraitors)
if (!GameMain.LuaCs.game.overrideTraitors)
{
TraitorManager = new TraitorManager();
TraitorManager.Start(this);
@@ -2455,7 +2455,7 @@ namespace Barotrauma.Networking
roundStartTime = DateTime.Now;
GameMain.Lua.hook.Call("roundStart", new object[] { });
GameMain.LuaCs.hook.Call("roundStart");
startGameCoroutine = null;
yield return CoroutineStatus.Success;
@@ -2586,7 +2586,7 @@ namespace Barotrauma.Networking
Log("Ending the round...", ServerLog.MessageType.ServerMessage);
}
GameMain.Lua.hook.Call("roundEnd", new object[] { });
GameMain.LuaCs.hook.Call("roundEnd");
string endMessage = TextManager.FormatServerMessage("RoundSummaryRoundHasEnded");
@@ -2697,7 +2697,7 @@ namespace Barotrauma.Networking
newName = Client.SanitizeName(newName);
if (newName == c.Name && newJob == c.PreferredJob && newTeam == c.PreferredTeam) { return false; }
var result = new LuaResult(GameMain.Lua.hook.Call("tryChangeClientName", c, newName, newJob, newTeam));
var result = new LuaResult(GameMain.LuaCs.hook.Call("tryChangeClientName", c, newName, newJob, newTeam));
if (!result.IsNull())
{
@@ -2892,7 +2892,7 @@ namespace Barotrauma.Networking
{
if (client == null) return;
GameMain.Lua.hook.Call("clientDisconnected", new object[] { client });
GameMain.LuaCs.hook.Call("clientDisconnected", client);
if (gameStarted && client.Character != null)
{
@@ -3133,7 +3133,7 @@ namespace Barotrauma.Networking
senderName = null;
senderCharacter = null;
}
else if (type == ChatMessageType.Radio && !GameMain.Lua.game.overrideSignalRadio)
else if (type == ChatMessageType.Radio && !GameMain.LuaCs.game.overrideSignalRadio)
{
//send to chat-linked wifi components
Signal s = new Signal(message, sender: senderCharacter, source: senderRadio.Item);
@@ -3142,7 +3142,7 @@ namespace Barotrauma.Networking
var hookChatMsg = ChatMessage.Create(senderName, message, (ChatMessageType)type, senderCharacter, senderClient, changeType);
var should = new LuaResult(GameMain.Lua.hook.Call("modifyChatMessage", new object[] { hookChatMsg, senderRadio }));
var should = new LuaResult(GameMain.LuaCs.hook.Call("modifyChatMessage", hookChatMsg, senderRadio));
if (should.Bool())
return;
@@ -3874,8 +3874,7 @@ namespace Barotrauma.Networking
{
if (GameMain.Server == null || !GameMain.Server.ServerSettings.SaveServerLogs) { return; }
if(GameMain.Lua.hook != null)
GameMain.Lua.hook.Call("serverLog", new object[] { line, messageType });
GameMain.LuaCs?.hook?.Call("serverLog", line, messageType);
GameMain.Server.ServerSettings.ServerLog.WriteLine(line, messageType);
@@ -182,21 +182,21 @@ namespace Barotrauma.Networking
{
if (netServer == null) { return; }
var result = new LuaResult(GameMain.Lua.hook.Call("lidgren.handleConnection", inc));
if (!result.IsNull())
if (result.Bool())
goto ignore;
else
return;
var skipDeny = false;
{
var result = new LuaResult(GameMain.LuaCs.hook.Call("lidgren.handleConnection", inc));
if (!result.IsNull()) {
if (result.Bool()) skipDeny = true;
else return;
}
}
if (connectedClients.Count >= serverSettings.MaxPlayers)
if (!skipDeny && connectedClients.Count >= serverSettings.MaxPlayers)
{
inc.SenderConnection.Deny(DisconnectReason.ServerFull.ToString());
return;
}
ignore:
if (serverSettings.BanList.IsBanned(inc.SenderConnection.RemoteEndPoint.Address, 0, 0, out string banReason))
{
//IP banned: deny immediately
@@ -206,7 +206,7 @@ namespace Barotrauma.Networking
protected void UpdatePendingClient(PendingClient pendingClient)
{
var result = new LuaResult(GameMain.Lua.hook.Call("handlePendingClient", pendingClient));
var result = new LuaResult(GameMain.LuaCs.hook.Call("handlePendingClient", pendingClient));
if (result.Bool())
goto ignore;
@@ -25,7 +25,7 @@ namespace Barotrauma.Networking
MultiPlayerCampaign campaign = GameMain.GameSession.GameMode as MultiPlayerCampaign;
foreach (Client c in networkMember.ConnectedClients)
{
if (GameMain.Lua.game.overrideRespawnSub)
if (GameMain.LuaCs.game.overrideRespawnSub)
continue;
if (!c.InGame) { continue; }
@@ -125,7 +125,7 @@ namespace Barotrauma.Networking
private bool ShouldStartRespawnCountdown(int characterToRespawnCount)
{
if (GameMain.Lua.game.overrideRespawnSub)
if (GameMain.LuaCs.game.overrideRespawnSub)
{
characterToRespawnCount = 0;
}
@@ -136,7 +136,7 @@ namespace Barotrauma.Networking
{
if (RespawnShuttle != null)
{
if (!GameMain.Lua.game.overrideRespawnSub)
if (!GameMain.LuaCs.game.overrideRespawnSub)
{
RespawnShuttle.Velocity = Vector2.Zero;
}
@@ -185,7 +185,7 @@ namespace Barotrauma.Networking
{
if (RespawnShuttle != null)
{
if (GameMain.Lua.game.overrideRespawnSub)
if (GameMain.LuaCs.game.overrideRespawnSub)
{
CurrentState = State.Waiting;
}
@@ -206,7 +206,7 @@ namespace Barotrauma.Networking
Vector2 spawnPos = FindSpawnPos();
if (!GameMain.Lua.game.overrideRespawnSub)
if (!GameMain.LuaCs.game.overrideRespawnSub)
{
RespawnCharacters(spawnPos);
}
@@ -94,7 +94,7 @@ namespace Barotrauma.Networking
ChatMessage.CanUseRadio(sender.Character, out WifiComponent senderRadio) &&
ChatMessage.CanUseRadio(recipient.Character, out WifiComponent recipientRadio))
{
var should = new LuaResult(GameMain.Lua.hook.Call("canUseVoiceRadio", new object[] { sender, recipient }));
var should = new LuaResult(GameMain.LuaCs.hook.Call("canUseVoiceRadio", new object[] { sender, recipient }));
if (!should.IsNull())
return should.Bool();
@@ -102,7 +102,7 @@ namespace Barotrauma.Networking
if (recipientRadio.CanReceive(senderRadio)) { return true; }
}
var should2 = new LuaResult(GameMain.Lua.hook.Call("changeLocalVoiceRange", new object[] { sender, recipient }));
var should2 = new LuaResult(GameMain.LuaCs.hook.Call("changeLocalVoiceRange", new object[] { sender, recipient }));
float range = 1.0f;
if (!should2.IsNull())
@@ -92,7 +92,7 @@ namespace Barotrauma
var traitorCandidates = new List<Tuple<Client, Character>>();
foreach (Client c in server.ConnectedClients)
{
var result = new LuaResult(GameMain.Lua.hook.Call("traitor.findTraitorCandidate", new object[] { c, team }));
var result = new LuaResult(GameMain.LuaCs.hook.Call("traitor.findTraitorCandidate", new object[] { c, team }));
if (result.Bool())
{
traitorCandidates.Add(Tuple.Create(c, c.Character));
@@ -234,7 +234,7 @@ namespace Barotrauma
foreach (var traitor in Traitors.Values)
{
traitor.Greet(server, CodeWords, CodeResponse, message => pendingMessages[traitor].Add(message));
GameMain.Lua.hook.Call("traitor.traitorAssigned", new object[] { traitor });
GameMain.LuaCs.hook.Call("traitor.traitorAssigned", new object[] { traitor });
}
pendingMessages.ForEach(traitor => traitor.Value.ForEach(message => traitor.Key.SendChatMessage(message, Identifier)));
pendingMessages.ForEach(traitor => traitor.Value.ForEach(message => traitor.Key.SendChatMessageBox(message, Identifier)));