From 245598009086b80384618b1d671421a11aaabfbd Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Fri, 15 Dec 2023 04:52:46 -0500 Subject: [PATCH] Electrolysis and Centrifuge (#22517) * electrolysis and centrifuge * sprote * final * bomp! * COUGH COUGH SPROTE * boarsd --- .../SolutionContainerMixerSystem.cs | 9 ++ .../SolutionContainerMixerSystem.cs | 29 ++++ .../SolutionContainerMixerComponent.cs | 44 ++++++ .../SharedSolutionContainerMixerSystem.cs | 125 ++++++++++++++++++ .../Reaction/ChemicalReactionSystem.cs | 5 +- .../Reaction/MixingCategoryPrototype.cs | 14 ++ .../Reaction/ReactionMixerComponent.cs | 3 +- .../Chemistry/Reaction/ReactionPrototype.cs | 2 +- Resources/Audio/Machines/attributions.yml | 10 ++ Resources/Audio/Machines/buzz_loop.ogg | Bin 0 -> 36765 bytes Resources/Audio/Machines/spinning.ogg | Bin 0 -> 37325 bytes .../solution-container-mixer-component.ftl | 3 + .../Prototypes/Chemistry/mixing_types.yml | 8 ++ .../Circuitboards/Machine/production.yml | 30 +++++ .../Machines/Medical/chemistry_machines.yml | 119 +++++++++++++++++ .../Entities/Structures/Machines/lathe.yml | 2 + .../Prototypes/Recipes/Lathes/electronics.yml | 16 +++ .../Medical/centrifuge.rsi/base-spinning.png | Bin 0 -> 810 bytes .../Machines/Medical/centrifuge.rsi/base.png | Bin 0 -> 626 bytes .../Machines/Medical/centrifuge.rsi/meta.json | 31 +++++ .../Machines/Medical/centrifuge.rsi/panel.png | Bin 0 -> 163 bytes .../Medical/centrifuge.rsi/unshaded.png | Bin 0 -> 144 bytes .../Medical/electrolysis.rsi/base.png | Bin 0 -> 670 bytes .../Medical/electrolysis.rsi/meta.json | 32 +++++ .../Medical/electrolysis.rsi/panel.png | Bin 0 -> 194 bytes .../Medical/electrolysis.rsi/spinning.png | Bin 0 -> 407 bytes .../Medical/electrolysis.rsi/unshaded.png | Bin 0 -> 206 bytes 27 files changed, 478 insertions(+), 4 deletions(-) create mode 100644 Content.Client/Chemistry/EntitySystems/SolutionContainerMixerSystem.cs create mode 100644 Content.Server/Chemistry/EntitySystems/SolutionContainerMixerSystem.cs create mode 100644 Content.Shared/Chemistry/Components/SolutionContainerMixerComponent.cs create mode 100644 Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerMixerSystem.cs create mode 100644 Content.Shared/Chemistry/Reaction/MixingCategoryPrototype.cs create mode 100644 Resources/Audio/Machines/buzz_loop.ogg create mode 100644 Resources/Audio/Machines/spinning.ogg create mode 100644 Resources/Locale/en-US/chemistry/components/solution-container-mixer-component.ftl create mode 100644 Resources/Prototypes/Chemistry/mixing_types.yml create mode 100644 Resources/Prototypes/Entities/Structures/Machines/Medical/chemistry_machines.yml create mode 100644 Resources/Textures/Structures/Machines/Medical/centrifuge.rsi/base-spinning.png create mode 100644 Resources/Textures/Structures/Machines/Medical/centrifuge.rsi/base.png create mode 100644 Resources/Textures/Structures/Machines/Medical/centrifuge.rsi/meta.json create mode 100644 Resources/Textures/Structures/Machines/Medical/centrifuge.rsi/panel.png create mode 100644 Resources/Textures/Structures/Machines/Medical/centrifuge.rsi/unshaded.png create mode 100644 Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/base.png create mode 100644 Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/meta.json create mode 100644 Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/panel.png create mode 100644 Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/spinning.png create mode 100644 Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/unshaded.png diff --git a/Content.Client/Chemistry/EntitySystems/SolutionContainerMixerSystem.cs b/Content.Client/Chemistry/EntitySystems/SolutionContainerMixerSystem.cs new file mode 100644 index 0000000000..b6401c113d --- /dev/null +++ b/Content.Client/Chemistry/EntitySystems/SolutionContainerMixerSystem.cs @@ -0,0 +1,9 @@ +using Content.Shared.Chemistry.EntitySystems; + +namespace Content.Client.Chemistry.EntitySystems; + +/// +public sealed class SolutionContainerMixerSystem : SharedSolutionContainerMixerSystem +{ + +} diff --git a/Content.Server/Chemistry/EntitySystems/SolutionContainerMixerSystem.cs b/Content.Server/Chemistry/EntitySystems/SolutionContainerMixerSystem.cs new file mode 100644 index 0000000000..a942d34e7a --- /dev/null +++ b/Content.Server/Chemistry/EntitySystems/SolutionContainerMixerSystem.cs @@ -0,0 +1,29 @@ +using Content.Server.Power.Components; +using Content.Server.Power.EntitySystems; +using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.EntitySystems; + +namespace Content.Server.Chemistry.EntitySystems; + +/// +public sealed class SolutionContainerMixerSystem : SharedSolutionContainerMixerSystem +{ + /// + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnPowerChanged); + } + + private void OnPowerChanged(Entity ent, ref PowerChangedEvent args) + { + if (!args.Powered) + StopMix(ent); + } + + protected override bool HasPower(Entity entity) + { + return this.IsPowered(entity, EntityManager); + } +} diff --git a/Content.Shared/Chemistry/Components/SolutionContainerMixerComponent.cs b/Content.Shared/Chemistry/Components/SolutionContainerMixerComponent.cs new file mode 100644 index 0000000000..8e4b6f52d8 --- /dev/null +++ b/Content.Shared/Chemistry/Components/SolutionContainerMixerComponent.cs @@ -0,0 +1,44 @@ +using Content.Shared.Chemistry.EntitySystems; +using Content.Shared.Chemistry.Reaction; +using Robust.Shared.Audio; +using Robust.Shared.Audio.Components; +using Robust.Shared.GameStates; +using Robust.Shared.Serialization; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared.Chemistry.Components; + +/// +/// This is used for an entity that uses to mix any container with a solution after a period of time. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +[Access(typeof(SharedSolutionContainerMixerSystem))] +public sealed partial class SolutionContainerMixerComponent : Component +{ + [DataField, ViewVariables(VVAccess.ReadWrite)] + public string ContainerId = "mixer"; + + [DataField, AutoNetworkedField] + public bool Mixing; + + /// + /// How long it takes for mixing to occurs. + /// + [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public TimeSpan MixDuration; + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public TimeSpan MixTimeEnd; + + [DataField, AutoNetworkedField] + public SoundSpecifier? MixingSound; + + [DataField] + public Entity? MixingSoundEntity; +} + +[Serializable, NetSerializable] +public enum SolutionContainerMixerVisuals : byte +{ + Mixing +} diff --git a/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerMixerSystem.cs b/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerMixerSystem.cs new file mode 100644 index 0000000000..ab92425608 --- /dev/null +++ b/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerMixerSystem.cs @@ -0,0 +1,125 @@ +using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.Reaction; +using Content.Shared.Interaction; +using Content.Shared.Popups; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Containers; +using Robust.Shared.Network; +using Robust.Shared.Timing; + +namespace Content.Shared.Chemistry.EntitySystems; + +/// +/// This handles +/// +public abstract class SharedSolutionContainerMixerSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly INetManager _net = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly ChemicalReactionSystem _chemicalReaction = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SolutionContainerSystem _solution = default!; + + /// + public override void Initialize() + { + SubscribeLocalEvent(OnActivateInWorld); + SubscribeLocalEvent(OnRemoveAttempt); + } + + private void OnActivateInWorld(Entity entity, ref ActivateInWorldEvent args) + { + TryStartMix(entity, args.User); + } + + private void OnRemoveAttempt(Entity ent, ref ContainerIsRemovingAttemptEvent args) + { + if (args.Container.ID == ent.Comp.ContainerId && ent.Comp.Mixing) + args.Cancel(); + } + + protected virtual bool HasPower(Entity entity) + { + return true; + } + + public void TryStartMix(Entity entity, EntityUid? user) + { + var (uid, comp) = entity; + if (comp.Mixing) + return; + + if (!HasPower(entity)) + { + if (user != null) + _popup.PopupClient(Loc.GetString("solution-container-mixer-no-power"), entity, user.Value); + return; + } + + if (!_container.TryGetContainer(uid, comp.ContainerId, out var container) || container.Count == 0) + { + if (user != null) + _popup.PopupClient(Loc.GetString("solution-container-mixer-popup-nothing-to-mix"), entity, user.Value); + return; + } + + comp.Mixing = true; + if (_net.IsServer) + comp.MixingSoundEntity = _audio.PlayPvs(comp.MixingSound, entity, comp.MixingSound?.Params.WithLoop(true)); + comp.MixTimeEnd = _timing.CurTime + comp.MixDuration; + _appearance.SetData(entity, SolutionContainerMixerVisuals.Mixing, true); + Dirty(uid, comp); + } + + public void StopMix(Entity entity) + { + var (uid, comp) = entity; + if (!comp.Mixing) + return; + _audio.Stop(comp.MixingSoundEntity); + _appearance.SetData(entity, SolutionContainerMixerVisuals.Mixing, false); + comp.Mixing = false; + comp.MixingSoundEntity = null; + Dirty(uid, comp); + } + + public void FinishMix(Entity entity) + { + var (uid, comp) = entity; + if (!comp.Mixing) + return; + StopMix(entity); + + if (!TryComp(entity, out var reactionMixer) + || !_container.TryGetContainer(uid, comp.ContainerId, out var container)) + return; + + foreach (var ent in container.ContainedEntities) + { + if (!_solution.TryGetFitsInDispenser(ent, out var solution)) + continue; + + _chemicalReaction.FullyReactSolution(solution, ent, solution.MaxVolume, reactionMixer); + } + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp)) + { + if (!comp.Mixing) + continue; + + if (_timing.CurTime < comp.MixTimeEnd) + continue; + + FinishMix((uid, comp)); + } + } +} diff --git a/Content.Shared/Chemistry/Reaction/ChemicalReactionSystem.cs b/Content.Shared/Chemistry/Reaction/ChemicalReactionSystem.cs index 1a55408916..1bf7e7888b 100644 --- a/Content.Shared/Chemistry/Reaction/ChemicalReactionSystem.cs +++ b/Content.Shared/Chemistry/Reaction/ChemicalReactionSystem.cs @@ -112,7 +112,8 @@ namespace Content.Shared.Chemistry.Reaction { lowestUnitReactions = FixedPoint2.Zero; return false; - } else if(solution.Temperature > reaction.MaximumTemperature) + } + if (solution.Temperature > reaction.MaximumTemperature) { lowestUnitReactions = FixedPoint2.Zero; return false; @@ -126,7 +127,7 @@ namespace Content.Shared.Chemistry.Reaction } var attempt = new ReactionAttemptEvent(reaction, solution); - RaiseLocalEvent(owner, attempt, false); + RaiseLocalEvent(owner, attempt); if (attempt.Cancelled) { lowestUnitReactions = FixedPoint2.Zero; diff --git a/Content.Shared/Chemistry/Reaction/MixingCategoryPrototype.cs b/Content.Shared/Chemistry/Reaction/MixingCategoryPrototype.cs new file mode 100644 index 0000000000..30d110a459 --- /dev/null +++ b/Content.Shared/Chemistry/Reaction/MixingCategoryPrototype.cs @@ -0,0 +1,14 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.Chemistry.Reaction; + +/// +/// This is a prototype for a method of chemical mixing, to be used by +/// +[Prototype("mixingCategory")] +public sealed partial class MixingCategoryPrototype : IPrototype +{ + /// + [IdDataField] + public string ID { get; } = default!; +} diff --git a/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs b/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs index 6969723953..a88bf02bf8 100644 --- a/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs +++ b/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs @@ -1,4 +1,5 @@ using Content.Shared.Chemistry.Components; +using Robust.Shared.Prototypes; namespace Content.Shared.Chemistry.Reaction; @@ -10,7 +11,7 @@ public sealed partial class ReactionMixerComponent : Component /// [ViewVariables] [DataField] - public List ReactionTypes = default!; + public List> ReactionTypes = default!; /// /// A string which identifies the string to be sent when successfully mixing a solution diff --git a/Content.Shared/Chemistry/Reaction/ReactionPrototype.cs b/Content.Shared/Chemistry/Reaction/ReactionPrototype.cs index 37b5d44140..7541784905 100644 --- a/Content.Shared/Chemistry/Reaction/ReactionPrototype.cs +++ b/Content.Shared/Chemistry/Reaction/ReactionPrototype.cs @@ -48,7 +48,7 @@ namespace Content.Shared.Chemistry.Reaction /// The required mixing categories for an entity to mix the solution with for the reaction to occur /// [DataField("requiredMixerCategories")] - public List? MixingCategories = null; + public List>? MixingCategories; /// /// Reagents created when the reaction occurs. diff --git a/Resources/Audio/Machines/attributions.yml b/Resources/Audio/Machines/attributions.yml index 411e1aa825..c7859e9ba1 100644 --- a/Resources/Audio/Machines/attributions.yml +++ b/Resources/Audio/Machines/attributions.yml @@ -8,6 +8,16 @@ copyright: "Created by dotY21." source: "https://freesound.org/people/dotY21/sounds/330726/" +- files: ["buzz_loop.ogg"] + license: "CC0-1.0" + copyright: "Created by Duasun, converted to OGG by EmoGarbage404 (github)." + source: "https://freesound.org/people/Duasun/sounds/712127/" + +- files: ["spinning.ogg"] + license: "CC0-1.0" + copyright: "Created by MrLindstrom, modified and converted to OGG by EmoGarbage404 (github)." + source: "https://freesound.org/people/MrLindstrom/sounds/543964/" + - files: ["vending_restock_start.ogg"] license: "CC0-1.0" copyright: "https://freesound.org/people/Defaultv/" diff --git a/Resources/Audio/Machines/buzz_loop.ogg b/Resources/Audio/Machines/buzz_loop.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5893b2aac14e9ff78c20a8c6f6bef57998f4c13e GIT binary patch literal 36765 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 ScX1V9_bc6_5x`fghv5K;fyQkB literal 0 HcmV?d00001 diff --git a/Resources/Audio/Machines/spinning.ogg b/Resources/Audio/Machines/spinning.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e85d46f07d9d1c0a753c8f40bf7552595ce0f462 GIT binary patch literal 37325 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 literal 0 HcmV?d00001 diff --git a/Resources/Locale/en-US/chemistry/components/solution-container-mixer-component.ftl b/Resources/Locale/en-US/chemistry/components/solution-container-mixer-component.ftl new file mode 100644 index 0000000000..9402903477 --- /dev/null +++ b/Resources/Locale/en-US/chemistry/components/solution-container-mixer-component.ftl @@ -0,0 +1,3 @@ +solution-container-mixer-activate = Activate +solution-container-mixer-no-power = No power! +solution-container-mixer-popup-nothing-to-mix = Nothing inside! diff --git a/Resources/Prototypes/Chemistry/mixing_types.yml b/Resources/Prototypes/Chemistry/mixing_types.yml new file mode 100644 index 0000000000..e32afa43fa --- /dev/null +++ b/Resources/Prototypes/Chemistry/mixing_types.yml @@ -0,0 +1,8 @@ +- type: mixingCategory + id: Centrifuge + +- type: mixingCategory + id: Electrolysis + +- type: mixingCategory + id: Holy diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml index 7af85a09f0..e7fdde9397 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -808,6 +808,36 @@ Cable: 3 Steel: 2 +- type: entity + id: ElectrolysisUnitMachineCircuitboard + parent: BaseMachineCircuitboard + name: electrolysis unit machine board + description: A machine printed circuit board for an electrolysis unit. + components: + - type: Sprite + state: medical + - type: MachineBoard + prototype: MachineElectrolysisUnit + requirements: + Capacitor: 2 + materialRequirements: + Cable: 1 + +- type: entity + id: CentrifugeMachineCircuitboard + parent: BaseMachineCircuitboard + name: centrifuge machine board + description: A machine printed circuit board for a centrifuge. + components: + - type: Sprite + state: medical + - type: MachineBoard + prototype: MachineCentrifuge + requirements: + Manipulator: 1 + materialRequirements: + Steel: 1 + - type: entity id: MaterialReclaimerMachineCircuitboard parent: BaseMachineCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Machines/Medical/chemistry_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/Medical/chemistry_machines.yml new file mode 100644 index 0000000000..6a46064ac4 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Machines/Medical/chemistry_machines.yml @@ -0,0 +1,119 @@ +- type: entity + id: BaseTabletopChemicalMachine + parent: [ BaseMachinePowered, ConstructibleMachine ] + abstract: true + components: + - type: Transform + anchored: true + - type: SolutionContainerMixer + - type: ReactionMixer + - type: Sprite + drawdepth: SmallObjects + snapCardinals: true + - type: Appearance + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.17,0,0.20,0.4" + mask: + - TabletopMachineMask + layer: + - TabletopMachineLayer + - type: ItemSlots + slots: + mixer: + whitelist: + components: + - FitsInDispenser + - type: Machine + - type: Wires + layoutId: chem + - type: WiresPanel + - type: WiresVisuals + - type: ContainerContainer + containers: + mixer: !type:ContainerSlot + machine_board: !type:Container + machine_parts: !type:Container + +- type: entity + id: MachineElectrolysisUnit + parent: BaseTabletopChemicalMachine + name: electrolysis unit + description: The latest in medicinal electrocution technology. + components: + - type: SolutionContainerMixer + mixDuration: 5 + mixingSound: + path: /Audio/Machines/buzz_loop.ogg + params: + volume: -5 + - type: ReactionMixer + reactionTypes: + - Electrolysis + - type: Sprite + sprite: Structures/Machines/Medical/electrolysis.rsi + offset: "0.0,0.4" + layers: + - state: base + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + visible: false + - state: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + shader: unshaded + - type: GenericVisualizer + visuals: + enum.SolutionContainerMixerVisuals.Mixing: + enum.PowerDeviceVisualLayers.Powered: + True: {state: "spinning"} + False: {state: "unshaded"} + enum.PowerDeviceVisuals.Powered: + enum.PowerDeviceVisualLayers.Powered: + True: { visible: True } + False: { visible: False } + - type: Machine + board: ElectrolysisUnitMachineCircuitboard + +- type: entity + id: MachineCentrifuge + parent: BaseTabletopChemicalMachine + name: tabletop centrifuge + description: Around and around it goes... + components: + - type: SolutionContainerMixer + mixDuration: 10 + mixingSound: + path: /Audio/Machines/spinning.ogg + params: + volume: -4 + - type: ReactionMixer + reactionTypes: + - Centrifuge + - type: Sprite + sprite: Structures/Machines/Medical/centrifuge.rsi + offset: "0.0,0.4" + layers: + - state: base + map: ["beyblade"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + visible: false + - state: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + shader: unshaded + - type: GenericVisualizer + visuals: + enum.SolutionContainerMixerVisuals.Mixing: + beyblade: + True: {state: "base-spinning"} + False: {state: "base"} + enum.PowerDeviceVisuals.Powered: + enum.PowerDeviceVisualLayers.Powered: + True: { visible: True } + False: { visible: False } + - type: Machine + board: CentrifugeMachineCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 535564496d..9bdf3834c4 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -308,6 +308,8 @@ idleState: icon runningState: building staticRecipes: + - ElectrolysisUnitMachineCircuitboard + - CentrifugeMachineCircuitboard - CondenserMachineCircuitBoard dynamicRecipes: - ThermomachineFreezerMachineCircuitBoard diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 9ab48db864..7a92402428 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -360,6 +360,22 @@ Glass: 900 Gold: 100 +- type: latheRecipe + id: ElectrolysisUnitMachineCircuitboard + result: ElectrolysisUnitMachineCircuitboard + completetime: 4 + materials: + Steel: 100 + Glass: 900 + +- type: latheRecipe + id: CentrifugeMachineCircuitboard + result: CentrifugeMachineCircuitboard + completetime: 4 + materials: + Steel: 100 + Glass: 900 + - type: latheRecipe id: MaterialReclaimerMachineCircuitboard result: MaterialReclaimerMachineCircuitboard diff --git a/Resources/Textures/Structures/Machines/Medical/centrifuge.rsi/base-spinning.png b/Resources/Textures/Structures/Machines/Medical/centrifuge.rsi/base-spinning.png new file mode 100644 index 0000000000000000000000000000000000000000..16daad92ac44f2290ac7942b1b5c01432d108c41 GIT binary patch literal 810 zcmV+_1J(SAP)Px%WLO5_c7rT@$QXFsUEp|8v9m`Ee zM{!UpNH-TdbSqu#)J-TMAUK_HLvn+8w>%uQ9nvAZ+`E{>yl5OQ@3SQLaxb6Xd%wJ2 z{s0PvLZMJ76bgkxp-|L`8QBgyM_XaC?doCx0C2warO#J)f8h>X{ATNI+;;ly6v2>U zd3|Xjm?|b>TKzAJ%DMRGuOD&7m)DmN3@NTI23THSinsWH@F^!j^dIaWPPjQ@OjY~& zSh0!H`Y}^YG8dD}whgOPXK2+C-Y|#K89a`v{bDIh#!$wedlR-S3y$NUe>{p#{w_MXn0;|yU(j&< z{SMc-10e*KWyy@Wus`YL`)qXcZ2q(u%J@?gKq-amx-d;MZgU(5w`agD{^gu*7KF^k zV$(F?x-KX!b_1`YKX(QAz8?o622&K@_oe&P&HvzgfbaVVf&h-=AnU0_gfBhuCiWPn z-Jkm&z%fk|j4|x(61;!?7kj$|0PtyM{GQ=?9z4$jW31HGQdfVW1aL0<6l*IQF8fhU z`y4*%Jx7{p^h+gx%hy(-=iFYehfb&S=pgFsFZ3}Eh-%x%BL?6Va2D0VZnqmBUtC;_ z|5pXm>d*XG)M~XtP1B(3I)WgOs%x(6#{DRzI5|0y{wP)#e{Ntr2-)Xo0O0+~3|{#Y oL9|*esk=>?KFY69C=}1mf2)4bn5b<$m;e9(07*qoM6N<$g89LJ5dZ)H literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Machines/Medical/centrifuge.rsi/base.png b/Resources/Textures/Structures/Machines/Medical/centrifuge.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..c145d0322e3489c2bbf77278bc5f24b622d20703 GIT binary patch literal 626 zcmV-&0*(ENP)Px%EJ;K`R9J=WRUvHKKootQrj>L@>LYbPq!d(@BArYMLozarR8yhRPzNGeg;P*8 zSPg7iq|%TMj7=jQ2@E+|s#N4k1-^p%LQVs12RvZi%}MIBy-gaJAMyF${d>>%-#-Hl z8Z>C|zhkX#!oj$oF2^ph+bd)JtSaJh6>>HIj`#0AK+GiEJqKbY&HO{-PPYxbMp{LLRY0%TO93Fc zmJ38Sw3F;&cZYA0}Z7Vf*@EiZK;4D2vSO^d8b>B z8S9!aljh_3^^{Vph{6+aT^EE9L??5Q%?+^qorQTZlej#;S}6_N-vQa&$npq*>$*i0 z07^XIc^)|Dh)(9&<}b6&^Ix7H(=7)#pYL#kI}k$Pd7hQLP=J&YVHkojW@4Ok+@1lq z_+i;@9fYhKV#XN4FocxF2DYAn5WV4BMCqE+dq4<*BuT(I$3tDQ41M%@6WdT| z!aNvbP)gzWkl@v`dmJAU0Kl8IUo9TTG2%FeQmWQzRT7|a5lQTBJGh9ln!Zh~E&lff zX!70dtj|ZI5e9?79|HqVK^L``BtlC*407bJ?;B`>NpN4rAU&b zR$ap|G|bV;Q%yF17TW)OR=6g`weo?N3I5sFgoH`2zJYc)I$z JtaD0e0st*nI)eZJ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Machines/Medical/centrifuge.rsi/unshaded.png b/Resources/Textures/Structures/Machines/Medical/centrifuge.rsi/unshaded.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb54a8b9f7d6ba39135e192e21ee07859d76208 GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}UY;(FArY;~ z2@`QT$q&Y~#0(k}o=1JUJmp+v+1e(g=>FVdQ&MBb@0N2ke&j0`b literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/base.png b/Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..ef9305ae2a6c72950abcb600bc311d4389de13ab GIT binary patch literal 670 zcmV;P0%84$P)Px%SV=@dR9J=WmOW@wQ54627BNfGf>a_JM3d5n1S({4b5U%GXt4?o!H@Bg!9}6a z(OD=4g{)RG2t`q`v{E6&$sz$m6Uf)IlmvV+O-ad;#W>V=%}ZWhUSh<-{FnQ2&OPUU z&-qP}yB+q=&N4aS0^m`+D)t}v#x#Ce`xN z{E==1{x*gLx@rIpz9oRmb*^delg6jj_V{TCfKsW1)9Gx;vaBmaLjuY-h26c1SZ^s? zVt)KcMdRCS+gJ&4f9WC9Qyu^k=@bhANtcAF3PfYkHs@%UK+{tm?)Yy2@N9LZV{B6d z02~g7Sy$rmxM^S01OUR}ux2eu5&(rlp^ac7of0=sq*H?-V6j-RSS;9VHp=C)*jE%q zL*V52Q5FJ{=4@XgY(>3Z7o$42TCHNN)oQ}m=kpN^2B}u7L?RJnS=No&69Gw*M8f7| zt+1auEs_HS0s)kr?Z(H=&;50Q3Ox;|M2rX(i^Yz%foQ;PxAzjJe*$_MfZkg4j|ix3 zH%RnEK!qyAX0&R+>-CCxHk;+e@_-10-o=tthpgo~p;SpWK+nKQ?D`9z%;jO+NtcUu(DfV7BOXYpRe;CPf<#tP231Y-ZYSu2$r(=Y;SxlN`D{N-tfQXR literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/meta.json b/Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/meta.json new file mode 100644 index 0000000000..71eacfdf23 --- /dev/null +++ b/Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "CC0-1.0", + "copyright": "Adapted from CEV-Eris by EmoGarbage404 (github) for Space Station 14.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "spinning", + "delays": + [ + [ + 0.25, + 0.25, + 0.25, + 0.25 + ] + ] + }, + { + "name": "panel" + }, + { + "name": "unshaded" + } + ] +} diff --git a/Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/panel.png b/Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/panel.png new file mode 100644 index 0000000000000000000000000000000000000000..4208f696938d51241fed0cbc38ba22bbcaf2bfde GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}HJ&bxArY-_ zFD&G3Fc4{Z_*%r(%rrtK=b*rwh64{ic&JQcX*{TObJ0Puqin7T8*-(DCjI`id(R&R zK_Iwz-(+n;@}wOR)rY=2OuH0%v$JHviqFsa*P5J3Ob~y)SNu)v!c5nKi3^w*Hk65d rR@o5CdM0tf)MNMF-xpO_6p@#=L2l};$OE}RcQAOm`njxgN@xNAr3g(O literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/spinning.png b/Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/spinning.png new file mode 100644 index 0000000000000000000000000000000000000000..b2fc90cc12394d218f17900aa0b23abaad48bc3e GIT binary patch literal 407 zcmV;I0cie-P)Px$QAtEWRCt{2+M!E>K^(^MNAZ8KtSrhHOu?#Q)uKTR4i@|a1gp{LK*VSmxG)x6 zw<&8cSk9NX3=|xKA{H^2&LEpxm~d`)?>4`mbm6$?cz^eD;eHYT0091{IbRE}9PQci z&bA~eGDa7h2i~%V<>zuslB76JbbELnG+(7=#dgQ1?JN7++%)s&!)#}AEx1gshN5+gLU#()nel%9x( zp{1P<000000001(c3%4f(tMvUH7j;CpO^IgI2*h_p#M$2|E+$~^63xowQyuiuL|Sp z4{%YfH+q$i<0N=KFeT^@aG6Yh0Q~^~0001H#24DAyeu~3&>H{%002ovPDHLkV1k%; Bx^e&j literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/unshaded.png b/Resources/Textures/Structures/Machines/Medical/electrolysis.rsi/unshaded.png new file mode 100644 index 0000000000000000000000000000000000000000..5c2c1aaff267e1c264af9bd4c42c476853502154 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}9iA?ZArY;~ z2@*RNDe)aeE^38bhSmsVc zYZ#k;#73@npD$0>zkF&|po67?X7&y7HO`)A+0|JB=WO-xYI$VT#Z%VS#S{L{Cb{DK zPxYl`lixK=_kU+B