Change the syndicate charge to start a timer on signal (#32423)
* Change the syndicate charge to start a timer on signal * Actually add the component in question * Add default link for TimerStart signal
This commit is contained in:
@@ -0,0 +1,15 @@
|
|||||||
|
using Content.Shared.DeviceLinking;
|
||||||
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
||||||
|
|
||||||
|
namespace Content.Server.Explosion.Components
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Sends a trigger when signal is received.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent]
|
||||||
|
public sealed partial class TimerStartOnSignalComponent : Component
|
||||||
|
{
|
||||||
|
[DataField("port", customTypeSerializer: typeof(PrototypeIdSerializer<SinkPortPrototype>))]
|
||||||
|
public string Port = "Timer";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,6 +11,9 @@ namespace Content.Server.Explosion.EntitySystems
|
|||||||
{
|
{
|
||||||
SubscribeLocalEvent<TriggerOnSignalComponent,SignalReceivedEvent>(OnSignalReceived);
|
SubscribeLocalEvent<TriggerOnSignalComponent,SignalReceivedEvent>(OnSignalReceived);
|
||||||
SubscribeLocalEvent<TriggerOnSignalComponent,ComponentInit>(OnInit);
|
SubscribeLocalEvent<TriggerOnSignalComponent,ComponentInit>(OnInit);
|
||||||
|
|
||||||
|
SubscribeLocalEvent<TimerStartOnSignalComponent,SignalReceivedEvent>(OnTimerSignalReceived);
|
||||||
|
SubscribeLocalEvent<TimerStartOnSignalComponent,ComponentInit>(OnTimerSignalInit);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnSignalReceived(EntityUid uid, TriggerOnSignalComponent component, ref SignalReceivedEvent args)
|
private void OnSignalReceived(EntityUid uid, TriggerOnSignalComponent component, ref SignalReceivedEvent args)
|
||||||
@@ -24,5 +27,17 @@ namespace Content.Server.Explosion.EntitySystems
|
|||||||
{
|
{
|
||||||
_signalSystem.EnsureSinkPorts(uid, component.Port);
|
_signalSystem.EnsureSinkPorts(uid, component.Port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnTimerSignalReceived(EntityUid uid, TimerStartOnSignalComponent component, ref SignalReceivedEvent args)
|
||||||
|
{
|
||||||
|
if (args.Port != component.Port)
|
||||||
|
return;
|
||||||
|
|
||||||
|
StartTimer(uid, args.Trigger);
|
||||||
|
}
|
||||||
|
private void OnTimerSignalInit(EntityUid uid, TimerStartOnSignalComponent component, ComponentInit args)
|
||||||
|
{
|
||||||
|
_signalSystem.EnsureSinkPorts(uid, component.Port);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ signal-port-description-doorbolt = Bolts door when HIGH.
|
|||||||
signal-port-name-trigger = Trigger
|
signal-port-name-trigger = Trigger
|
||||||
signal-port-description-trigger = Triggers some mechanism on the device.
|
signal-port-description-trigger = Triggers some mechanism on the device.
|
||||||
|
|
||||||
|
signal-port-name-timer = Timer
|
||||||
|
signal-port-description-timer = Starts the timer countdown of the device.
|
||||||
|
|
||||||
signal-port-name-order-sender = Order sender
|
signal-port-name-order-sender = Order sender
|
||||||
signal-port-description-order-sender = Cargo console order sender
|
signal-port-description-order-sender = Cargo console order sender
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,11 @@
|
|||||||
name: signal-port-name-trigger
|
name: signal-port-name-trigger
|
||||||
description: signal-port-description-trigger
|
description: signal-port-description-trigger
|
||||||
|
|
||||||
|
- type: sinkPort
|
||||||
|
id: Timer
|
||||||
|
name: signal-port-name-timer
|
||||||
|
description: signal-port-description-timer
|
||||||
|
|
||||||
- type: sinkPort
|
- type: sinkPort
|
||||||
id: OrderReceiver
|
id: OrderReceiver
|
||||||
name: signal-port-name-order-receiver
|
name: signal-port-name-order-receiver
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
id: Pressed
|
id: Pressed
|
||||||
name: signal-port-name-pressed
|
name: signal-port-name-pressed
|
||||||
description: signal-port-description-pressed
|
description: signal-port-description-pressed
|
||||||
defaultLinks: [ Toggle, Trigger ]
|
defaultLinks: [ Toggle, Trigger, Timer ]
|
||||||
|
|
||||||
- type: sourcePort
|
- type: sourcePort
|
||||||
id: On
|
id: On
|
||||||
name: signal-port-name-on-transmitter
|
name: signal-port-name-on-transmitter
|
||||||
description: signal-port-description-on-transmitter
|
description: signal-port-description-on-transmitter
|
||||||
defaultLinks: [ On, Open, Forward, Trigger ]
|
defaultLinks: [ On, Open, Forward, Trigger, Timer ]
|
||||||
|
|
||||||
- type: sourcePort
|
- type: sourcePort
|
||||||
id: Off
|
id: Off
|
||||||
@@ -25,13 +25,13 @@
|
|||||||
id: Left
|
id: Left
|
||||||
name: signal-port-name-left
|
name: signal-port-name-left
|
||||||
description: signal-port-description-left
|
description: signal-port-description-left
|
||||||
defaultLinks: [ On, Open, Forward, Trigger ]
|
defaultLinks: [ On, Open, Forward, Trigger, Timer ]
|
||||||
|
|
||||||
- type: sourcePort
|
- type: sourcePort
|
||||||
id: Right
|
id: Right
|
||||||
name: signal-port-name-right
|
name: signal-port-name-right
|
||||||
description: signal-port-description-right
|
description: signal-port-description-right
|
||||||
defaultLinks: [ On, Open, Reverse, Trigger ]
|
defaultLinks: [ On, Open, Reverse, Trigger, Timer ]
|
||||||
|
|
||||||
- type: sourcePort
|
- type: sourcePort
|
||||||
id: Middle
|
id: Middle
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
id: Timer
|
id: Timer
|
||||||
name: signal-port-name-timer-trigger
|
name: signal-port-name-timer-trigger
|
||||||
description: signal-port-description-timer-trigger
|
description: signal-port-description-timer-trigger
|
||||||
defaultLinks: [ AutoClose, On, Open, Forward, Trigger ]
|
defaultLinks: [ AutoClose, On, Open, Forward, Trigger, Timer ]
|
||||||
|
|
||||||
- type: sourcePort
|
- type: sourcePort
|
||||||
id: Start
|
id: Start
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
id: OutputHigh
|
id: OutputHigh
|
||||||
name: signal-port-name-logic-output-high
|
name: signal-port-name-logic-output-high
|
||||||
description: signal-port-description-logic-output-high
|
description: signal-port-description-logic-output-high
|
||||||
defaultLinks: [ On, Open, Forward, Trigger ]
|
defaultLinks: [ On, Open, Forward, Trigger, Timer ]
|
||||||
|
|
||||||
- type: sourcePort
|
- type: sourcePort
|
||||||
id: OutputLow
|
id: OutputLow
|
||||||
|
|||||||
@@ -54,10 +54,10 @@
|
|||||||
beepSound: /Audio/Machines/Nuke/general_beep.ogg
|
beepSound: /Audio/Machines/Nuke/general_beep.ogg
|
||||||
startOnStick: true
|
startOnStick: true
|
||||||
canToggleStartOnStick: true
|
canToggleStartOnStick: true
|
||||||
- type: TriggerOnSignal
|
- type: TimerStartOnSignal
|
||||||
- type: DeviceLinkSink
|
- type: DeviceLinkSink
|
||||||
ports:
|
ports:
|
||||||
- Trigger
|
- Timer
|
||||||
- type: Explosive # Powerful explosion in a very small radius. Doesn't break underplating.
|
- type: Explosive # Powerful explosion in a very small radius. Doesn't break underplating.
|
||||||
explosionType: DemolitionCharge
|
explosionType: DemolitionCharge
|
||||||
totalIntensity: 60
|
totalIntensity: 60
|
||||||
|
|||||||
Reference in New Issue
Block a user