mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-14 19:29:36 +01:00
Adds more script globals.
Also makes them all abstract for code reuse working around a Roslyn bug.
This commit is contained in:
51
Robust.Shared.Scripting/ScriptGlobalsShared.cs
Normal file
51
Robust.Shared.Scripting/ScriptGlobalsShared.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Interfaces.GameObjects;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Robust.Shared.Scripting
|
||||
{
|
||||
[PublicAPI]
|
||||
[SuppressMessage("ReSharper", "IdentifierTypo")]
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
public abstract class ScriptGlobalsShared
|
||||
{
|
||||
[field: Dependency] public IEntityManager ent { get; } = default!;
|
||||
[field: Dependency] public IComponentManager comp { get; } = default!;
|
||||
[field: Dependency] public IPrototypeManager prot { get; } = default!;
|
||||
|
||||
public IEnumerable<T> protos<T>() where T : class, IPrototype
|
||||
{
|
||||
return prot.EnumeratePrototypes<T>();
|
||||
}
|
||||
|
||||
public IEnumerable<EntityPrototype> eprotos => prot.EnumeratePrototypes<EntityPrototype>();
|
||||
|
||||
public GridCoordinates gpos(double x, double y, int gridId)
|
||||
{
|
||||
return new GridCoordinates((float)x, (float)y, new GridId(gridId));
|
||||
}
|
||||
|
||||
public GridCoordinates gpos(double x, double y, GridId gridId)
|
||||
{
|
||||
return new GridCoordinates((float)x, (float)y, gridId);
|
||||
}
|
||||
|
||||
public IEntity spawn(string prototype, GridCoordinates position)
|
||||
{
|
||||
return ent.SpawnEntity(prototype, position);
|
||||
}
|
||||
|
||||
public T res<T>()
|
||||
{
|
||||
return IoCManager.Resolve<T>();
|
||||
}
|
||||
|
||||
public abstract void write(object toString);
|
||||
public abstract void show(object obj);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user