* Suhariki (#4) * init * Porting is complete Still WIP * small stuff * SmallStuff * awawawa * Нас рано * Engi * More luck * removed some shit (cherry picked from commit e1d745655b0e7253ea4e4814b82dd56e90153514) * Самодельные отражайки (#6) * Ghetto Mirror Shield * Protorypes for ghetto mirrors * locale * idk, works fine on my machine * forsenPls (cherry picked from commit 4505739fd9430bcc578da3dec932d9aa7ca933ca) * Шлем из ведра (#7) * Bucket Helmet * Code cleanup * Squashed commit of the following: commit 4505739fd9430bcc578da3dec932d9aa7ca933ca Author: BIGZi0348 <118811750+BIGZi0348@users.noreply.github.com> Date: Sat Sep 21 17:10:02 2024 +0300 Самодельные отражайки (#6) * Ghetto Mirror Shield * Protorypes for ghetto mirrors * locale * idk, works fine on my machine * forsenPls commit 1f066876508dec8d3f21ad753dab9fcc13dc8d1a Author: BIGZi0348 <118811750+BIGZi0348@users.noreply.github.com> Date: Sat Sep 21 14:57:30 2024 +0300 Агрессивный вор (#5) * AggressiveThief * Попытка насрать обратно commit e1d745655b0e7253ea4e4814b82dd56e90153514 Author: BIGZi0348 <118811750+BIGZi0348@users.noreply.github.com> Date: Sat Sep 21 14:46:38 2024 +0300 Suhariki (#4) * init * Porting is complete Still WIP * small stuff * SmallStuff * awawawa * Нас рано * Engi * More luck * removed some shit commit 08061b4f1fbbfd521e3a40ef53d9bc86fa140087 Author: BIGZi0348 <118811750+BIGZi0348@users.noreply.github.com> Date: Sat Sep 21 14:30:31 2024 +0300 Engi rise up (#3) commit 00e2f5c45ca7abfeff1f85d4893352d8875f8560 Author: BIGZi0348 <118811750+BIGZi0348@users.noreply.github.com> Date: Thu Sep 19 19:42:30 2024 +0300 Bigzi upstream1 (#2) * init * Porting is complete Still WIP * Мелочи - Король крыс, диски, правки перевода и респрайт одеяния культа (#686) * Большой Крыс Отдыхает * Фикс размера фейк диска * Доработка диска очков РНД * Скоро перейду на райдер * Переводы * Диски одного размера * Респрайт робы и капюшона культа * Automatic changelog update * fix (#687) * Automatic changelog update * govno HD (#688) * Automatic changelog update * Hotfix loadouts (#689) * govno HD * hotfix loadouts * fuck * Automatic changelog update * Update PULL_REQUEST_TEMPLATE.md * Even smaller stuff (#690) * 45 to 44 * Фикс ошибки перевода * Voice mask translate * Automatic changelog update * small stuff * SmallStuff * awawawa * Локализация шепелявости (#691) * БУМ!!!!!!!! (#692) * Automatic changelog update * Большой ребаланс милишки (#681) * MeleeThrowOnHit rework * buff baseball bat * better mjolnir * telebaton system unhardcode + refactor + transform TelescopicBatonComponent to KnockDownOnHitComponent * fix telebaton prototype * darova * fix KnockDownOnHitSystem * chaplain weapons rebalance * fix nullrod hit sound * BloodstreamSystem cleanup * bleeding rebalance * damage rebalance * small baseball bat fix * Automatic changelog update * Chaplain armor fix (#693) * Фикс описания (#696) * No passengers on this military complex (#695) * Automatic changelog update * Переводы (#698) * Пепеводы * Очепятки * Фикс прожектора и открутка цифр (#697) * Melochi * Фикс хамелеона * Переводы денег мне на карту * Automatic changelog update * Нас рано * Фикс пополнения зарядов РЦД используя стаки ресурсов (#699) * Фиксики * Спасли Валеру от банкротства * Very hot man (#700) * Automatic changelog update * reverted illegal code added by oniks --------- Co-authored-by: RavmorganButOnCocaine <valtos@nextmail.ru> Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com> Co-authored-by: Valtos <valtos@spaces.ru> Co-authored-by: Jabak <163307958+Jabaks@users.noreply.github.com> Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com> * ВЕДРО!!! * Funny * Oppsie (cherry picked from commit 92ce631b0c0187678b6d1eea34d3c0830b9b0fac) * Yes (#8) (cherry picked from commit 3d083befca212455cffcae56b84ee55050ad62be) * Small Fix То чувство, когда можешь срать прямо в мэйн (cherry picked from commit 8fa7cfb678711a55bf6704ced30f7ed9b4b1e8c4) * bababooey (#9) (cherry picked from commit f7ed9d287f6798c7d39ac437a2f969ec0dc10309) * GoodLooking (#10) (cherry picked from commit 1617dce502b71db22a6b736ac879c04c07ec54a0) * Dadka scazal (#11) (cherry picked from commit 50da866354952628185bb396f359c2f533d57340) * Сортировка эксклюзива енги + респрайт деревянных столов и дверей (#12) * Massive * Чейндлок (cherry picked from commit 4dc165e4c1aa75e8fd22f14db95ac72bf50c77f5) * Big Zi bucket helmet fix * Опять насрал в мастер (cherry picked from commit bd866e0cd87770b1509885f66ec5c562dda3fd91) * Боевые Молоты (#14) (cherry picked from commit 64df6b4b91050273218007365cf81a45c3ea74a8) * хотфикс сухариков (cherry picked from commit a98265c22dc7de467693f501cf3a5d8577e94a54) * funny sword (#15) (cherry picked from commit 231aaa1b33b7e4edf00506c6ebdbd389257cf1ca) * funny hammer (cherry picked from commit 1e58eaa146cc95f34358d97d6c436ba4705d09a1) * Добавил админ логирование PacifiedOnChaplainActionSystem (#19) Update PacifiedOnChaplainActionSystem.cs (cherry picked from commit f6aa42eab7cce294336aec14f7dfb6f0671267cf) * Small refactor (cherry picked from commit b38ad7e7b8afa35a22c84c2fb8836bf13736dfb3) * Команда для отправки цели для станции (#21) * Команда для отправки цели для станции * Правки (cherry picked from commit 93a79c4952e3a75c32ff5cc4d07df4018a9bf7db) * Больше целей (cherry picked from commit c3d34d6a4e000d8af66c8f53d60a898cfae0a454) * Music for events (cherry picked from commit 4a7214634b3e77caefd011bf5900f581055a0ac8) * Санитизация * unused --------- Co-authored-by: BIGZi0348 <118811750+bigzi0348@users.noreply.github.com> Co-authored-by: BIGZi0348 <svalker0348@gmail.com>
175 lines
5.0 KiB
C#
175 lines
5.0 KiB
C#
using Content.Shared.Containers.ItemSlots;
|
|
using Content.Shared.Paper;
|
|
using Robust.Shared.Audio;
|
|
using Robust.Shared.GameStates;
|
|
using Robust.Shared.Prototypes;
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
|
|
|
namespace Content.Shared.Fax.Components;
|
|
|
|
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
|
public sealed partial class FaxMachineComponent : Component
|
|
{
|
|
/// <summary>
|
|
/// Name with which the fax will be visible to others on the network
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField("name")]
|
|
public string FaxName { get; set; } = "Unknown";
|
|
|
|
/// <summary>
|
|
/// Sprite to use when inserting an object.
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField, AutoNetworkedField]
|
|
public string InsertingState = "inserting";
|
|
|
|
/// <summary>
|
|
/// Device address of fax in network to which data will be send
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField("destinationAddress")]
|
|
public string? DestinationFaxAddress { get; set; }
|
|
|
|
/// <summary>
|
|
/// Contains the item to be sent, assumes it's paper...
|
|
/// </summary>
|
|
[DataField(required: true)]
|
|
public ItemSlot PaperSlot = new();
|
|
|
|
/// <summary>
|
|
/// Is fax machine should respond to pings in network
|
|
/// This will make it visible to others on the network
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField]
|
|
public bool ResponsePings { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Should admins be notified on message receive
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField]
|
|
public bool NotifyAdmins { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// Should that fax receive nuke codes send by admins. Probably should be captain fax only
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField]
|
|
public bool ReceiveNukeCodes { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// WD.
|
|
/// Should that fax receive station goal info
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField("receiveStationGoal")]
|
|
public bool ReceiveStationGoal { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// Sound to play when fax has been emagged
|
|
/// </summary>
|
|
[DataField]
|
|
public SoundSpecifier EmagSound = new SoundCollectionSpecifier("sparks");
|
|
|
|
/// <summary>
|
|
/// Sound to play when fax printing new message
|
|
/// </summary>
|
|
[DataField]
|
|
public SoundSpecifier PrintSound = new SoundPathSpecifier("/Audio/Machines/printer.ogg");
|
|
|
|
/// <summary>
|
|
/// Sound to play when fax successfully send message
|
|
/// </summary>
|
|
[DataField]
|
|
public SoundSpecifier SendSound = new SoundPathSpecifier("/Audio/Machines/high_tech_confirm.ogg");
|
|
|
|
/// <summary>
|
|
/// Known faxes in network by address with fax names
|
|
/// </summary>
|
|
[ViewVariables]
|
|
public Dictionary<string, string> KnownFaxes { get; } = new();
|
|
|
|
/// <summary>
|
|
/// Print queue of the incoming message
|
|
/// </summary>
|
|
[ViewVariables]
|
|
[DataField]
|
|
public Queue<FaxPrintout> PrintingQueue { get; private set; } = new();
|
|
|
|
/// <summary>
|
|
/// Message sending timeout
|
|
/// </summary>
|
|
[ViewVariables]
|
|
[DataField]
|
|
public float SendTimeoutRemaining;
|
|
|
|
/// <summary>
|
|
/// Message sending timeout
|
|
/// </summary>
|
|
[ViewVariables]
|
|
[DataField]
|
|
public float SendTimeout = 5f;
|
|
|
|
/// <summary>
|
|
/// Remaining time of inserting animation
|
|
/// </summary>
|
|
[DataField]
|
|
public float InsertingTimeRemaining;
|
|
|
|
/// <summary>
|
|
/// How long the inserting animation will play
|
|
/// </summary>
|
|
[ViewVariables]
|
|
public float InsertionTime = 1.88f; // 0.02 off for correct animation
|
|
|
|
/// <summary>
|
|
/// Remaining time of printing animation
|
|
/// </summary>
|
|
[DataField]
|
|
public float PrintingTimeRemaining;
|
|
|
|
/// <summary>
|
|
/// How long the printing animation will play
|
|
/// </summary>
|
|
[ViewVariables]
|
|
public float PrintingTime = 2.3f;
|
|
}
|
|
|
|
[DataDefinition]
|
|
public sealed partial class FaxPrintout
|
|
{
|
|
[DataField(required: true)]
|
|
public string Name { get; private set; } = default!;
|
|
|
|
[DataField]
|
|
public string? Label { get; private set; }
|
|
|
|
[DataField(required: true)]
|
|
public string Content { get; private set; } = default!;
|
|
|
|
[DataField(customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>), required: true)]
|
|
public string PrototypeId { get; private set; } = default!;
|
|
|
|
[DataField("stampState")]
|
|
public string? StampState { get; private set; }
|
|
|
|
[DataField("stampedBy")]
|
|
public List<StampDisplayInfo> StampedBy { get; private set; } = new();
|
|
|
|
private FaxPrintout()
|
|
{
|
|
}
|
|
|
|
public FaxPrintout(string content, string name, string? label = null, string? prototypeId = null, string? stampState = null, List<StampDisplayInfo>? stampedBy = null)
|
|
{
|
|
Content = content;
|
|
Name = name;
|
|
Label = label;
|
|
PrototypeId = prototypeId ?? "";
|
|
StampState = stampState;
|
|
StampedBy = stampedBy ?? new List<StampDisplayInfo>();
|
|
}
|
|
}
|