Fixes placing objects on closed lockers (#658)

This commit is contained in:
adrian
2020-02-09 06:42:12 -03:00
committed by GitHub
parent 7d4dc85a6a
commit 253972d529
2 changed files with 12 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
using System.Linq; using System;
using System.Linq;
using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Items.Storage;
using Content.Server.GameObjects.Components.Sound; using Content.Server.GameObjects.Components.Sound;
using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems;
@@ -80,6 +81,11 @@ namespace Content.Server.GameObjects.Components
if (_noDoor && !_locked) if (_noDoor && !_locked)
Open = true; Open = true;
if (Owner.TryGetComponent<PlaceableSurfaceComponent>(out var placeableSurfaceComponent))
{
placeableSurfaceComponent.IsPlaceable = Open;
}
} }
/// <inheritdoc /> /// <inheritdoc />
@@ -147,7 +153,7 @@ namespace Content.Server.GameObjects.Components
// only items that can be stored in an inventory, or a player, can be eaten by a locker // only items that can be stored in an inventory, or a player, can be eaten by a locker
if(!entity.HasComponent<StoreableComponent>() && !entity.HasComponent<IActorComponent>()) if(!entity.HasComponent<StoreableComponent>() && !entity.HasComponent<IActorComponent>())
continue; continue;
if (!AddToContents(entity)) if (!AddToContents(entity))
{ {
continue; continue;

View File

@@ -20,9 +20,12 @@ namespace Content.Server.GameObjects.Components
} }
public bool AttackBy(AttackByEventArgs eventArgs) public bool AttackBy(AttackByEventArgs eventArgs)
{ {
if (!IsPlaceable)
return false;
if(!eventArgs.User.TryGetComponent<HandsComponent>(out var handComponent)) if(!eventArgs.User.TryGetComponent<HandsComponent>(out var handComponent))
{ {
return true; return false;
} }
handComponent.Drop(eventArgs.AttackWith); handComponent.Drop(eventArgs.AttackWith);
eventArgs.AttackWith.Transform.WorldPosition = eventArgs.ClickLocation.Position; eventArgs.AttackWith.Transform.WorldPosition = eventArgs.ClickLocation.Position;