White Cane for Blind People (#16318)

This commit is contained in:
forkeyboards
2023-05-12 23:11:35 -04:00
committed by GitHub
parent 0c4002bbd3
commit e72db80060
10 changed files with 77 additions and 0 deletions

View File

@@ -1,4 +1,6 @@
using Content.Server.GameTicking;
using Content.Shared.Hands.Components;
using Content.Shared.Hands.EntitySystems;
using Content.Shared.Traits;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.Manager;
@@ -9,6 +11,7 @@ public sealed class TraitSystem : EntitySystem
{
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly ISerializationManager _serializationManager = default!;
[Dependency] private readonly SharedHandsSystem _sharedHandsSystem = default!;
public override void Initialize()
{
@@ -41,6 +44,18 @@ public sealed class TraitSystem : EntitySystem
comp.Owner = args.Mob;
EntityManager.AddComponent(args.Mob, comp);
}
// Add item required by the trait
if (traitPrototype.TraitGear != null)
{
if (!TryComp(args.Mob, out HandsComponent? handsComponent))
continue;
var coords = Transform(args.Mob).Coordinates;
var inhandEntity = EntityManager.SpawnEntity(traitPrototype.TraitGear, coords);
_sharedHandsSystem.TryPickup(args.Mob, inhandEntity, checkActionBlocker: false,
handsComp: handsComponent);
}
}
}
}