From c87f4ab65cdeed4a553d59f5fa5167ee093f6635 Mon Sep 17 00:00:00 2001 From: Emisse <99158783+Emisse@users.noreply.github.com> Date: Fri, 3 Jun 2022 05:58:18 -0600 Subject: [PATCH] Holofan Projector Upstream from Nyano (#8352) Co-authored-by: metalgearsloth --- .../Holosign/HolosignProjectorComponent.cs | 33 ++++++++++ Content.Server/Holosign/HolosignSystem.cs | 57 ++++++++++++++++++ .../Catalog/Fills/Lockers/engineer.yml | 1 + .../VendingMachines/Inventories/janidrobe.yml | 1 + .../Objects/Devices/holoprojectors.yml | 23 +++++++ .../Structures/Holographic/projections.yml | 33 ++++++++++ .../Devices/Holoprojectors/atmos.rsi/icon.png | Bin 0 -> 736 bytes .../Holoprojectors/atmos.rsi/meta.json | 22 +++++++ .../Holoprojectors/custodial.rsi/icon.png | Bin 0 -> 714 bytes .../Holoprojectors/custodial.rsi/meta.json | 22 +++++++ .../Structures/Holo/holofan.rsi/icon.png | Bin 0 -> 2980 bytes .../Structures/Holo/holofan.rsi/meta.json | 30 +++++++++ .../Structures/Holo/wetfloor.rsi/icon.png | Bin 0 -> 4365 bytes .../Structures/Holo/wetfloor.rsi/meta.json | 30 +++++++++ 14 files changed, 252 insertions(+) create mode 100644 Content.Server/Holosign/HolosignProjectorComponent.cs create mode 100644 Content.Server/Holosign/HolosignSystem.cs create mode 100644 Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml create mode 100644 Resources/Prototypes/Entities/Structures/Holographic/projections.yml create mode 100644 Resources/Textures/Objects/Devices/Holoprojectors/atmos.rsi/icon.png create mode 100644 Resources/Textures/Objects/Devices/Holoprojectors/atmos.rsi/meta.json create mode 100644 Resources/Textures/Objects/Devices/Holoprojectors/custodial.rsi/icon.png create mode 100644 Resources/Textures/Objects/Devices/Holoprojectors/custodial.rsi/meta.json create mode 100644 Resources/Textures/Structures/Holo/holofan.rsi/icon.png create mode 100644 Resources/Textures/Structures/Holo/holofan.rsi/meta.json create mode 100644 Resources/Textures/Structures/Holo/wetfloor.rsi/icon.png create mode 100644 Resources/Textures/Structures/Holo/wetfloor.rsi/meta.json diff --git a/Content.Server/Holosign/HolosignProjectorComponent.cs b/Content.Server/Holosign/HolosignProjectorComponent.cs new file mode 100644 index 0000000000..c85356e173 --- /dev/null +++ b/Content.Server/Holosign/HolosignProjectorComponent.cs @@ -0,0 +1,33 @@ +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Server.Holosign +{ + [RegisterComponent] + public sealed class HolosignProjectorComponent : Component + { + [ViewVariables] + [DataField("maxCharges")] + public int MaxCharges = 6; + + [ViewVariables(VVAccess.ReadWrite), DataField("charges")] + public int CurrentCharges = 6; + + [ViewVariables(VVAccess.ReadWrite)] + [DataField("signProto", customTypeSerializer:typeof(PrototypeIdSerializer))] + public string SignProto = "HolosignWetFloor"; + + /// + /// When the holosign was last used. + /// + [ViewVariables(VVAccess.ReadWrite), DataField("lastUse")] + public TimeSpan LastUsed = TimeSpan.Zero; + + /// + /// How long it takes for 1 charge to accumulate. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField("rechargeTime")] + public TimeSpan RechargeTime = TimeSpan.FromSeconds(30); + } +} diff --git a/Content.Server/Holosign/HolosignSystem.cs b/Content.Server/Holosign/HolosignSystem.cs new file mode 100644 index 0000000000..faa1deba4a --- /dev/null +++ b/Content.Server/Holosign/HolosignSystem.cs @@ -0,0 +1,57 @@ +using Content.Shared.Interaction.Events; +using Content.Shared.Examine; +using Content.Server.Coordinates.Helpers; +using Robust.Shared.Timing; + +namespace Content.Server.Holosign +{ + public sealed class HolosignSystem : EntitySystem + { + [Dependency] private readonly IGameTiming _timing = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnUse); + SubscribeLocalEvent(OnExamine); + } + + private int GetCharges(HolosignProjectorComponent component) + { + return component.CurrentCharges + (int) ((_timing.CurTime - component.LastUsed).TotalSeconds / component.RechargeTime.TotalSeconds); + } + + private void OnExamine(EntityUid uid, HolosignProjectorComponent component, ExaminedEvent args) + { + // TODO: This should probably be using an itemstatus + // TODO: I'm too lazy to do this rn but it's literally copy-paste from emag. + var timeRemaining = (component.LastUsed + component.RechargeTime * (component.MaxCharges - component.CurrentCharges) - _timing.CurTime).TotalSeconds % component.RechargeTime.TotalSeconds; + var charges = GetCharges(component); + + args.PushMarkup(Loc.GetString("emag-charges-remaining", ("charges", charges))); + if (charges == component.MaxCharges) + { + args.PushMarkup(Loc.GetString("emag-max-charges")); + return; + } + args.PushMarkup(Loc.GetString("emag-recharging", ("seconds", Math.Round(timeRemaining)))); + } + + private void OnUse(EntityUid uid, HolosignProjectorComponent component, UseInHandEvent args) + { + if (component.CurrentCharges == 0 || args.Handled) + return; + + // TODO: Too tired to deal + var holo = EntityManager.SpawnEntity(component.SignProto, Transform(args.User).Coordinates.SnapToGrid(EntityManager)); + Transform(holo).Anchored = true; + + // Don't reset last use time if it's already accumulating. + if (component.CurrentCharges == component.MaxCharges) + component.LastUsed = _timing.CurTime; + + component.CurrentCharges--; + args.Handled = true; + } + } +} diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/engineer.yml b/Resources/Prototypes/Catalog/Fills/Lockers/engineer.yml index b9d0f4a318..5360828ada 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/engineer.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/engineer.yml @@ -87,6 +87,7 @@ - id: ClothingHeadHelmetAtmosFire - id: GasAnalyzer - id: MedkitOxygenFilled + - id: HolofanProjector - type: entity id: LockerEngineerFilled diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/janidrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/janidrobe.yml index 85fac386af..db5762ac54 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/janidrobe.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/janidrobe.yml @@ -15,5 +15,6 @@ ClothingBeltJanitor: 2 ClothingHeadsetService: 2 ClothingOuterWinterJani: 2 + Holoprojector: 1 emaggedInventory: ClothingUniformJumpskirtJanimaid: 2 diff --git a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml new file mode 100644 index 0000000000..f939c1bfe0 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml @@ -0,0 +1,23 @@ +- type: entity + parent: BaseItem + id: Holoprojector + name: holographic sign projector + description: A handy-dandy holographic projector that displays a janitorial sign. + components: + - type: HolosignProjector + - type: Sprite + sprite: Objects/Devices/Holoprojectors/custodial.rsi + state: icon + +- type: entity + parent: Holoprojector + id: HolofanProjector + name: holofan projector + description: Stop suicidal passengers from killing everyone during atmos emergencies. + components: + - type: HolosignProjector + signProto: HoloFan + rechargeTime: 120 + - type: Sprite + sprite: Objects/Devices/Holoprojectors/atmos.rsi + state: icon diff --git a/Resources/Prototypes/Entities/Structures/Holographic/projections.yml b/Resources/Prototypes/Entities/Structures/Holographic/projections.yml new file mode 100644 index 0000000000..3029ecf2c4 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Holographic/projections.yml @@ -0,0 +1,33 @@ +- type: entity + id: HolosignWetFloor + name: wet floor sign + description: The words flicker as if they mean nothing. + components: + - type: Physics + bodyType: Static + - type: Sprite + sprite: Structures/Holo/wetfloor.rsi + state: icon + netsync: false + - type: TimedDespawn + lifetime: 30 + +- type: entity + id: HoloFan + parent: HolosignWetFloor + name: holofan + description: A barrier of hard light that blocks air, but nothing else. + components: + - type: Sprite + sprite: Structures/Holo/holofan.rsi + state: icon + netsync: false + - type: Fixtures + fixtures: + - shape: + !type:PhysShapeAabb + bounds: "-0.5,-0.5,0.5,0.5" + - type: TimedDespawn + lifetime: 180 + - type: Airtight + noAirWhenFullyAirBlocked: false diff --git a/Resources/Textures/Objects/Devices/Holoprojectors/atmos.rsi/icon.png b/Resources/Textures/Objects/Devices/Holoprojectors/atmos.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..eda050ce887cabe984c920371d9696d6c24852cb GIT binary patch literal 736 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V0} zPZ!6KiaBp*+2>z&kT^C!Y(mdlAy*eI=H%O|xi1_hTDd%8E^*>%ws9PszgzM@OmBQEgYpU#IG=Yy~>n#e^F>8} z$q`n|INQ6`X4dZIaeF!cPGp;4!MW#O!oh!6w`gx|6Drx5qZ?P58EcjI-1A}5{tC4p zU#Fi^?_-Qy{A(dw$m-DQf_tCt{QdK?H7fgHf4i~Y%H>BmgtVr5m2HeDxfLDvH&pV{ z{r#CS_E#Frqq$dHiHfUy`7Zc5kI9v9F?Q@a-|uYgFWc>#cl-0^4&Q+PZ*KFaTV{sX zUty>{cK3JYjy0UqG6gTzOnjf1OZx5_U$C4P z^7Q-f+BtvcIHs>^pZc^Z>-*wUt0h+TI|a;Nci>mrVUU))dF4rk2Wy$k=ZkLmcqiy} z^I^t!(~Hk3RAt#~#c!$3=hz!B)AVbpHSgnJ%J-Sv<6m;#Dz`dUnZz=;F=4m$ihWU+ z>$bez7C(2%*W8`SX<*D^s~j|C&Mn*ptI~#`~&WvF*?Vtlcp-K u@RQ*r`;4p8>lqE)c^Hb1Fu+&yG5G)CBe7Qj;@tF108eaqB*;#TfnC;nabr z{1?0gHhKwe-y+z3RB7e80ya^W?$>*2L^j+dso_%VI|BW(9S>T`HAXMp{o>z|I@ytMWEUg=ooLyvo$ zI)4AZ6M01C&97kQ71v+?+gH7cCGSGLXbxZQ#1GHkzRybHJ1G!1F>39z@YSIvcT`O| z#sB+Xvj0`UoTCw zH)W_jy7>3Xuv5Es z#j)13Z|Xbq7Q1sTOX`0%*4E$8Z`}MX@#NuY{am|@oK8P}TorWX)oPc=1`7HA9riPC zQHd!Ee>Bh2?M_J#XXP*Uf2u3|uDvs!r(F5->3)N7m^U`Xg=fm452Z8_e4 V`l`506PP#|JYD@<);T3K0RX8?NoN26 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Devices/Holoprojectors/custodial.rsi/meta.json b/Resources/Textures/Objects/Devices/Holoprojectors/custodial.rsi/meta.json new file mode 100644 index 0000000000..e887fb6907 --- /dev/null +++ b/Resources/Textures/Objects/Devices/Holoprojectors/custodial.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a", + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Holo/holofan.rsi/icon.png b/Resources/Textures/Structures/Holo/holofan.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5c8c069c37b744797fcff8a6e5218b8082939425 GIT binary patch literal 2980 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Holo/wetfloor.rsi/meta.json b/Resources/Textures/Structures/Holo/wetfloor.rsi/meta.json new file mode 100644 index 0000000000..cea3bbf1a0 --- /dev/null +++ b/Resources/Textures/Structures/Holo/wetfloor.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a", + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + } + ] +} \ No newline at end of file