Injector sprite fix (#9011)
This commit is contained in:
@@ -53,16 +53,19 @@ public sealed class SubFloorHideSystem : SharedSubFloorHideSystem
|
||||
}
|
||||
|
||||
// Is there some layer that is always visible?
|
||||
if (args.Sprite.LayerMapTryGet(SubfloorLayers.FirstLayer, out var firstLayer))
|
||||
var hasVisibleLayer = false;
|
||||
foreach (var layerKey in component.VisibleLayers)
|
||||
{
|
||||
var layer = args.Sprite[firstLayer];
|
||||
if (!args.Sprite.LayerMapTryGet(layerKey, out var layerIndex))
|
||||
continue;
|
||||
|
||||
var layer = args.Sprite[layerIndex];
|
||||
layer.Visible = true;
|
||||
layer.Color = layer.Color.WithAlpha(1f);
|
||||
args.Sprite.Visible = true;
|
||||
return;
|
||||
hasVisibleLayer = true;
|
||||
}
|
||||
|
||||
args.Sprite.Visible = revealed;
|
||||
args.Sprite.Visible = hasVisibleLayer || revealed;
|
||||
}
|
||||
|
||||
private void UpdateAll()
|
||||
@@ -73,8 +76,3 @@ public sealed class SubFloorHideSystem : SharedSubFloorHideSystem
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum SubfloorLayers : byte
|
||||
{
|
||||
FirstLayer, // always visible. E.g. vent part of a vent..
|
||||
}
|
||||
|
||||
@@ -184,4 +184,9 @@ namespace Content.Shared.SubFloor
|
||||
Covered, // is there a floor tile over this entity
|
||||
ScannerRevealed, // is this entity revealed by a scanner or some other entity?
|
||||
}
|
||||
|
||||
public enum SubfloorLayers : byte
|
||||
{
|
||||
FirstLayer
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Generic;
|
||||
|
||||
namespace Content.Shared.SubFloor
|
||||
{
|
||||
@@ -43,6 +45,13 @@ namespace Content.Shared.SubFloor
|
||||
[DataField("scannerTransparency")]
|
||||
public float ScannerTransparency = 0.8f;
|
||||
|
||||
/// <summary>
|
||||
/// Sprite layer keys for the layers that are always visible, even if the entity is below a floor tile. E.g.,
|
||||
/// the vent part of a vent is always visible, even though the piping is hidden.
|
||||
/// </summary>
|
||||
[DataField("visibleLayers", customTypeSerializer:typeof(CustomHashSetSerializer<object, AppearanceKeySerializer>))]
|
||||
public HashSet<object> VisibleLayers = new() { SubfloorLayers.FirstLayer };
|
||||
|
||||
/// <summary>
|
||||
/// The entities this subfloor is revealed by.
|
||||
/// </summary>
|
||||
|
||||
@@ -158,8 +158,9 @@
|
||||
layers:
|
||||
- state: pipeHalf
|
||||
sprite: Structures/Piping/Atmospherics/pipe.rsi
|
||||
map: [ "enum.PipeVisualLayers.Pipe", "enum.SubfloorLayers.FirstLayer" ]
|
||||
map: [ "enum.PipeVisualLayers.Pipe" ]
|
||||
- state: injector
|
||||
map: [ "enum.SubfloorLayers.FirstLayer" ]
|
||||
- state: injector-unshaded
|
||||
shader: unshaded
|
||||
map: [ "unshaded" ]
|
||||
@@ -177,6 +178,10 @@
|
||||
- type: Construction
|
||||
graph: GasUnary
|
||||
node: outletinjector
|
||||
- type: SubFloorHide
|
||||
visibleLayers:
|
||||
- enum.SubfloorLayers.FirstLayer
|
||||
- unshaded
|
||||
|
||||
- type: entity
|
||||
parent: BaseMachinePowered
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 906 B After Width: | Height: | Size: 4.5 KiB |
Reference in New Issue
Block a user