fish-station/Content.Shared/Teleportation/Components/TeleportLocationsComponent.cs
ReWAFFlution 72b8bcc136
Upstream
* 1

* фикс шаттла утилей

* фиксы

* FTL иплакт. Задержка на отсегивание других

* Mechlocker construction fix (#2703)

* Фикс корпАрации на корпОрацию (#2701)

* ебучие артефакты (#2698)

* улучшения эффектов волос (#2699)

* Крафт петарды (#2696)

* фикс крафта петард (#2704)

* 2

* упс

* Игроки теперь ничего не видят, будучи в трубе (#2712)

* Energy shield sprite fix (#2711)

* Новые декали и диван (#2707)

* Сортировка иконок состояний по алфавиту (#2706)

* Automatic changelog update

* Снова абдукторы (#2705)

* Automatic changelog update

* да блядь

* увы

---------

Co-authored-by: Vigers Ray <vigersray@gmail.com>
Co-authored-by: Hero010h <163765999+Hero010h@users.noreply.github.com>
Co-authored-by: Ligyb <65973111+Lgibb18@users.noreply.github.com>
Co-authored-by: temm1ie <63717386+temm1ie@users.noreply.github.com>
Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com>
Co-authored-by: DeasTrouGht <154323704+DeasTrouGht@users.noreply.github.com>
Co-authored-by: Inowe <107273594+InoweD@users.noreply.github.com>
Co-authored-by: Sunrise-Bot <sunrise.project.top@gmail.com>
Co-authored-by: iertis <kanopus952@gmail.com>
2025-08-05 04:05:06 +03:00

71 lines
2 KiB
C#

using Content.Shared.Teleportation.Systems;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
namespace Content.Shared.Teleportation.Components;
// TODO: In the future assimilate ghost UI to use this.
/// <summary>
/// Used where you want an entity to display a list of player-safe teleport locations
/// They teleport to the location clicked
/// Looks for non Ghost-Only WarpPointComponents
/// </summary>
[RegisterComponent, NetworkedComponent, Access(typeof(SharedTeleportLocationsSystem)), AutoGenerateComponentState]
public sealed partial class TeleportLocationsComponent : Component
{
/// <summary>
/// List of available warp points
/// </summary>
[DataField, AutoNetworkedField]
public HashSet<TeleportPoint> AvailableWarps = new();
/// <summary>
/// What should spawn as an effect when the user teleports?
/// </summary>
[DataField]
public EntProtoId? TeleportEffect;
/// <summary>
/// Should this close the BUI after teleport?
/// </summary>
[DataField]
public bool CloseAfterTeleport;
/// <summary>
/// Name of the Teleport Location menu
/// </summary>
[DataField]
public LocId Name;
/// <summary>
/// Should the user have some speech if they teleport?
/// If enabled it will be prepended to the location name.
/// So something like "I am going to" would become "I am going to (Bridge)"
/// </summary>
[DataField]
public LocId? Speech;
// Sunrise-start
[DataField]
public bool DeleteAfterUse;
// Sunrise-end
}
/// <summary>
/// A teleport point, which has a location (the destination) and the entity that it represents.
/// </summary>
[Serializable, NetSerializable, DataDefinition]
public partial record struct TeleportPoint
{
[DataField]
public string Location;
[DataField]
public NetEntity TelePoint;
public TeleportPoint(string Location, NetEntity TelePoint)
{
this.Location = Location;
this.TelePoint = TelePoint;
}
}