You can no longer move a PC entity unless it has a PlayerInputMover (#2987)

This commit is contained in:
Vera Aguilera Puerto
2021-01-14 04:24:43 +01:00
committed by GitHub
parent 7c48a5708e
commit 6a19dd9f02
6 changed files with 6 additions and 18 deletions

View File

@@ -14,6 +14,7 @@ using Content.Shared.Physics;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Server.GameObjects.EntitySystems;
using Robust.Server.Interfaces.GameObjects;
using Robust.Server.Interfaces.Timing;
using Robust.Shared.GameObjects.Components;
using Robust.Shared.GameObjects.Components.Transform;
@@ -45,8 +46,6 @@ namespace Content.Server.GameObjects.EntitySystems
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<PlayerAttachSystemMessage>(PlayerAttached);
SubscribeLocalEvent<PlayerDetachedSystemMessage>(PlayerDetached);
_audioSystem = EntitySystemManager.GetEntitySystem<AudioSystem>();
@@ -64,21 +63,8 @@ namespace Content.Server.GameObjects.EntitySystems
}
}
private static void PlayerAttached(PlayerAttachSystemMessage ev)
{
if (!ev.Entity.HasComponent<IMoverComponent>())
{
ev.Entity.AddComponent<PlayerInputMoverComponent>();
}
}
private void PlayerDetached(PlayerDetachedSystemMessage ev)
{
if (ev.Entity.HasComponent<PlayerInputMoverComponent>())
{
ev.Entity.RemoveComponent<PlayerInputMoverComponent>();
}
if (ev.Entity.TryGetComponent(out IPhysicsComponent? physics) &&
physics.TryGetController(out MoverController controller) &&
!ev.Entity.IsWeightless())

View File

@@ -7,7 +7,6 @@ using Content.Server.Interfaces.GameTicking;
using Content.Server.Mobs.Roles.Suspicion;
using Content.Server.Players;
using Content.Shared;
using Content.Shared.GameObjects.Components.Damage;
using Content.Shared.GameObjects.Components.Mobs.State;
using Robust.Server.GameObjects.EntitySystems;
using Robust.Server.Interfaces.Player;
@@ -22,8 +21,7 @@ using Timer = Robust.Shared.Timers.Timer;
namespace Content.Server.GameTicking.GameRules
{
/// <summary>
/// Simple GameRule that will do a free-for-all death match.
/// Kill everybody else to win.
/// Simple GameRule that will do a TTT-like gamemode with traitors.
/// </summary>
public sealed class RuleSuspicion : GameRule, IEntityEventSubscriber
{

View File

@@ -32,6 +32,7 @@
compatibility: Biological
behaviors:
- !type:BrainBehavior {}
- type: Input
- type: entity
id: EyesHuman

View File

@@ -61,6 +61,7 @@
resistances: defaultResistances
# criticalThreshold: 50
# deadThreshold: 120
- type: Input
- type: entity
id: LeftArmHuman

View File

@@ -17,6 +17,7 @@
mask:
- GhostImpassable
status: InAir
- type: PlayerInputMover
- type: Eye
zoom: 0.5, 0.5
drawFov: false

View File

@@ -125,6 +125,7 @@
layer:
- Opaque
- MobImpassable
- type: PlayerInputMover
- type: AtmosExposed
- type: Flammable
fireSpread: true