diff --git a/Content.Client/Cabinet/ItemCabinetVisualizer.cs b/Content.Client/Cabinet/ItemCabinetVisualizer.cs index b095c62731..e0a9d64a92 100644 --- a/Content.Client/Cabinet/ItemCabinetVisualizer.cs +++ b/Content.Client/Cabinet/ItemCabinetVisualizer.cs @@ -1,4 +1,4 @@ -using Content.Shared.Cabinet; +using Content.Shared.Cabinet; using JetBrains.Annotations; using Robust.Client.GameObjects; using Robust.Shared.Serialization.Manager.Attributes; @@ -18,32 +18,38 @@ namespace Content.Client.Cabinet [DataField("closedState", required: true)] private string _closedState = default!; + [DataField("closedEmptyState", required: true)] + private string _closedEmptyState = default!; + public override void OnChangeData(AppearanceComponent component) { base.OnChangeData(component); if (component.Owner.TryGetComponent(out var sprite) - && component.TryGetData(ItemCabinetVisuals.IsOpen, out bool isOpen)) + && component.TryGetData(ItemCabinetVisuals.IsOpen, out bool isOpen) + && component.TryGetData(ItemCabinetVisuals.ContainsItem, out bool contains)) { if (isOpen) { - if (component.TryGetData(ItemCabinetVisuals.ContainsItem, out bool contains)) + if (contains) { - if (contains) - { - sprite.LayerSetState(0, _fullState); - } - else - { - sprite.LayerSetState(0, _emptyState); - } - + sprite.LayerSetState(0, _fullState); + } + else + { + sprite.LayerSetState(0, _emptyState); } } else + + if (contains) { sprite.LayerSetState(0, _closedState); } + else + { + sprite.LayerSetState(0, _closedEmptyState); + } } } } diff --git a/Content.Shared/Cabinet/ExtinguisherCabinet.cs b/Content.Shared/Cabinet/ItemCabinetVisuals.cs similarity index 100% rename from Content.Shared/Cabinet/ExtinguisherCabinet.cs rename to Content.Shared/Cabinet/ItemCabinetVisuals.cs diff --git a/Resources/Prototypes/Entities/Constructible/Walls/extinguisher_cabinet.yml b/Resources/Prototypes/Entities/Constructible/Walls/extinguisher_cabinet.yml index 3750e879c2..d4b64963df 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/extinguisher_cabinet.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/extinguisher_cabinet.yml @@ -6,7 +6,8 @@ - type: Clickable - type: InteractionOutline - type: Sprite - sprite: Constructible/Misc/extinguisher_cabinet.rsi + sprite: Constructible/Storage/Cabinets/extinguisher_cabinet.rsi + netsync: false state: extinguisher_closed - type: ItemCabinet doorSound: /Audio/Machines/machine_switch.ogg @@ -19,6 +20,7 @@ emptyState: extinguisher_empty fullState: extinguisher_full closedState: extinguisher_closed + closedEmptyState: extinguisher_closed placement: mode: SnapgridCenter diff --git a/Resources/Prototypes/Entities/Constructible/Walls/fireaxe_cabinet.yml b/Resources/Prototypes/Entities/Constructible/Walls/fireaxe_cabinet.yml new file mode 100644 index 0000000000..1d5e811f09 --- /dev/null +++ b/Resources/Prototypes/Entities/Constructible/Walls/fireaxe_cabinet.yml @@ -0,0 +1,49 @@ +- type: entity + id: FireAxeCabinet + name: fire axe cabinet + description: There is a small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if. + components: + - type: Clickable + - type: InteractionOutline + - type: Sprite + sprite: Constructible/Storage/Cabinets/fireaxe_cabinet.rsi + netsync: false + state: cabinet-filled-closed + - type: ItemCabinet + doorSound: /Audio/Machines/machine_switch.ogg + whitelist: + tags: + - FireAxe + - type: Appearance + visuals: + - type: ItemCabinetVisualizer + emptyState: cabinet-empty-open + fullState: cabinet-filled-open + closedState: cabinet-filled-closed + closedEmptyState: cabinet-empty-closed + placement: + mode: SnapgridCenter + +- type: entity + id: FireAxeCabinetOpen + parent: FireAxeCabinet + suffix: Open + components: + - type: ItemCabinet + opened: true + +- type: entity + id: FireAxeCabinetFilled + parent: FireAxeCabinet + suffix: Filled + components: + - type: ItemCabinet + spawnPrototype: FireAxe + +- type: entity + id: FireAxeCabinetFilledOpen + parent: FireAxeCabinetFilled + suffix: Filled, Open + components: + - type: ItemCabinet + opened: true diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml index 04f610d3b1..0fe1ac7dc0 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml @@ -4,12 +4,14 @@ id: FireAxe description: A large, robust axe. Can pry open doors and skulls alike. components: + - type: Tag + tags: + - FireAxe - type: Sprite sprite: Objects/Weapons/Melee/fireaxe.rsi state: icon - type: MeleeWeapon damage: 25 - type: Item - size: 24 sprite: Objects/Weapons/Melee/fireaxe.rsi prefix: inhand diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index ba94898ed7..793b0de8e1 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -10,6 +10,9 @@ - type: Tag id: ExplosivePassable +- type: Tag + id: FireAxe + - type: Tag id: FirelockElectronics diff --git a/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/meta.json b/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/meta.json deleted file mode 100644 index ea99c1e06e..0000000000 --- a/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/meta.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/tgstation/tgstation at commit d0d81185f09ca30d3b0856d476544240dba0de53", - "states": [ - { - "name": "extinguisher_closed", - - }, - { - "name": "extinguisher_empty", - - }, - { - "name": "extinguisher_full", - - }, - { - "name": "extinguisher_mini", - - } - ] -} diff --git a/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/closed.png b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/closed.png new file mode 100644 index 0000000000..417a97c57b Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/closed.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher-mini.png b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher-mini.png new file mode 100644 index 0000000000..752f8c0125 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher-mini.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher.png b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher.png new file mode 100644 index 0000000000..42a09a0221 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher.png differ diff --git a/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_closed.png b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher_closed.png similarity index 100% rename from Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_closed.png rename to Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher_closed.png diff --git a/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_empty.png b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher_empty.png similarity index 100% rename from Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_empty.png rename to Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher_empty.png diff --git a/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_full.png b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher_full.png similarity index 100% rename from Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_full.png rename to Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher_full.png diff --git a/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_mini.png b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher_mini.png similarity index 100% rename from Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_mini.png rename to Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/extinguisher_mini.png diff --git a/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/frame.png b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/frame.png new file mode 100644 index 0000000000..5ce24a67e1 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/frame.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/meta.json b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/meta.json new file mode 100644 index 0000000000..0443e6e809 --- /dev/null +++ b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/d0d81185f09ca30d3b0856d476544240dba0de53", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "extinguisher_closed" + }, + { + "name": "extinguisher_empty" + }, + { + "name": "extinguisher_full" + }, + { + "name": "extinguisher_mini" + }, + { + "name": "closed" + }, + { + "name": "extinguisher" + }, + { + "name": "extinguisher-mini" + }, + { + "name": "frame" + }, + { + "name": "open" + } + ] +} diff --git a/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/open.png b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/open.png new file mode 100644 index 0000000000..52b6fc37f4 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/open.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-empty-closed.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-empty-closed.png new file mode 100644 index 0000000000..653088f97f Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-empty-closed.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-empty-open.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-empty-open.png new file mode 100644 index 0000000000..5747a5e7c0 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-empty-open.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-filled-closed.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-filled-closed.png new file mode 100644 index 0000000000..6e757c6e9b Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-filled-closed.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-filled-open.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-filled-open.png new file mode 100644 index 0000000000..c52d8db7b3 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet-filled-open.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet.png new file mode 100644 index 0000000000..cb2b190a73 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/cabinet.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/fireaxe.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/fireaxe.png new file mode 100644 index 0000000000..7681821b9f Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/fireaxe.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-1.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-1.png new file mode 100644 index 0000000000..73a5499511 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-1.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-2.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-2.png new file mode 100644 index 0000000000..d42bb308c2 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-2.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-3.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-3.png new file mode 100644 index 0000000000..1cddf592b9 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-3.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-4.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-4.png new file mode 100644 index 0000000000..dd5ec59740 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-4.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-up.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-up.png new file mode 100644 index 0000000000..773b0c4527 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass-up.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass.png new file mode 100644 index 0000000000..5995c696e0 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/glass.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/locked.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/locked.png new file mode 100644 index 0000000000..641150be22 Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/locked.png differ diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/meta.json b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/meta.json new file mode 100644 index 0000000000..836d81fbfa --- /dev/null +++ b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/meta.json @@ -0,0 +1,53 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/d0d81185f09ca30d3b0856d476544240dba0de53", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "cabinet-empty-closed" + }, + { + "name": "cabinet-empty-open" + }, + { + "name": "cabinet-filled-open" + }, + { + "name": "cabinet-filled-closed" + }, + { + "name": "cabinet" + }, + { + "name": "fireaxe" + }, + { + "name": "glass" + }, + { + "name": "glass-1" + }, + { + "name": "glass-2" + }, + { + "name": "glass-3" + }, + { + "name": "glass-4" + }, + { + "name": "glass-up" + }, + { + "name": "unlocked" + }, + { + "name": "locked" + } + ] +} diff --git a/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/unlocked.png b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/unlocked.png new file mode 100644 index 0000000000..eb00105c6c Binary files /dev/null and b/Resources/Textures/Constructible/Storage/Cabinets/fireaxe_cabinet.rsi/unlocked.png differ