diff --git a/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs b/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs
index b75b8e123..dcb4ae206 100644
--- a/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs
+++ b/Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen.cs
@@ -955,8 +955,7 @@ namespace Barotrauma
{
FileName = filename,
Arguments = arguments,
- //#if !DEBUG
-#if false
+#if !DEBUG
CreateNoWindow = true,
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Hidden
diff --git a/Barotrauma/BarotraumaClient/WindowsClient.csproj b/Barotrauma/BarotraumaClient/WindowsClient.csproj
index 849717ff9..b064a914d 100644
--- a/Barotrauma/BarotraumaClient/WindowsClient.csproj
+++ b/Barotrauma/BarotraumaClient/WindowsClient.csproj
@@ -124,7 +124,6 @@
-
diff --git a/Barotrauma/BarotraumaServer/ServerSource/Items/Components/Signal/CustomInterface.cs b/Barotrauma/BarotraumaServer/ServerSource/Items/Components/Signal/CustomInterface.cs
index 26d6322a0..8da366712 100644
--- a/Barotrauma/BarotraumaServer/ServerSource/Items/Components/Signal/CustomInterface.cs
+++ b/Barotrauma/BarotraumaServer/ServerSource/Items/Components/Signal/CustomInterface.cs
@@ -5,19 +5,6 @@ namespace Barotrauma.Items.Components
{
partial class CustomInterface : ItemComponent, IClientSerializable, IServerSerializable
{
- public void UpdateClients()
- {
-
- //notify all clients of the new state
- GameMain.Server.CreateEntityEvent(item, new object[]
- {
- NetEntityEvent.Type.ComponentState,
- item.GetComponentIndex(this)
- });
-
- item.CreateServerEvent(this);
- }
-
public void ServerRead(ClientNetObject type, IReadMessage msg, Client c)
{
bool[] elementStates = new bool[customInterfaceElementList.Count];
@@ -83,7 +70,7 @@ namespace Barotrauma.Items.Components
{
msg.Write(customInterfaceElementList[i].Signal);
}
- else if(customInterfaceElementList[i].ContinuousSignal)
+ else if (customInterfaceElementList[i].ContinuousSignal)
{
msg.Write(customInterfaceElementList[i].State);
}
@@ -94,4 +81,4 @@ namespace Barotrauma.Items.Components
}
}
}
-}
+}
\ No newline at end of file
diff --git a/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaBarotraumaAdditions.cs b/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaBarotraumaAdditions.cs
index c03af4166..d2c5d0783 100644
--- a/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaBarotraumaAdditions.cs
+++ b/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaBarotraumaAdditions.cs
@@ -1,7 +1,8 @@
using System;
using System.Collections.Generic;
using System.Text;
-
+using MoonSharp.Interpreter;
+using Microsoft.Xna.Framework;
namespace Barotrauma.Networking
{
@@ -52,6 +53,8 @@ namespace Barotrauma.Networking
namespace Barotrauma
{
+ using Barotrauma.Networking;
+
partial class CharacterInfo
{
public static CharacterInfo Create(string speciesName, string name = "", JobPrefab jobPrefab = null, string ragdollFileName = null, int variant = 0, Rand.RandSync randSync = Rand.RandSync.Unsynced, string npcIdentifier = "")
@@ -59,4 +62,69 @@ namespace Barotrauma
return new CharacterInfo(speciesName, name, name, jobPrefab, ragdollFileName, variant, randSync, npcIdentifier);
}
}
+
+ partial class Item
+ {
+ public void AddToRemoveQueue(Item item)
+ {
+ EntitySpawner.Spawner.AddToRemoveQueue(item);
+ }
+
+ }
+
+ partial class ItemPrefab
+ {
+ public void AddToSpawnQueue(ItemPrefab itemPrefab, Vector2 position, object spawned = null)
+ {
+ EntitySpawner.Spawner.AddToSpawnQueue(itemPrefab, position, onSpawned: (Item item) => {
+ GameMain.Lua.CallFunction(spawned, new object[] { item });
+ });
+ }
+
+ public void AddToSpawnQueue(ItemPrefab itemPrefab, Inventory inventory, object spawned = null)
+ {
+ EntitySpawner.Spawner.AddToSpawnQueue(itemPrefab, inventory, onSpawned: (Item item) => {
+ GameMain.Lua.CallFunction(spawned, new object[] { item });
+ });
+ }
+
+ public static ItemPrefab GetItemPrefab(string itemNameOrId)
+ {
+ ItemPrefab itemPrefab =
+ (MapEntityPrefab.Find(itemNameOrId, identifier: null, showErrorMessages: false) ??
+ MapEntityPrefab.Find(null, identifier: itemNameOrId, showErrorMessages: false)) as ItemPrefab;
+
+ return itemPrefab;
+ }
+ }
+
+}
+
+namespace Barotrauma.Items.Components
+{
+ using Barotrauma.Networking;
+
+ partial class CustomInterface
+ {
+ public void UpdateClients()
+ {
+
+ //notify all clients of the new state
+ GameMain.Server.CreateEntityEvent(item, new object[]
+ {
+ NetEntityEvent.Type.ComponentState,
+ item.GetComponentIndex(this)
+ });
+
+ item.CreateServerEvent(this);
+ }
+ }
+
+ partial struct Signal
+ {
+ public static Signal Create(string value, int stepsTaken = 0, Character sender = null, Item source = null, float power = 0.0f, float strength = 1.0f)
+ {
+ return new Signal(value, stepsTaken, sender, source, power, strength);
+ }
+ }
}
\ No newline at end of file
diff --git a/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaSetup.cs b/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaSetup.cs
index 070b58a8b..2d8675e40 100644
--- a/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaSetup.cs
+++ b/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaSetup.cs
@@ -143,6 +143,11 @@ namespace Barotrauma
}
+ public object CallFunction(object function, object[] arguments)
+ {
+ return lua.Call(function, arguments);
+ }
+
public void SetModulePaths(string[] str)
{
luaScriptLoader.ModulePaths = str;
diff --git a/Barotrauma/BarotraumaServer/WindowsServer.csproj b/Barotrauma/BarotraumaServer/WindowsServer.csproj
index e037ff77e..9de640ea1 100644
--- a/Barotrauma/BarotraumaServer/WindowsServer.csproj
+++ b/Barotrauma/BarotraumaServer/WindowsServer.csproj
@@ -82,7 +82,6 @@
-
diff --git a/Barotrauma/BarotraumaShared/SharedSource/GameSession/GameModes/GameMode.cs b/Barotrauma/BarotraumaShared/SharedSource/GameSession/GameModes/GameMode.cs
index 435fb195b..4b36f085a 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/GameSession/GameModes/GameMode.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/GameSession/GameModes/GameMode.cs
@@ -1,9 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
-#if SERVER
-using MoonSharp.Interpreter;
-#endif
namespace Barotrauma
{
@@ -69,18 +66,14 @@ namespace Barotrauma
}
public virtual void Update(float deltaTime)
- {
- CrewManager?.Update(deltaTime);
+ {
+ CrewManager?.Update(deltaTime);
+ }
-#if SERVER
- GameMain.Lua.hook.Call("update", new object[] { deltaTime });
-#endif
- }
+ public virtual void End(CampaignMode.TransitionType transitionType = CampaignMode.TransitionType.None)
+ {
+ }
- public virtual void End(CampaignMode.TransitionType transitionType = CampaignMode.TransitionType.None)
- {
- }
-
- public virtual void Remove() { }
- }
-}
+ public virtual void Remove() { }
+ }
+}
\ No newline at end of file
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/Signal.cs b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/Signal.cs
index b04686f1b..96a4f2a65 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/Signal.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/Signal.cs
@@ -1,6 +1,6 @@
namespace Barotrauma.Items.Components
{
- struct Signal
+ partial struct Signal
{
public string value;
public int stepsTaken;