Mail visual update (#37049)
This commit is contained in:
@@ -25,6 +25,7 @@ public sealed partial class DeliveryModifierSystem : EntitySystem
|
|||||||
SubscribeLocalEvent<DeliveryRandomMultiplierComponent, GetDeliveryMultiplierEvent>(OnGetRandomMultiplier);
|
SubscribeLocalEvent<DeliveryRandomMultiplierComponent, GetDeliveryMultiplierEvent>(OnGetRandomMultiplier);
|
||||||
|
|
||||||
SubscribeLocalEvent<DeliveryPriorityComponent, MapInitEvent>(OnPriorityMapInit);
|
SubscribeLocalEvent<DeliveryPriorityComponent, MapInitEvent>(OnPriorityMapInit);
|
||||||
|
SubscribeLocalEvent<DeliveryPriorityComponent, DeliveryUnlockedEvent>(OnPriorityDelivered);
|
||||||
SubscribeLocalEvent<DeliveryPriorityComponent, ExaminedEvent>(OnPriorityExamine);
|
SubscribeLocalEvent<DeliveryPriorityComponent, ExaminedEvent>(OnPriorityExamine);
|
||||||
SubscribeLocalEvent<DeliveryPriorityComponent, GetDeliveryMultiplierEvent>(OnGetPriorityMultiplier);
|
SubscribeLocalEvent<DeliveryPriorityComponent, GetDeliveryMultiplierEvent>(OnGetPriorityMultiplier);
|
||||||
|
|
||||||
@@ -55,12 +56,23 @@ public sealed partial class DeliveryModifierSystem : EntitySystem
|
|||||||
Dirty(ent);
|
Dirty(ent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnPriorityDelivered(Entity<DeliveryPriorityComponent> ent, ref DeliveryUnlockedEvent args)
|
||||||
|
{
|
||||||
|
if (ent.Comp.Expired)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ent.Comp.Delivered = true;
|
||||||
|
Dirty(ent);
|
||||||
|
}
|
||||||
|
|
||||||
private void OnPriorityExamine(Entity<DeliveryPriorityComponent> ent, ref ExaminedEvent args)
|
private void OnPriorityExamine(Entity<DeliveryPriorityComponent> ent, ref ExaminedEvent args)
|
||||||
{
|
{
|
||||||
var trueName = _nameModifier.GetBaseName(ent.Owner);
|
var trueName = _nameModifier.GetBaseName(ent.Owner);
|
||||||
var timeLeft = ent.Comp.DeliverUntilTime - _timing.CurTime;
|
var timeLeft = ent.Comp.DeliverUntilTime - _timing.CurTime;
|
||||||
|
|
||||||
if (_timing.CurTime < ent.Comp.DeliverUntilTime)
|
if (ent.Comp.Delivered)
|
||||||
|
args.PushMarkup(Loc.GetString("delivery-priority-delivered-examine", ("type", trueName)));
|
||||||
|
else if (_timing.CurTime < ent.Comp.DeliverUntilTime)
|
||||||
args.PushMarkup(Loc.GetString("delivery-priority-examine", ("type", trueName), ("time", timeLeft.ToString("mm\\:ss"))));
|
args.PushMarkup(Loc.GetString("delivery-priority-examine", ("type", trueName), ("time", timeLeft.ToString("mm\\:ss"))));
|
||||||
else
|
else
|
||||||
args.PushMarkup(Loc.GetString("delivery-priority-expired-examine", ("type", trueName)));
|
args.PushMarkup(Loc.GetString("delivery-priority-expired-examine", ("type", trueName)));
|
||||||
@@ -122,7 +134,7 @@ public sealed partial class DeliveryModifierSystem : EntitySystem
|
|||||||
|
|
||||||
while (priorityQuery.MoveNext(out var uid, out var priorityData))
|
while (priorityQuery.MoveNext(out var uid, out var priorityData))
|
||||||
{
|
{
|
||||||
if (priorityData.Expired)
|
if (priorityData.Expired || priorityData.Delivered)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (priorityData.DeliverUntilTime < curTime)
|
if (priorityData.DeliverUntilTime < curTime)
|
||||||
|
|||||||
@@ -23,6 +23,12 @@ public sealed partial class DeliveryPriorityComponent : Component
|
|||||||
[DataField]
|
[DataField]
|
||||||
public float ExpiredMultiplierOffset = -0.1f;
|
public float ExpiredMultiplierOffset = -0.1f;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether this delivery was delivered on time.
|
||||||
|
/// </summary>
|
||||||
|
[DataField, AutoNetworkedField]
|
||||||
|
public bool Delivered;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether this priority delivery has already ran out of time or not.
|
/// Whether this priority delivery has already ran out of time or not.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -237,9 +237,9 @@ public abstract class SharedDeliverySystem : EntitySystem
|
|||||||
{
|
{
|
||||||
_appearance.SetData(uid, DeliveryVisuals.IsLocked, isLocked);
|
_appearance.SetData(uid, DeliveryVisuals.IsLocked, isLocked);
|
||||||
|
|
||||||
// If we're trying to unlock, always remove the priority tape
|
// If we're trying to unlock, mark priority as inactive
|
||||||
if (!isLocked)
|
if (HasComp<DeliveryPriorityComponent>(uid))
|
||||||
_appearance.SetData(uid, DeliveryVisuals.PriorityState, DeliveryPriorityState.Off);
|
_appearance.SetData(uid, DeliveryVisuals.PriorityState, DeliveryPriorityState.Inactive);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdatePriorityVisuals(Entity<DeliveryPriorityComponent> ent)
|
public void UpdatePriorityVisuals(Entity<DeliveryPriorityComponent> ent)
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ delivery-teleporter-empty-verb = Take mail
|
|||||||
|
|
||||||
# modifiers
|
# modifiers
|
||||||
delivery-priority-examine = This is a [color=orange]priority {$type}[/color]. You have [color=orange]{$time}[/color] left to deliver it to get a bonus.
|
delivery-priority-examine = This is a [color=orange]priority {$type}[/color]. You have [color=orange]{$time}[/color] left to deliver it to get a bonus.
|
||||||
delivery-priority-expired-examine = This is a [color=orange]priority {$type}[/color]. It seems you ran out of time.
|
delivery-priority-delivered-examine = This is a [color=orange]priority {$type}[/color]. It got delivered on time.
|
||||||
|
delivery-priority-expired-examine = This is a [color=orange]priority {$type}[/color]. It ran out of time.
|
||||||
|
|
||||||
delivery-fragile-examine = This is a [color=red]fragile {$type}[/color]. Deliver it intact for a bonus.
|
delivery-fragile-examine = This is a [color=red]fragile {$type}[/color]. Deliver it intact for a bonus.
|
||||||
delivery-fragile-broken-examine = This is a [color=red]fragile {$type}[/color]. It looks badly damaged.
|
delivery-fragile-broken-examine = This is a [color=red]fragile {$type}[/color]. It looks badly damaged.
|
||||||
|
|||||||
@@ -59,18 +59,18 @@
|
|||||||
- state: trash
|
- state: trash
|
||||||
map: [ "enum.DeliveryVisualLayers.Trash" ]
|
map: [ "enum.DeliveryVisualLayers.Trash" ]
|
||||||
visible: false
|
visible: false
|
||||||
- state: postmark
|
|
||||||
- map: [ "enum.DeliveryVisualLayers.JobStamp" ]
|
|
||||||
offset: -0.21875, -0.25
|
|
||||||
- state: fragile
|
|
||||||
map: [ "enum.DeliveryVisualLayers.FragileStamp" ]
|
|
||||||
visible: false
|
|
||||||
- state: locked
|
|
||||||
map: [ "enum.DeliveryVisualLayers.Lock" ]
|
|
||||||
- state: priority
|
- state: priority
|
||||||
map: [ "enum.DeliveryVisualLayers.PriorityTape" ]
|
map: [ "enum.DeliveryVisualLayers.PriorityTape" ]
|
||||||
visible: false
|
visible: false
|
||||||
shader: unshaded
|
shader: unshaded
|
||||||
|
- state: fragile
|
||||||
|
map: [ "enum.DeliveryVisualLayers.FragileStamp" ]
|
||||||
|
visible: false
|
||||||
|
- state: postmark
|
||||||
|
- map: [ "enum.DeliveryVisualLayers.JobStamp" ]
|
||||||
|
offset: -0.21875, -0.25
|
||||||
|
- state: locked
|
||||||
|
map: [ "enum.DeliveryVisualLayers.Lock" ]
|
||||||
- state: broken
|
- state: broken
|
||||||
map: [ "enum.DeliveryVisualLayers.Breakage" ]
|
map: [ "enum.DeliveryVisualLayers.Breakage" ]
|
||||||
visible: false
|
visible: false
|
||||||
@@ -102,18 +102,18 @@
|
|||||||
- state: trash
|
- state: trash
|
||||||
map: [ "enum.DeliveryVisualLayers.Trash" ]
|
map: [ "enum.DeliveryVisualLayers.Trash" ]
|
||||||
visible: false
|
visible: false
|
||||||
- state: postmark
|
|
||||||
- map: [ "enum.DeliveryVisualLayers.JobStamp" ]
|
|
||||||
offset: -0.125, -0.0625
|
|
||||||
- state: fragile
|
|
||||||
map: [ "enum.DeliveryVisualLayers.FragileStamp" ]
|
|
||||||
visible: false
|
|
||||||
- state: locked
|
|
||||||
map: [ "enum.DeliveryVisualLayers.Lock" ]
|
|
||||||
- state: priority
|
- state: priority
|
||||||
map: [ "enum.DeliveryVisualLayers.PriorityTape" ]
|
map: [ "enum.DeliveryVisualLayers.PriorityTape" ]
|
||||||
visible: false
|
visible: false
|
||||||
shader: unshaded
|
shader: unshaded
|
||||||
|
- state: fragile
|
||||||
|
map: [ "enum.DeliveryVisualLayers.FragileStamp" ]
|
||||||
|
visible: false
|
||||||
|
- state: postmark
|
||||||
|
- map: [ "enum.DeliveryVisualLayers.JobStamp" ]
|
||||||
|
offset: -0.125, -0.0625
|
||||||
|
- state: locked
|
||||||
|
map: [ "enum.DeliveryVisualLayers.Lock" ]
|
||||||
- state: broken
|
- state: broken
|
||||||
map: [ "enum.DeliveryVisualLayers.Breakage" ]
|
map: [ "enum.DeliveryVisualLayers.Breakage" ]
|
||||||
visible: false
|
visible: false
|
||||||
|
|||||||
Reference in New Issue
Block a user