diff --git a/Barotrauma/BarotraumaClient/ClientSource/Lua/LuaCsUpdateChecker.cs b/Barotrauma/BarotraumaClient/ClientSource/LuaCs/LuaCsUpdateChecker.cs
similarity index 77%
rename from Barotrauma/BarotraumaClient/ClientSource/Lua/LuaCsUpdateChecker.cs
rename to Barotrauma/BarotraumaClient/ClientSource/LuaCs/LuaCsUpdateChecker.cs
index ba445d13f..6cffc4c8a 100644
--- a/Barotrauma/BarotraumaClient/ClientSource/Lua/LuaCsUpdateChecker.cs
+++ b/Barotrauma/BarotraumaClient/ClientSource/LuaCs/LuaCsUpdateChecker.cs
@@ -27,7 +27,17 @@ namespace Barotrauma
string[] filesToUpdate = new string[]
{
"Barotrauma.dll", "Barotrauma.deps.json",
- "0harmony.dll", "MoonSharp.Interpreter.dll",
+ "0harmony.dll", "Mono.Cecil.dll",
+ "Mono.Cecil.Mdb.dll", "Mono.Cecil.Pdb.dll",
+ "Mono.Cecil.Rocks.dll", "MonoMod.Common.dll",
+ "MoonSharp.Interpreter.dll",
+ "mscordaccore_amd64_amd64_4.700.22.11601.dll",
+
+ "Microsoft.CodeAnalysis.dll", "Microsoft.CodeAnalysis.CSharp.dll",
+ "Microsoft.CodeAnalysis.CSharp.Scripting.dll", "Microsoft.CodeAnalysis.Scripting.dll",
+
+ "System.Reflection.Metadata.dll", "System.Collections.Immutable.dll",
+ "System.Runtime.CompilerServices.Unsafe.dll"
};
diff --git a/Barotrauma/BarotraumaClient/ClientSource/Networking/GameClient.cs b/Barotrauma/BarotraumaClient/ClientSource/Networking/GameClient.cs
index 3c1128032..4bce2dec7 100644
--- a/Barotrauma/BarotraumaClient/ClientSource/Networking/GameClient.cs
+++ b/Barotrauma/BarotraumaClient/ClientSource/Networking/GameClient.cs
@@ -690,7 +690,7 @@ namespace Barotrauma.Networking
{
ServerPacketHeader header = (ServerPacketHeader)inc.ReadByte();
- GameMain.LuaCs.networking.NetMessageReceived(inc, header);
+ GameMain.LuaCs.Networking.NetMessageReceived(inc, header);
if (roundInitStatus != RoundInitStatus.Started &&
roundInitStatus != RoundInitStatus.NotStarted &&
diff --git a/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs b/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs
index 9075ad8a4..4c21fa1c1 100644
--- a/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs
+++ b/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs
@@ -413,17 +413,23 @@ namespace Barotrauma
{
msg.Close();
+ string[] filesToRemove = new string[]
+ {
+ "Barotrauma.dll", "Barotrauma.deps.json",
+ "System.Reflection.Metadata.dll", "System.Collections.Immutable.dll",
+ "System.Runtime.CompilerServices.Unsafe.dll"
+ };
try
{
- System.IO.File.Move("Barotrauma.dll", "Barotrauma.dll.todelete", true);
- System.IO.File.Move("Barotrauma.deps.json", "Barotrauma.deps.json.todelete", true);
-
- System.IO.File.Move("Barotrauma.dll.old", "Barotrauma.dll", true);
- System.IO.File.Move("Barotrauma.deps.json.old", "Barotrauma.deps.json", true);
-
- }catch(Exception e)
+ foreach (string file in filesToRemove)
+ {
+ System.IO.File.Move(file, file + ".todelete", true);
+ System.IO.File.Move(file + ".old", file, true);
+ }
+ }
+ catch(Exception e)
{
- new GUIMessageBox("Error", "Error: " + e.ToString());
+ new GUIMessageBox("Error", $"{e} {e.InnerException}");
return false;
}
diff --git a/Barotrauma/BarotraumaClient/LinuxClient.csproj b/Barotrauma/BarotraumaClient/LinuxClient.csproj
index 017c19e8b..c16a0f7df 100644
--- a/Barotrauma/BarotraumaClient/LinuxClient.csproj
+++ b/Barotrauma/BarotraumaClient/LinuxClient.csproj
@@ -13,6 +13,7 @@
..\BarotraumaShared\Icon.ico
Debug;Release;Unstable
;NU1605;CS0114;CS0108CS8597;CS8600;CS8601;CS8602;CS8603;CS8604;CS8605;CS8606;CS8607;CS8608;CS8609;CS8610;CS8611;CS8612;CS8613;CS8614;CS8615;CS8616;CS8617;CS8618;CS8619;CS8620;CS8621;CS8622;CS8624;CS8625;CS8626;CS8629;CS8631;CS8632;CS8633;CS8634;CS8638;CS8643;CS8644;CS8645;CS8653;CS8654;CS8655;CS8667;CS8669;CS8670;CS8714;CS8717;CS8765
+ en
diff --git a/Barotrauma/BarotraumaServer/MacServer.csproj b/Barotrauma/BarotraumaServer/MacServer.csproj
index bb224a0f0..dadf01b82 100644
--- a/Barotrauma/BarotraumaServer/MacServer.csproj
+++ b/Barotrauma/BarotraumaServer/MacServer.csproj
@@ -13,6 +13,7 @@
..\BarotraumaShared\Icon.ico
Debug;Release;Unstable
;NU1605;CS0114;CS0108CS8597;CS8600;CS8601;CS8602;CS8603;CS8604;CS8605;CS8606;CS8607;CS8608;CS8609;CS8610;CS8611;CS8612;CS8613;CS8614;CS8615;CS8616;CS8617;CS8618;CS8619;CS8620;CS8621;CS8622;CS8624;CS8625;CS8626;CS8629;CS8631;CS8632;CS8633;CS8634;CS8638;CS8643;CS8644;CS8645;CS8653;CS8654;CS8655;CS8667;CS8669;CS8670;CS8714;CS8717;CS8765
+ en
@@ -81,6 +82,7 @@
+
@@ -91,6 +93,14 @@
PreserveNewest
+
+
+ ..\..\Libraries\0Harmony.dll
+
+
+ ..\..\Libraries\MoonSharp.Interpreter.dll
+
+
diff --git a/Barotrauma/BarotraumaServer/ServerSource/Characters/Character.cs b/Barotrauma/BarotraumaServer/ServerSource/Characters/Character.cs
index 204c853ee..84c50b8c6 100644
--- a/Barotrauma/BarotraumaServer/ServerSource/Characters/Character.cs
+++ b/Barotrauma/BarotraumaServer/ServerSource/Characters/Character.cs
@@ -43,7 +43,7 @@ namespace Barotrauma
var owner = GameMain.Server.ConnectedClients.Find(c => c.Character == this);
if (owner != null)
{
- if (!GameMain.LuaCs.game.overrideTraitors)
+ if (!GameMain.LuaCs.Game.overrideTraitors)
{
GameMain.Server.SendDirectChatMessage(TextManager.FormatServerMessage("KilledByTraitorNotification"), owner, ChatMessageType.ServerMessageBoxInGame);
}
diff --git a/Barotrauma/BarotraumaServer/ServerSource/Characters/CharacterNetworking.cs b/Barotrauma/BarotraumaServer/ServerSource/Characters/CharacterNetworking.cs
index b9f3e2c33..16a2100d7 100644
--- a/Barotrauma/BarotraumaServer/ServerSource/Characters/CharacterNetworking.cs
+++ b/Barotrauma/BarotraumaServer/ServerSource/Characters/CharacterNetworking.cs
@@ -700,7 +700,7 @@ namespace Barotrauma
var tempBuffer = new ReadWriteMessage();
WriteStatus(tempBuffer);
- if (msgLengthBeforeStatus + tempBuffer.LengthBytes >= 255 && restrictMessageSize && GameMain.LuaCs.networking.restrictMessageSize)
+ if (msgLengthBeforeStatus + tempBuffer.LengthBytes >= 255 && restrictMessageSize && GameMain.LuaCs.Networking.restrictMessageSize)
{
msg.Write(false);
if (msgLengthBeforeStatus < 255)
diff --git a/Barotrauma/BarotraumaServer/ServerSource/DebugConsole.cs b/Barotrauma/BarotraumaServer/ServerSource/DebugConsole.cs
index b5b48d99c..86be7a28f 100644
--- a/Barotrauma/BarotraumaServer/ServerSource/DebugConsole.cs
+++ b/Barotrauma/BarotraumaServer/ServerSource/DebugConsole.cs
@@ -1273,11 +1273,21 @@ namespace Barotrauma
"Mono.Cecil.Rocks.dll", "MonoMod.Common.dll",
"MoonSharp.Interpreter.dll",
"mscordaccore_amd64_amd64_4.700.22.11601.dll",
+
+ "Microsoft.CodeAnalysis.dll", "Microsoft.CodeAnalysis.CSharp.dll",
+ "Microsoft.CodeAnalysis.CSharp.Scripting.dll", "Microsoft.CodeAnalysis.Scripting.dll",
+
+ "System.Reflection.Metadata.dll", "System.Collections.Immutable.dll",
+ "System.Runtime.CompilerServices.Unsafe.dll"
};
File.Move("Barotrauma.dll", "Barotrauma.dll.old", true);
File.Move("Barotrauma.deps.json", "Barotrauma.deps.json.old", true);
+ File.Move("System.Reflection.Metadata.dll", "System.Reflection.Metadata.dll.old", true);
+ File.Move("System.Collections.Immutable.dll", "System.Collections.Immutable.dll.old", true);
+ File.Move("System.Runtime.CompilerServices.Unsafe.dll", "System.Runtime.CompilerServices.Unsafe.dll.old", true);
+
foreach (string file in filesToCopy)
{
File.Copy(Path.Combine(path, "Binary", file), file, true);
diff --git a/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaBarotraumaAdditions.cs b/Barotrauma/BarotraumaServer/ServerSource/LuaCs/Lua/LuaBarotraumaAdditions.cs
similarity index 100%
rename from Barotrauma/BarotraumaServer/ServerSource/Lua/LuaBarotraumaAdditions.cs
rename to Barotrauma/BarotraumaServer/ServerSource/LuaCs/Lua/LuaBarotraumaAdditions.cs
diff --git a/Barotrauma/BarotraumaServer/ServerSource/Networking/ChatMessage.cs b/Barotrauma/BarotraumaServer/ServerSource/Networking/ChatMessage.cs
index e580bb693..78da74f47 100644
--- a/Barotrauma/BarotraumaServer/ServerSource/Networking/ChatMessage.cs
+++ b/Barotrauma/BarotraumaServer/ServerSource/Networking/ChatMessage.cs
@@ -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.LuaCs.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.LuaCs.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;
diff --git a/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs b/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs
index b19f0c6fc..e40c6de39 100644
--- a/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs
+++ b/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs
@@ -378,7 +378,7 @@ namespace Barotrauma.Networking
Character character = Character.CharacterList[i];
if (character.IsDead || !character.ClientDisconnected) { continue; }
- if (!GameMain.LuaCs.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.LuaCs.networking.NetMessageReceived(inc, header, connectedClient);
+ GameMain.LuaCs.Networking.NetMessageReceived(inc, header, connectedClient);
switch (header)
{
@@ -2429,7 +2429,7 @@ namespace Barotrauma.Networking
{
if (!(GameMain.GameSession?.GameMode is CampaignMode))
{
- if (!GameMain.LuaCs.game.overrideTraitors)
+ if (!GameMain.LuaCs.Game.overrideTraitors)
{
TraitorManager = new TraitorManager();
TraitorManager.Start(this);
@@ -3133,7 +3133,7 @@ namespace Barotrauma.Networking
senderName = null;
senderCharacter = null;
}
- else if (type == ChatMessageType.Radio && !GameMain.LuaCs.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);
diff --git a/Barotrauma/BarotraumaServer/ServerSource/Networking/RespawnManager.cs b/Barotrauma/BarotraumaServer/ServerSource/Networking/RespawnManager.cs
index 7e607d936..0bca511b4 100644
--- a/Barotrauma/BarotraumaServer/ServerSource/Networking/RespawnManager.cs
+++ b/Barotrauma/BarotraumaServer/ServerSource/Networking/RespawnManager.cs
@@ -25,7 +25,7 @@ namespace Barotrauma.Networking
MultiPlayerCampaign campaign = GameMain.GameSession.GameMode as MultiPlayerCampaign;
foreach (Client c in networkMember.ConnectedClients)
{
- if (GameMain.LuaCs.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.LuaCs.game.overrideRespawnSub)
+ if (GameMain.LuaCs.Game.overrideRespawnSub)
{
characterToRespawnCount = 0;
}
@@ -136,7 +136,7 @@ namespace Barotrauma.Networking
{
if (RespawnShuttle != null)
{
- if (!GameMain.LuaCs.game.overrideRespawnSub)
+ if (!GameMain.LuaCs.Game.overrideRespawnSub)
{
RespawnShuttle.Velocity = Vector2.Zero;
}
@@ -185,7 +185,7 @@ namespace Barotrauma.Networking
{
if (RespawnShuttle != null)
{
- if (GameMain.LuaCs.game.overrideRespawnSub)
+ if (GameMain.LuaCs.Game.overrideRespawnSub)
{
CurrentState = State.Waiting;
}
@@ -206,7 +206,7 @@ namespace Barotrauma.Networking
Vector2 spawnPos = FindSpawnPos();
- if (!GameMain.LuaCs.game.overrideRespawnSub)
+ if (!GameMain.LuaCs.Game.overrideRespawnSub)
{
RespawnCharacters(spawnPos);
}
diff --git a/Barotrauma/BarotraumaServer/WindowsServer.csproj b/Barotrauma/BarotraumaServer/WindowsServer.csproj
index 2483ee4bf..444720c82 100644
--- a/Barotrauma/BarotraumaServer/WindowsServer.csproj
+++ b/Barotrauma/BarotraumaServer/WindowsServer.csproj
@@ -13,6 +13,7 @@
..\BarotraumaShared\Icon.ico
Debug;Release;Unstable
;NU1605;CS0114;CS0108CS8597;CS8600;CS8601;CS8602;CS8603;CS8604;CS8605;CS8606;CS8607;CS8608;CS8609;CS8610;CS8611;CS8612;CS8613;CS8614;CS8615;CS8616;CS8617;CS8618;CS8619;CS8620;CS8621;CS8622;CS8624;CS8625;CS8626;CS8629;CS8631;CS8632;CS8633;CS8634;CS8638;CS8643;CS8644;CS8645;CS8653;CS8654;CS8655;CS8667;CS8669;CS8670;CS8714;CS8717;CS8765
+ en
@@ -84,9 +85,8 @@
-
-
+
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Characters/Character.cs b/Barotrauma/BarotraumaShared/SharedSource/Characters/Character.cs
index ac92e6789..7af59a771 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Characters/Character.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Characters/Character.cs
@@ -2723,13 +2723,13 @@ namespace Barotrauma
{
for (int i = 0; i < CharacterList.Count; i++)
{
- if (GameMain.LuaCs.game.updatePriorityCharacters.Contains(CharacterList[i])) continue;
+ if (GameMain.LuaCs.Game.updatePriorityCharacters.Contains(CharacterList[i])) continue;
CharacterList[i].Update(deltaTime * CharacterUpdateInterval, cam);
}
}
- foreach (Character character in GameMain.LuaCs.game.updatePriorityCharacters)
+ foreach (Character character in GameMain.LuaCs.Game.updatePriorityCharacters)
{
if (character.Removed) continue;
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Characters/Health/Afflictions/AfflictionHusk.cs b/Barotrauma/BarotraumaShared/SharedSource/Characters/Health/Afflictions/AfflictionHusk.cs
index 2ab56fc44..321892133 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Characters/Health/Afflictions/AfflictionHusk.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Characters/Health/Afflictions/AfflictionHusk.cs
@@ -302,7 +302,7 @@ namespace Barotrauma
if (Prefab is AfflictionPrefabHusk huskPrefab)
{
- if (huskPrefab.ControlHusk || GameMain.LuaCs.game.enableControlHusk)
+ if (huskPrefab.ControlHusk || GameMain.LuaCs.Game.enableControlHusk)
{
#if SERVER
if (client != null)
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/WifiComponent.cs b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/WifiComponent.cs
index 74a2ebd46..ed7af119d 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/WifiComponent.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/WifiComponent.cs
@@ -74,7 +74,7 @@ namespace Barotrauma.Items.Components
#if SERVER
get
{
- if(GameMain.LuaCs.game.allowWifiChat) return true;
+ if(GameMain.LuaCs.Game.allowWifiChat) return true;
return linkToChat;
}
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Cs/ACsMod.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/ACsMod.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Cs/ACsMod.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/ACsMod.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Cs/CsScriptFilter.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptFilter.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Cs/CsScriptFilter.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptFilter.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Cs/CsScriptLoader.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Cs/CsScriptLoader.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaBarotraumaAdditions.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaBarotraumaAdditions.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Lua/LuaBarotraumaAdditions.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaBarotraumaAdditions.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaGame.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaGame.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaGame.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaGame.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaResult.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaResult.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaResult.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaResult.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaTypes.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaTypes.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaTypes.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaTypes.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaUserData.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaUserData.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaUserData.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaUserData.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaCustomConverters.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Lua/LuaCustomConverters.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaCustomConverters.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaDocs.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaDocs.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Lua/LuaDocs.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaDocs.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaProxy.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaProxy.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Lua/LuaProxy.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaProxy.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaScriptLoader.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaScriptLoader.cs
similarity index 100%
rename from Barotrauma/BarotraumaShared/SharedSource/Lua/LuaScriptLoader.cs
rename to Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaScriptLoader.cs
diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsHook.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsHook.cs
index f1efbb405..11933eee5 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsHook.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsHook.cs
@@ -47,6 +47,8 @@ namespace Barotrauma
}
}
+ private Harmony harmony;
+
private Dictionary> hookFunctions;
private Dictionary> hookPrefixMethods;
@@ -54,7 +56,11 @@ namespace Barotrauma
private Queue<(float, CsAction, object[])> queuedFunctionCalls;
- private LuaCsHook() {
+ private static LuaCsHook instance;
+
+ public LuaCsHook() {
+ instance = this;
+
hookFunctions = new Dictionary>();
hookPrefixMethods = new Dictionary>();
@@ -63,10 +69,12 @@ namespace Barotrauma
queuedFunctionCalls = new Queue<(float, CsAction, object[])>();
}
- private static LuaCsHook _inst;
- static LuaCsHook() => _inst = new LuaCsHook();
- public static LuaCsHook Instance { get => _inst; }
+ public void Initialize()
+ {
+ harmony = new Harmony("LuaCsForBarotrauma");
+ }
+
private static void _hookLuaCsPatch(MethodBase __originalMethod, object[] __args, object __instance, out object result, HookMethodType hookMethodType)
{
result = null;
@@ -81,10 +89,10 @@ namespace Barotrauma
switch (hookMethodType)
{
case HookMethodType.Before:
- _inst.hookPrefixMethods.TryGetValue(funcAddr, out methodSet);
+ instance.hookPrefixMethods.TryGetValue(funcAddr, out methodSet);
break;
case HookMethodType.After:
- _inst.hookPostfixMethods.TryGetValue(funcAddr, out methodSet);
+ instance.hookPostfixMethods.TryGetValue(funcAddr, out methodSet);
break;
default:
break;
@@ -196,7 +204,6 @@ namespace Barotrauma
public void HookMethod(string identifier, MethodInfo method, CsPatch patch, HookMethodType hookType = HookMethodType.Before, ACsMod owner = null)
{
- Console.WriteLine($" --== '{identifier}' {method.ReflectedType.Name}.{method.Name} -> {method.ReturnType.Name} | {hookType.ToString("G")}");
if (identifier == null || method == null || patch == null) throw new ArgumentNullException("Identifier, Method and Patch arguments must not be null.");
var funcAddr = ((long)method.MethodHandle.GetFunctionPointer());
@@ -208,14 +215,14 @@ namespace Barotrauma
{
if (patches == null || patches.Prefixes == null || patches.Prefixes.Find(patch => patch.PatchMethod == _miHookLuaCsPatchRetPrefix) == null)
{
- GameMain.LuaCs.harmony.Patch(method, prefix: new HarmonyMethod(_miHookLuaCsPatchRetPrefix));
+ harmony.Patch(method, prefix: new HarmonyMethod(_miHookLuaCsPatchRetPrefix));
}
}
else
{
if (patches == null || patches.Prefixes == null || patches.Prefixes.Find(patch => patch.PatchMethod == _miHookLuaCsPatchPrefix) == null)
{
- GameMain.LuaCs.harmony.Patch(method, prefix: new HarmonyMethod(_miHookLuaCsPatchPrefix));
+ harmony.Patch(method, prefix: new HarmonyMethod(_miHookLuaCsPatchPrefix));
}
}
@@ -236,14 +243,14 @@ namespace Barotrauma
{
if (patches == null || patches.Postfixes == null || patches.Postfixes.Find(patch => patch.PatchMethod == _miHookLuaCsPatchRetPostfix) == null)
{
- GameMain.LuaCs.harmony.Patch(method, postfix: new HarmonyMethod(_miHookLuaCsPatchRetPostfix));
+ harmony.Patch(method, postfix: new HarmonyMethod(_miHookLuaCsPatchRetPostfix));
}
}
else
{
if (patches == null || patches.Postfixes == null || patches.Postfixes.Find(patch => patch.PatchMethod == _miHookLuaCsPatchPostfix) == null)
{
- GameMain.LuaCs.harmony.Patch(method, postfix: new HarmonyMethod(_miHookLuaCsPatchPostfix));
+ harmony.Patch(method, postfix: new HarmonyMethod(_miHookLuaCsPatchPostfix));
}
}
@@ -312,7 +319,6 @@ namespace Barotrauma
{
name = name.ToLower();
- LuaCsSetup.PrintLogMessage($"'{name}' | '{hookName}'");
if (name == null || hookName == null || hook == null) throw new ArgumentNullException("Names and Hook must not be null");
if (!hookFunctions.ContainsKey(name))
@@ -340,7 +346,7 @@ namespace Barotrauma
queuedFunctionCalls.Clear();
- GameMain.LuaCs.harmony?.UnpatchAll();
+ harmony?.UnpatchAll();
}
diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs
index b921d003c..6f199bc43 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs
@@ -24,19 +24,18 @@ namespace Barotrauma
internal LuaCsHook Hook { get; private set; }
- public LuaGame game;
- public LuaCsNetworking networking;
- public Harmony harmony;
+ public LuaGame Game;
+ public LuaCsNetworking Networking;
- public LuaScriptLoader luaScriptLoader;
- public CsScriptLoader netScriptLoader;
+ public LuaScriptLoader LuaScriptLoader;
+ public CsScriptLoader NetScriptLoader;
public LuaCsSetup()
{
- Hook = LuaCsHook.Instance;
+ Hook = new LuaCsHook();
- game = new LuaGame();
- networking = new LuaCsNetworking();
+ Game = new LuaGame();
+ Networking = new LuaCsNetworking();
}
@@ -265,7 +264,7 @@ namespace Barotrauma
public void SetModulePaths(string[] str)
{
- luaScriptLoader.ModulePaths = str;
+ LuaScriptLoader.ModulePaths = str;
}
public void Update()
@@ -279,31 +278,12 @@ namespace Barotrauma
ACsMod.LoadedMods.Clear();
Hook?.Call("stop");
- game?.Stop();
- //harmony?.UnpatchAll();
+ Game?.Stop();
- //Hook = new LuaCsHook();
Hook.Clear();
- game = new LuaGame();
- networking = new LuaCsNetworking();
- luaScriptLoader = null;
- }
-
- private void InitCs()
- {
- netScriptLoader = new CsScriptLoader(this);
- netScriptLoader.SearchFolders();
- if (netScriptLoader == null) throw new Exception("LuaCsSetup was not properly initialized.");
- try
- {
- var modTypes = netScriptLoader.Compile();
- //modTypes.ForEach(t => ACsMod.CreateInstance(t));
- modTypes.ForEach(t => t.GetConstructor(new Type[] { })?.Invoke(null));
- }
- catch (Exception ex)
- {
- PrintMessage(ex);
- }
+ Game = new LuaGame();
+ Networking = new LuaCsNetworking();
+ LuaScriptLoader = null;
}
public void Initialize()
@@ -312,32 +292,27 @@ namespace Barotrauma
PrintMessage("LuaCs! Version " + AssemblyInfo.GitRevision);
- luaScriptLoader = new LuaScriptLoader();
- luaScriptLoader.ModulePaths = new string[] { };
- InitCs();
+ LuaScriptLoader = new LuaScriptLoader();
+ LuaScriptLoader.ModulePaths = new string[] { };
+
+ NetScriptLoader = new CsScriptLoader(this);
LuaCustomConverters.RegisterAll();
lua = new Script(CoreModules.Preset_SoftSandbox | CoreModules.Debug);
lua.Options.DebugPrint = PrintMessage;
- lua.Options.ScriptLoader = luaScriptLoader;
+ lua.Options.ScriptLoader = LuaScriptLoader;
- harmony = new Harmony("com.LuaForBarotrauma");
- harmony.UnpatchAll();
+ Hook.Initialize();
+ Game = new LuaGame();
+ Networking = new LuaCsNetworking();
- //Hook = new LuaCsHook();
- game = new LuaGame();
- networking = new LuaCsNetworking();
-
- //UserData.RegisterType();
UserData.RegisterType();
UserData.RegisterType();
UserData.RegisterType();
UserData.RegisterType();
UserData.RegisterType();
UserData.RegisterType();
-
- lua.Globals["printerror"] = (Action