Files
RobustToolbox/Robust.Client/GameObjects/ClientEntityNetworkManager.cs
T
SilverandGitHub 25926a17b7 Renames SS14.* to Robust.* (#793)
RobustToolbox projects should be named Robust.* 

This PR changes the RobustToolbox projects from SS14.* to Robust.*

Updates SS14.* prefixes/namespaces to Robust.*
Updates SpaceStation14.sln to RobustToolbox.sln
Updates MSBUILD/SS14.* to MSBUILD/Robust.*
Updates CSProject and MSBuild references for the above
Updates git_helper.py
Removes Runserver and Runclient as they are unusable
2019-04-15 20:24:59 -06:00

85 lines
3.1 KiB
C#

using System;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC;
using Robust.Shared.Network.Messages;
namespace Robust.Client.GameObjects
{
public class ClientEntityNetworkManager : IEntityNetworkManager
{
[Dependency] private readonly IClientNetManager _network;
[Dependency] private readonly IEntitySystemManager _entitySystemManager;
/// <summary>
/// Sends a message to the relevant system(s) server side.
/// </summary>
public void SendSystemNetworkMessage(EntitySystemMessage message)
{
var msg = _network.CreateNetMessage<MsgEntity>();
msg.Type = EntityMessageType.SystemMessage;
msg.SystemMessage = message;
_network.ClientSendMessage(msg);
}
public void SendSystemNetworkMessage(EntitySystemMessage message, INetChannel channel)
{
throw new NotSupportedException();
}
/// <inheritdoc />
public void SendDirectedComponentNetworkMessage(INetChannel channel, IEntity entity, IComponent component, ComponentMessage message)
{
SendComponentNetworkMessage(entity, component, message);
}
/// <inheritdoc />
public void SendComponentNetworkMessage(IEntity entity, IComponent component, ComponentMessage message)
{
if (!component.NetID.HasValue)
throw new ArgumentException($"Component {component.Name} does not have a NetID.", nameof(component));
var msg = _network.CreateNetMessage<MsgEntity>();
msg.Type = EntityMessageType.ComponentMessage;
msg.EntityUid = entity.Uid;
msg.NetId = component.NetID.Value;
msg.ComponentMessage = message;
_network.ClientSendMessage(msg);
}
/// <inheritdoc />
public void SendEntityNetworkMessage(IEntity entity, EntityEventArgs message)
{
var msg = _network.CreateNetMessage<MsgEntity>();
msg.Type = EntityMessageType.EntityMessage;
msg.EntityUid = entity.Uid;
msg.EntityMessage = message;
_network.ClientSendMessage(msg);
}
/// <summary>
/// Converts a raw NetIncomingMessage to an IncomingEntityMessage object
/// </summary>
/// <param name="message">raw network message</param>
/// <returns>An IncomingEntityMessage object</returns>
public IncomingEntityMessage HandleEntityNetworkMessage(MsgEntity message)
{
switch (message.Type)
{
case EntityMessageType.ComponentMessage:
return new IncomingEntityMessage(message);
case EntityMessageType.EntityMessage:
// TODO: Handle this.
break;
case EntityMessageType.SystemMessage:
_entitySystemManager.HandleSystemMessage(message);
break;
}
return null;
}
}
}