From 51d8d5dd9d9aa7cd90b76a67446ee561c7448513 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Fri, 6 Nov 2020 01:08:24 +1100 Subject: [PATCH] Disable climbing when buckled (#2488) Co-authored-by: Metal Gear Sloth --- .../Components/Movement/ClimbingComponent.cs | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/Content.Server/GameObjects/Components/Movement/ClimbingComponent.cs b/Content.Server/GameObjects/Components/Movement/ClimbingComponent.cs index 93f02320ac..8c3a5e84e2 100644 --- a/Content.Server/GameObjects/Components/Movement/ClimbingComponent.cs +++ b/Content.Server/GameObjects/Components/Movement/ClimbingComponent.cs @@ -1,6 +1,9 @@ -using Content.Shared.GameObjects.Components.Movement; +#nullable enable +using Content.Shared.GameObjects.Components.Buckle; +using Content.Shared.GameObjects.Components.Movement; using Content.Shared.Physics; using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Maths; namespace Content.Server.GameObjects.Components.Movement @@ -8,8 +11,8 @@ namespace Content.Server.GameObjects.Components.Movement [RegisterComponent] public class ClimbingComponent : SharedClimbingComponent { - private bool _isClimbing = false; - private ClimbController _climbController = default; + private bool _isClimbing; + private ClimbController? _climbController; public override bool IsClimbing { @@ -29,6 +32,19 @@ namespace Content.Server.GameObjects.Components.Movement } } + public override void HandleMessage(ComponentMessage message, IComponent? component) + { + base.HandleMessage(message, component); + switch (message) + { + case BuckleMessage msg: + if (msg.Buckled) + IsClimbing = false; + + break; + } + } + /// /// Make the owner climb from one point to another ///