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 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);
}

View File

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

View File

@@ -9,13 +9,13 @@ namespace Content.Server.MobState.States
{
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 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);
}
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 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;
}
if (!entity.TryGetComponent(out ServerAlertsComponent? alerts))
if (!entityManager.TryGetComponent(entity, out ServerAlertsComponent? alerts))
{
return;
}
if (!entity.TryGetComponent(out MobStateComponent? stateComponent))
if (!entityManager.TryGetComponent(entity, out MobStateComponent? stateComponent))
{
return;
}

View File

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

View File

@@ -29,10 +29,10 @@ namespace Content.Shared.MobState.State
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>
/// Called when this state is entered.
/// </summary>
void EnterState(IEntity entity);
void EnterState(EntityUid uid, IEntityManager entityManager);
/// <summary>
/// Called when this state is left for a different state.
/// </summary>
void ExitState(IEntity entity);
void ExitState(EntityUid uid, IEntityManager entityManager);
/// <summary>
/// Called when this state is updated.
/// </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;
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
}
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);
}
}
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;
public override void EnterState(IEntity entity)
public override void EnterState(EntityUid uid, IEntityManager entityManager)
{
base.EnterState(entity);
var wake = entity.EnsureComponent<CollisionWakeComponent>();
base.EnterState(uid, entityManager);
var wake = entityManager.EnsureComponent<CollisionWakeComponent>(uid);
wake.Enabled = true;
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;
}
if (entity.TryGetComponent(out SharedAppearanceComponent? appearance))
if (entityManager.TryGetComponent(uid, out SharedAppearanceComponent? appearance))
{
appearance.SetData(DamageStateVisuals.State, DamageState.Dead);
}
}
public override void ExitState(IEntity entity)
public override void ExitState(EntityUid uid, IEntityManager entityManager)
{
base.ExitState(entity);
if (entity.HasComponent<CollisionWakeComponent>())
base.ExitState(uid, entityManager);
if (entityManager.HasComponent<CollisionWakeComponent>(uid))
{
entity.RemoveComponent<CollisionWakeComponent>();
entityManager.RemoveComponent<CollisionWakeComponent>(uid);
}
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;
}

View File

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