Do not hardcode salvage magnet channel (#9633)

This commit is contained in:
Rane
2022-07-11 18:06:56 -04:00
committed by GitHub
parent 955df9a3be
commit 582436d6b5
2 changed files with 21 additions and 12 deletions

View File

@@ -1,3 +1,7 @@
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
using Content.Shared.Radio;
namespace Content.Server.Salvage
{
/// <summary>
@@ -28,6 +32,11 @@ namespace Content.Server.Salvage
[ViewVariables(VVAccess.ReadOnly)]
[DataField("magnetState")]
public MagnetState MagnetState = MagnetState.Inactive;
[ViewVariables]
[DataField("salvageChannel", customTypeSerializer: typeof(PrototypeIdSerializer<RadioChannelPrototype>))]
public string SalvageChannel = "Supply";
}
public record struct MagnetState(MagnetStateType StateType, TimeSpan Until)
{

View File

@@ -69,7 +69,7 @@ namespace Content.Server.Salvage
{
var gridUid = _mapManager.GetGridEuid(ev.GridId);
if (EntityManager.TryGetComponent<SalvageGridComponent>(gridUid, out var salvComp) && salvComp.SpawnerMagnet != null)
Report(salvComp.SpawnerMagnet.Owner, "salvage-system-announcement-spawn-magnet-lost");
Report(salvComp.SpawnerMagnet.Owner, salvComp.SpawnerMagnet.SalvageChannel, "salvage-system-announcement-spawn-magnet-lost");
// For the very unlikely possibility that the salvage magnet was on a salvage, we will not return here
}
foreach(var gridState in _salvageGridStates)
@@ -96,16 +96,16 @@ namespace Content.Server.Salvage
return;
}
salvageGridState.ActiveMagnets.Remove(component);
Report(uid, "salvage-system-announcement-spawn-magnet-lost");
Report(uid, component.SalvageChannel, "salvage-system-announcement-spawn-magnet-lost");
if (component.AttachedEntity.HasValue)
{
SafeDeleteSalvage(component.AttachedEntity.Value);
component.AttachedEntity = null;
Report(uid, "salvage-system-announcement-lost");
Report(uid, component.SalvageChannel, "salvage-system-announcement-lost");
}
else if (component.MagnetState is { StateType: MagnetStateType.Attaching })
{
Report(uid, "salvage-system-announcement-spawn-no-debris-available");
Report(uid, component.SalvageChannel, "salvage-system-announcement-spawn-no-debris-available");
}
component.MagnetState = MagnetState.Inactive;
}
@@ -168,7 +168,7 @@ namespace Content.Server.Salvage
}
gridState.ActiveMagnets.Add(component);
component.MagnetState = new MagnetState(MagnetStateType.Attaching, gridState.CurrentTime + AttachingTime);
Report(component.Owner, "salvage-system-report-activate-success");
Report(component.Owner, component.SalvageChannel, "salvage-system-report-activate-success");
break;
case MagnetStateType.Attaching:
case MagnetStateType.Holding:
@@ -279,7 +279,7 @@ namespace Content.Server.Salvage
if (map == null)
{
Report(component.Owner, "salvage-system-announcement-spawn-no-debris-available");
Report(component.Owner, component.SalvageChannel, "salvage-system-announcement-spawn-no-debris-available");
return false;
}
@@ -291,7 +291,7 @@ namespace Content.Server.Salvage
var (_, salvageEntityId) = _mapLoader.LoadBlueprint(spl.MapId, map.MapPath.ToString(), opts);
if (salvageEntityId == null)
{
Report(component.Owner, "salvage-system-announcement-spawn-debris-disintegrated");
Report(component.Owner, component.SalvageChannel, "salvage-system-announcement-spawn-debris-disintegrated");
return false;
}
component.AttachedEntity = salvageEntityId;
@@ -301,16 +301,16 @@ namespace Content.Server.Salvage
var pulledTransform = EntityManager.GetComponent<TransformComponent>(salvageEntityId.Value);
pulledTransform.WorldRotation = spAngle;
Report(component.Owner, "salvage-system-announcement-arrived", ("timeLeft", HoldTime.TotalSeconds));
Report(component.Owner, component.SalvageChannel, "salvage-system-announcement-arrived", ("timeLeft", HoldTime.TotalSeconds));
return true;
}
private void Report(EntityUid source, string messageKey, params (string, object)[] args)
private void Report(EntityUid source, string channelName, string messageKey, params (string, object)[] args)
{
if (!TryComp<IntrinsicRadioComponent>(source, out var radio)) return;
var message = args.Length == 0 ? Loc.GetString(messageKey) : Loc.GetString(messageKey, args);
var channel = _prototypeManager.Index<RadioChannelPrototype>("Supply");
var channel = _prototypeManager.Index<RadioChannelPrototype>(channelName);
_radioSystem.SpreadMessage(radio, source, message, channel);
}
@@ -329,7 +329,7 @@ namespace Content.Server.Salvage
}
break;
case MagnetStateType.Holding:
Report(magnet.Owner, "salvage-system-announcement-losing", ("timeLeft", DetachingTime.TotalSeconds));
Report(magnet.Owner, magnet.SalvageChannel, "salvage-system-announcement-losing", ("timeLeft", DetachingTime.TotalSeconds));
magnet.MagnetState = new MagnetState(MagnetStateType.Detaching, currentTime + DetachingTime);
break;
case MagnetStateType.Detaching:
@@ -341,7 +341,7 @@ namespace Content.Server.Salvage
{
Logger.ErrorS("salvage", "Salvage detaching was expecting attached entity but it was null");
}
Report(magnet.Owner, "salvage-system-announcement-lost");
Report(magnet.Owner, magnet.SalvageChannel, "salvage-system-announcement-lost");
magnet.MagnetState = new MagnetState(MagnetStateType.CoolingDown, currentTime + CooldownTime);
break;
case MagnetStateType.CoolingDown: