74 lines
2.7 KiB
C#
74 lines
2.7 KiB
C#
// using Content.Shared.GameTicking; // DeltaV - Traits rework
|
|
// using Content.Shared.Hands.Components;
|
|
// using Content.Shared.Hands.EntitySystems;
|
|
// using Content.Shared.Roles;
|
|
// using Content.Shared.Traits;
|
|
// using Content.Shared.Whitelist;
|
|
// using Robust.Shared.Prototypes;
|
|
//
|
|
// namespace Content.Server.Traits;
|
|
//
|
|
// public sealed class TraitSystem : EntitySystem
|
|
// {
|
|
// [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
|
// [Dependency] private readonly SharedHandsSystem _sharedHandsSystem = default!;
|
|
// [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!;
|
|
//
|
|
// public override void Initialize()
|
|
// {
|
|
// base.Initialize();
|
|
//
|
|
// SubscribeLocalEvent<PlayerSpawnCompleteEvent>(OnPlayerSpawnComplete);
|
|
// }
|
|
//
|
|
// // When the player is spawned in, add all trait components selected during character creation
|
|
// private void OnPlayerSpawnComplete(PlayerSpawnCompleteEvent args)
|
|
// {
|
|
// // Check if player's job allows to apply traits
|
|
// if (args.JobId == null ||
|
|
// !_prototypeManager.Resolve<JobPrototype>(args.JobId, out var protoJob) ||
|
|
// !protoJob.ApplyTraits)
|
|
// {
|
|
// return;
|
|
// }
|
|
//
|
|
// foreach (var traitId in args.Profile.TraitPreferences)
|
|
// {
|
|
// if (!_prototypeManager.TryIndex<TraitPrototype>(traitId, out var traitPrototype))
|
|
// {
|
|
// Log.Error($"No trait found with ID {traitId}!");
|
|
// return;
|
|
// }
|
|
//
|
|
// if (_whitelistSystem.IsWhitelistFail(traitPrototype.Whitelist, args.Mob) ||
|
|
// _whitelistSystem.IsWhitelistPass(traitPrototype.Blacklist, args.Mob))
|
|
// continue;
|
|
//
|
|
// // Add all components required by the prototype
|
|
// if (traitPrototype.Components.Count > 0)
|
|
// EntityManager.AddComponents(args.Mob, traitPrototype.Components, false);
|
|
//
|
|
// // Add all JobSpecials required by the prototype
|
|
// foreach (var special in traitPrototype.Specials)
|
|
// {
|
|
// special.AfterEquip(args.Mob);
|
|
// }
|
|
//
|
|
// // Add item required by the trait
|
|
// if (traitPrototype.TraitGear == null)
|
|
// continue;
|
|
//
|
|
// if (!TryComp(args.Mob, out HandsComponent? handsComponent))
|
|
// continue;
|
|
//
|
|
// var coords = Transform(args.Mob).Coordinates;
|
|
// var inhandEntity = Spawn(traitPrototype.TraitGear, coords);
|
|
// _sharedHandsSystem.TryPickup(args.Mob,
|
|
// inhandEntity,
|
|
// checkActionBlocker: false,
|
|
// handsComp: handsComponent);
|
|
// }
|
|
// }
|
|
// }
|
|
//
|