mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-15 14:52:35 +02:00
* 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>
84 lines
2.4 KiB
C#
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);
|
|
}
|
|
}
|