diff --git a/Robust.Shared.Scripting/ScriptGlobalsShared.cs b/Robust.Shared.Scripting/ScriptGlobalsShared.cs index 9170da9fe6..3ba337a796 100644 --- a/Robust.Shared.Scripting/ScriptGlobalsShared.cs +++ b/Robust.Shared.Scripting/ScriptGlobalsShared.cs @@ -21,7 +21,7 @@ namespace Robust.Shared.Scripting public abstract class ScriptGlobalsShared { private const BindingFlags DefaultHelpFlags = - BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; + BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public; [field: Dependency] public IEntityManager ent { get; } = default!; [field: Dependency] public IEntitySystemManager esm { get; } = default!; @@ -61,11 +61,6 @@ namespace Robust.Shared.Scripting return new(i); } - public T gcm(int i) - { - return ent.GetComponent(eid(i)); - } - public MapGridComponent getgrid(int i) { return map.GetGrid(new EntityUid(i)); @@ -76,11 +71,6 @@ namespace Robust.Shared.Scripting return map.GetGrid(mapId); } - public EntityUid spawn(string prototype, EntityCoordinates position) - { - return ent.SpawnEntity(prototype, position); - } - public T res() { return dependencies.Resolve(); @@ -125,7 +115,12 @@ namespace Robust.Shared.Scripting public void help() { - help(GetType(), DefaultHelpFlags &~ BindingFlags.NonPublic, false, false); + help(GetType(), DefaultHelpFlags, false, false); + } + + public void help(object obj, BindingFlags flags = DefaultHelpFlags, bool specialNameMethods = true, bool modifiers = true) + { + help(obj.GetType(), flags, specialNameMethods, modifiers); } public void help(Type type, BindingFlags flags = DefaultHelpFlags, bool specialNameMethods = true, bool modifiers = true) @@ -169,5 +164,72 @@ namespace Robust.Shared.Scripting protected abstract void WriteSyntax(object toString); public abstract void write(object toString); public abstract void show(object obj); + + #region EntityManager proxy methods + public T Comp(EntityUid uid) + => ent.GetComponent(uid); + + public bool TryComp(EntityUid uid, out T? comp) + => ent.TryGetComponent(uid, out comp); + + public bool HasComp(EntityUid uid) + => ent.HasComponent(uid); + + public EntityUid Spawn(string? prototype, EntityCoordinates position) + => ent.SpawnEntity(prototype, position); + + public void Del(EntityUid uid) + => ent.DeleteEntity(uid); + + public void Dirty(EntityUid uid) + => ent.DirtyEntity(uid); + + public void Dirty(Component comp) + => ent.Dirty(comp); + + public string Name(EntityUid uid) + => ent.GetComponent(uid).EntityName; + + public string Desc(EntityUid uid) + => ent.GetComponent(uid).EntityDescription; + + public EntityPrototype? Prototype(EntityUid uid) + => ent.GetComponent(uid).EntityPrototype; + + public EntityStringRepresentation ToPrettyString(EntityUid uid) + => ent.ToPrettyString(uid); + + public IEnumerable AllComps(EntityUid uid) + => ent.GetComponents(uid); + + public TransformComponent Transform(EntityUid uid) + => ent.GetComponent(uid); + + public MetaDataComponent MetaData(EntityUid uid) + => ent.GetComponent(uid); + + public EntityCoordinates Pos(EntityUid uid) => Transform(uid).Coordinates; + + public IEnumerable Query(bool includePaused = false) + where TComp1 : IComponent + { + return ent.EntityQuery(includePaused); + } + + public IEnumerable<(TComp1, TComp2)> Query(bool includePaused = false) + where TComp1 : IComponent + where TComp2 : IComponent + { + return ent.EntityQuery(includePaused); + } + + public IEnumerable<(TComp1, TComp2, TComp3)> Query(bool includePaused = false) + where TComp1 : IComponent + where TComp2 : IComponent + where TComp3 : IComponent + { + return ent.EntityQuery(includePaused); + } + #endregion } }