Inline TryGetComponent completely, for real

This commit is contained in:
Vera Aguilera Puerto
2021-12-03 14:17:01 +01:00
parent 2ff4ec65d5
commit 69b270017b
425 changed files with 1143 additions and 995 deletions

View File

@@ -73,7 +73,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
private void UpdateAppearance()
{
if (Owner.TryGetComponent(out AppearanceComponent? appearanceComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner.Uid, out AppearanceComponent? appearanceComponent))
{
appearanceComponent.SetData(MagazineBarrelVisuals.MagLoaded, true);
appearanceComponent.SetData(AmmoVisuals.AmmoCount, AmmoLeft);
@@ -104,7 +104,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
public bool TryInsertAmmo(IEntity user, IEntity entity)
{
if (!entity.TryGetComponent(out AmmoComponent? ammoComponent))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(entity.Uid, out AmmoComponent? ammoComponent))
{
return false;
}
@@ -134,7 +134,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
return TryInsertAmmo(eventArgs.User, eventArgs.Using);
}
if (eventArgs.Using.TryGetComponent(out RangedMagazineComponent? rangedMagazine))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(eventArgs.Using.Uid, out RangedMagazineComponent? rangedMagazine))
{
for (var i = 0; i < Math.Max(10, rangedMagazine.ShotsLeft); i++)
{
@@ -160,7 +160,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
private bool TryUse(IEntity user)
{
if (!user.TryGetComponent(out HandsComponent? handsComponent))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(user.Uid, out HandsComponent? handsComponent))
{
return false;
}
@@ -172,7 +172,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
return false;
}
if (ammo.TryGetComponent(out ItemComponent? item))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(ammo.Uid, out ItemComponent? item))
{
if (!handsComponent.CanPutInHand(item))
{

View File

@@ -117,7 +117,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
}
_spent = true;
if (Owner.TryGetComponent(out AppearanceComponent? appearanceComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner.Uid, out AppearanceComponent? appearanceComponent))
{
appearanceComponent.SetData(AmmoVisuals.Spent, true);
}

View File

@@ -77,7 +77,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
}
}
if (Owner.TryGetComponent(out AppearanceComponent? appearanceComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner.Uid, out AppearanceComponent? appearanceComponent))
{
_appearanceComponent = appearanceComponent;
}
@@ -93,7 +93,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
public bool TryInsertAmmo(IEntity user, IEntity ammo)
{
if (!ammo.TryGetComponent(out AmmoComponent? ammoComponent))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(ammo.Uid, out AmmoComponent? ammoComponent))
{
return false;
}
@@ -142,7 +142,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
bool IUse.UseEntity(UseEntityEventArgs eventArgs)
{
if (!eventArgs.User.TryGetComponent(out HandsComponent? handsComponent))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(eventArgs.User.Uid, out HandsComponent? handsComponent))
{
return false;
}

View File

@@ -59,7 +59,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
private void UpdateAppearance()
{
if (Owner.TryGetComponent(out AppearanceComponent? appearanceComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner.Uid, out AppearanceComponent? appearanceComponent))
{
appearanceComponent?.SetData(MagazineBarrelVisuals.MagLoaded, true);
appearanceComponent?.SetData(AmmoVisuals.AmmoCount, AmmoLeft);
@@ -69,7 +69,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
public bool TryInsertAmmo(IEntity user, IEntity entity)
{
if (!entity.TryGetComponent(out AmmoComponent? ammoComponent))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(entity.Uid, out AmmoComponent? ammoComponent))
{
return false;
}
@@ -95,7 +95,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
private bool UseEntity(IEntity user)
{
if (!user.TryGetComponent(out HandsComponent? handsComponent))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(user.Uid, out HandsComponent? handsComponent))
{
return false;
}
@@ -147,7 +147,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
// This area is dirty but not sure of an easier way to do it besides add an interface or somethin
var changed = false;
if (eventArgs.Target.TryGetComponent(out RevolverBarrelComponent? revolverBarrel))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(eventArgs.Target.Uid, out RevolverBarrelComponent? revolverBarrel))
{
for (var i = 0; i < Capacity; i++)
{
@@ -167,7 +167,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
TryInsertAmmo(eventArgs.User, ammo);
break;
}
} else if (eventArgs.Target.TryGetComponent(out BoltActionBarrelComponent? boltActionBarrel))
} else if (IoCManager.Resolve<IEntityManager>().TryGetComponent(eventArgs.Target.Uid, out BoltActionBarrelComponent? boltActionBarrel))
{
for (var i = 0; i < Capacity; i++)
{

View File

@@ -125,7 +125,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
// (Is one chambered?, is the bullet spend)
var chamber = (chamberedExists, false);
if (chamberedExists && _chamberContainer.ContainedEntity!.TryGetComponent<AmmoComponent>(out var ammo))
if (chamberedExists && IoCManager.Resolve<IEntityManager>().TryGetComponent<AmmoComponent?>(_chamberContainer.ContainedEntity!.Uid, out var ammo))
{
chamber.Item2 = ammo.Spent;
}
@@ -155,7 +155,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
_chamberContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-chamber-container");
if (Owner.TryGetComponent(out AppearanceComponent? appearanceComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner.Uid, out AppearanceComponent? appearanceComponent))
{
_appearanceComponent = appearanceComponent;
}
@@ -230,7 +230,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
public bool TryInsertBullet(IEntity user, IEntity ammo)
{
if (!ammo.TryGetComponent(out AmmoComponent? ammoComponent))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(ammo.Uid, out AmmoComponent? ammoComponent))
{
return false;
}

View File

@@ -86,7 +86,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
// (Is one chambered?, is the bullet spend)
var chamber = (chamberedExists, false);
if (chamberedExists && _chamberContainer.ContainedEntity!.TryGetComponent<AmmoComponent>(out var ammo))
if (chamberedExists && IoCManager.Resolve<IEntityManager>().TryGetComponent<AmmoComponent?>(_chamberContainer.ContainedEntity!.Uid, out var ammo))
{
chamber.Item2 = ammo.Spent;
}
@@ -125,7 +125,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
_unspawnedCount--;
}
if (Owner.TryGetComponent(out AppearanceComponent? appearanceComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner.Uid, out AppearanceComponent? appearanceComponent))
{
_appearanceComponent = appearanceComponent;
}
@@ -198,7 +198,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
public bool TryInsertBullet(InteractUsingEventArgs eventArgs)
{
if (!eventArgs.Using.TryGetComponent(out AmmoComponent? ammoComponent))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(eventArgs.Using.Uid, out AmmoComponent? ammoComponent))
{
return false;
}

View File

@@ -82,7 +82,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
{
slotsSpent[i] = null;
var ammoEntity = _ammoSlots[i];
if (ammoEntity != null && ammoEntity.TryGetComponent(out AmmoComponent? ammo))
if (ammoEntity != null && IoCManager.Resolve<IEntityManager>().TryGetComponent(ammoEntity.Uid, out AmmoComponent? ammo))
{
slotsSpent[i] = ammo.Spent;
}
@@ -126,7 +126,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
private void UpdateAppearance()
{
if (!Owner.TryGetComponent(out AppearanceComponent? appearance))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner.Uid, out AppearanceComponent? appearance))
{
return;
}
@@ -139,7 +139,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
public bool TryInsertBullet(IEntity user, IEntity entity)
{
if (!entity.TryGetComponent(out AmmoComponent? ammoComponent))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(entity.Uid, out AmmoComponent? ammoComponent))
{
return false;
}

View File

@@ -106,7 +106,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
_ammoContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-ammo-container");
}
if (Owner.TryGetComponent(out AppearanceComponent? appearanceComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner.Uid, out AppearanceComponent? appearanceComponent))
{
_appearanceComponent = appearanceComponent;
}
@@ -178,13 +178,13 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
entity = IoCManager.Resolve<IEntityManager>().SpawnEntity(_ammoPrototype, spawnAt);
}
if (entity.TryGetComponent(out ProjectileComponent? projectileComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(entity.Uid, out ProjectileComponent? projectileComponent))
{
if (energyRatio < 1.0)
{
projectileComponent.Damage *= energyRatio;
}
} else if (entity.TryGetComponent(out HitscanComponent? hitscanComponent))
} else if (IoCManager.Resolve<IEntityManager>().TryGetComponent(entity.Uid, out HitscanComponent? hitscanComponent))
{
hitscanComponent.Damage *= energyRatio;
hitscanComponent.ColorModifier = energyRatio;
@@ -242,7 +242,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
return false;
}
if (!user.TryGetComponent(out HandsComponent? hands))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(user.Uid, out HandsComponent? hands))
{
return false;
}

View File

@@ -154,7 +154,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
{
(int, int)? count = null;
var magazine = MagazineContainer.ContainedEntity;
if (magazine != null && magazine.TryGetComponent(out RangedMagazineComponent? rangedMagazineComponent))
if (magazine != null && IoCManager.Resolve<IEntityManager>().TryGetComponent(magazine.Uid, out RangedMagazineComponent? rangedMagazineComponent))
{
count = (rangedMagazineComponent.ShotsLeft, rangedMagazineComponent.Capacity);
}
@@ -170,7 +170,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
{
base.Initialize();
if (Owner.TryGetComponent(out AppearanceComponent? appearanceComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner.Uid, out AppearanceComponent? appearanceComponent))
{
_appearanceComponent = appearanceComponent;
}
@@ -338,7 +338,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
MagazineContainer.Remove(mag);
SoundSystem.Play(Filter.Pvs(Owner), _soundMagEject.GetSound(), Owner, AudioParams.Default.WithVolume(-2));
if (user.TryGetComponent(out HandsComponent? handsComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(user.Uid, out HandsComponent? handsComponent))
{
handsComponent.PutInHandOrDrop(IoCManager.Resolve<IEntityManager>().GetComponent<ItemComponent>(mag.Uid));
}
@@ -349,7 +349,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
public bool CanInsertMagazine(IEntity user, IEntity magazine, bool quiet = true)
{
if (!magazine.TryGetComponent(out RangedMagazineComponent? magazineComponent))
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(magazine.Uid, out RangedMagazineComponent? magazineComponent))
{
return false;
}
@@ -403,7 +403,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
}
// Insert 1 ammo
if (eventArgs.Using.TryGetComponent(out AmmoComponent? ammoComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(eventArgs.Using.Uid, out AmmoComponent? ammoComponent))
{
if (!BoltOpen)
{

View File

@@ -149,7 +149,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
protected override void OnRemove()
{
base.OnRemove();
if (Owner.TryGetComponent(out ServerRangedWeaponComponent? rangedWeaponComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner.Uid, out ServerRangedWeaponComponent? rangedWeaponComponent))
{
rangedWeaponComponent.Barrel = null;
rangedWeaponComponent.FireHandler -= Fire;
@@ -215,19 +215,19 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
var direction = (targetPos - shooter.Transform.WorldPosition).ToAngle();
var angle = GetRecoilAngle(direction);
// This should really be client-side but for now we'll just leave it here
if (shooter.TryGetComponent(out CameraRecoilComponent? recoilComponent))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(shooter.Uid, out CameraRecoilComponent? recoilComponent))
{
recoilComponent.Kick(-angle.ToVec() * 0.15f);
}
// This section probably needs tweaking so there can be caseless hitscan etc.
if (projectile.TryGetComponent(out HitscanComponent? hitscan))
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(projectile.Uid, out HitscanComponent? hitscan))
{
FireHitscan(shooter, hitscan, angle);
}
else if (IoCManager.Resolve<IEntityManager>().HasComponent<ProjectileComponent>(projectile.Uid) &&
ammo != null &&
ammo.TryGetComponent(out AmmoComponent? ammoComponent))
IoCManager.Resolve<IEntityManager>().TryGetComponent(ammo.Uid, out AmmoComponent? ammoComponent))
{
FireProjectiles(shooter, projectile, ammoComponent.ProjectilesFired, ammoComponent.EvenSpreadAngle, angle, ammoComponent.Velocity, ammo);

View File

@@ -146,12 +146,12 @@ namespace Content.Server.Weapon.Ranged
/// <param name="targetPos">Target position on the map to shoot at.</param>
private void TryFire(IEntity user, Vector2 targetPos)
{
if (!user.TryGetComponent(out HandsComponent? hands) || hands.GetActiveHand?.Owner != Owner)
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(user.Uid, out HandsComponent? hands) || hands.GetActiveHand?.Owner != Owner)
{
return;
}
if (!user.TryGetComponent(out CombatModeComponent? combat) || !combat.IsInCombatMode)
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(user.Uid, out CombatModeComponent? combat) || !combat.IsInCombatMode)
{
return;
}