- respawn, fabricator & deconstructor logging
- fixed listbox child hiding 4 real now - dockingport logging fix (name of the sub instead of submarine.ToString)
This commit is contained in:
@@ -389,7 +389,7 @@ namespace Barotrauma
|
|||||||
for (int i = 0; i < children.Count; i++)
|
for (int i = 0; i < children.Count; i++)
|
||||||
{
|
{
|
||||||
GUIComponent child = children[i];
|
GUIComponent child = children[i];
|
||||||
if (child == frame) continue;
|
if (child == frame || !child.Visible) continue;
|
||||||
|
|
||||||
if (!IsChildVisible(child))
|
if (!IsChildVisible(child))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -752,17 +752,17 @@ namespace Barotrauma.Items.Components
|
|||||||
if (docked)
|
if (docked)
|
||||||
{
|
{
|
||||||
if (item.Submarine != null && dockingTarget?.item?.Submarine != null)
|
if (item.Submarine != null && dockingTarget?.item?.Submarine != null)
|
||||||
GameServer.Log(sender.Name + " docked " + item.Submarine.Name + " to " + dockingTarget.item.Submarine, ServerLog.MessageType.ItemInteraction);
|
GameServer.Log(sender.Name + " docked " + item.Submarine.Name + " to " + dockingTarget.item.Submarine.Name, ServerLog.MessageType.ItemInteraction);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (item.Submarine != null && prevDockingTarget?.item?.Submarine != null)
|
if (item.Submarine != null && prevDockingTarget?.item?.Submarine != null)
|
||||||
GameServer.Log(sender.Name + " undocked " + item.Submarine.Name + " from " + prevDockingTarget.item.Submarine, ServerLog.MessageType.ItemInteraction);
|
GameServer.Log(sender.Name + " undocked " + item.Submarine.Name + " from " + prevDockingTarget.item.Submarine.Name, ServerLog.MessageType.ItemInteraction);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c, object[] extraData = null)
|
public void ServerWrite(Lidgren.Network.NetBuffer msg, Client c, object[] extraData = null)
|
||||||
{
|
{
|
||||||
msg.Write(docked);
|
msg.Write(docked);
|
||||||
|
|
||||||
|
|||||||
@@ -105,23 +105,23 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
private bool ToggleActive(GUIButton button, object obj)
|
private bool ToggleActive(GUIButton button, object obj)
|
||||||
{
|
{
|
||||||
SetActive(!IsActive);
|
SetActive(!IsActive, Character.Controlled);
|
||||||
|
|
||||||
currPowerConsumption = IsActive ? powerConsumption : 0.0f;
|
currPowerConsumption = IsActive ? powerConsumption : 0.0f;
|
||||||
|
|
||||||
if (GameMain.Server != null)
|
if (GameMain.Server != null)
|
||||||
{
|
{
|
||||||
item.CreateServerEvent<Deconstructor>(this);
|
item.CreateServerEvent(this);
|
||||||
}
|
}
|
||||||
else if (GameMain.Client != null)
|
else if (GameMain.Client != null)
|
||||||
{
|
{
|
||||||
item.CreateClientEvent<Deconstructor>(this);
|
item.CreateClientEvent(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetActive(bool active)
|
private void SetActive(bool active, Character user = null)
|
||||||
{
|
{
|
||||||
container = item.GetComponent<ItemContainer>();
|
container = item.GetComponent<ItemContainer>();
|
||||||
if (container == null)
|
if (container == null)
|
||||||
@@ -134,6 +134,11 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
IsActive = active;
|
IsActive = active;
|
||||||
|
|
||||||
|
if (user != null)
|
||||||
|
{
|
||||||
|
GameServer.Log(user.Name + (IsActive ? " activated " : " deactivated ") + item.Name, ServerLog.MessageType.ItemInteraction);
|
||||||
|
}
|
||||||
|
|
||||||
if (!IsActive)
|
if (!IsActive)
|
||||||
{
|
{
|
||||||
progressBar.BarSize = 0.0f;
|
progressBar.BarSize = 0.0f;
|
||||||
@@ -160,11 +165,11 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
bool active = msg.ReadBoolean();
|
bool active = msg.ReadBoolean();
|
||||||
|
|
||||||
item.CreateServerEvent<Deconstructor>(this);
|
item.CreateServerEvent(this);
|
||||||
|
|
||||||
if (item.CanClientAccess(c))
|
if (item.CanClientAccess(c))
|
||||||
{
|
{
|
||||||
SetActive(active);
|
SetActive(active, c.Character);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -282,29 +282,34 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
if (fabricatedItem == null)
|
if (fabricatedItem == null)
|
||||||
{
|
{
|
||||||
StartFabricating(obj as FabricableItem);
|
StartFabricating(obj as FabricableItem, Character.Controlled);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CancelFabricating();
|
CancelFabricating(Character.Controlled);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GameMain.Server != null)
|
if (GameMain.Server != null)
|
||||||
{
|
{
|
||||||
item.CreateServerEvent<Fabricator>(this);
|
item.CreateServerEvent(this);
|
||||||
}
|
}
|
||||||
else if (GameMain.Client != null)
|
else if (GameMain.Client != null)
|
||||||
{
|
{
|
||||||
item.CreateClientEvent<Fabricator>(this);
|
item.CreateClientEvent(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StartFabricating(FabricableItem selectedItem)
|
private void StartFabricating(FabricableItem selectedItem, Character user = null)
|
||||||
{
|
{
|
||||||
if (selectedItem == null) return;
|
if (selectedItem == null) return;
|
||||||
|
|
||||||
|
if (user != null)
|
||||||
|
{
|
||||||
|
GameServer.Log(user.Name + " started fabricating " + selectedItem.TargetItem.Name + " in " + item.Name, ServerLog.MessageType.ItemInteraction);
|
||||||
|
}
|
||||||
|
|
||||||
itemList.Enabled = false;
|
itemList.Enabled = false;
|
||||||
|
|
||||||
activateButton.Text = "Cancel";
|
activateButton.Text = "Cancel";
|
||||||
@@ -321,8 +326,13 @@ namespace Barotrauma.Items.Components
|
|||||||
currPowerConsumption = powerConsumption;
|
currPowerConsumption = powerConsumption;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CancelFabricating()
|
private void CancelFabricating(Character user = null)
|
||||||
{
|
{
|
||||||
|
if (fabricatedItem != null && user != null)
|
||||||
|
{
|
||||||
|
GameServer.Log(user.Name + " cancelled the fabrication of " + fabricatedItem.TargetItem.Name + " in " + item.Name, ServerLog.MessageType.ItemInteraction);
|
||||||
|
}
|
||||||
|
|
||||||
itemList.Enabled = true;
|
itemList.Enabled = true;
|
||||||
IsActive = false;
|
IsActive = false;
|
||||||
fabricatedItem = null;
|
fabricatedItem = null;
|
||||||
@@ -387,7 +397,7 @@ namespace Barotrauma.Items.Components
|
|||||||
Entity.Spawner.AddToSpawnQueue(fabricatedItem.TargetItem, containers[1].Inventory);
|
Entity.Spawner.AddToSpawnQueue(fabricatedItem.TargetItem, containers[1].Inventory);
|
||||||
}
|
}
|
||||||
|
|
||||||
CancelFabricating();
|
CancelFabricating(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DrawHUD(SpriteBatch spriteBatch, Character character)
|
public override void DrawHUD(SpriteBatch spriteBatch, Character character)
|
||||||
@@ -464,13 +474,13 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
int itemIndex = msg.ReadRangedInteger(-1, fabricableItems.Count - 1);
|
int itemIndex = msg.ReadRangedInteger(-1, fabricableItems.Count - 1);
|
||||||
|
|
||||||
item.CreateServerEvent<Fabricator>(this);
|
item.CreateServerEvent(this);
|
||||||
|
|
||||||
if (!item.CanClientAccess(c)) return;
|
if (!item.CanClientAccess(c)) return;
|
||||||
|
|
||||||
if (itemIndex == -1)
|
if (itemIndex == -1)
|
||||||
{
|
{
|
||||||
CancelFabricating();
|
CancelFabricating(c.Character);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -479,7 +489,7 @@ namespace Barotrauma.Items.Components
|
|||||||
if (itemIndex < 0 || itemIndex >= fabricableItems.Count) return;
|
if (itemIndex < 0 || itemIndex >= fabricableItems.Count) return;
|
||||||
|
|
||||||
SelectItem(null, fabricableItems[itemIndex]);
|
SelectItem(null, fabricableItems[itemIndex]);
|
||||||
StartFabricating(fabricableItems[itemIndex]);
|
StartFabricating(fabricableItems[itemIndex], c.Character);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ using Microsoft.Xna.Framework;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Barotrauma.Networking
|
namespace Barotrauma.Networking
|
||||||
{
|
{
|
||||||
@@ -202,6 +200,7 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
if (shuttleTransportTimer <= 0.0f)
|
if (shuttleTransportTimer <= 0.0f)
|
||||||
{
|
{
|
||||||
|
GameServer.Log("The respawn shuttle is leaving.", ServerLog.MessageType.ServerMessage);
|
||||||
state = State.Returning;
|
state = State.Returning;
|
||||||
|
|
||||||
server.CreateEntityEvent(this);
|
server.CreateEntityEvent(this);
|
||||||
@@ -269,6 +268,7 @@ namespace Barotrauma.Networking
|
|||||||
ResetShuttle();
|
ResetShuttle();
|
||||||
|
|
||||||
state = State.Waiting;
|
state = State.Waiting;
|
||||||
|
GameServer.Log("The respawn shuttle has left.", ServerLog.MessageType.ServerMessage);
|
||||||
server.CreateEntityEvent(this);
|
server.CreateEntityEvent(this);
|
||||||
|
|
||||||
respawnTimer = respawnInterval;
|
respawnTimer = respawnInterval;
|
||||||
@@ -289,6 +289,8 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
shuttleSteering.TargetVelocity = Vector2.Zero;
|
shuttleSteering.TargetVelocity = Vector2.Zero;
|
||||||
|
|
||||||
|
GameServer.Log("Dispatching the respawn shuttle.", ServerLog.MessageType.ServerMessage);
|
||||||
|
|
||||||
RespawnCharacters();
|
RespawnCharacters();
|
||||||
|
|
||||||
CoroutineManager.StopCoroutines("forcepos");
|
CoroutineManager.StopCoroutines("forcepos");
|
||||||
@@ -404,6 +406,8 @@ namespace Barotrauma.Networking
|
|||||||
List<CharacterInfo> characterInfos = clients.Select(c => c.characterInfo).ToList();
|
List<CharacterInfo> characterInfos = clients.Select(c => c.characterInfo).ToList();
|
||||||
if (server.Character != null && server.Character.IsDead) characterInfos.Add(server.CharacterInfo);
|
if (server.Character != null && server.Character.IsDead) characterInfos.Add(server.CharacterInfo);
|
||||||
|
|
||||||
|
GameServer.Log("Respawning characters: "+string.Join(", ", characterInfos.Select(ci => ci.Name)), ServerLog.MessageType.ServerMessage);
|
||||||
|
|
||||||
server.AssignJobs(clients, server.Character != null && server.Character.IsDead);
|
server.AssignJobs(clients, server.Character != null && server.Character.IsDead);
|
||||||
foreach (Client c in clients)
|
foreach (Client c in clients)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user