Ghost z-levels move actions + mapping z-levels combine command (#654)

* some setup

* fast ghost zlevels-moving

* zlevel combine command for mapping
This commit is contained in:
Ed
2024-12-09 20:39:46 +03:00
committed by GitHub
parent 5384adb2b3
commit bec8d7a7d4
17 changed files with 320 additions and 165 deletions

View File

@@ -0,0 +1,41 @@
using System.Numerics;
using Content.Shared._CP14.ZLevel;
using Content.Shared.Ghost;
using Robust.Shared.Map;
namespace Content.Server._CP14.ZLevels.EntitySystems;
public sealed partial class CP14StationZLevelsSystem
{
private void InitActions()
{
SubscribeLocalEvent<GhostComponent, CP14ZLevelActionUp>(OnZLevelUp);
SubscribeLocalEvent<GhostComponent, CP14ZLevelActionDown>(OnZLevelDown);
}
private void OnZLevelDown(Entity<GhostComponent> ent, ref CP14ZLevelActionDown args)
{
ZLevelMove(ent, -1);
}
private void OnZLevelUp(Entity<GhostComponent> ent, ref CP14ZLevelActionUp args)
{
ZLevelMove(ent, 1);
}
private void ZLevelMove(EntityUid ent, int offset)
{
var xform = Transform(ent);
var map = xform.MapUid;
if (map is null)
return;
var targetMap = GetMapOffset(map.Value, offset);
if (targetMap is null)
return;
_transform.SetMapCoordinates(ent, new MapCoordinates(_transform.GetWorldPosition(ent), targetMap.Value));
}
}