From 47118e83010f6e5dba8f7dab08bc956e3ebc6e3d Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Sat, 4 Jul 2020 14:10:37 +0200 Subject: [PATCH] Fix entering noclip when a locker is closed over a buckled entity and the chair is then deleted --- .../GameObjects/Components/Mobs/BuckleComponent.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Content.Server/GameObjects/Components/Mobs/BuckleComponent.cs b/Content.Server/GameObjects/Components/Mobs/BuckleComponent.cs index 488e01fb79..7e1cae798a 100644 --- a/Content.Server/GameObjects/Components/Mobs/BuckleComponent.cs +++ b/Content.Server/GameObjects/Components/Mobs/BuckleComponent.cs @@ -212,8 +212,12 @@ namespace Content.Server.GameObjects.Components.Mobs .PlayFromEntity(strap.UnbuckleSound, Owner); } - Owner.Transform.DetachParent(); - Owner.Transform.WorldRotation = BuckledTo.Owner.Transform.WorldRotation; + if (Owner.Transform.Parent == BuckledTo.Owner.Transform) + { + Owner.Transform.DetachParent(); + Owner.Transform.WorldRotation = BuckledTo.Owner.Transform.WorldRotation; + } + BuckledTo = null; if (Owner.TryGetComponent(out AppearanceComponent appearance)) @@ -268,12 +272,12 @@ namespace Content.Server.GameObjects.Components.Mobs base.Startup(); BuckleStatus(); } - public override void OnRemove() { base.OnRemove(); - if (BuckledTo != null && BuckledTo.Owner.TryGetComponent(out StrapComponent strap)) + if (BuckledTo != null && + BuckledTo.Owner.TryGetComponent(out StrapComponent strap)) { strap.Remove(this); }