Fax stamps (#13010)

* Change captain fax suffix

* Add stamps transmit

* Remove proto dependency

* Add centcom fax address for nuke codes

* Remove centcom address resolve

* Remove centcom id
This commit is contained in:
Morb
2022-12-20 06:44:15 +03:00
committed by GitHub
parent 04896d59bf
commit 6835ab0a04
5 changed files with 40 additions and 6 deletions

View File

@@ -273,7 +273,10 @@ public sealed class FaxSystem : EntitySystem
!args.Data.TryGetValue(FaxConstants.FaxPaperContentData, out string? content))
return;
var printout = new FaxPrintout(content, name);
args.Data.TryGetValue(FaxConstants.FaxPaperStampStateData, out string? stampState);
args.Data.TryGetValue(FaxConstants.FaxPaperStampedByData, out List<string>? stampedBy);
var printout = new FaxPrintout(content, name, stampState, stampedBy);
Receive(uid, printout, args.SenderAddress);
break;
@@ -393,6 +396,13 @@ public sealed class FaxSystem : EntitySystem
{ FaxConstants.FaxPaperNameData, metadata.EntityName },
{ FaxConstants.FaxPaperContentData, paper.Content },
};
if (paper.StampState != null)
{
payload[FaxConstants.FaxPaperStampStateData] = paper.StampState;
payload[FaxConstants.FaxPaperStampedByData] = paper.StampedBy;
}
_deviceNetworkSystem.QueuePacket(uid, component.DestinationFaxAddress, payload);
_adminLogger.Add(LogType.Action, LogImpact.Low, $"{(sender != null ? ToPrettyString(sender.Value) : "Unknown"):user} sent fax from \"{component.FaxName}\" {ToPrettyString(uid)} to {faxName} ({component.DestinationFaxAddress}): {paper.Content}");
@@ -435,8 +445,19 @@ public sealed class FaxSystem : EntitySystem
var printed = EntityManager.SpawnEntity("Paper", Transform(uid).Coordinates);
if (TryComp<PaperComponent>(printed, out var paper))
{
_paperSystem.SetContent(printed, printout.Content);
// Apply stamps
if (printout.StampState != null)
{
foreach (var stampedBy in printout.StampedBy)
{
_paperSystem.TryStamp(printed, stampedBy, printout.StampState);
}
}
}
if (TryComp<MetaDataComponent>(printed, out var metadata))
metadata.EntityName = printout.Name;