ComponentConstructionGraphStep.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. using Content.Shared.Examine;
  2. namespace Content.Shared.Construction.Steps
  3. {
  4. [DataDefinition]
  5. public sealed partial class ComponentConstructionGraphStep : ArbitraryInsertConstructionGraphStep
  6. {
  7. [DataField("component")] public string Component { get; private set; } = string.Empty;
  8. public override bool EntityValid(EntityUid uid, IEntityManager entityManager, IComponentFactory compFactory)
  9. {
  10. foreach (var component in entityManager.GetComponents(uid))
  11. {
  12. if (compFactory.GetComponentName(component.GetType()) == Component)
  13. return true;
  14. }
  15. return false;
  16. }
  17. public override void DoExamine(ExaminedEvent examinedEvent)
  18. {
  19. examinedEvent.PushMarkup(string.IsNullOrEmpty(Name)
  20. ? Loc.GetString(
  21. "construction-insert-entity-with-component",
  22. ("componentName", Component))// Terrible.
  23. : Loc.GetString(
  24. "construction-insert-exact-entity",
  25. ("entityName", Name)));
  26. }
  27. }
  28. }