Files
RobustToolbox/Robust.Shared.Scripting/ScriptGlobalsShared.cs
T
0a67cecfa5 Replace every usage of GridCoordinates with EntityCoordinates (#1280)
* Added struct skeleton for EntityCoordinates.

* Polish EntityCoordinates, add tests, add EntityCoordinates to Transforms

* Doc cleanup

* Remove useless code

* Return offset 0 when you don't have a parent

* Test for making sure EntityCoordinates for entities without parents have offset 0

* Use parent transform's GridId for GetGridId.

* Adds various methods, checks and tests

* Replace GridCoordinates with EntityCoordinates

* EyeManager.WorldToScreen fix

* Address reviews

* Fix za buildo

* Fix one transform test

* Fix the remaining tests

* Remove duplicate

* Remove another merge duplicate

* Fix property

* Rename most usages of GridCoordinates to EntityCoordinates.

* Add WithEntityId method to EntityCoordinates.

* Fix EntityCoordinates usage in GetEntitiesInRange

* Remove cursed IMapGrid method, change naming.

* Makes GridTileLookupSystem use EntityCoordinates

Co-authored-by: Acruid <shatter66@gmail.com>
Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
2020-09-06 16:09:19 +02:00

84 lines
2.4 KiB
C#

using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using JetBrains.Annotations;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Map;
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!;
[field: Dependency] public IMapManager map { get; } = default!;
public IEnumerable<T> protos<T>() where T : class, IPrototype
{
return prot.EnumeratePrototypes<T>();
}
public IEnumerable<EntityPrototype> eprotos => prot.EnumeratePrototypes<EntityPrototype>();
public EntityCoordinates gpos(double x, double y, int gridId)
{
return gpos(x, y, new GridId(gridId));
}
public EntityCoordinates gpos(double x, double y, GridId gridId)
{
if (!map.TryGetGrid(gridId, out var grid))
{
return new EntityCoordinates(EntityUid.Invalid, ((float) x, (float) y));
}
return new EntityCoordinates(grid.GridEntityId, ((float) x, (float) y));
}
public EntityUid eid(int i)
{
return new EntityUid(i);
}
public IEntity getent(int i)
{
return getent(eid(i));
}
public IEntity getent(EntityUid uid)
{
return ent.GetEntity(uid);
}
public IMapGrid getgrid(int i)
{
return map.GetGrid(new GridId(i));
}
public IMapGrid getgrid(GridId mapId)
{
return map.GetGrid(mapId);
}
public IEntity spawn(string prototype, EntityCoordinates 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);
}
}