diff --git a/Content.Client/Wall/Components/LowWallComponent.cs b/Content.Client/Wall/Components/LowWallComponent.cs deleted file mode 100644 index 8d3d5a92a1..0000000000 --- a/Content.Client/Wall/Components/LowWallComponent.cs +++ /dev/null @@ -1,248 +0,0 @@ -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using System.Diagnostics.Contracts; -using Content.Client.IconSmoothing; -using Content.Client.Window; -using Robust.Client.GameObjects; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Map; -using Robust.Shared.Maths; -using Robust.Shared.ViewVariables; -using static Robust.Client.GameObjects.SpriteComponent; - -namespace Content.Client.Wall.Components -{ - // TODO: Over layers should be placed ABOVE the window itself too. - // This is gonna require a client entity & parenting, - // so IsMapTransform being naive is gonna be a problem. - - /// - /// Override of icon smoothing to handle the specific complexities of low walls. - /// - [RegisterComponent] - [ComponentReference(typeof(IconSmoothComponent))] - public class LowWallComponent : IconSmoothComponent - { - public override string Name => "LowWall"; - - [Dependency] private readonly IEntityManager _entMan = default!; - [Dependency] private readonly IMapManager _mapManager = default!; - - public CornerFill LastCornerNE { get; private set; } - public CornerFill LastCornerSE { get; private set; } - public CornerFill LastCornerSW { get; private set; } - public CornerFill LastCornerNW { get; private set; } - - [ViewVariables] private EntityUid _overlayEntity; - - [ViewVariables] - private ISpriteComponent? _overlaySprite; - - protected override void Startup() - { - base.Startup(); - - _overlayEntity = _entMan.SpawnEntity("LowWallOverlay", _entMan.GetComponent(Owner).Coordinates); - _entMan.GetComponent(_overlayEntity).AttachParent(Owner); - _entMan.GetComponent(_overlayEntity).LocalPosition = Vector2.Zero; - - _overlaySprite = _entMan.GetComponent(_overlayEntity); - - var overState0 = $"{StateBase}over_0"; - _overlaySprite.LayerMapSet(OverCornerLayers.SE, _overlaySprite.AddLayerState(overState0)); - _overlaySprite.LayerSetDirOffset(OverCornerLayers.SE, DirectionOffset.None); - _overlaySprite.LayerMapSet(OverCornerLayers.NE, _overlaySprite.AddLayerState(overState0)); - _overlaySprite.LayerSetDirOffset(OverCornerLayers.NE, DirectionOffset.CounterClockwise); - _overlaySprite.LayerMapSet(OverCornerLayers.NW, _overlaySprite.AddLayerState(overState0)); - _overlaySprite.LayerSetDirOffset(OverCornerLayers.NW, DirectionOffset.Flip); - _overlaySprite.LayerMapSet(OverCornerLayers.SW, _overlaySprite.AddLayerState(overState0)); - _overlaySprite.LayerSetDirOffset(OverCornerLayers.SW, DirectionOffset.Clockwise); - } - - protected override void Shutdown() - { - base.Shutdown(); - - // _overlayEntity is non-nullable as it is set on startup. - // Should also never be default but might as well check. - if (_overlayEntity.Valid) - { - _entMan.DeleteEntity(_overlayEntity); - } - } - - internal override void CalculateNewSprite() - { - base.CalculateNewSprite(); - - if (Sprite == null || !_entMan.GetComponent(Owner).Anchored || _overlaySprite == null) - { - return; - } - - var grid = _mapManager.GetGrid(_entMan.GetComponent(Owner).GridID); - var coords = _entMan.GetComponent(Owner).Coordinates; - - var (n, nl) = MatchingWall(grid.GetInDir(coords, Direction.North)); - var (ne, nel) = MatchingWall(grid.GetInDir(coords, Direction.NorthEast)); - var (e, el) = MatchingWall(grid.GetInDir(coords, Direction.East)); - var (se, sel) = MatchingWall(grid.GetInDir(coords, Direction.SouthEast)); - var (s, sl) = MatchingWall(grid.GetInDir(coords, Direction.South)); - var (sw, swl) = MatchingWall(grid.GetInDir(coords, Direction.SouthWest)); - var (w, wl) = MatchingWall(grid.GetInDir(coords, Direction.West)); - var (nw, nwl) = MatchingWall(grid.GetInDir(coords, Direction.NorthWest)); - - // ReSharper disable InconsistentNaming - var cornerNE = CornerFill.None; - var cornerSE = CornerFill.None; - var cornerSW = CornerFill.None; - var cornerNW = CornerFill.None; - - var lowCornerNE = CornerFill.None; - var lowCornerSE = CornerFill.None; - var lowCornerSW = CornerFill.None; - var lowCornerNW = CornerFill.None; - // ReSharper restore InconsistentNaming - - if (n) - { - cornerNE |= CornerFill.CounterClockwise; - cornerNW |= CornerFill.Clockwise; - - if (!nl && !e && !w) - { - lowCornerNE |= CornerFill.CounterClockwise; - lowCornerNW |= CornerFill.Clockwise; - } - } - - if (ne) - { - cornerNE |= CornerFill.Diagonal; - - if (!nel && (nl || el || n && e)) - { - lowCornerNE |= CornerFill.Diagonal; - } - } - - if (e) - { - cornerNE |= CornerFill.Clockwise; - cornerSE |= CornerFill.CounterClockwise; - - if (!el) - { - lowCornerNE |= CornerFill.Clockwise; - lowCornerSE |= CornerFill.CounterClockwise; - } - } - - if (se) - { - cornerSE |= CornerFill.Diagonal; - - if (!sel && (sl || el || s && e)) - { - lowCornerSE |= CornerFill.Diagonal; - } - } - - if (s) - { - cornerSE |= CornerFill.Clockwise; - cornerSW |= CornerFill.CounterClockwise; - - if (!sl) - { - lowCornerSE |= CornerFill.Clockwise; - lowCornerSW |= CornerFill.CounterClockwise; - } - } - - if (sw) - { - cornerSW |= CornerFill.Diagonal; - - if (!swl && (sl || wl || s && w)) - { - lowCornerSW |= CornerFill.Diagonal; - } - } - - if (w) - { - cornerSW |= CornerFill.Clockwise; - cornerNW |= CornerFill.CounterClockwise; - - if (!wl) - { - lowCornerSW |= CornerFill.Clockwise; - lowCornerNW |= CornerFill.CounterClockwise; - } - } - - if (nw) - { - cornerNW |= CornerFill.Diagonal; - - if (!nwl && (nl || wl || n && w)) - { - lowCornerNW |= 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}"); - - _overlaySprite.LayerSetState(OverCornerLayers.NE, $"{StateBase}over_{(int) lowCornerNE}"); - _overlaySprite.LayerSetState(OverCornerLayers.SE, $"{StateBase}over_{(int) lowCornerSE}"); - _overlaySprite.LayerSetState(OverCornerLayers.SW, $"{StateBase}over_{(int) lowCornerSW}"); - _overlaySprite.LayerSetState(OverCornerLayers.NW, $"{StateBase}over_{(int) lowCornerNW}"); - - LastCornerNE = cornerNE; - LastCornerSE = cornerSE; - LastCornerSW = cornerSW; - LastCornerNW = cornerNW; - - foreach (var entity in grid.GetLocal(coords)) - { - if (_entMan.TryGetComponent(entity, out WindowComponent? window)) - { - //window.UpdateSprite(); - } - } - } - - [Pure] - private (bool connected, bool lowWall) MatchingWall(IEnumerable candidates) - { - foreach (var entity in candidates) - { - if (!_entMan.TryGetComponent(entity, out IconSmoothComponent? other)) - { - continue; - } - - if (other.SmoothKey == SmoothKey) - { - return (true, other is LowWallComponent); - } - } - - return (false, false); - } - - [SuppressMessage("ReSharper", "InconsistentNaming")] - private enum OverCornerLayers : byte - { - SE, - NE, - NW, - SW, - } - } -} diff --git a/Content.Server/Entry/IgnoredComponents.cs b/Content.Server/Entry/IgnoredComponents.cs index 7ed312385c..b697b9a8ce 100644 --- a/Content.Server/Entry/IgnoredComponents.cs +++ b/Content.Server/Entry/IgnoredComponents.cs @@ -6,7 +6,6 @@ namespace Content.Server.Entry public static string[] List => new [] { "ConstructionGhost", "IconSmooth", - "LowWall", "ReinforcedWall", "InteractionOutline", "MeleeWeaponArcAnimation", diff --git a/Resources/Prototypes/Entities/Structures/Walls/low.yml b/Resources/Prototypes/Entities/Structures/Walls/low.yml deleted file mode 100644 index 715a956b95..0000000000 --- a/Resources/Prototypes/Entities/Structures/Walls/low.yml +++ /dev/null @@ -1,51 +0,0 @@ -- type: entity - id: LowWall - parent: BaseStructure - name: low wall - description: Goes up to about your waist. - components: - - type: Tag - tags: - - RCDDeconstructWhitelist - - type: CanBuildWindowOnTop - - type: Sprite - netsync: false - color: "#889192" - drawdepth: Walls - sprite: Structures/Walls/low_wall.rsi - - type: Icon - sprite: Structures/Walls/low_wall.rsi - state: metal - - type: Damageable - damageContainer: Inorganic - damageModifierSet: Metallic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 100 - behaviors: - - !type:ChangeConstructionNodeBehavior - node: start - - !type:DoActsBehavior - acts: ["Destruction"] - - type: Climbable - - type: LowWall - key: walls - base: metal_ - - type: Construction - graph: lowWall - node: lowWall - -- type: entity - id: LowWallOverlay - name: low wall overlay - abstract: true - components: - - type: Tag - tags: - - HideContextMenu - - type: Sprite - color: "#889192" - drawdepth: WallMountedItems - sprite: Structures/Walls/low_wall.rsi diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/low_wall.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/low_wall.yml deleted file mode 100644 index a6a5aefb1c..0000000000 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/low_wall.yml +++ /dev/null @@ -1,33 +0,0 @@ -- type: constructionGraph - id: lowWall - start: start - graph: - - node: start - actions: - - !type:SpawnPrototype - prototype: SheetSteel1 - amount: 3 - - !type:DeleteEntity { } - edges: - - to: lowWall - conditions: - - !type:ComponentInTile - value: false - component: Window - steps: - - material: Steel - amount: 3 - doAfter: 5 - - - node: lowWall - entity: LowWall - edges: - - to: start - conditions: - # We fail the condition if there are any windows on the tile. - - !type:ComponentInTile - hasEntity: false - component: Window - steps: - - tool: Welding - doAfter: 5 diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/meta.json b/Resources/Textures/Structures/Walls/low_wall.rsi/meta.json deleted file mode 100644 index eed61418f1..0000000000 --- a/Resources/Textures/Structures/Walls/low_wall.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "Taken from https://github.com/discordia-space/CEV-Eris/blob/b503939d31b23c025ddb936b75e0a265d85154c5/icons/obj/structures/low_wall.dmi", "states": [{"name": "metal", "delays": [[1.0]]}, {"name": "metal_0", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_1", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_2", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_3", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_4", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_5", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_6", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_7", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_over_0", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_over_1", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_over_2", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_over_3", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_over_4", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_over_5", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_over_6", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "metal_over_7", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal.png deleted file mode 100644 index 21a1e3e059..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_0.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_0.png deleted file mode 100644 index e1498c7536..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_0.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_1.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_1.png deleted file mode 100644 index 8ed2f0b192..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_1.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_2.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_2.png deleted file mode 100644 index e1498c7536..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_2.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_3.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_3.png deleted file mode 100644 index 8ed2f0b192..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_3.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_4.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_4.png deleted file mode 100644 index bb544bf0cb..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_4.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_5.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_5.png deleted file mode 100644 index c59b2bab9d..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_5.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_6.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_6.png deleted file mode 100644 index bb544bf0cb..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_6.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_7.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_7.png deleted file mode 100644 index 4acb40b3b2..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_7.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_0.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_0.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_0.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_1.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_1.png deleted file mode 100644 index 6390841edd..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_1.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_2.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_2.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_3.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_3.png deleted file mode 100644 index b487006f41..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_3.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_4.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_4.png deleted file mode 100644 index fdf7f77302..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_4.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_5.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_5.png deleted file mode 100644 index 8527bd051a..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_5.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_6.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_6.png deleted file mode 100644 index ff8e3ed9ff..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_6.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_7.png b/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_7.png deleted file mode 100644 index 3ca5afe7ba..0000000000 Binary files a/Resources/Textures/Structures/Walls/low_wall.rsi/metal_over_7.png and /dev/null differ