Adds the ability to specify a separate RSI path in StackVisualizer (#3368)

This commit is contained in:
Swept
2021-02-23 22:25:44 +00:00
committed by GitHub
parent 42e0a04939
commit ec9a31a723

View File

@@ -1,4 +1,4 @@
#nullable enable #nullable enable
using System.Collections.Generic; using System.Collections.Generic;
using Content.Shared.GameObjects.Components; using Content.Shared.GameObjects.Components;
@@ -75,6 +75,7 @@ namespace Content.Client.GameObjects.Components
/// ///
/// </summary> /// </summary>
private bool _isComposite; private bool _isComposite;
private ResourcePath? _spritePath;
public override void LoadData(YamlMappingNode mapping) public override void LoadData(YamlMappingNode mapping)
{ {
@@ -92,6 +93,11 @@ namespace Content.Client.GameObjects.Components
{ {
_isComposite = transparent.AsBool(); _isComposite = transparent.AsBool();
} }
if (mapping.TryGetNode<YamlScalarNode>("sprite", out var spritePath))
{
_spritePath = spritePath.AsResourcePath();
}
} }
public override void InitializeEntity(IEntity entity) public override void InitializeEntity(IEntity entity)
@@ -102,9 +108,11 @@ namespace Content.Client.GameObjects.Components
&& _spriteLayers.Count > 0 && _spriteLayers.Count > 0
&& entity.TryGetComponent<ISpriteComponent>(out var spriteComponent)) && entity.TryGetComponent<ISpriteComponent>(out var spriteComponent))
{ {
_spritePath ??= spriteComponent.BaseRSI!.Path!;
foreach (var sprite in _spriteLayers) foreach (var sprite in _spriteLayers)
{ {
var rsiPath = spriteComponent.BaseRSI!.Path!; var rsiPath = _spritePath;
spriteComponent.LayerMapReserveBlank(sprite); spriteComponent.LayerMapReserveBlank(sprite);
spriteComponent.LayerSetSprite(sprite, new SpriteSpecifier.Rsi(rsiPath, sprite)); spriteComponent.LayerSetSprite(sprite, new SpriteSpecifier.Rsi(rsiPath, sprite));
spriteComponent.LayerSetVisible(sprite, false); spriteComponent.LayerSetVisible(sprite, false);