Fix thrown breakables (#3944)
* Fix bottles and lights being parented to player * Fix item pickup animation
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
#nullable enable
|
#nullable enable
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Content.Server.GameObjects.Components.Stack;
|
using Content.Server.GameObjects.Components.Stack;
|
||||||
@@ -31,7 +31,7 @@ namespace Content.Server.GameObjects.Components.Destructible.Thresholds.Behavior
|
|||||||
|
|
||||||
if (EntityPrototypeHelpers.HasComponent<StackComponent>(entityId))
|
if (EntityPrototypeHelpers.HasComponent<StackComponent>(entityId))
|
||||||
{
|
{
|
||||||
var spawned = owner.EntityManager.SpawnEntity(entityId, owner.Transform.Coordinates);
|
var spawned = owner.EntityManager.SpawnEntity(entityId, owner.Transform.MapPosition);
|
||||||
var stack = spawned.GetComponent<StackComponent>();
|
var stack = spawned.GetComponent<StackComponent>();
|
||||||
stack.Count = count;
|
stack.Count = count;
|
||||||
spawned.RandomOffset(0.5f);
|
spawned.RandomOffset(0.5f);
|
||||||
@@ -40,7 +40,7 @@ namespace Content.Server.GameObjects.Components.Destructible.Thresholds.Behavior
|
|||||||
{
|
{
|
||||||
for (var i = 0; i < count; i++)
|
for (var i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
var spawned = owner.EntityManager.SpawnEntity(entityId, owner.Transform.Coordinates);
|
var spawned = owner.EntityManager.SpawnEntity(entityId, owner.Transform.MapPosition);
|
||||||
spawned.RandomOffset(0.5f);
|
spawned.RandomOffset(0.5f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -172,15 +172,16 @@ namespace Content.Server.GameObjects.Components.GUI
|
|||||||
|
|
||||||
Dirty();
|
Dirty();
|
||||||
|
|
||||||
var position = item.Owner.Transform.Coordinates;
|
var oldParent = item.Owner.Transform.Parent;
|
||||||
|
var oldPosition = item.Owner.Transform.Coordinates;
|
||||||
var contained = item.Owner.IsInContainer();
|
var contained = item.Owner.IsInContainer();
|
||||||
var success = hand.Container.Insert(item.Owner);
|
var success = hand.Container.Insert(item.Owner);
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
//If the entity isn't in a container, and it isn't located exactly at our position (i.e. in our own storage), then we can safely play the animation
|
//If the entity isn't in a container, and it isn't located exactly at our position (i.e. in our own storage), then we can safely play the animation
|
||||||
if (position != Owner.Transform.Coordinates && !contained)
|
if (oldParent != Owner.Transform && !contained)
|
||||||
{
|
{
|
||||||
SendNetworkMessage(new AnimatePickupEntityMessage(item.Owner.Uid, position));
|
SendNetworkMessage(new AnimatePickupEntityMessage(item.Owner.Uid, oldPosition));
|
||||||
}
|
}
|
||||||
item.Owner.Transform.LocalPosition = Vector2.Zero;
|
item.Owner.Transform.LocalPosition = Vector2.Zero;
|
||||||
OnItemChanged?.Invoke();
|
OnItemChanged?.Invoke();
|
||||||
|
|||||||
Reference in New Issue
Block a user