Enable nullability in Content.Server (#3685)

This commit is contained in:
DrSmugleaf
2021-03-16 15:50:20 +01:00
committed by GitHub
parent 90fec0ed24
commit a5ade526b7
306 changed files with 1616 additions and 1441 deletions

View File

@@ -29,7 +29,7 @@ namespace Content.Server.AI.Operators.Combat.Melee
return true;
}
if (!_owner.TryGetComponent(out CombatModeComponent combatModeComponent))
if (!_owner.TryGetComponent(out CombatModeComponent? combatModeComponent))
{
return false;
}
@@ -47,7 +47,7 @@ namespace Content.Server.AI.Operators.Combat.Melee
if (!base.Shutdown(outcome))
return false;
if (_owner.TryGetComponent(out CombatModeComponent combatModeComponent))
if (_owner.TryGetComponent(out CombatModeComponent? combatModeComponent))
{
combatModeComponent.IsInCombatMode = false;
}
@@ -62,16 +62,16 @@ namespace Content.Server.AI.Operators.Combat.Melee
return Outcome.Success;
}
if (!_owner.TryGetComponent(out HandsComponent hands) || hands.GetActiveHand == null)
if (!_owner.TryGetComponent(out HandsComponent? hands) || hands.GetActiveHand == null)
{
return Outcome.Failed;
}
var meleeWeapon = hands.GetActiveHand.Owner;
meleeWeapon.TryGetComponent(out MeleeWeaponComponent meleeWeaponComponent);
meleeWeapon.TryGetComponent(out MeleeWeaponComponent? meleeWeaponComponent);
if ((_target.Transform.Coordinates.Position - _owner.Transform.Coordinates.Position).Length >
meleeWeaponComponent.Range)
meleeWeaponComponent?.Range)
{
return Outcome.Failed;
}

View File

@@ -13,7 +13,7 @@ namespace Content.Server.AI.Operators.Combat.Melee
private readonly IEntity _owner;
private readonly IEntity _target;
private UnarmedCombatComponent _unarmedCombat;
private UnarmedCombatComponent? _unarmedCombat;
public UnarmedCombatOperator(IEntity owner, IEntity target, float burstTime = 1.0f)
{
@@ -29,7 +29,7 @@ namespace Content.Server.AI.Operators.Combat.Melee
return true;
}
if (!_owner.TryGetComponent(out CombatModeComponent combatModeComponent))
if (!_owner.TryGetComponent(out CombatModeComponent? combatModeComponent))
{
return false;
}
@@ -39,7 +39,7 @@ namespace Content.Server.AI.Operators.Combat.Melee
combatModeComponent.IsInCombatMode = true;
}
if (_owner.TryGetComponent(out UnarmedCombatComponent unarmedCombatComponent))
if (_owner.TryGetComponent(out UnarmedCombatComponent? unarmedCombatComponent))
{
_unarmedCombat = unarmedCombatComponent;
}
@@ -56,7 +56,7 @@ namespace Content.Server.AI.Operators.Combat.Melee
if (!base.Shutdown(outcome))
return false;
if (_owner.TryGetComponent(out CombatModeComponent combatModeComponent))
if (_owner.TryGetComponent(out CombatModeComponent? combatModeComponent))
{
combatModeComponent.IsInCombatMode = false;
}
@@ -71,7 +71,7 @@ namespace Content.Server.AI.Operators.Combat.Melee
return Outcome.Success;
}
if (_unarmedCombat.Deleted)
if (_unarmedCombat?.Deleted ?? true)
{
return Outcome.Failed;
}

View File

@@ -14,7 +14,7 @@ namespace Content.Server.AI.Operators.Inventory
public sealed class CloseLastStorageOperator : AiOperator
{
private readonly IEntity _owner;
private IEntity _target;
private IEntity? _target;
public CloseLastStorageOperator(IEntity owner)
{
@@ -53,12 +53,12 @@ namespace Content.Server.AI.Operators.Inventory
public override Outcome Execute(float frameTime)
{
if (!_owner.InRangeUnobstructed(_target, popup: true))
if (_target == null || !_owner.InRangeUnobstructed(_target, popup: true))
{
return Outcome.Failed;
}
if (!_target.TryGetComponent(out EntityStorageComponent storageComponent) ||
if (!_target.TryGetComponent(out EntityStorageComponent? storageComponent) ||
storageComponent.IsWeldedShut)
{
return Outcome.Failed;

View File

@@ -20,7 +20,7 @@ namespace Content.Server.AI.Operators.Inventory
/// <returns></returns>
public override Outcome Execute(float frameTime)
{
if (!_owner.TryGetComponent(out HandsComponent handsComponent) ||
if (!_owner.TryGetComponent(out HandsComponent? handsComponent) ||
!handsComponent.TryHand(_entity, out _))
{
return Outcome.Failed;

View File

@@ -14,11 +14,11 @@ namespace Content.Server.AI.Operators.Inventory
public override Outcome Execute(float frameTime)
{
if (!_owner.TryGetComponent(out HandsComponent handsComponent))
if (!_owner.TryGetComponent(out HandsComponent? handsComponent))
{
return Outcome.Failed;
}
foreach (var item in handsComponent.GetAllHeldItems())
{
handsComponent.Drop(item.Owner);

View File

@@ -15,7 +15,7 @@ namespace Content.Server.AI.Operators.Inventory
public override Outcome Execute(float frameTime)
{
if (!_owner.TryGetComponent(out HandsComponent handsComponent))
if (!_owner.TryGetComponent(out HandsComponent? handsComponent))
{
return Outcome.Failed;
}

View File

@@ -33,7 +33,7 @@ namespace Content.Server.AI.Operators.Inventory
return Outcome.Failed;
}
if (_owner.TryGetComponent(out CombatModeComponent combatModeComponent))
if (_owner.TryGetComponent(out CombatModeComponent? combatModeComponent))
{
combatModeComponent.IsInCombatMode = false;
}

View File

@@ -9,7 +9,7 @@ namespace Content.Server.AI.Operators.Movement
{
// TODO: This and steering need to support InRangeUnobstructed now
private readonly IEntity _owner;
private EntityTargetSteeringRequest _request;
private EntityTargetSteeringRequest? _request;
private readonly IEntity _target;
// For now we'll just get as close as we can because we're not doing LOS checks to be able to pick up at the max interaction range
public float ArrivalDistance { get; }
@@ -56,7 +56,7 @@ namespace Content.Server.AI.Operators.Movement
public override Outcome Execute(float frameTime)
{
switch (_request.Status)
switch (_request?.Status)
{
case SteeringStatus.Pending:
DebugTools.Assert(EntitySystem.Get<AiSteeringSystem>().IsRegistered(_owner));

View File

@@ -9,7 +9,7 @@ namespace Content.Server.AI.Operators.Movement
public sealed class MoveToGridOperator : AiOperator
{
private readonly IEntity _owner;
private GridTargetSteeringRequest _request;
private GridTargetSteeringRequest? _request;
private readonly EntityCoordinates _target;
public float DesiredRange { get; set; }
@@ -45,7 +45,7 @@ namespace Content.Server.AI.Operators.Movement
public override Outcome Execute(float frameTime)
{
switch (_request.Status)
switch (_request?.Status)
{
case SteeringStatus.Pending:
DebugTools.Assert(EntitySystem.Get<AiSteeringSystem>().IsRegistered(_owner));

View File

@@ -9,7 +9,7 @@ namespace Content.Server.AI.Operators.Sequences
/// </summary>
public abstract class SequenceOperator : AiOperator
{
public Queue<AiOperator> Sequence { get; protected set; }
public Queue<AiOperator> Sequence { get; protected set; } = new();
public override Outcome Execute(float frameTime)
{