Rename ICollisionManager to IPhysicsManager (#113)

* Renamed ICollisionManager to IPhysicsManager.

* Added sanitization and logging for clients sending invalid coordinates to the interaction system.

* Update Engine.
This commit is contained in:
Acruid
2018-10-25 17:29:33 -07:00
committed by GitHub
parent c33daddda2
commit 6cc88115b5
4 changed files with 11 additions and 4 deletions

View File

@@ -19,7 +19,7 @@ namespace Content.Server.AI
[AiLogicProcessor("AimShootLife")] [AiLogicProcessor("AimShootLife")]
class AimShootLifeProcessor : AiLogicProcessor class AimShootLifeProcessor : AiLogicProcessor
{ {
private readonly ICollisionManager _physMan; private readonly IPhysicsManager _physMan;
private readonly IServerEntityManager _entMan; private readonly IServerEntityManager _entMan;
private readonly IGameTiming _timeMan; private readonly IGameTiming _timeMan;
@@ -36,7 +36,7 @@ namespace Content.Server.AI
/// </summary> /// </summary>
public AimShootLifeProcessor() public AimShootLifeProcessor()
{ {
_physMan = IoCManager.Resolve<ICollisionManager>(); _physMan = IoCManager.Resolve<IPhysicsManager>();
_entMan = IoCManager.Resolve<IServerEntityManager>(); _entMan = IoCManager.Resolve<IServerEntityManager>();
_timeMan = IoCManager.Resolve<IGameTiming>(); _timeMan = IoCManager.Resolve<IGameTiming>();
} }

View File

@@ -26,7 +26,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Hitscan
var angle = new Angle(clicklocation.Position - userPosition); var angle = new Angle(clicklocation.Position - userPosition);
var ray = new Ray(userPosition, angle.ToVec()); var ray = new Ray(userPosition, angle.ToVec());
var rayCastResults = IoCManager.Resolve<ICollisionManager>().IntersectRay(ray, MaxLength, var rayCastResults = IoCManager.Resolve<IPhysicsManager>().IntersectRay(ray, MaxLength,
Owner.Transform.GetMapTransform().Owner); Owner.Transform.GetMapTransform().Owner);
Hit(rayCastResults); Hit(rayCastResults);

View File

@@ -137,6 +137,13 @@ namespace Content.Server.GameObjects.EntitySystems
private void HandleUseItemInHand(ICommonSession session, GridLocalCoordinates coords, EntityUid uid) private void HandleUseItemInHand(ICommonSession session, GridLocalCoordinates coords, EntityUid uid)
{ {
// client sanitization
if(!coords.IsValidLocation())
{
Logger.InfoS("interaction", $"Invalid Coordinates: client={session}, coords={coords}");
return;
}
UserInteraction(((IPlayerSession)session).AttachedEntity, coords, uid); UserInteraction(((IPlayerSession)session).AttachedEntity, coords, uid);
} }

2
engine

Submodule engine updated: 99ab6fce9c...d8ca95db0c