Import proper reinforced wall sprites.
This commit is contained in:
@@ -101,7 +101,7 @@ namespace Content.Client.GameObjects.Components.IconSmoothing
|
||||
switch (Mode)
|
||||
{
|
||||
case IconSmoothingMode.Corners:
|
||||
CalculateNewSpriteCorers();
|
||||
CalculateNewSpriteCorners();
|
||||
break;
|
||||
|
||||
case IconSmoothingMode.CardinalFlags:
|
||||
@@ -129,7 +129,17 @@ namespace Content.Client.GameObjects.Components.IconSmoothing
|
||||
Sprite.LayerSetState(0, $"{StateBase}{(int) dirs}");
|
||||
}
|
||||
|
||||
private void CalculateNewSpriteCorers()
|
||||
private void CalculateNewSpriteCorners()
|
||||
{
|
||||
var (cornerNE, cornerNW, cornerSW, cornerSE) = CalculateCornerFill();
|
||||
|
||||
Sprite.LayerSetState(CornerLayers.NE, $"{StateBase}{(int) cornerNE}");
|
||||
Sprite.LayerSetState(CornerLayers.SE, $"{StateBase}{(int) cornerSE}");
|
||||
Sprite.LayerSetState(CornerLayers.SW, $"{StateBase}{(int) cornerSW}");
|
||||
Sprite.LayerSetState(CornerLayers.NW, $"{StateBase}{(int) cornerNW}");
|
||||
}
|
||||
|
||||
protected (CornerFill ne, CornerFill nw, CornerFill sw, CornerFill se) CalculateCornerFill()
|
||||
{
|
||||
var n = MatchingEntity(SnapGrid.GetInDir(Direction.North));
|
||||
var ne = MatchingEntity(SnapGrid.GetInDir(Direction.NorthEast));
|
||||
@@ -191,10 +201,7 @@ namespace Content.Client.GameObjects.Components.IconSmoothing
|
||||
cornerNW |= CornerFill.Diagonal;
|
||||
}
|
||||
|
||||
Sprite.LayerSetState(CornerLayers.NE, $"{StateBase}{(int) cornerNE}");
|
||||
Sprite.LayerSetState(CornerLayers.SE, $"{StateBase}{(int) cornerSE}");
|
||||
Sprite.LayerSetState(CornerLayers.SW, $"{StateBase}{(int) cornerSW}");
|
||||
Sprite.LayerSetState(CornerLayers.NW, $"{StateBase}{(int) cornerNW}");
|
||||
return (cornerNE, cornerNW, cornerSW, cornerSE);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -258,7 +265,6 @@ namespace Content.Client.GameObjects.Components.IconSmoothing
|
||||
Clockwise = 4,
|
||||
}
|
||||
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
public enum CornerLayers
|
||||
{
|
||||
SE,
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
using Content.Client.GameObjects.Components.IconSmoothing;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.ViewVariables;
|
||||
using static Robust.Client.GameObjects.SpriteComponent;
|
||||
|
||||
namespace Content.Client.GameObjects.Components
|
||||
{
|
||||
[RegisterComponent]
|
||||
[ComponentReference(typeof(IconSmoothComponent))]
|
||||
public class ReinforcedWallComponent : IconSmoothComponent
|
||||
{
|
||||
public override string Name => "ReinforcedWall";
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
private string _reinforcedStateBase;
|
||||
|
||||
public override void ExposeData(ObjectSerializer serializer)
|
||||
{
|
||||
base.ExposeData(serializer);
|
||||
|
||||
serializer.DataField(ref _reinforcedStateBase, "reinforcedBase", null);
|
||||
}
|
||||
|
||||
protected override void Startup()
|
||||
{
|
||||
base.Startup();
|
||||
|
||||
var state0 = $"{_reinforcedStateBase}0";
|
||||
Sprite.LayerMapSet(ReinforcedCornerLayers.SE, Sprite.AddLayerState(state0));
|
||||
Sprite.LayerSetDirOffset(ReinforcedCornerLayers.SE, DirectionOffset.None);
|
||||
Sprite.LayerMapSet(ReinforcedCornerLayers.NE, Sprite.AddLayerState(state0));
|
||||
Sprite.LayerSetDirOffset(ReinforcedCornerLayers.NE, DirectionOffset.CounterClockwise);
|
||||
Sprite.LayerMapSet(ReinforcedCornerLayers.NW, Sprite.AddLayerState(state0));
|
||||
Sprite.LayerSetDirOffset(ReinforcedCornerLayers.NW, DirectionOffset.Flip);
|
||||
Sprite.LayerMapSet(ReinforcedCornerLayers.SW, Sprite.AddLayerState(state0));
|
||||
Sprite.LayerSetDirOffset(ReinforcedCornerLayers.SW, DirectionOffset.Clockwise);
|
||||
}
|
||||
|
||||
internal override void CalculateNewSprite()
|
||||
{
|
||||
base.CalculateNewSprite();
|
||||
|
||||
var (cornerNE, cornerNW, cornerSW, cornerSE) = CalculateCornerFill();
|
||||
|
||||
Sprite.LayerSetState(ReinforcedCornerLayers.NE, $"{_reinforcedStateBase}{(int) cornerNE}");
|
||||
Sprite.LayerSetState(ReinforcedCornerLayers.SE, $"{_reinforcedStateBase}{(int) cornerSE}");
|
||||
Sprite.LayerSetState(ReinforcedCornerLayers.SW, $"{_reinforcedStateBase}{(int) cornerSW}");
|
||||
Sprite.LayerSetState(ReinforcedCornerLayers.NW, $"{_reinforcedStateBase}{(int) cornerNW}");
|
||||
}
|
||||
|
||||
public enum ReinforcedCornerLayers
|
||||
{
|
||||
SE,
|
||||
NE,
|
||||
NW,
|
||||
SW,
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user