Files
OldThink/Content.Shared/MobState/EntitySystems/SharedMobStateSystem.Dead.cs

35 lines
948 B
C#
Raw Normal View History

2022-07-06 17:58:14 +10:00
using Content.Shared.FixedPoint;
using Robust.Shared.Physics.Components;
2022-07-06 17:58:14 +10:00
namespace Content.Shared.MobState.EntitySystems;
public abstract partial class SharedMobStateSystem
{
public virtual void EnterDeadState(EntityUid uid)
{
EnsureComp<CollisionWakeComponent>(uid);
2022-10-04 14:24:19 +11:00
_standing.Down(uid);
2022-07-06 17:58:14 +10:00
2022-10-04 14:24:19 +11:00
if (_standing.IsDown(uid) && TryComp<PhysicsComponent>(uid, out var physics))
2022-07-06 17:58:14 +10:00
{
2022-10-04 14:24:19 +11:00
_physics.SetCanCollide(physics, false);
2022-07-06 17:58:14 +10:00
}
2022-10-04 14:24:19 +11:00
_appearance.SetData(uid, DamageStateVisuals.State, DamageState.Dead);
2022-07-06 17:58:14 +10:00
}
public virtual void ExitDeadState(EntityUid uid)
{
RemComp<CollisionWakeComponent>(uid);
2022-10-04 14:24:19 +11:00
_standing.Stand(uid);
2022-07-06 17:58:14 +10:00
2022-10-04 14:24:19 +11:00
if (!_standing.IsDown(uid) && TryComp<PhysicsComponent>(uid, out var physics))
2022-07-06 17:58:14 +10:00
{
2022-10-04 14:24:19 +11:00
_physics.SetCanCollide(physics, true);
2022-07-06 17:58:14 +10:00
}
}
public virtual void UpdateDeadState(EntityUid entity, FixedPoint2 threshold) {}
}