From 14aca0d3d4bf7e23cb278eb9d3dddb3099a467f1 Mon Sep 17 00:00:00 2001 From: Alex C Date: Tue, 14 Jan 2025 00:36:59 -0500 Subject: [PATCH] Mail Telepad resprite! --- .../Components/MailTeleporterComponent.cs | 7 ++- .../_DV/Mail/EntitySystems/MailSystem.cs | 3 ++ .../Structures/Machines/mailTeleporter.yml | 40 ++++++------------ .../_Impstation/Entities/Effects/base.yml | 12 ++++++ .../Entities/Effects/teleportfx.yml | 14 ++++++ .../Devices/CircuitBoards/production.yml | 2 +- .../Structures/mailtelepad.rsi/base.png | Bin 0 -> 430 bytes .../Structures/mailtelepad.rsi/lit.png | Bin 0 -> 2700 bytes .../Structures/mailtelepad.rsi/meta.json | 19 +++++++++ 9 files changed, 67 insertions(+), 30 deletions(-) create mode 100644 Resources/Prototypes/_Impstation/Entities/Effects/base.yml create mode 100644 Resources/Prototypes/_Impstation/Entities/Effects/teleportfx.yml create mode 100644 Resources/Textures/_Impstation/Structures/mailtelepad.rsi/base.png create mode 100644 Resources/Textures/_Impstation/Structures/mailtelepad.rsi/lit.png create mode 100644 Resources/Textures/_Impstation/Structures/mailtelepad.rsi/meta.json diff --git a/Content.Server/_DV/Mail/Components/MailTeleporterComponent.cs b/Content.Server/_DV/Mail/Components/MailTeleporterComponent.cs index 48b63e14a99a48..43bef3431112e4 100644 --- a/Content.Server/_DV/Mail/Components/MailTeleporterComponent.cs +++ b/Content.Server/_DV/Mail/Components/MailTeleporterComponent.cs @@ -1,4 +1,5 @@ using Robust.Shared.Audio; +using Robust.Shared.Prototypes; namespace Content.Server._DV.Mail.Components { @@ -22,7 +23,11 @@ public sealed partial class MailTeleporterComponent : Component /// [DataField] public SoundSpecifier TeleportSound = new SoundPathSpecifier("/Audio/Effects/teleport_arrival.ogg"); - + /// + /// Imp : The SFX spawned when mail teleports in. + /// + [DataField] + public EntProtoId BeamInFx = "TelepadBeamInFX"; /// /// The MailDeliveryPoolPrototype that's used to select what mail this /// teleporter can deliver. diff --git a/Content.Server/_DV/Mail/EntitySystems/MailSystem.cs b/Content.Server/_DV/Mail/EntitySystems/MailSystem.cs index 39482fba44fe86..6a698a17712a17 100644 --- a/Content.Server/_DV/Mail/EntitySystems/MailSystem.cs +++ b/Content.Server/_DV/Mail/EntitySystems/MailSystem.cs @@ -719,6 +719,9 @@ private void SpawnMail(EntityUid uid, MailTeleporterComponent? component = null) if (_containerSystem.TryGetContainer(uid, "queued", out var queued)) _containerSystem.EmptyContainer(queued); + // Spawn VFX + Spawn(component.BeamInFx, Transform(uid).Coordinates); + _audioSystem.PlayPvs(component.TeleportSound, uid); } diff --git a/Resources/Prototypes/_DV/Entities/Structures/Machines/mailTeleporter.yml b/Resources/Prototypes/_DV/Entities/Structures/Machines/mailTeleporter.yml index c57adda479452e..cd90747e7b5d05 100644 --- a/Resources/Prototypes/_DV/Entities/Structures/Machines/mailTeleporter.yml +++ b/Resources/Prototypes/_DV/Entities/Structures/Machines/mailTeleporter.yml @@ -1,7 +1,7 @@ - type: entity id: MailTeleporter parent: [ BaseMachinePowered, ConstructibleMachine ] - name: mail teleporter + name: mail telepad description: Teleports mail addressed to the crew of this station. components: - type: MailTeleporter @@ -10,39 +10,23 @@ fix1: shape: !type:PhysShapeAabb - bounds: "-0.45,-0.45,0.45,0.00" + bounds: "-0.45,-0.45,0.45,0.00" density: 120 - mask: - - HighImpassable + - type: Appearance - type: Sprite - sprite: _Nyanotrasen/Structures/mailbox.rsi - scale: 0.5, 0.5 + sprite: _Impstation/Structures/mailtelepad.rsi layers: - - state: icon - - state: unlit - shader: unshaded - map: ["enum.PowerDeviceVisualLayers.Powered"] - - type: Damageable - damageContainer: Inorganic - damageModifierSet: Metallic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 75 - behaviors: - - !type:PlaySoundBehavior - sound: - collection: MetalGlassBreak - - !type:ChangeConstructionNodeBehavior - node: machineFrame - - !type:DoActsBehavior - acts: ["Destruction"] + - state: base + - state: lit + shader: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + - type: ApcPowerReceiver + powerLoad: 1000 - type: GenericVisualizer visuals: enum.PowerDeviceVisuals.Powered: enum.PowerDeviceVisualLayers.Powered: - True: {visible: true} - False: {visible: false} + True: { visible: true } + False: { visible: false } - type: Machine board: MailTeleporterMachineCircuitboard diff --git a/Resources/Prototypes/_Impstation/Entities/Effects/base.yml b/Resources/Prototypes/_Impstation/Entities/Effects/base.yml new file mode 100644 index 00000000000000..2831fe28f1fbaa --- /dev/null +++ b/Resources/Prototypes/_Impstation/Entities/Effects/base.yml @@ -0,0 +1,12 @@ +- type: entity + categories: [ HideSpawnMenu ] + id: BaseFXEntity + placement: + mode: SnapgridCenter + components: + - type: Transform + noRot: true + anchored: true + - type: Tag + tags: + - HideContextMenu diff --git a/Resources/Prototypes/_Impstation/Entities/Effects/teleportfx.yml b/Resources/Prototypes/_Impstation/Entities/Effects/teleportfx.yml new file mode 100644 index 00000000000000..2e0070528222c5 --- /dev/null +++ b/Resources/Prototypes/_Impstation/Entities/Effects/teleportfx.yml @@ -0,0 +1,14 @@ +- type: entity + parent: BaseFXEntity + categories: [ HideSpawnMenu ] + id: TelepadBeamInFX + components: + - type: TimedDespawn + lifetime: 0.5 + - type: Sprite + layers: + - sprite: Structures\cargo_telepad.rsi + state: beam + shader: unshaded + netsync: false + drawdepth: Effects diff --git a/Resources/Prototypes/_Nyanotrasen/Entities/Objects/Devices/CircuitBoards/production.yml b/Resources/Prototypes/_Nyanotrasen/Entities/Objects/Devices/CircuitBoards/production.yml index 7db6fcd387b5ef..b6024e651b1dd6 100644 --- a/Resources/Prototypes/_Nyanotrasen/Entities/Objects/Devices/CircuitBoards/production.yml +++ b/Resources/Prototypes/_Nyanotrasen/Entities/Objects/Devices/CircuitBoards/production.yml @@ -1,7 +1,7 @@ - type: entity id: MailTeleporterMachineCircuitboard parent: [ BaseComputerCircuitboard, BaseCargoContraband ] - name: mail teleporter machine board + name: mail telepad machine board components: - type: Sprite state: supply diff --git a/Resources/Textures/_Impstation/Structures/mailtelepad.rsi/base.png b/Resources/Textures/_Impstation/Structures/mailtelepad.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..45cb26908845013ea1451d013683e46a24137d26 GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCikV0(?ST6Ov1(OkaKV`U4G(ruz?G7)Gym_lh>R@@`oF)XKs=DLTv6%*D$+ zJfY`cD+j|R`v{~&N`m}?|6>9MfB)x#KzYsrkH}&M2EM}} z%y>M1MG8>xwx^3@h=u>u$(=%n6*ycrUVCQnQt;pZ`0h22?=HLR)4`qJa#F+aW4dSW znWHY(wXf8%-Ew=yz2L5TI&;EW)9V789|%8qbN0@f(@pve<`+e>C;So;IJ?v&nE7+h zJ1qfTg_|nYEE9C6-Q}C;v3g(Yv&)OvSCw zu8Lrulr_Js-Jn|Z|6IpSu`CUj-CYhS{3tM*IqhoxZsBWhBR|ZJ7gwvV|8a2R^kZgI zSSt4YDLj$puK9JLite8H8Bb?C_Htc${nGZ+`bl-n$J6BwXzg{-1A3Fe)78&qol`;+ E0O9ep#sB~S literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Structures/mailtelepad.rsi/lit.png b/Resources/Textures/_Impstation/Structures/mailtelepad.rsi/lit.png new file mode 100644 index 0000000000000000000000000000000000000000..714b650f4d10d14d48ad25cce318463138bfded8 GIT binary patch literal 2700 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 NA5VXevfbbP{BIR5#nS)) literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Structures/mailtelepad.rsi/meta.json b/Resources/Textures/_Impstation/Structures/mailtelepad.rsi/meta.json new file mode 100644 index 00000000000000..89d016a56f37f4 --- /dev/null +++ b/Resources/Textures/_Impstation/Structures/mailtelepad.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Textured by Kazne in the Impstation Discord", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base", + "delays": [[ 1 ]] + }, + { + "name": "lit", + "delays":[ [ 0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 ] ] + } + ] +}