Merge branches '20-02-22-eventbus-submodule' and 'eventbus'

This commit is contained in:
Pieter-Jan Briers
2020-02-22 20:03:53 +01:00
20 changed files with 265 additions and 330 deletions

View File

@@ -81,7 +81,7 @@ namespace Content.Client.GameObjects.Components.IconSmoothing
base.Startup(); base.Startup();
SnapGrid.OnPositionChanged += SnapGridOnPositionChanged; SnapGrid.OnPositionChanged += SnapGridOnPositionChanged;
Owner.EntityManager.EventBus.RaiseEvent(Owner, new IconSmoothDirtyEvent(null, SnapGrid.Offset, Mode)); Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, new IconSmoothDirtyEvent(Owner,null, SnapGrid.Offset, Mode));
if (Mode == IconSmoothingMode.Corners) if (Mode == IconSmoothingMode.Corners)
{ {
var state0 = $"{StateBase}0"; var state0 = $"{StateBase}0";
@@ -203,12 +203,12 @@ namespace Content.Client.GameObjects.Components.IconSmoothing
base.Shutdown(); base.Shutdown();
SnapGrid.OnPositionChanged -= SnapGridOnPositionChanged; SnapGrid.OnPositionChanged -= SnapGridOnPositionChanged;
Owner.EntityManager.EventBus.RaiseEvent(Owner, new IconSmoothDirtyEvent(_lastPosition, SnapGrid.Offset, Mode)); Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, new IconSmoothDirtyEvent(Owner, _lastPosition, SnapGrid.Offset, Mode));
} }
private void SnapGridOnPositionChanged() private void SnapGridOnPositionChanged()
{ {
Owner.EntityManager.EventBus.RaiseEvent(Owner, new IconSmoothDirtyEvent(_lastPosition, SnapGrid.Offset, Mode)); Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, new IconSmoothDirtyEvent(Owner, _lastPosition, SnapGrid.Offset, Mode));
_lastPosition = (Owner.Transform.GridID, SnapGrid.Position); _lastPosition = (Owner.Transform.GridID, SnapGrid.Position);
} }

View File

@@ -1,6 +1,7 @@
using Robust.Client.Interfaces.GameObjects.Components; using Robust.Client.Interfaces.GameObjects.Components;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.Components.Transform; using Robust.Shared.GameObjects.Components.Transform;
using Robust.Shared.Interfaces.GameObjects;
namespace Content.Client.GameObjects.Components namespace Content.Client.GameObjects.Components
{ {
@@ -32,7 +33,7 @@ namespace Content.Client.GameObjects.Components
base.Startup(); base.Startup();
_snapGridComponent.OnPositionChanged += SnapGridOnPositionChanged; _snapGridComponent.OnPositionChanged += SnapGridOnPositionChanged;
Owner.EntityManager.EventBus.RaiseEvent(Owner, new SubFloorHideDirtyEvent()); Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, new SubFloorHideDirtyEvent(Owner));
} }
/// <inheritdoc /> /// <inheritdoc />
@@ -44,14 +45,22 @@ namespace Content.Client.GameObjects.Components
return; return;
_snapGridComponent.OnPositionChanged -= SnapGridOnPositionChanged; _snapGridComponent.OnPositionChanged -= SnapGridOnPositionChanged;
Owner.EntityManager.EventBus.RaiseEvent(Owner, new SubFloorHideDirtyEvent()); Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, new SubFloorHideDirtyEvent(Owner));
} }
private void SnapGridOnPositionChanged() private void SnapGridOnPositionChanged()
{ {
Owner.EntityManager.EventBus.RaiseEvent(Owner, new SubFloorHideDirtyEvent()); Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, new SubFloorHideDirtyEvent(Owner));
} }
} }
internal sealed class SubFloorHideDirtyEvent : EntitySystemMessage { } internal sealed class SubFloorHideDirtyEvent : EntitySystemMessage
{
public IEntity Sender { get; }
public SubFloorHideDirtyEvent(IEntity sender)
{
Sender = sender;
}
}
} }

View File

@@ -31,7 +31,7 @@ namespace Content.Client.GameObjects.Components
base.Startup(); base.Startup();
_snapGrid.OnPositionChanged += SnapGridOnPositionChanged; _snapGrid.OnPositionChanged += SnapGridOnPositionChanged;
Owner.EntityManager.EventBus.RaiseEvent(Owner, new WindowSmoothDirtyEvent()); Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, new WindowSmoothDirtyEvent(Owner));
var state0 = $"{_stateBase}0"; var state0 = $"{_stateBase}0";
_sprite.LayerMapSet(CornerLayers.SE, _sprite.AddLayerState(state0)); _sprite.LayerMapSet(CornerLayers.SE, _sprite.AddLayerState(state0));
@@ -54,7 +54,7 @@ namespace Content.Client.GameObjects.Components
private void SnapGridOnPositionChanged() private void SnapGridOnPositionChanged()
{ {
Owner.EntityManager.EventBus.RaiseEvent(Owner, new WindowSmoothDirtyEvent()); Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, new WindowSmoothDirtyEvent(Owner));
} }
public void UpdateSprite() public void UpdateSprite()

View File

@@ -46,13 +46,6 @@ namespace Content.Client.GameObjects.EntitySystems
inputSys.BindMap.BindFunction(ContentKeyFunctions.ExamineEntity, new PointerInputCmdHandler(HandleExamine)); inputSys.BindMap.BindFunction(ContentKeyFunctions.ExamineEntity, new PointerInputCmdHandler(HandleExamine));
} }
public override void RegisterMessageTypes()
{
base.RegisterMessageTypes();
RegisterMessageType<ExamineSystemMessages.ExamineInfoResponseMessage>();
}
private bool HandleExamine(ICommonSession session, GridCoordinates coords, EntityUid uid) private bool HandleExamine(ICommonSession session, GridCoordinates coords, EntityUid uid)
{ {
if (!uid.IsValid() || !_entityManager.TryGetEntity(uid, out var examined)) if (!uid.IsValid() || !_entityManager.TryGetEntity(uid, out var examined))
@@ -118,7 +111,7 @@ namespace Content.Client.GameObjects.EntitySystems
{ {
_requestCancelTokenSource = new CancellationTokenSource(); _requestCancelTokenSource = new CancellationTokenSource();
response = response =
await AwaitNetMessage<ExamineSystemMessages.ExamineInfoResponseMessage>(_requestCancelTokenSource await AwaitNetworkEvent<ExamineSystemMessages.ExamineInfoResponseMessage>(_requestCancelTokenSource
.Token); .Token);
} }
catch (TaskCanceledException) catch (TaskCanceledException)

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Content.Client.GameObjects.Components.IconSmoothing; using Content.Client.GameObjects.Components.IconSmoothing;
using JetBrains.Annotations; using JetBrains.Annotations;
@@ -27,16 +27,10 @@ namespace Content.Client.GameObjects.EntitySystems
private int _generation; private int _generation;
public override void SubscribeEvents() /// <inheritdoc />
{
base.SubscribeEvents();
SubscribeEvent<IconSmoothDirtyEvent>(HandleDirtyEvent);
}
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); SubscribeLocalEvent<IconSmoothDirtyEvent>(HandleDirtyEvent);
IoCManager.InjectDependencies(this); IoCManager.InjectDependencies(this);
} }
@@ -59,11 +53,12 @@ namespace Content.Client.GameObjects.EntitySystems
} }
} }
private void HandleDirtyEvent(object sender, IconSmoothDirtyEvent ev) private void HandleDirtyEvent(IconSmoothDirtyEvent ev)
{ {
// Yes, we updates ALL smoothing entities surrounding us even if they would never smooth with us. // Yes, we updates ALL smoothing entities surrounding us even if they would never smooth with us.
// This is simpler to implement. If you want to optimize it be my guest. // This is simpler to implement. If you want to optimize it be my guest.
if (sender is IEntity senderEnt && senderEnt.IsValid() && var senderEnt = ev.Sender;
if (senderEnt.IsValid() &&
senderEnt.TryGetComponent(out IconSmoothComponent iconSmooth) senderEnt.TryGetComponent(out IconSmoothComponent iconSmooth)
&& iconSmooth.Running) && iconSmooth.Running)
{ {
@@ -143,15 +138,17 @@ namespace Content.Client.GameObjects.EntitySystems
/// </summary> /// </summary>
public sealed class IconSmoothDirtyEvent : EntitySystemMessage public sealed class IconSmoothDirtyEvent : EntitySystemMessage
{ {
public IconSmoothDirtyEvent((GridId grid, MapIndices pos)? lastPosition, SnapGridOffset offset, IconSmoothingMode mode) public IconSmoothDirtyEvent(IEntity sender, (GridId grid, MapIndices pos)? lastPosition, SnapGridOffset offset, IconSmoothingMode mode)
{ {
LastPosition = lastPosition; LastPosition = lastPosition;
Offset = offset; Offset = offset;
Mode = mode; Mode = mode;
Sender = sender;
} }
public (GridId grid, MapIndices pos)? LastPosition { get; } public (GridId grid, MapIndices pos)? LastPosition { get; }
public SnapGridOffset Offset { get; } public SnapGridOffset Offset { get; }
public IconSmoothingMode Mode { get; } public IconSmoothingMode Mode { get; }
public IEntity Sender { get; }
} }
} }

View File

@@ -5,7 +5,6 @@ using JetBrains.Annotations;
using Robust.Client.Interfaces.GameObjects.Components; using Robust.Client.Interfaces.GameObjects.Components;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.Systems; using Robust.Shared.GameObjects.Systems;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Log; using Robust.Shared.Log;
using Robust.Shared.Maths; using Robust.Shared.Maths;
@@ -24,30 +23,10 @@ namespace Content.Client.GameObjects.EntitySystems
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); SubscribeNetworkEvent<PlayMeleeWeaponAnimationMessage>(PlayWeaponArc);
EntityQuery = new TypeEntityQuery(typeof(MeleeWeaponArcAnimationComponent)); EntityQuery = new TypeEntityQuery(typeof(MeleeWeaponArcAnimationComponent));
} }
public override void RegisterMessageTypes()
{
base.RegisterMessageTypes();
RegisterMessageType<PlayMeleeWeaponAnimationMessage>();
}
public override void HandleNetMessage(INetChannel channel, EntitySystemMessage message)
{
base.HandleNetMessage(channel, message);
switch (message)
{
case PlayMeleeWeaponAnimationMessage playMsg:
PlayWeaponArc(playMsg);
break;
}
}
public override void FrameUpdate(float frameTime) public override void FrameUpdate(float frameTime)
{ {
base.FrameUpdate(frameTime); base.FrameUpdate(frameTime);

View File

@@ -3,7 +3,6 @@ using Content.Shared.Maps;
using Robust.Client.Interfaces.GameObjects.Components; using Robust.Client.Interfaces.GameObjects.Components;
using Robust.Shared.GameObjects.Components.Transform; using Robust.Shared.GameObjects.Components.Transform;
using Robust.Shared.GameObjects.Systems; using Robust.Shared.GameObjects.Systems;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Map; using Robust.Shared.Interfaces.Map;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Map; using Robust.Shared.Map;
@@ -29,18 +28,13 @@ namespace Content.Client.GameObjects.EntitySystems
_mapManager.GridChanged += MapManagerOnGridChanged; _mapManager.GridChanged += MapManagerOnGridChanged;
_mapManager.TileChanged += MapManagerOnTileChanged; _mapManager.TileChanged += MapManagerOnTileChanged;
SubscribeEvent<SubFloorHideDirtyEvent>(HandleDirtyEvent); SubscribeLocalEvent<SubFloorHideDirtyEvent>(HandleDirtyEvent);
} }
private void HandleDirtyEvent(object sender, SubFloorHideDirtyEvent ev) private void HandleDirtyEvent(SubFloorHideDirtyEvent ev)
{ {
if (!(sender is IEntity senderEnt)) var grid = _mapManager.GetGrid(ev.Sender.Transform.GridID);
{ var indices = grid.WorldToTile(ev.Sender.Transform.WorldPosition);
return;
}
var grid = _mapManager.GetGrid(senderEnt.Transform.GridID);
var indices = grid.WorldToTile(senderEnt.Transform.WorldPosition);
UpdateTile(grid, indices); UpdateTile(grid, indices);
} }

View File

@@ -9,15 +9,12 @@ using JetBrains.Annotations;
using Robust.Client.GameObjects.EntitySystems; using Robust.Client.GameObjects.EntitySystems;
using Robust.Client.Interfaces.Input; using Robust.Client.Interfaces.Input;
using Robust.Client.Interfaces.State; using Robust.Client.Interfaces.State;
using Robust.Client.Interfaces.UserInterface;
using Robust.Client.Player; using Robust.Client.Player;
using Robust.Client.State.States;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.Systems; using Robust.Shared.GameObjects.Systems;
using Robust.Shared.Input; using Robust.Shared.Input;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Log; using Robust.Shared.Log;
using Robust.Shared.Map; using Robust.Shared.Map;
@@ -43,6 +40,8 @@ namespace Content.Client.GameObjects.EntitySystems
{ {
base.Initialize(); base.Initialize();
SubscribeNetworkEvent<VerbSystemMessages.VerbsResponseMessage>(FillEntityPopup);
IoCManager.InjectDependencies(this); IoCManager.InjectDependencies(this);
var input = EntitySystemManager.GetEntitySystem<InputSystem>(); var input = EntitySystemManager.GetEntitySystem<InputSystem>();
@@ -50,24 +49,17 @@ namespace Content.Client.GameObjects.EntitySystems
new PointerInputCmdHandler(OnOpenContextMenu)); new PointerInputCmdHandler(OnOpenContextMenu));
} }
public override void RegisterMessageTypes()
{
base.RegisterMessageTypes();
RegisterMessageType<VerbSystemMessages.VerbsResponseMessage>();
}
public void OpenContextMenu(IEntity entity, ScreenCoordinates screenCoordinates) public void OpenContextMenu(IEntity entity, ScreenCoordinates screenCoordinates)
{ {
if (_currentPopup != null) if (_currentPopup != null)
{ {
_closeContextMenu(); CloseContextMenu();
} }
_currentEntity = entity.Uid; _currentEntity = entity.Uid;
_currentPopup = new VerbPopup(); _currentPopup = new VerbPopup();
_currentPopup.UserInterfaceManager.ModalRoot.AddChild(_currentPopup); _currentPopup.UserInterfaceManager.ModalRoot.AddChild(_currentPopup);
_currentPopup.OnPopupHide += _closeContextMenu; _currentPopup.OnPopupHide += CloseContextMenu;
_currentPopup.List.AddChild(new Label {Text = "Waiting on Server..."}); _currentPopup.List.AddChild(new Label {Text = "Waiting on Server..."});
RaiseNetworkEvent(new VerbSystemMessages.RequestVerbsMessage(_currentEntity)); RaiseNetworkEvent(new VerbSystemMessages.RequestVerbsMessage(_currentEntity));
@@ -81,7 +73,7 @@ namespace Content.Client.GameObjects.EntitySystems
{ {
if (_currentPopup != null) if (_currentPopup != null)
{ {
_closeContextMenu(); CloseContextMenu();
return true; return true;
} }
@@ -98,7 +90,7 @@ namespace Content.Client.GameObjects.EntitySystems
} }
_currentPopup = new VerbPopup(); _currentPopup = new VerbPopup();
_currentPopup.OnPopupHide += _closeContextMenu; _currentPopup.OnPopupHide += CloseContextMenu;
foreach (var entity in entities) foreach (var entity in entities)
{ {
var button = new Button {Text = entity.Name}; var button = new Button {Text = entity.Name};
@@ -120,19 +112,7 @@ namespace Content.Client.GameObjects.EntitySystems
OpenContextMenu(entity, new ScreenCoordinates(_inputManager.MouseScreenPosition)); OpenContextMenu(entity, new ScreenCoordinates(_inputManager.MouseScreenPosition));
} }
public override void HandleNetMessage(INetChannel channel, EntitySystemMessage message) private void FillEntityPopup(VerbSystemMessages.VerbsResponseMessage msg)
{
base.HandleNetMessage(channel, message);
switch (message)
{
case VerbSystemMessages.VerbsResponseMessage resp:
_fillEntityPopup(resp);
break;
}
}
private void _fillEntityPopup(VerbSystemMessages.VerbsResponseMessage msg)
{ {
if (_currentEntity != msg.Entity || !_entityManager.TryGetEntity(_currentEntity, out var entity)) if (_currentEntity != msg.Entity || !_entityManager.TryGetEntity(_currentEntity, out var entity))
{ {
@@ -153,7 +133,7 @@ namespace Content.Client.GameObjects.EntitySystems
button.OnPressed += _ => button.OnPressed += _ =>
{ {
RaiseNetworkEvent(new VerbSystemMessages.UseVerbMessage(_currentEntity, data.Key)); RaiseNetworkEvent(new VerbSystemMessages.UseVerbMessage(_currentEntity, data.Key));
_closeContextMenu(); CloseContextMenu();
}; };
} }
@@ -210,7 +190,7 @@ namespace Content.Client.GameObjects.EntitySystems
{ {
button.OnPressed += _ => button.OnPressed += _ =>
{ {
_closeContextMenu(); CloseContextMenu();
try try
{ {
action.Invoke(); action.Invoke();
@@ -224,7 +204,7 @@ namespace Content.Client.GameObjects.EntitySystems
return button; return button;
} }
private void _closeContextMenu() private void CloseContextMenu()
{ {
_currentPopup?.Dispose(); _currentPopup?.Dispose();
_currentPopup = null; _currentPopup = null;

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using Content.Client.GameObjects.Components; using Content.Client.GameObjects.Components;
using JetBrains.Annotations; using JetBrains.Annotations;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
@@ -16,14 +16,14 @@ namespace Content.Client.GameObjects.EntitySystems
{ {
base.Initialize(); base.Initialize();
SubscribeEvent<WindowSmoothDirtyEvent>(HandleDirtyEvent); SubscribeLocalEvent<WindowSmoothDirtyEvent>(HandleDirtyEvent);
} }
private void HandleDirtyEvent(object sender, WindowSmoothDirtyEvent ev) private void HandleDirtyEvent(WindowSmoothDirtyEvent ev)
{ {
if (sender is IEntity senderEnt && senderEnt.HasComponent<WindowComponent>()) if (ev.Sender.HasComponent<WindowComponent>())
{ {
_dirtyEntities.Enqueue(senderEnt); _dirtyEntities.Enqueue(ev.Sender);
} }
} }
@@ -50,5 +50,11 @@ namespace Content.Client.GameObjects.EntitySystems
/// </summary> /// </summary>
public sealed class WindowSmoothDirtyEvent : EntitySystemMessage public sealed class WindowSmoothDirtyEvent : EntitySystemMessage
{ {
public IEntity Sender { get; }
public WindowSmoothDirtyEvent(IEntity sender)
{
Sender = sender;
}
} }
} }

View File

@@ -168,7 +168,8 @@ namespace Content.Server.GameObjects
currentstate = threshold; currentstate = threshold;
Owner.RaiseEvent(new MobDamageStateChangedMessage(this)); EntityEventArgs toRaise = new MobDamageStateChangedMessage(this);
Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, toRaise);
} }
void IExAct.OnExplosion(ExplosionEventArgs eventArgs) void IExAct.OnExplosion(ExplosionEventArgs eventArgs)

View File

@@ -1,9 +1,7 @@
using Content.Shared.GameObjects.EntitySystemMessages; using Content.Shared.GameObjects.EntitySystemMessages;
using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.EntitySystems;
using Robust.Server.Interfaces.Player; using Robust.Server.Interfaces.Player;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Utility; using Robust.Shared.Utility;
@@ -37,17 +35,12 @@ namespace Content.Server.GameObjects.EntitySystems
{ {
base.Initialize(); base.Initialize();
SubscribeNetworkEvent<ExamineSystemMessages.RequestExamineInfoMessage>(ExamineInfoRequest);
IoCManager.InjectDependencies(this); IoCManager.InjectDependencies(this);
} }
public override void RegisterMessageTypes() private static FormattedMessage GetExamineText(IEntity entity)
{
base.RegisterMessageTypes();
RegisterMessageType<ExamineSystemMessages.RequestExamineInfoMessage>();
}
private FormattedMessage GetExamineText(IEntity entity)
{ {
var message = new FormattedMessage(); var message = new FormattedMessage();
@@ -82,11 +75,10 @@ namespace Content.Server.GameObjects.EntitySystems
return message; return message;
} }
public override void HandleNetMessage(INetChannel channel, EntitySystemMessage message) private void ExamineInfoRequest(ExamineSystemMessages.RequestExamineInfoMessage request)
{ {
base.HandleNetMessage(channel, message); var channel = request.NetChannel;
if(channel == null)
if (!(message is ExamineSystemMessages.RequestExamineInfoMessage request))
return; return;
var session = _playerManager.GetSessionByChannel(channel); var session = _playerManager.GetSessionByChannel(channel);

View File

@@ -333,7 +333,7 @@ namespace Content.Server.GameObjects.EntitySystems
private void InteractionActivate(IEntity user, IEntity used) private void InteractionActivate(IEntity user, IEntity used)
{ {
var activateMsg = new ActivateInWorldMessage(user, used); var activateMsg = new ActivateInWorldMessage(user, used);
RaiseEvent(activateMsg); RaiseLocalEvent(activateMsg);
if (activateMsg.Handled) if (activateMsg.Handled)
{ {
return; return;
@@ -509,7 +509,7 @@ namespace Content.Server.GameObjects.EntitySystems
private void InteractAfterAttack(IEntity user, IEntity weapon, GridCoordinates clickLocation) private void InteractAfterAttack(IEntity user, IEntity weapon, GridCoordinates clickLocation)
{ {
var message = new AfterAttackMessage(user, weapon, null, clickLocation); var message = new AfterAttackMessage(user, weapon, null, clickLocation);
RaiseEvent(message); RaiseLocalEvent(message);
if (message.Handled) if (message.Handled)
{ {
return; return;
@@ -531,7 +531,7 @@ namespace Content.Server.GameObjects.EntitySystems
public void Interaction(IEntity user, IEntity weapon, IEntity attacked, GridCoordinates clickLocation) public void Interaction(IEntity user, IEntity weapon, IEntity attacked, GridCoordinates clickLocation)
{ {
var attackMsg = new AttackByMessage(user, weapon, attacked, clickLocation); var attackMsg = new AttackByMessage(user, weapon, attacked, clickLocation);
RaiseEvent(attackMsg); RaiseLocalEvent(attackMsg);
if (attackMsg.Handled) if (attackMsg.Handled)
{ {
return; return;
@@ -553,7 +553,7 @@ namespace Content.Server.GameObjects.EntitySystems
} }
var afterAtkMsg = new AfterAttackMessage(user, weapon, attacked, clickLocation); var afterAtkMsg = new AfterAttackMessage(user, weapon, attacked, clickLocation);
RaiseEvent(afterAtkMsg); RaiseLocalEvent(afterAtkMsg);
if (afterAtkMsg.Handled) if (afterAtkMsg.Handled)
{ {
return; return;
@@ -579,7 +579,7 @@ namespace Content.Server.GameObjects.EntitySystems
public void Interaction(IEntity user, IEntity attacked) public void Interaction(IEntity user, IEntity attacked)
{ {
var message = new AttackHandMessage(user, attacked); var message = new AttackHandMessage(user, attacked);
RaiseEvent(message); RaiseLocalEvent(message);
if (message.Handled) if (message.Handled)
{ {
return; return;
@@ -630,7 +630,7 @@ namespace Content.Server.GameObjects.EntitySystems
} }
var useMsg = new UseInHandMessage(user, used); var useMsg = new UseInHandMessage(user, used);
RaiseEvent(useMsg); RaiseLocalEvent(useMsg);
if (useMsg.Handled) if (useMsg.Handled)
{ {
return; return;
@@ -668,7 +668,7 @@ namespace Content.Server.GameObjects.EntitySystems
public void ThrownInteraction(IEntity user, IEntity thrown) public void ThrownInteraction(IEntity user, IEntity thrown)
{ {
var throwMsg = new ThrownMessage(user, thrown); var throwMsg = new ThrownMessage(user, thrown);
RaiseEvent(throwMsg); RaiseLocalEvent(throwMsg);
if (throwMsg.Handled) if (throwMsg.Handled)
{ {
return; return;
@@ -690,7 +690,7 @@ namespace Content.Server.GameObjects.EntitySystems
public void LandInteraction(IEntity user, IEntity landing, GridCoordinates landLocation) public void LandInteraction(IEntity user, IEntity landing, GridCoordinates landLocation)
{ {
var landMsg = new LandMessage(user, landing, landLocation); var landMsg = new LandMessage(user, landing, landLocation);
RaiseEvent(landMsg); RaiseLocalEvent(landMsg);
if (landMsg.Handled) if (landMsg.Handled)
{ {
return; return;
@@ -724,7 +724,7 @@ namespace Content.Server.GameObjects.EntitySystems
public void DroppedInteraction(IEntity user, IEntity item) public void DroppedInteraction(IEntity user, IEntity item)
{ {
var dropMsg = new DroppedMessage(user, item); var dropMsg = new DroppedMessage(user, item);
RaiseEvent(dropMsg); RaiseLocalEvent(dropMsg);
if (dropMsg.Handled) if (dropMsg.Handled)
{ {
return; return;
@@ -746,7 +746,7 @@ namespace Content.Server.GameObjects.EntitySystems
public void HandSelectedInteraction(IEntity user, IEntity item) public void HandSelectedInteraction(IEntity user, IEntity item)
{ {
var handSelectedMsg = new HandSelectedMessage(user, item); var handSelectedMsg = new HandSelectedMessage(user, item);
RaiseEvent(handSelectedMsg); RaiseLocalEvent(handSelectedMsg);
if (handSelectedMsg.Handled) if (handSelectedMsg.Handled)
{ {
return; return;
@@ -768,7 +768,7 @@ namespace Content.Server.GameObjects.EntitySystems
public void HandDeselectedInteraction(IEntity user, IEntity item) public void HandDeselectedInteraction(IEntity user, IEntity item)
{ {
var handDeselectedMsg = new HandDeselectedMessage(user, item); var handDeselectedMsg = new HandDeselectedMessage(user, item);
RaiseEvent(handDeselectedMsg); RaiseLocalEvent(handDeselectedMsg);
if (handDeselectedMsg.Handled) if (handDeselectedMsg.Handled)
{ {
return; return;
@@ -791,7 +791,7 @@ namespace Content.Server.GameObjects.EntitySystems
public void RangedInteraction(IEntity user, IEntity weapon, IEntity attacked, GridCoordinates clickLocation) public void RangedInteraction(IEntity user, IEntity weapon, IEntity attacked, GridCoordinates clickLocation)
{ {
var rangedMsg = new RangedAttackMessage(user, weapon, attacked, clickLocation); var rangedMsg = new RangedAttackMessage(user, weapon, attacked, clickLocation);
RaiseEvent(rangedMsg); RaiseLocalEvent(rangedMsg);
if (rangedMsg.Handled) if (rangedMsg.Handled)
return; return;
@@ -812,7 +812,7 @@ namespace Content.Server.GameObjects.EntitySystems
} }
var afterAtkMsg = new AfterAttackMessage(user, weapon, attacked, clickLocation); var afterAtkMsg = new AfterAttackMessage(user, weapon, attacked, clickLocation);
RaiseEvent(afterAtkMsg); RaiseLocalEvent(afterAtkMsg);
if (afterAtkMsg.Handled) if (afterAtkMsg.Handled)
return; return;

View File

@@ -1,4 +1,4 @@
using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Mobs;
using Content.Shared.Input; using Content.Shared.Input;
using JetBrains.Annotations; using JetBrains.Annotations;
using Robust.Server.GameObjects.EntitySystems; using Robust.Server.GameObjects.EntitySystems;
@@ -6,7 +6,6 @@ using Robust.Server.Interfaces.Player;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.Systems; using Robust.Shared.GameObjects.Systems;
using Robust.Shared.Input; using Robust.Shared.Input;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Players; using Robust.Shared.Players;
using static Content.Shared.GameObjects.EntitySystemMessages.CombatModeSystemMessages; using static Content.Shared.GameObjects.EntitySystemMessages.CombatModeSystemMessages;
@@ -24,17 +23,45 @@ namespace Content.Server.GameObjects.EntitySystems
{ {
base.Initialize(); base.Initialize();
SubscribeNetworkEvent<SetTargetZoneMessage>(SetTargetZoneHandler);
SubscribeNetworkEvent<SetCombatModeActiveMessage>(SetCombatModeActiveHandler);
var inputSystem = EntitySystemManager.GetEntitySystem<InputSystem>(); var inputSystem = EntitySystemManager.GetEntitySystem<InputSystem>();
inputSystem.BindMap.BindFunction(ContentKeyFunctions.ToggleCombatMode, inputSystem.BindMap.BindFunction(ContentKeyFunctions.ToggleCombatMode,
InputCmdHandler.FromDelegate(CombatModeToggled)); InputCmdHandler.FromDelegate(CombatModeToggled));
} }
public override void RegisterMessageTypes() private void SetCombatModeActiveHandler(SetCombatModeActiveMessage ev)
{ {
base.RegisterMessageTypes(); if (!TryGetCombatComponent(ev, out var combatModeComponent))
return;
combatModeComponent.IsInCombatMode = ev.Active;
}
private void SetTargetZoneHandler(SetTargetZoneMessage ev)
{
if (!TryGetCombatComponent(ev, out var combatModeComponent))
return;
combatModeComponent.ActiveZone = ev.TargetZone;
}
private bool TryGetCombatComponent(EntitySystemMessage ev, out CombatModeComponent combatModeComponent)
{
if (ev.NetChannel == null)
{
combatModeComponent = default;
return false;
}
var player = _playerManager.GetSessionByChannel(ev.NetChannel);
if (player.AttachedEntity != null && player.AttachedEntity.TryGetComponent(out combatModeComponent))
return true;
combatModeComponent = default;
return false;
RegisterMessageType<SetTargetZoneMessage>();
RegisterMessageType<SetCombatModeActiveMessage>();
} }
private static void CombatModeToggled(ICommonSession session) private static void CombatModeToggled(ICommonSession session)
@@ -49,28 +76,5 @@ namespace Content.Server.GameObjects.EntitySystems
combatModeComponent.IsInCombatMode = !combatModeComponent.IsInCombatMode; combatModeComponent.IsInCombatMode = !combatModeComponent.IsInCombatMode;
} }
public override void HandleNetMessage(INetChannel channel, EntitySystemMessage message)
{
base.HandleNetMessage(channel, message);
var player = _playerManager.GetSessionByChannel(channel);
if (player.AttachedEntity == null
|| !player.AttachedEntity.TryGetComponent(out CombatModeComponent combatModeComponent))
{
return;
}
switch (message)
{
case SetTargetZoneMessage setTargetZone:
combatModeComponent.ActiveZone = setTargetZone.TargetZone;
break;
case SetCombatModeActiveMessage setActive:
combatModeComponent.IsInCombatMode = setActive.Active;
break;
}
}
} }
} }

View File

@@ -41,6 +41,9 @@ namespace Content.Server.GameObjects.EntitySystems
{ {
base.Initialize(); base.Initialize();
SubscribeLocalEvent<EntRemovedFromContainerMessage>(HandleContainerModified);
SubscribeLocalEvent<EntInsertedIntoContainerMessage>(HandleContainerModified);
var input = EntitySystemManager.GetEntitySystem<InputSystem>(); var input = EntitySystemManager.GetEntitySystem<InputSystem>();
input.BindMap.BindFunction(ContentKeyFunctions.SwapHands, InputCmdHandler.FromDelegate(HandleSwapHands)); input.BindMap.BindFunction(ContentKeyFunctions.SwapHands, InputCmdHandler.FromDelegate(HandleSwapHands));
input.BindMap.BindFunction(ContentKeyFunctions.Drop, new PointerInputCmdHandler(HandleDrop)); input.BindMap.BindFunction(ContentKeyFunctions.Drop, new PointerInputCmdHandler(HandleDrop));
@@ -62,14 +65,7 @@ namespace Content.Server.GameObjects.EntitySystems
base.Shutdown(); base.Shutdown();
} }
/// <inheritdoc /> private static void HandleContainerModified(ContainerModifiedMessage args)
public override void SubscribeEvents()
{
SubscribeEvent<EntRemovedFromContainerMessage>(HandleContainerModified);
SubscribeEvent<EntInsertedIntoContainerMessage>(HandleContainerModified);
}
private static void HandleContainerModified(object sender, ContainerModifiedMessage args)
{ {
if (args.Container.Owner.TryGetComponent(out IHandsComponent handsComponent)) if (args.Container.Owner.TryGetComponent(out IHandsComponent handsComponent))
{ {

View File

@@ -74,13 +74,13 @@ namespace Content.Server.GameObjects.EntitySystems
input.BindMap.BindFunction(EngineKeyFunctions.MoveDown, moveDownCmdHandler); input.BindMap.BindFunction(EngineKeyFunctions.MoveDown, moveDownCmdHandler);
input.BindMap.BindFunction(EngineKeyFunctions.Run, runCmdHandler); input.BindMap.BindFunction(EngineKeyFunctions.Run, runCmdHandler);
SubscribeEvent<PlayerAttachSystemMessage>(PlayerAttached); SubscribeLocalEvent<PlayerAttachSystemMessage>(PlayerAttached);
SubscribeEvent<PlayerDetachedSystemMessage>(PlayerDetached); SubscribeLocalEvent<PlayerDetachedSystemMessage>(PlayerDetached);
_audioSystem = EntitySystemManager.GetEntitySystem<AudioSystem>(); _audioSystem = EntitySystemManager.GetEntitySystem<AudioSystem>();
} }
private static void PlayerAttached(object sender, PlayerAttachSystemMessage ev) private static void PlayerAttached(PlayerAttachSystemMessage ev)
{ {
if (!ev.Entity.HasComponent<IMoverComponent>()) if (!ev.Entity.HasComponent<IMoverComponent>())
{ {
@@ -88,7 +88,7 @@ namespace Content.Server.GameObjects.EntitySystems
} }
} }
private static void PlayerDetached(object sender, PlayerDetachedSystemMessage ev) private static void PlayerDetached(PlayerDetachedSystemMessage ev)
{ {
if(ev.Entity.HasComponent<PlayerInputMoverComponent>()) if(ev.Entity.HasComponent<PlayerInputMoverComponent>())
{ {

View File

@@ -14,18 +14,12 @@ namespace Content.Server.GameObjects.EntitySystems
/// <inheritdoc /> /// <inheritdoc />
public override void Initialize() public override void Initialize()
{ {
SubscribeLocalEvent<EntRemovedFromContainerMessage>(HandleEntityRemovedFromContainer);
SubscribeLocalEvent<EntInsertedIntoContainerMessage>(HandleEntityInsertedIntoContainer);
EntityQuery = new TypeEntityQuery(typeof(ServerStorageComponent)); EntityQuery = new TypeEntityQuery(typeof(ServerStorageComponent));
} }
/// <inheritdoc />
public override void SubscribeEvents()
{
base.SubscribeEvents();
SubscribeEvent<EntRemovedFromContainerMessage>(HandleEntityRemovedFromContainer);
SubscribeEvent<EntInsertedIntoContainerMessage>(HandleEntityInsertedIntoContainer);
}
/// <inheritdoc /> /// <inheritdoc />
public override void Update(float frameTime) public override void Update(float frameTime)
{ {
@@ -35,7 +29,7 @@ namespace Content.Server.GameObjects.EntitySystems
} }
} }
private static void HandleEntityRemovedFromContainer(object sender, EntRemovedFromContainerMessage message) private static void HandleEntityRemovedFromContainer(EntRemovedFromContainerMessage message)
{ {
var oldParentEntity = message.Container.Owner; var oldParentEntity = message.Container.Owner;
@@ -45,7 +39,7 @@ namespace Content.Server.GameObjects.EntitySystems
} }
} }
private static void HandleEntityInsertedIntoContainer(object sender, EntInsertedIntoContainerMessage message) private static void HandleEntityInsertedIntoContainer(EntInsertedIntoContainerMessage message)
{ {
var oldParentEntity = message.Container.Owner; var oldParentEntity = message.Container.Owner;

View File

@@ -2,10 +2,8 @@
using System.Reflection; using System.Reflection;
using Content.Shared.GameObjects; using Content.Shared.GameObjects;
using Robust.Server.Interfaces.Player; using Robust.Server.Interfaces.Player;
using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.Systems; using Robust.Shared.GameObjects.Systems;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using static Content.Shared.GameObjects.EntitySystemMessages.VerbSystemMessages; using static Content.Shared.GameObjects.EntitySystemMessages.VerbSystemMessages;
@@ -22,67 +20,18 @@ namespace Content.Server.GameObjects.EntitySystems
{ {
base.Initialize(); base.Initialize();
SubscribeNetworkEvent<RequestVerbsMessage>(RequestVerbs);
SubscribeNetworkEvent<UseVerbMessage>(UseVerb);
IoCManager.InjectDependencies(this); IoCManager.InjectDependencies(this);
} }
public override void RegisterMessageTypes() private void UseVerb(UseVerbMessage use)
{
base.RegisterMessageTypes();
RegisterMessageType<RequestVerbsMessage>();
RegisterMessageType<UseVerbMessage>();
}
public override void HandleNetMessage(INetChannel channel, EntitySystemMessage message)
{
base.HandleNetMessage(channel, message);
switch (message)
{
case RequestVerbsMessage req:
{
if (!_entityManager.TryGetEntity(req.EntityUid, out var entity))
{ {
var channel = use.NetChannel;
if(channel == null)
return; return;
}
var session = _playerManager.GetSessionByChannel(channel);
var userEntity = session.AttachedEntity;
var data = new List<VerbsResponseMessage.VerbData>();
//Get verbs, component dependent.
foreach (var (component, verb) in VerbUtility.GetVerbs(entity))
{
if (verb.RequireInteractionRange && !VerbUtility.InVerbUseRange(userEntity, entity))
continue;
if(VerbUtility.IsVerbInvisible(verb, userEntity, component, out var vis))
continue;
// TODO: These keys being giant strings is inefficient as hell.
data.Add(new VerbsResponseMessage.VerbData(verb.GetText(userEntity, component),
$"{component.GetType()}:{verb.GetType()}",
vis == VerbVisibility.Visible));
}
//Get global verbs. Visible for all entities regardless of their components.
foreach (var globalVerb in VerbUtility.GetGlobalVerbs(Assembly.GetExecutingAssembly()))
{
if (globalVerb.RequireInteractionRange && !VerbUtility.InVerbUseRange(userEntity, entity))
continue;
if(VerbUtility.IsVerbInvisible(globalVerb, userEntity, entity, out var vis))
continue;
data.Add(new VerbsResponseMessage.VerbData(globalVerb.GetText(userEntity, entity),
globalVerb.GetType().ToString(), vis == VerbVisibility.Visible));
}
var response = new VerbsResponseMessage(data, req.EntityUid);
RaiseNetworkEvent(response, channel);
break;
}
case UseVerbMessage use:
{
if (!_entityManager.TryGetEntity(use.EntityUid, out var entity)) if (!_entityManager.TryGetEntity(use.EntityUid, out var entity))
{ {
return; return;
@@ -132,10 +81,51 @@ namespace Content.Server.GameObjects.EntitySystems
globalVerb.Activate(userEntity, entity); globalVerb.Activate(userEntity, entity);
break; break;
} }
}
break; private void RequestVerbs(RequestVerbsMessage req)
} {
} var channel = req.NetChannel;
if (channel == null)
return;
if (!_entityManager.TryGetEntity(req.EntityUid, out var entity))
{
return;
}
var session = _playerManager.GetSessionByChannel(channel);
var userEntity = session.AttachedEntity;
var data = new List<VerbsResponseMessage.VerbData>();
//Get verbs, component dependent.
foreach (var (component, verb) in VerbUtility.GetVerbs(entity))
{
if (verb.RequireInteractionRange && !VerbUtility.InVerbUseRange(userEntity, entity))
continue;
if (VerbUtility.IsVerbInvisible(verb, userEntity, component, out var vis))
continue;
// TODO: These keys being giant strings is inefficient as hell.
data.Add(new VerbsResponseMessage.VerbData(verb.GetText(userEntity, component),
$"{component.GetType()}:{verb.GetType()}",
vis == VerbVisibility.Visible));
}
//Get global verbs. Visible for all entities regardless of their components.
foreach (var globalVerb in VerbUtility.GetGlobalVerbs(Assembly.GetExecutingAssembly()))
{
if (globalVerb.RequireInteractionRange && !VerbUtility.InVerbUseRange(userEntity, entity))
continue;
if (VerbUtility.IsVerbInvisible(globalVerb, userEntity, entity, out var vis))
continue;
data.Add(new VerbsResponseMessage.VerbData(globalVerb.GetText(userEntity, entity),
globalVerb.GetType().ToString(), vis == VerbVisibility.Visible));
}
var response = new VerbsResponseMessage(data, req.EntityUid);
RaiseNetworkEvent(response, channel);
} }
} }
} }

View File

@@ -34,7 +34,7 @@ namespace Content.Server.GameTicking.GameRules
{ {
_chatManager.DispatchServerAnnouncement("The game is now a death match. Kill everybody else to win!"); _chatManager.DispatchServerAnnouncement("The game is now a death match. Kill everybody else to win!");
_entityManager.EventBus.SubscribeEvent<MobDamageStateChangedMessage>(_onMobDamageStateChanged, this); _entityManager.EventBus.SubscribeEvent<MobDamageStateChangedMessage>(EventSource.Local, this, _onMobDamageStateChanged);
_playerManager.PlayerStatusChanged += PlayerManagerOnPlayerStatusChanged; _playerManager.PlayerStatusChanged += PlayerManagerOnPlayerStatusChanged;
} }
@@ -42,11 +42,11 @@ namespace Content.Server.GameTicking.GameRules
{ {
base.Removed(); base.Removed();
_entityManager.EventBus.UnsubscribeEvent<MobDamageStateChangedMessage>(this); _entityManager.EventBus.UnsubscribeEvent<MobDamageStateChangedMessage>(EventSource.Local, this);
_playerManager.PlayerStatusChanged -= PlayerManagerOnPlayerStatusChanged; _playerManager.PlayerStatusChanged -= PlayerManagerOnPlayerStatusChanged;
} }
private void _onMobDamageStateChanged(object sender, MobDamageStateChangedMessage message) private void _onMobDamageStateChanged(MobDamageStateChangedMessage message)
{ {
_runDelayedCheck(); _runDelayedCheck();
} }

View File

@@ -1,17 +1,17 @@
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15 # Visual Studio Version 16
VisualStudioVersion = 15.0.26730.16 VisualStudioVersion = 16.0.29709.97
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Content.Shared", "Content.Shared\Content.Shared.csproj", "{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Content.Shared", "Content.Shared\Content.Shared.csproj", "{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Content.Server", "Content.Server\Content.Server.csproj", "{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Content.Server", "Content.Server\Content.Server.csproj", "{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{59250BAF-0000-0000-0000-000000000000} = {59250BAF-0000-0000-0000-000000000000} {59250BAF-0000-0000-0000-000000000000} = {59250BAF-0000-0000-0000-000000000000}
{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5} = {26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5} {26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5} = {26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Content.Client", "Content.Client\Content.Client.csproj", "{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Content.Client", "Content.Client\Content.Client.csproj", "{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{59250BAF-0000-0000-0000-000000000000} = {59250BAF-0000-0000-0000-000000000000} {59250BAF-0000-0000-0000-000000000000} = {59250BAF-0000-0000-0000-000000000000}
EndProjectSection EndProjectSection
@@ -20,29 +20,29 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Checker", "Build Chec
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuildChecker", "BuildChecker\BuildChecker.csproj", "{C899FCA4-7037-4E49-ABC2-44DE72487110}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuildChecker", "BuildChecker\BuildChecker.csproj", "{C899FCA4-7037-4E49-ABC2-44DE72487110}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Content.Tests", "Content.Tests\Content.Tests.csproj", "{8EDF4429-251A-416D-BB68-93F227191BCF}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Content.Tests", "Content.Tests\Content.Tests.csproj", "{8EDF4429-251A-416D-BB68-93F227191BCF}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RobustToolbox", "RobustToolbox", "{83B4CBBA-547A-42F0-A7CD-8A67D93196CE}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RobustToolbox", "RobustToolbox", "{83B4CBBA-547A-42F0-A7CD-8A67D93196CE}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lidgren.Network", "RobustToolbox\Lidgren.Network\Lidgren.Network.csproj", "{59250BAF-0000-0000-0000-000000000000}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lidgren.Network", "RobustToolbox\Lidgren.Network\Lidgren.Network.csproj", "{59250BAF-0000-0000-0000-000000000000}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.Client", "RobustToolbox\Robust.Client\Robust.Client.csproj", "{83429BD6-6358-4B18-BE51-401DF8EA2673}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Robust.Client", "RobustToolbox\Robust.Client\Robust.Client.csproj", "{83429BD6-6358-4B18-BE51-401DF8EA2673}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.Server", "RobustToolbox\Robust.Server\Robust.Server.csproj", "{B04AAE71-0000-0000-0000-000000000000}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Robust.Server", "RobustToolbox\Robust.Server\Robust.Server.csproj", "{B04AAE71-0000-0000-0000-000000000000}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.Shared.Maths", "RobustToolbox\Robust.Shared.Maths\Robust.Shared.Maths.csproj", "{93F23A82-00C5-4572-964E-E7C9457726D4}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Robust.Shared.Maths", "RobustToolbox\Robust.Shared.Maths\Robust.Shared.Maths.csproj", "{93F23A82-00C5-4572-964E-E7C9457726D4}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.UnitTesting", "RobustToolbox\Robust.UnitTesting\Robust.UnitTesting.csproj", "{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Robust.UnitTesting", "RobustToolbox\Robust.UnitTesting\Robust.UnitTesting.csproj", "{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.Shared", "RobustToolbox\Robust.Shared\Robust.Shared.csproj", "{0529F740-0000-0000-0000-000000000000}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Robust.Shared", "RobustToolbox\Robust.Shared\Robust.Shared.csproj", "{0529F740-0000-0000-0000-000000000000}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Content.IntegrationTests", "Content.IntegrationTests\Content.IntegrationTests.csproj", "{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Content.IntegrationTests", "Content.IntegrationTests\Content.IntegrationTests.csproj", "{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Content.Benchmarks", "Content.Benchmarks\Content.Benchmarks.csproj", "{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Content.Benchmarks", "Content.Benchmarks\Content.Benchmarks.csproj", "{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenToolkit.GraphicsLibraryFramework", "RobustToolbox\OpenToolkit.GraphicsLibraryFramework\OpenToolkit.GraphicsLibraryFramework.csproj", "{4809F412-3132-419E-BF9D-CCF7593C3533}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenToolkit.GraphicsLibraryFramework", "RobustToolbox\OpenToolkit.GraphicsLibraryFramework\OpenToolkit.GraphicsLibraryFramework.csproj", "{4809F412-3132-419E-BF9D-CCF7593C3533}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Content.Server.Database", "Content.Server.Database\Content.Server.Database.csproj", "{45C9B43F-305D-4651-9863-F6384CBC847F}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Content.Server.Database", "Content.Server.Database\Content.Server.Database.csproj", "{45C9B43F-305D-4651-9863-F6384CBC847F}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MSBuild", "MSBuild", "{50404922-9637-4394-BF59-165D0850ADC8}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MSBuild", "MSBuild", "{50404922-9637-4394-BF59-165D0850ADC8}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
@@ -70,41 +70,41 @@ Global
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Release|x64.ActiveCfg = Release|x64 {A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Release|x64.ActiveCfg = Release|x64
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Release|x64.Build.0 = Release|x64 {A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Release|x64.Build.0 = Release|x64
{C899FCA4-7037-4E49-ABC2-44DE72487110}.Debug|x64.ActiveCfg = Debug|Any CPU {C899FCA4-7037-4E49-ABC2-44DE72487110}.Debug|x64.ActiveCfg = Debug|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.Debug|x64.Build.0 = Debug|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.Release|x64.ActiveCfg = Debug|Any CPU {C899FCA4-7037-4E49-ABC2-44DE72487110}.Release|x64.ActiveCfg = Debug|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.Release|x64.Build.0 = Debug|Any CPU {C899FCA4-7037-4E49-ABC2-44DE72487110}.Release|x64.Build.0 = Debug|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.Debug|x64.Build.0 = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|x64.ActiveCfg = Debug|x64 {8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|x64.ActiveCfg = Debug|x64
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|x64.Build.0 = Debug|x64 {8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|x64.Build.0 = Debug|x64
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|x64.ActiveCfg = Release|x64 {8EDF4429-251A-416D-BB68-93F227191BCF}.Release|x64.ActiveCfg = Release|x64
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|x64.Build.0 = Release|x64 {8EDF4429-251A-416D-BB68-93F227191BCF}.Release|x64.Build.0 = Release|x64
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Debug|x64.ActiveCfg = Debug|x64 {59250BAF-0000-0000-0000-000000000000}.Debug|x64.ActiveCfg = Debug|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Debug|x64.Build.0 = Debug|x64 {59250BAF-0000-0000-0000-000000000000}.Debug|x64.Build.0 = Debug|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Release|x64.ActiveCfg = Release|x64 {59250BAF-0000-0000-0000-000000000000}.Release|x64.ActiveCfg = Release|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Release|x64.Build.0 = Release|x64 {59250BAF-0000-0000-0000-000000000000}.Release|x64.Build.0 = Release|Any CPU
{93F23A82-00C5-4572-964E-E7C9457726D4}.Debug|x64.ActiveCfg = Debug|x64
{93F23A82-00C5-4572-964E-E7C9457726D4}.Debug|x64.Build.0 = Debug|x64
{93F23A82-00C5-4572-964E-E7C9457726D4}.Release|x64.ActiveCfg = Release|x64
{93F23A82-00C5-4572-964E-E7C9457726D4}.Release|x64.Build.0 = Release|x64
{0529F740-0000-0000-0000-000000000000}.Debug|x64.ActiveCfg = Debug|x64
{0529F740-0000-0000-0000-000000000000}.Debug|x64.Build.0 = Debug|x64
{0529F740-0000-0000-0000-000000000000}.Release|x64.ActiveCfg = Release|x64
{0529F740-0000-0000-0000-000000000000}.Release|x64.Build.0 = Release|x64
{B04AAE71-0000-0000-0000-000000000000}.Debug|x64.ActiveCfg = Debug|x64
{B04AAE71-0000-0000-0000-000000000000}.Debug|x64.Build.0 = Debug|x64
{B04AAE71-0000-0000-0000-000000000000}.Release|x64.ActiveCfg = Release|x64
{B04AAE71-0000-0000-0000-000000000000}.Release|x64.Build.0 = Release|x64
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Debug|x64.ActiveCfg = Debug|x64 {83429BD6-6358-4B18-BE51-401DF8EA2673}.Debug|x64.ActiveCfg = Debug|x64
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Debug|x64.Build.0 = Debug|x64 {83429BD6-6358-4B18-BE51-401DF8EA2673}.Debug|x64.Build.0 = Debug|x64
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Release|x64.ActiveCfg = Release|x64 {83429BD6-6358-4B18-BE51-401DF8EA2673}.Release|x64.ActiveCfg = Release|x64
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Release|x64.Build.0 = Release|x64 {83429BD6-6358-4B18-BE51-401DF8EA2673}.Release|x64.Build.0 = Release|x64
{59250BAF-0000-0000-0000-000000000000}.Release|x64.ActiveCfg = Release|Any CPU {B04AAE71-0000-0000-0000-000000000000}.Debug|x64.ActiveCfg = Debug|x64
{59250BAF-0000-0000-0000-000000000000}.Release|x64.Build.0 = Release|Any CPU {B04AAE71-0000-0000-0000-000000000000}.Debug|x64.Build.0 = Debug|x64
{59250BAF-0000-0000-0000-000000000000}.Debug|x64.ActiveCfg = Debug|Any CPU {B04AAE71-0000-0000-0000-000000000000}.Release|x64.ActiveCfg = Release|x64
{59250BAF-0000-0000-0000-000000000000}.Debug|x64.Build.0 = Debug|Any CPU {B04AAE71-0000-0000-0000-000000000000}.Release|x64.Build.0 = Release|x64
{93F23A82-00C5-4572-964E-E7C9457726D4}.Debug|x64.ActiveCfg = Debug|x64
{93F23A82-00C5-4572-964E-E7C9457726D4}.Debug|x64.Build.0 = Debug|x64
{93F23A82-00C5-4572-964E-E7C9457726D4}.Release|x64.ActiveCfg = Release|x64
{93F23A82-00C5-4572-964E-E7C9457726D4}.Release|x64.Build.0 = Release|x64
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Debug|x64.ActiveCfg = Debug|x64 {F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Debug|x64.ActiveCfg = Debug|x64
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Debug|x64.Build.0 = Debug|x64 {F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Debug|x64.Build.0 = Debug|x64
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Release|x64.ActiveCfg = Release|x64 {F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Release|x64.ActiveCfg = Release|x64
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Release|x64.Build.0 = Release|x64 {F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Release|x64.Build.0 = Release|x64
{0529F740-0000-0000-0000-000000000000}.Debug|x64.ActiveCfg = Debug|x64
{0529F740-0000-0000-0000-000000000000}.Debug|x64.Build.0 = Debug|x64
{0529F740-0000-0000-0000-000000000000}.Release|x64.ActiveCfg = Release|x64
{0529F740-0000-0000-0000-000000000000}.Release|x64.Build.0 = Release|x64
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Debug|x64.ActiveCfg = Debug|x64
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Debug|x64.Build.0 = Debug|x64
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Release|x64.ActiveCfg = Release|x64
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Release|x64.Build.0 = Release|x64
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Debug|x64.ActiveCfg = Debug|x64 {7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Debug|x64.ActiveCfg = Debug|x64
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Debug|x64.Build.0 = Debug|x64 {7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Debug|x64.Build.0 = Debug|x64
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Release|x64.ActiveCfg = Release|x64 {7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Release|x64.ActiveCfg = Release|x64
@@ -113,10 +113,10 @@ Global
{4809F412-3132-419E-BF9D-CCF7593C3533}.Debug|x64.Build.0 = Debug|x64 {4809F412-3132-419E-BF9D-CCF7593C3533}.Debug|x64.Build.0 = Debug|x64
{4809F412-3132-419E-BF9D-CCF7593C3533}.Release|x64.ActiveCfg = Release|x64 {4809F412-3132-419E-BF9D-CCF7593C3533}.Release|x64.ActiveCfg = Release|x64
{4809F412-3132-419E-BF9D-CCF7593C3533}.Release|x64.Build.0 = Release|x64 {4809F412-3132-419E-BF9D-CCF7593C3533}.Release|x64.Build.0 = Release|x64
{45C9B43F-305D-4651-9863-F6384CBC847F}.Debug|x64.ActiveCfg = Debug|Any CPU {45C9B43F-305D-4651-9863-F6384CBC847F}.Debug|x64.ActiveCfg = Debug|x64
{45C9B43F-305D-4651-9863-F6384CBC847F}.Debug|x64.Build.0 = Debug|Any CPU {45C9B43F-305D-4651-9863-F6384CBC847F}.Debug|x64.Build.0 = Debug|x64
{45C9B43F-305D-4651-9863-F6384CBC847F}.Release|x64.ActiveCfg = Release|Any CPU {45C9B43F-305D-4651-9863-F6384CBC847F}.Release|x64.ActiveCfg = Release|x64
{45C9B43F-305D-4651-9863-F6384CBC847F}.Release|x64.Build.0 = Release|Any CPU {45C9B43F-305D-4651-9863-F6384CBC847F}.Release|x64.Build.0 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE