Refactor standing to be ECS (#4142)
* Refactor standing to be ECS E C S B A B Y * DONE * FIX IT FIX IT FIX IT * IsDown event * Change to methods * Fixes * Address some reviews * Last of the Mohicans * Final fixes * Fix tests
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
using Robust.Shared.GameObjects;
|
||||
using Content.Shared.Hands;
|
||||
using Content.Shared.Standing;
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
namespace Content.Shared.MobState.State
|
||||
{
|
||||
@@ -11,6 +13,18 @@ namespace Content.Shared.MobState.State
|
||||
base.EnterState(entity);
|
||||
var wake = entity.EnsureComponent<CollisionWakeComponent>();
|
||||
wake.Enabled = true;
|
||||
var standingState = EntitySystem.Get<StandingStateSystem>();
|
||||
standingState.Down(entity);
|
||||
|
||||
if (standingState.IsDown(entity) && entity.TryGetComponent(out PhysicsComponent? physics))
|
||||
{
|
||||
physics.CanCollide = false;
|
||||
}
|
||||
|
||||
if (entity.TryGetComponent(out SharedAppearanceComponent? appearance))
|
||||
{
|
||||
appearance.SetData(DamageStateVisuals.State, DamageState.Dead);
|
||||
}
|
||||
}
|
||||
|
||||
public override void ExitState(IEntity entity)
|
||||
@@ -20,6 +34,14 @@ namespace Content.Shared.MobState.State
|
||||
{
|
||||
entity.RemoveComponent<CollisionWakeComponent>();
|
||||
}
|
||||
|
||||
var standingState = EntitySystem.Get<StandingStateSystem>();
|
||||
standingState.Stand(entity);
|
||||
|
||||
if (!standingState.IsDown(entity) && entity.TryGetComponent(out PhysicsComponent? physics))
|
||||
{
|
||||
physics.CanCollide = true;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool CanInteract()
|
||||
|
||||
Reference in New Issue
Block a user