InRangeUnobstructed check for construction start and step progre… (#773)

This commit is contained in:
py01
2020-03-03 10:03:58 -06:00
committed by GitHub
parent 0ec4cd4bea
commit 6c6ef3911d
2 changed files with 14 additions and 5 deletions

View File

@@ -31,9 +31,10 @@ namespace Content.Server.GameObjects.Components.Construction
SpriteComponent Sprite;
ITransformComponent Transform;
#pragma warning disable 649
#pragma warning disable 649
[Dependency] private IRobustRandom _random;
#pragma warning restore 649
[Dependency] private readonly IEntitySystemManager _entitySystemManager;
#pragma warning restore 649
public override void Initialize()
{
@@ -46,6 +47,13 @@ namespace Content.Server.GameObjects.Components.Construction
public bool AttackBy(AttackByEventArgs eventArgs)
{
var playerEntity = eventArgs.User;
var interactionSystem = _entitySystemManager.GetEntitySystem<InteractionSystem>();
if (!interactionSystem.InRangeUnobstructed(playerEntity.Transform.MapPosition, Owner.Transform.WorldPosition, ignoredEnt: Owner, insideBlockerValid: true))
{
return false;
}
var stage = Prototype.Stages[Stage];
if (TryProcessStep(stage.Forward, eventArgs.AttackWith))