MobStates use EntityUid

This commit is contained in:
Vera Aguilera Puerto
2021-11-09 12:15:12 +01:00
parent 5cec5c421c
commit e5c062559a
11 changed files with 53 additions and 53 deletions

View File

@@ -8,11 +8,11 @@ namespace Content.Client.MobState.States
{ {
public class DeadMobState : SharedDeadMobState public class DeadMobState : SharedDeadMobState
{ {
public override void EnterState(IEntity entity) public override void EnterState(EntityUid uid, IEntityManager entityManager)
{ {
base.EnterState(entity); base.EnterState(uid, entityManager);
if (entity.TryGetComponent(out AppearanceComponent? appearance)) if (entityManager.TryGetComponent(uid, out AppearanceComponent? appearance))
{ {
appearance.SetData(DamageStateVisuals.State, DamageState.Dead); appearance.SetData(DamageStateVisuals.State, DamageState.Dead);
} }

View File

@@ -335,7 +335,7 @@ namespace Content.Server.Buckle.Components
EntitySystem.Get<StandingStateSystem>().Stand(Owner.Uid); EntitySystem.Get<StandingStateSystem>().Stand(Owner.Uid);
} }
_mobState?.CurrentState?.EnterState(Owner); _mobState?.CurrentState?.EnterState(Owner.Uid, Owner.EntityManager);
UpdateBuckleStatus(); UpdateBuckleStatus();

View File

@@ -9,13 +9,13 @@ namespace Content.Server.MobState.States
{ {
public class CriticalMobState : SharedCriticalMobState public class CriticalMobState : SharedCriticalMobState
{ {
public override void EnterState(IEntity entity) public override void EnterState(EntityUid uid, IEntityManager entityManager)
{ {
base.EnterState(entity); base.EnterState(uid, entityManager);
if (entity.TryGetComponent(out StatusEffectsComponent? stun)) if (entityManager.TryGetComponent(uid, out StatusEffectsComponent? stun))
{ {
EntitySystem.Get<StatusEffectsSystem>().TryRemoveStatusEffect(entity.Uid, "Stun"); EntitySystem.Get<StatusEffectsSystem>().TryRemoveStatusEffect(uid, "Stun");
} }
} }
} }

View File

@@ -13,18 +13,18 @@ namespace Content.Server.MobState.States
{ {
public class DeadMobState : SharedDeadMobState public class DeadMobState : SharedDeadMobState
{ {
public override void EnterState(IEntity entity) public override void EnterState(EntityUid uid, IEntityManager entityManager)
{ {
base.EnterState(entity); base.EnterState(uid, entityManager);
if (entity.TryGetComponent(out ServerAlertsComponent? status)) if (entityManager.TryGetComponent(uid, out ServerAlertsComponent? status))
{ {
status.ShowAlert(AlertType.HumanDead); status.ShowAlert(AlertType.HumanDead);
} }
if (entity.TryGetComponent(out StatusEffectsComponent? stun)) if (entityManager.TryGetComponent(uid, out StatusEffectsComponent? stun))
{ {
EntitySystem.Get<StatusEffectsSystem>().TryRemoveStatusEffect(entity.Uid, "Stun"); EntitySystem.Get<StatusEffectsSystem>().TryRemoveStatusEffect(uid, "Stun");
} }
} }
} }

View File

@@ -10,21 +10,21 @@ namespace Content.Server.MobState.States
{ {
public class NormalMobState : SharedNormalMobState public class NormalMobState : SharedNormalMobState
{ {
public override void UpdateState(IEntity entity, FixedPoint2 threshold) public override void UpdateState(EntityUid entity, FixedPoint2 threshold, IEntityManager entityManager)
{ {
base.UpdateState(entity, threshold); base.UpdateState(entity, threshold, entityManager);
if (!entity.TryGetComponent(out DamageableComponent? damageable)) if (!entityManager.TryGetComponent(entity, out DamageableComponent? damageable))
{ {
return; return;
} }
if (!entity.TryGetComponent(out ServerAlertsComponent? alerts)) if (!entityManager.TryGetComponent(entity, out ServerAlertsComponent? alerts))
{ {
return; return;
} }
if (!entity.TryGetComponent(out MobStateComponent? stateComponent)) if (!entityManager.TryGetComponent(entity, out MobStateComponent? stateComponent))
{ {
return; return;
} }

View File

@@ -290,7 +290,7 @@ namespace Content.Shared.MobState.Components
{ {
if (!current.HasValue) if (!current.HasValue)
{ {
old?.ExitState(Owner); old?.ExitState(Owner.Uid, Owner.EntityManager);
return; return;
} }
@@ -300,16 +300,16 @@ namespace Content.Shared.MobState.Components
if (state == old) if (state == old)
{ {
state.UpdateState(Owner, threshold); state.UpdateState(Owner.Uid, threshold, Owner.EntityManager);
return; return;
} }
old?.ExitState(Owner); old?.ExitState(Owner.Uid, Owner.EntityManager);
CurrentState = state; CurrentState = state;
state.EnterState(Owner); state.EnterState(Owner.Uid, Owner.EntityManager);
state.UpdateState(Owner, threshold); state.UpdateState(Owner.Uid, threshold, Owner.EntityManager);
var message = new MobStateChangedMessage(this, old, state); var message = new MobStateChangedMessage(this, old, state);
#pragma warning disable 618 #pragma warning disable 618

View File

@@ -29,10 +29,10 @@ namespace Content.Shared.MobState.State
return IsCritical() || IsDead(); return IsCritical() || IsDead();
} }
public virtual void EnterState(IEntity entity) { } public virtual void EnterState(EntityUid uid, IEntityManager entityManager) { }
public virtual void ExitState(IEntity entity) { } public virtual void ExitState(EntityUid uid, IEntityManager entityManager) { }
public virtual void UpdateState(IEntity entity, FixedPoint2 threshold) { } public virtual void UpdateState(EntityUid entity, FixedPoint2 threshold, IEntityManager entityManager) { }
} }
} }

View File

@@ -27,16 +27,16 @@ namespace Content.Shared.MobState.State
/// <summary> /// <summary>
/// Called when this state is entered. /// Called when this state is entered.
/// </summary> /// </summary>
void EnterState(IEntity entity); void EnterState(EntityUid uid, IEntityManager entityManager);
/// <summary> /// <summary>
/// Called when this state is left for a different state. /// Called when this state is left for a different state.
/// </summary> /// </summary>
void ExitState(IEntity entity); void ExitState(EntityUid uid, IEntityManager entityManager);
/// <summary> /// <summary>
/// Called when this state is updated. /// Called when this state is updated.
/// </summary> /// </summary>
void UpdateState(IEntity entity, FixedPoint2 threshold); void UpdateState(EntityUid entity, FixedPoint2 threshold, IEntityManager entityManager);
} }
} }

View File

@@ -11,28 +11,28 @@ namespace Content.Shared.MobState.State
{ {
protected override DamageState DamageState => DamageState.Critical; protected override DamageState DamageState => DamageState.Critical;
public override void EnterState(IEntity entity) public override void EnterState(EntityUid uid, IEntityManager entityManager)
{ {
base.EnterState(entity); base.EnterState(uid, entityManager);
if (entity.TryGetComponent(out SharedAlertsComponent? status)) if (entityManager.TryGetComponent(uid, out SharedAlertsComponent? status))
{ {
status.ShowAlert(AlertType.HumanCrit); // TODO: combine humancrit-0 and humancrit-1 into a gif and display it status.ShowAlert(AlertType.HumanCrit); // TODO: combine humancrit-0 and humancrit-1 into a gif and display it
} }
EntitySystem.Get<StandingStateSystem>().Down(entity.Uid); EntitySystem.Get<StandingStateSystem>().Down(uid);
if (entity.TryGetComponent(out SharedAppearanceComponent? appearance)) if (entityManager.TryGetComponent(uid, out SharedAppearanceComponent? appearance))
{ {
appearance.SetData(DamageStateVisuals.State, DamageState.Critical); appearance.SetData(DamageStateVisuals.State, DamageState.Critical);
} }
} }
public override void ExitState(IEntity entity) public override void ExitState(EntityUid uid, IEntityManager entityManager)
{ {
base.ExitState(entity); base.ExitState(uid, entityManager);
EntitySystem.Get<StandingStateSystem>().Stand(entity.Uid); EntitySystem.Get<StandingStateSystem>().Stand(uid);
} }
} }
} }

View File

@@ -8,37 +8,37 @@ namespace Content.Shared.MobState.State
{ {
protected override DamageState DamageState => DamageState.Dead; protected override DamageState DamageState => DamageState.Dead;
public override void EnterState(IEntity entity) public override void EnterState(EntityUid uid, IEntityManager entityManager)
{ {
base.EnterState(entity); base.EnterState(uid, entityManager);
var wake = entity.EnsureComponent<CollisionWakeComponent>(); var wake = entityManager.EnsureComponent<CollisionWakeComponent>(uid);
wake.Enabled = true; wake.Enabled = true;
var standingState = EntitySystem.Get<StandingStateSystem>(); var standingState = EntitySystem.Get<StandingStateSystem>();
standingState.Down(entity.Uid); standingState.Down(uid);
if (standingState.IsDown(entity.Uid) && entity.TryGetComponent(out PhysicsComponent? physics)) if (standingState.IsDown(uid) && entityManager.TryGetComponent(uid, out PhysicsComponent? physics))
{ {
physics.CanCollide = false; physics.CanCollide = false;
} }
if (entity.TryGetComponent(out SharedAppearanceComponent? appearance)) if (entityManager.TryGetComponent(uid, out SharedAppearanceComponent? appearance))
{ {
appearance.SetData(DamageStateVisuals.State, DamageState.Dead); appearance.SetData(DamageStateVisuals.State, DamageState.Dead);
} }
} }
public override void ExitState(IEntity entity) public override void ExitState(EntityUid uid, IEntityManager entityManager)
{ {
base.ExitState(entity); base.ExitState(uid, entityManager);
if (entity.HasComponent<CollisionWakeComponent>()) if (entityManager.HasComponent<CollisionWakeComponent>(uid))
{ {
entity.RemoveComponent<CollisionWakeComponent>(); entityManager.RemoveComponent<CollisionWakeComponent>(uid);
} }
var standingState = EntitySystem.Get<StandingStateSystem>(); var standingState = EntitySystem.Get<StandingStateSystem>();
standingState.Stand(entity.Uid); standingState.Stand(uid);
if (!standingState.IsDown(entity.Uid) && entity.TryGetComponent(out PhysicsComponent? physics)) if (!standingState.IsDown(uid) && entityManager.TryGetComponent(uid, out PhysicsComponent? physics))
{ {
physics.CanCollide = true; physics.CanCollide = true;
} }

View File

@@ -11,12 +11,12 @@ namespace Content.Shared.MobState.State
{ {
protected override DamageState DamageState => DamageState.Alive; protected override DamageState DamageState => DamageState.Alive;
public override void EnterState(IEntity entity) public override void EnterState(EntityUid uid, IEntityManager entityManager)
{ {
base.EnterState(entity); base.EnterState(uid, entityManager);
EntitySystem.Get<StandingStateSystem>().Stand(entity.Uid); EntitySystem.Get<StandingStateSystem>().Stand(uid);
if (entity.TryGetComponent(out SharedAppearanceComponent? appearance)) if (entityManager.TryGetComponent(uid, out SharedAppearanceComponent? appearance))
{ {
appearance.SetData(DamageStateVisuals.State, DamageState.Alive); appearance.SetData(DamageStateVisuals.State, DamageState.Alive);
} }