From eced84e98e825d10bac270816bc726859614947d Mon Sep 17 00:00:00 2001 From: rhailrake Date: Fri, 5 Jul 2024 23:14:06 +0500 Subject: [PATCH] master --- Content.Client/_White/Cult/HellComponent.cs | 7 +++ Content.Client/_White/Cult/HellSystem.cs | 50 ++++++++++++++++++ Content.Server/_White/Cult/HellComponent.cs | 7 +++ .../Cult/Pentagram/SharedHellComponent.cs | 3 ++ Resources/Prototypes/Traits/neutral.yml | 7 +++ Resources/Prototypes/_White/Fluff/serbwo.yml | 6 +++ .../Textures/White/Cult/hell.rsi/animated.png | Bin 0 -> 831 bytes .../Textures/White/Cult/hell.rsi/meta.json | 25 +++++++++ 8 files changed, 105 insertions(+) create mode 100644 Content.Client/_White/Cult/HellComponent.cs create mode 100644 Content.Client/_White/Cult/HellSystem.cs create mode 100644 Content.Server/_White/Cult/HellComponent.cs create mode 100644 Content.Shared/_White/Cult/Pentagram/SharedHellComponent.cs create mode 100644 Resources/Textures/White/Cult/hell.rsi/animated.png create mode 100644 Resources/Textures/White/Cult/hell.rsi/meta.json diff --git a/Content.Client/_White/Cult/HellComponent.cs b/Content.Client/_White/Cult/HellComponent.cs new file mode 100644 index 0000000000..9635272ef4 --- /dev/null +++ b/Content.Client/_White/Cult/HellComponent.cs @@ -0,0 +1,7 @@ +using Content.Shared._White.Cult.Pentagram; +using Robust.Shared.GameStates; + +namespace Content.Client._White.Cult; + +[NetworkedComponent, RegisterComponent] +public sealed partial class HellComponent : SharedHellComponent; diff --git a/Content.Client/_White/Cult/HellSystem.cs b/Content.Client/_White/Cult/HellSystem.cs new file mode 100644 index 0000000000..27fb05a778 --- /dev/null +++ b/Content.Client/_White/Cult/HellSystem.cs @@ -0,0 +1,50 @@ +using System.Numerics; +using Robust.Client.GameObjects; +using Robust.Shared.Utility; + +namespace Content.Client._White.Cult; + +public sealed class HellSystem : EntitySystem +{ + private const string Rsi = "White/Cult/hell.rsi"; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(PentagramAdded); + SubscribeLocalEvent(PentagramRemoved); + } + + private void PentagramAdded(EntityUid uid, HellComponent component, ComponentStartup args) + { + if (!TryComp(uid, out var sprite)) + return; + + if (sprite.LayerMapTryGet(HellKey.Key, out _)) + return; + + var adj = sprite.Bounds.Height / 2 + 1.0f/32 * 6.0f; + + var layer = sprite.AddLayer(new SpriteSpecifier.Rsi(new ResPath(Rsi), "animated")); + + sprite.LayerMapSet(HellKey.Key, layer); + sprite.LayerSetOffset(layer, new Vector2(0.0f, adj)); + sprite.LayerSetShader(layer, "unshaded"); + } + + private void PentagramRemoved(EntityUid uid, HellComponent component, ComponentShutdown args) + { + if (!TryComp(uid, out var sprite)) + return; + + if (!sprite.LayerMapTryGet(HellKey.Key, out var layer)) + return; + + sprite.RemoveLayer(layer); + } + + private enum HellKey + { + Key + } +} diff --git a/Content.Server/_White/Cult/HellComponent.cs b/Content.Server/_White/Cult/HellComponent.cs new file mode 100644 index 0000000000..e18e5f58f9 --- /dev/null +++ b/Content.Server/_White/Cult/HellComponent.cs @@ -0,0 +1,7 @@ +using Content.Shared._White.Cult.Pentagram; +using Robust.Shared.GameStates; + +namespace Content.Server._White.Cult; + +[NetworkedComponent, RegisterComponent] +public sealed partial class HellComponent : SharedHellComponent; diff --git a/Content.Shared/_White/Cult/Pentagram/SharedHellComponent.cs b/Content.Shared/_White/Cult/Pentagram/SharedHellComponent.cs new file mode 100644 index 0000000000..e0ba6f3d3b --- /dev/null +++ b/Content.Shared/_White/Cult/Pentagram/SharedHellComponent.cs @@ -0,0 +1,3 @@ +namespace Content.Shared._White.Cult.Pentagram; + +public abstract partial class SharedHellComponent : Component; diff --git a/Resources/Prototypes/Traits/neutral.yml b/Resources/Prototypes/Traits/neutral.yml index ba9bd8d886..7cfcaefba1 100644 --- a/Resources/Prototypes/Traits/neutral.yml +++ b/Resources/Prototypes/Traits/neutral.yml @@ -23,3 +23,10 @@ description: trait-southern-desc components: - type: SouthernAccent + +- type: trait + id: Hell + name: Hell + description: Hell + components: + - type: Hell diff --git a/Resources/Prototypes/_White/Fluff/serbwo.yml b/Resources/Prototypes/_White/Fluff/serbwo.yml index 4b991bccbd..81e417f370 100644 --- a/Resources/Prototypes/_White/Fluff/serbwo.yml +++ b/Resources/Prototypes/_White/Fluff/serbwo.yml @@ -284,3 +284,9 @@ entity: ClothingOuterParamedicSuitFluff sponsorOnly: true whitelistJobs: [Paramedic] + +- type: loadout + id: CargoLoadoutSerbwoSA + entity: HandTeleporter + sponsorOnly: true + whitelistJobs: [Quartermaster, SalvageSpecialist, CargoTechnician] diff --git a/Resources/Textures/White/Cult/hell.rsi/animated.png b/Resources/Textures/White/Cult/hell.rsi/animated.png new file mode 100644 index 0000000000000000000000000000000000000000..bd5dd7253b8bdfabed809ecd94c73c0a1a6d72dc GIT binary patch literal 831 zcmeAS@N?(olHy`uVBq!ia0vp^4}jQ#gAGVB8&>lJDaPU;cPEB*=VV?oFfiTsba4!+ znDh3gzlTVo%(0K@Q#>@nc$ZYONV0HW^?LPgX|zxK3hxc=3-)B(brP`Rc2a4XIsMxO z#TCvX4{QmuOZ?qYK z))E2>vS#{!&ogye)?0KvbnScQH|O5X`Cg>^{OX?<+}A!)S2vQuG=2a24f;*KO27@``epqZ1&c?=fsub zy36a~-RWOy)l@T8X6$`l+NytV!mVAK{obEB?RN5h)jQtF z`M-HA7DW7+H7mJ0>g2wH7~g-%K2dL1e!dlBy>x5q@xImVX2sKu>{r<{WtIM&m=d1I zeCuuT+U;z6_DcABPWJYhRil->j89^+eR|Jw)ye*;K6-|kHmc37u4~0UEw-D@eJ*_E zS80D{HR<`rKSPdH?D{d^FcYNA%r4!A_lonsYt`|m{scU4xXpAwZfDe-Ctp4*ME#TF0tfs|4xD<%Odv@GO#a7UV-WoEYu)UJK&5=C5uRzjz6@GG VHV0JerQpdRmZz(q%Q~loCIDz{aRvYY literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Cult/hell.rsi/meta.json b/Resources/Textures/White/Cult/hell.rsi/meta.json new file mode 100644 index 0000000000..4fa9c0a8c3 --- /dev/null +++ b/Resources/Textures/White/Cult/hell.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/frosty-dev/white", + "version": 1, + "size": { + "x": 32, + "y": 64 + }, + "states": [ + { + "name": "animated", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +}