using Robust.Shared.Prototypes; namespace Content.Shared.Construction; public interface IGraphNodeEntity { /// /// Gets the ID for a node, given the of both the /// construction entity and the user entity. /// If the construction entity is null, then we are dealing with a "start construction" for an entity that /// does not exist yet. /// If the user entity is null, this node was reached through means other some sort of "user interaction". /// /// Uid of the construction entity. /// Uid of the user that caused the transition to the node. /// Arguments with useful instances, etc. /// public string? GetId(EntityUid? uid, EntityUid? userUid, GraphNodeEntityArgs args); } public readonly struct GraphNodeEntityArgs { public readonly IEntityManager EntityManager; public GraphNodeEntityArgs(IEntityManager entityManager) { EntityManager = entityManager; } }