| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using Content.Shared.Construction;
- using Content.Shared.Examine;
- using JetBrains.Annotations;
- using Robust.Server.Containers;
- using Robust.Shared.Containers;
- using Robust.Shared.Utility;
- namespace Content.Server.Construction.Conditions
- {
- [UsedImplicitly]
- [DataDefinition]
- public sealed partial class ContainerNotEmpty : IGraphCondition
- {
- [DataField("container")] public string Container { get; private set; } = string.Empty;
- [DataField("examineText")] public string? ExamineText { get; private set; }
- [DataField("guideText")] public string? GuideText { get; private set; }
- [DataField("guideIcon")] public SpriteSpecifier? GuideIcon { get; private set; }
- public bool Condition(EntityUid uid, IEntityManager entityManager)
- {
- var containerSystem = entityManager.EntitySysManager.GetEntitySystem<ContainerSystem>();
- if (!containerSystem.TryGetContainer(uid, Container, out var container))
- return false;
- return container.ContainedEntities.Count != 0;
- }
- public bool DoExamine(ExaminedEvent args)
- {
- if (ExamineText == null)
- return false;
- var entity = args.Examined;
- if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(entity, out ContainerManagerComponent? containerManager) ||
- !containerManager.TryGetContainer(Container, out var container)) return false;
- if (container.ContainedEntities.Count != 0)
- return false;
- args.PushMarkup(Loc.GetString(ExamineText));
- return true;
- }
- public IEnumerable<ConstructionGuideEntry> GenerateGuideEntry()
- {
- if (GuideText == null)
- yield break;
- yield return new ConstructionGuideEntry()
- {
- Localization = GuideText,
- Icon = GuideIcon,
- };
- }
- }
- }
|