From 360bfd6e1c9cdec8b4eeccdb4b4b380072448252 Mon Sep 17 00:00:00 2001 From: chaisftw <30545471+chaisftw@users.noreply.github.com> Date: Tue, 13 Jan 2026 08:01:35 +1000 Subject: [PATCH] Spray bottles with visible reagent contents (#42155) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * Spray bottles with visible reagent contents * Fixed cargo catalog to correctly reference the new spray bottle rsi * Fixed indentation on rsi meta files * Updated copyright in spray_bottle.rsi meta * Update Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml Co-authored-by: āda * Updated to follow yml convention, modified to inherit from DrinkBase and renamed fill textures * Fixed solution names * Updated solution name in BorgMegaSprayBottle * de-hardcode solution name * less breaking --------- Co-authored-by: āda Co-authored-by: iaada --- .../Fluids/EntitySystems/SpraySystem.cs | 2 +- .../Fluids/Components/SprayComponent.cs | 15 +- .../Catalog/Cargo/cargo_service.yml | 2 +- .../Objects/Specific/Hydroponics/sprays.yml | 32 ++-- .../Objects/Specific/Janitorial/spray.yml | 93 ++++++------ .../Janitorial/janitorial.rsi/cleaner.png | Bin 411 -> 0 bytes .../janitorial.rsi/cleaner_large.png | Bin 436 -> 0 bytes .../Janitorial/janitorial.rsi/inhand-left.png | Bin 339 -> 0 bytes .../janitorial.rsi/inhand-right.png | Bin 342 -> 0 bytes .../Janitorial/janitorial.rsi/meta.json | 138 ++++++++---------- .../spray_bottle.rsi/cleaner-fill-1.png | Bin 0 -> 124 bytes .../spray_bottle.rsi/cleaner-fill-2.png | Bin 0 -> 155 bytes .../spray_bottle.rsi/cleaner-fill-3.png | Bin 0 -> 163 bytes .../spray_bottle.rsi/cleaner-fill-4.png | Bin 0 -> 178 bytes .../spray_bottle.rsi/cleaner-fill-5.png | Bin 0 -> 186 bytes .../Janitorial/spray_bottle.rsi/cleaner.png | Bin 0 -> 395 bytes .../spray_bottle.rsi/cleaner_large-fill-1.png | Bin 0 -> 138 bytes .../spray_bottle.rsi/cleaner_large-fill-2.png | Bin 0 -> 151 bytes .../spray_bottle.rsi/cleaner_large-fill-3.png | Bin 0 -> 187 bytes .../spray_bottle.rsi/cleaner_large-fill-4.png | Bin 0 -> 193 bytes .../spray_bottle.rsi/cleaner_large-fill-5.png | Bin 0 -> 210 bytes .../spray_bottle.rsi/cleaner_large-fill-6.png | Bin 0 -> 220 bytes .../spray_bottle.rsi/cleaner_large-fill-7.png | Bin 0 -> 226 bytes .../spray_bottle.rsi/cleaner_large.png | Bin 0 -> 384 bytes .../spray_bottle.rsi/inhand-left-fill-1.png | Bin 0 -> 123 bytes .../spray_bottle.rsi/inhand-left-fill-2.png | Bin 0 -> 130 bytes .../spray_bottle.rsi/inhand-left-fill-3.png | Bin 0 -> 148 bytes .../spray_bottle.rsi/inhand-left-fill-4.png | Bin 0 -> 163 bytes .../spray_bottle.rsi/inhand-left.png | Bin 0 -> 235 bytes .../spray_bottle.rsi/inhand-right-fill-1.png | Bin 0 -> 128 bytes .../spray_bottle.rsi/inhand-right-fill-2.png | Bin 0 -> 136 bytes .../spray_bottle.rsi/inhand-right-fill-3.png | Bin 0 -> 159 bytes .../spray_bottle.rsi/inhand-right-fill-4.png | Bin 0 -> 171 bytes .../spray_bottle.rsi/inhand-right.png | Bin 0 -> 233 bytes .../Janitorial/spray_bottle.rsi/meta.json | 93 ++++++++++++ 35 files changed, 229 insertions(+), 146 deletions(-) delete mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/cleaner.png delete mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/cleaner_large.png delete mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner-fill-1.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner-fill-2.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner-fill-3.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner-fill-4.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner-fill-5.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-1.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-2.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-3.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-4.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-5.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-6.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-7.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-left-fill-1.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-left-fill-2.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-left-fill-3.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-left-fill-4.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right-fill-1.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right-fill-2.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right-fill-3.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right-fill-4.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/meta.json diff --git a/Content.Server/Fluids/EntitySystems/SpraySystem.cs b/Content.Server/Fluids/EntitySystems/SpraySystem.cs index 4708954ea1..3b7b4327c4 100644 --- a/Content.Server/Fluids/EntitySystems/SpraySystem.cs +++ b/Content.Server/Fluids/EntitySystems/SpraySystem.cs @@ -88,7 +88,7 @@ public sealed class SpraySystem : SharedSpraySystem public override void Spray(Entity entity, MapCoordinates mapcoord, EntityUid? user = null) { - if (!_solutionContainer.TryGetSolution(entity.Owner, SprayComponent.SolutionName, out var soln, out var solution)) + if (!_solutionContainer.TryGetSolution(entity.Owner, entity.Comp.Solution, out var soln, out var solution)) return; var ev = new SprayAttemptEvent(user); diff --git a/Content.Shared/Fluids/Components/SprayComponent.cs b/Content.Shared/Fluids/Components/SprayComponent.cs index cc0032c3fb..9cc8f6a1c4 100644 --- a/Content.Shared/Fluids/Components/SprayComponent.cs +++ b/Content.Shared/Fluids/Components/SprayComponent.cs @@ -9,24 +9,25 @@ namespace Content.Shared.Fluids.Components; [Access(typeof(SharedSpraySystem))] public sealed partial class SprayComponent : Component { - public const string SolutionName = "spray"; + [DataField] + public string Solution = "spray"; - [ViewVariables(VVAccess.ReadWrite), DataField] + [DataField] public FixedPoint2 TransferAmount = 10; - [ViewVariables(VVAccess.ReadWrite), DataField] + [DataField] public float SprayDistance = 3.5f; - [ViewVariables(VVAccess.ReadWrite), DataField] + [DataField] public float SprayVelocity = 3.5f; - [ViewVariables(VVAccess.ReadWrite), DataField] + [DataField] public EntProtoId SprayedPrototype = "Vapor"; - [ViewVariables(VVAccess.ReadWrite), DataField] + [DataField] public int VaporAmount = 1; - [ViewVariables(VVAccess.ReadWrite), DataField] + [DataField] public float VaporSpread = 90f; /// diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_service.yml b/Resources/Prototypes/Catalog/Cargo/cargo_service.yml index 08796199cb..751bc94da7 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_service.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_service.yml @@ -1,7 +1,7 @@ - type: cargoProduct id: ServiceJanitorial icon: - sprite: Objects/Specific/Janitorial/janitorial.rsi + sprite: Objects/Specific/Janitorial/spray_bottle.rsi state: cleaner product: CrateServiceJanitorialSupplies cost: 560 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/sprays.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/sprays.yml index 9d9f3b7324..7bca0fb699 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/sprays.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/sprays.yml @@ -1,9 +1,9 @@ - type: entity - name: Plant-B-Gone + parent: SprayBottleBase id: PlantBGoneSpray - parent: SprayBottle - description: Kills those pesky weeds! + name: Plant-B-Gone suffix: "Filled" + description: Kills those pesky weeds! components: - type: Tag tags: @@ -13,38 +13,32 @@ state: plantbgone - type: SolutionContainerManager solutions: - spray: + drink: maxVol: 100 reagents: - ReagentId: PlantBGone Quantity: 100 - - type: DrainableSolution - solution: spray - type: Item sprite: Objects/Tools/Hydroponics/sprays.rsi heldPrefix: plantbgone - type: entity - name: weed spray + parent: SprayBottleBase id: WeedSpray - parent: SprayBottle - description: It's a toxic mixture, in spray form, to kill small weeds. + name: weed spray suffix: "Filled" + description: It's a toxic mixture, in spray form, to kill small weeds. components: - type: Sprite sprite: Objects/Tools/Hydroponics/sprays.rsi state: weedspray - type: SolutionContainerManager solutions: - spray: + drink: maxVol: 50 reagents: - ReagentId: WeedKiller Quantity: 50 - - type: DrainableSolution - solution: spray - - type: Spillable - solution: spray - type: Tag tags: - Spray @@ -54,22 +48,20 @@ sprite: Objects/Tools/Hydroponics/sprays.rsi - type: entity - name: pest spray - id: PestSpray parent: WeedSpray - description: It's some pest eliminator spray! Do not inhale! + id: PestSpray + name: pest spray suffix: "Filled" + description: It's some pest eliminator spray! Do not inhale! components: - type: Sprite state: pestspray - type: SolutionContainerManager solutions: - spray: + drink: maxVol: 50 reagents: - ReagentId: PestKiller Quantity: 50 - - type: DrainableSolution - solution: spray - type: Item sprite: Objects/Tools/Hydroponics/sprays.rsi diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml index 5c3cd25d6e..5276bdc1b9 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml @@ -1,15 +1,11 @@ - type: entity - name: spray bottle - id: SprayBottle - parent: BaseItem - suffix: Empty - description: A spray bottle with an unscrewable top. + abstract: true + parent: [ DrinkBaseMaterialPlastic, DrinkBase ] + id: SprayBottleBase components: - type: Edible edible: Drink - solution: spray - destroyOnEmpty: false - utensil: None + solution: drink transferAmount: 10 useSound: path: /Audio/Effects/spray3.ogg @@ -20,47 +16,62 @@ - Spray - Trash - type: Sprite - sprite: Objects/Specific/Janitorial/janitorial.rsi + sprite: Objects/Specific/Janitorial/spray_bottle.rsi state: cleaner - type: Item - sprite: Objects/Specific/Janitorial/janitorial.rsi + sprite: Objects/Specific/Janitorial/spray_bottle.rsi - type: SolutionContainerManager solutions: - spray: + drink: maxVol: 100 - - type: RefillableSolution - solution: spray - - type: DrainableSolution - solution: spray - - type: SolutionTransfer - canChangeTransferAmount: true - - type: SolutionItemStatus - solution: spray - type: UseDelay - type: Spray + solution: drink transferAmount: 10 sprayVelocity: 2 spraySound: path: /Audio/Effects/spray2.ogg - type: TrashOnSolutionEmpty - solution: spray - - type: ExaminableSolution - solution: spray - exactVolume: true + solution: drink + +- type: entity + parent: [ SprayBottleBase, DrinkVisualsFill ] + id: SprayBottle + name: spray bottle + suffix: Empty + description: A spray bottle with an unscrewable top. + components: + - type: Sprite + sprite: Objects/Specific/Janitorial/spray_bottle.rsi + layers: + - state: cleaner + - state: cleaner-fill-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - type: SolutionContainerVisuals + fillBaseName: cleaner-fill- + inHandsMaxFillLevels: 4 - type: entity - name: mega spray bottle - id: MegaSprayBottle parent: SprayBottle + id: MegaSprayBottle + name: mega spray bottle suffix: Empty description: A huge spray bottle, capable of unrivaled janitorial power. components: - type: Sprite - sprite: Objects/Specific/Janitorial/janitorial.rsi - state: cleaner_large + sprite: Objects/Specific/Janitorial/spray_bottle.rsi + layers: + - state: cleaner_large + - state: cleaner_large-fill-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - type: SolutionContainerVisuals + maxFillLevels: 7 + fillBaseName: cleaner_large-fill- - type: SolutionContainerManager solutions: - spray: + drink: maxVol: 250 - type: Spray transferAmount: 15 @@ -71,31 +82,31 @@ path: /Audio/Effects/spray2.ogg - type: entity - name: spray bottle + parent: SprayBottle id: SprayBottleWater + name: spray bottle suffix: Filled - parent: SprayBottle components: - type: Tag tags: - Spray - type: SolutionContainerManager solutions: - spray: + drink: maxVol: 100 reagents: - ReagentId: Water Quantity: 100 - type: entity - description: BLAM!-brand non-foaming space cleaner! - id: SprayBottleSpaceCleaner parent: SprayBottle + id: SprayBottleSpaceCleaner suffix: Space Cleaner + description: BLAM!-brand non-foaming space cleaner! components: - type: SolutionContainerManager solutions: - spray: + drink: maxVol: 100 reagents: - ReagentId: SpaceCleaner @@ -109,12 +120,12 @@ - type: entity parent: MegaSprayBottle id: MegaSprayBottleSpaceCleaner - description: BLAM!-brand non-foaming space cleaner, now in a bigger package for those huge blood puddles! suffix: Space Cleaner + description: BLAM!-brand non-foaming space cleaner, now in a bigger package for those huge blood puddles! components: - type: SolutionContainerManager solutions: - spray: + drink: maxVol: 250 reagents: - ReagentId: SpaceCleaner @@ -131,7 +142,7 @@ components: - type: SolutionContainerManager solutions: - spray: + drink: maxVol: 200 reagents: - ReagentId: SpaceCleaner @@ -146,7 +157,7 @@ components: - type: SolutionContainerManager solutions: - spray: + drink: maxVol: 250 reagents: - ReagentId: SpaceCleaner @@ -154,7 +165,7 @@ - type: SolutionTransfer canSend: false # No giving away infinite space cleaner! - type: SolutionRegeneration - solution: spray + solution: drink generated: reagents: - ReagentId: SpaceCleaner @@ -163,8 +174,8 @@ # Vapor - type: entity id: Vapor - name: "vapor" categories: [ HideSpawnMenu ] + name: "vapor" components: - type: SolutionContainerManager solutions: @@ -198,8 +209,8 @@ - type: VaporVisuals - type: entity - id: BigVapor parent: Vapor + id: BigVapor categories: [ HideSpawnMenu ] components: - type: Sprite diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/cleaner.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/cleaner.png deleted file mode 100644 index f25c12a24e5f108c5823143509ea7f563118acaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmV;M0c8G(P)dqa8y1DcJHzg;M95O?z9Do6k@1udf2Wb|UlVkYLD$1Z1!2%40c_fDd*&%S} zEfV|GafbN;&J1?3@g$o=l_fa(VjI-)0%;b24^1H;pM40dFg zLs1BTEMJj1lY!yd8M4hF+X42)4h$=z4lpp>0CH{t@oOL^qj)0A0Yx^}jAiG}|2Nwi z3g-X%_6Px$Zb?KzR9J=Wm9b01P!Pty#G)vI1*eLrAP6F;lZwU+4!URt2dAJ=T%4R-RFFc7 z;C~>fL+MmHrJEo^oph|wfJ3W`9UK%zX*%Q_YG{LWxR;{K`$6DwFL(FxzFZz4kx2d- zh4XScu2QQ#^TK1*@`-R0`g$W+ov8hazkR6`?cobyt3Fz5oWkkKrxcz$Fh45NwgKCMbX+A-zuO|9x%t)PG0KjE!ayg0Qy~Ft3w#VKNi#cp=$_Ir zsBJ(uH(O3f+XWa_lC<6ZKx}MfOIQTEIj*0m;u4`mw0)i-*yZ|jk|nMP_BQ|k_yl72 zKkE+0X$Y|* z0QUvxiUI)gBa6^Y5J!aY6vT?6nL(rl;Vn>wON0~Pb2hskDqrYQY5v)`)oNhxHk)bN eMJ16){)BIGJcoa!{(NBo0000VS)S0G*Q%k+OHL(YuZGynf@ zee<8;%ztNR=djXp?#nX&fzpg6L4Lsu4$p3+0XaEUArU1msl~}fnFS@8`FRWs6?1~a z3W`d_>gDYBM8I{GvxDt*Xa$;0to1r7Z%p~w8VGWm%z?+mc zTwDTglGfzC$T*PF+Z1TPHG#3uh>7vRQdYf&#XSxTGN~*~3Hr(tcsLH|pFc3i!NZY} fk#%t@%SvE432>Zfkt}Ed+RWhT>gTe~DWM4f1FLn! diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/inhand-right.png deleted file mode 100644 index 3757bcdf6e1e747014d3b9dcf4597e473708c422..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e=>VS)*Z=?j*ZVU4pUIFjWA@Dd z|6AYuXE^iU+1WX)wEX#OlSe>hj3q&S!3+-1ZlnP@IaMJMB`&GO$wiq3C7Jno3=9=> zg2M`mO22;zF8KKMiI%sn*10q1gExd4Tr__0Nawtd=1GR4p57f6#zDrHjlC4+JeqW5 zQiwvZrlq>6q5f8n&TeDX%_}69^mZGs)i5*{J!1AGD6HUXF{3mOL-}f{7jKuax&!Sk z^mK6y@#suWkYGK`!@>1HJT>IdDhCh2b16r%^d@N-hp~DrQe(RzqR`EjY^=c0Il0Hz zkx6K|#Ox*}mfedPXG?GB?rRD(C}LQwz{u*6%E;HSmBW!Of}26*z#E?vEMZP=8w7(6 k_&G4Tvn!hSFflPO=>2EE@kZdpETH8Kp00i_>zopr0AMwG5&!@I diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/meta.json b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/meta.json index e138281ef6..fe2eed8ca3 100644 --- a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/meta.json @@ -1,79 +1,65 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428, mopbucket_shark_* by Psychpsyo, mopbucket_carpplush adapted by Psychpsyo from tgstation carpplush at commit https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432, mopbucket_cube is monkey cube taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/9c980cb9bc84d07b1c210c5447798af525185f80/icons/obj/food.dmi and modified by Hrosts, Holocarp and Magicarp mopbucket sprites by TiniestShark (github)", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "cleaner" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428, mopbucket_shark_* by Psychpsyo, mopbucket_carpplush adapted by Psychpsyo from tgstation carpplush at commit https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432, mopbucket_cube is monkey cube taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/9c980cb9bc84d07b1c210c5447798af525185f80/icons/obj/food.dmi and modified by Hrosts, Holocarp and Magicarp mopbucket sprites by TiniestShark (github)", + "size": { + "x": 32, + "y": 32 }, - { - "name": "cleaner_large" - }, - { - "name": "mopbucket" - }, - { - "name": "mopbucket_water-1" - }, - { - "name": "mopbucket_water-2" - }, - { - "name": "mopbucket_water-3" - }, - { - "name": "mopbucket_shark_blue" - }, - { - "name": "mopbucket_shark_pink" - }, - { - "name": "mopbucket_shark_grey" - }, - { - "name": "mopbucket_carpplush" - }, - { - "name": "mopbucket_magicarpplush" - }, - { - "name": "mopbucket_holocarpplush", - "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 - ] - ] - }, - { - "name": "mopbucket_cube" - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-BELT", - "directions": 4 - } - ] + "states": [ + { + "name": "mopbucket" + }, + { + "name": "mopbucket_water-1" + }, + { + "name": "mopbucket_water-2" + }, + { + "name": "mopbucket_water-3" + }, + { + "name": "mopbucket_shark_blue" + }, + { + "name": "mopbucket_shark_pink" + }, + { + "name": "mopbucket_shark_grey" + }, + { + "name": "mopbucket_carpplush" + }, + { + "name": "mopbucket_magicarpplush" + }, + { + "name": "mopbucket_holocarpplush", + "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 + ] + ] + }, + { + "name": "mopbucket_cube" + }, + { + "name": "equipped-BELT", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner-fill-1.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner-fill-1.png new file mode 100644 index 0000000000000000000000000000000000000000..47c609e22648c6b5422abe6a1e7a661e8b83caa8 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}W}YsNArY-_ z&l&O_P+(wj$O-54-Einon7OajhC15=2a1+I@M2_W;EkX3eD2QQCqkqB>KP(FG22)3 VM)g*S-3FS#;OXk;vd$@?2>|kuCX4_8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner-fill-2.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner-fill-2.png new file mode 100644 index 0000000000000000000000000000000000000000..afd60f2575fa9134ef0e2a00da25882174e92a14 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}p`I>|ArY-_ z&n@I_FpzM0sLgC(e>kB)rG=%H;V6r$r~?00)_+`QezWbU76K}7>Ux_LJ?Yt>3JG=h zvR%_U?3RWoFFM5dwPt^O?(0RbZKA9g82 AS^xk5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner-fill-3.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner-fill-3.png new file mode 100644 index 0000000000000000000000000000000000000000..2aaacd763cd972994e99f8baada1161708842f09 GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}v7RoDArY-_ zFKpy&a1e007|Ffkm+rA6J^}|%I4Emd7+xsoUDp`>VbcGE$A5cR7#IRxmVGY@uG^E@ zpz`%_gy=B8}p*X z<(xkdOpjxT>at?)%^ hY??Q_pkVEDMvg1~lAkRS#DMlQc)I$ztaD0e0ssnFJYoO< literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner.png new file mode 100644 index 0000000000000000000000000000000000000000..67ba7ac9a9e3f92d7b697d9fca3cace577cab28d GIT binary patch literal 395 zcmV;60d)R}P)Px$MM*?KR9J=Wl|M+sKop0+gf5DptJ2L$odprZG=n0FP937+AdccvT12I@iy}qA z!77N*p|gk`Y6P7eoTMls2!ewMP89+*E=?Bc@Gg-q_bmr^@8131KMph+O`9 z-|8&6R5buB%MuAlh^&F`t^_kf-k<%0L)-7^1ZhwrW7l=L+OfkdObq-0P^p=uGHMwx zMb;2Ll*&|%O3h@nU+N*EfVWfI4@AU)xCeq}19%wQX72S1ukVwTq5yFQ0(Nh1{l#pS zk<~4dv-9MOCoL!BUj)R3xCAt#U)bEB0Sxwb0K)*}i^slnvXnCrC~q{^qv>%aKe3eH z(wSoA{JK2?%8tWi=|cH_Bmrf|Azdm(aiP|P00qlp&2@Qv|K{cXj*sUjB|qZ7ARt%R p59i*i*8$jD&l%FcK%>!UG`~c6R7P`NSRMcX002ovPDHLkV1hk*s`>x` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-1.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-1.png new file mode 100644 index 0000000000000000000000000000000000000000..bf01da5d08ac10eaddf6b894b899ec1ea1c9c64b GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}E}kxqArY-_ z&nWUW7>KZ3e7J$b@6baI&&gH+cNi{*)QO1yShnc%l^L-UR6Hk{+?XV}wd2R`eX=M^FnIs~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-2.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-2.png new file mode 100644 index 0000000000000000000000000000000000000000..1aa3bf67e4687d334092e687aca35ef9a5727497 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}fu1goArY-_ z&n@I_FpzM0$bEYQZ{O8||4I@u!cI+WS2ahpoRy{r@w9PDA2mP xGQ|J$qwQLnY5%fdg}SbrtA;e^KL$sd#_ZoSqrF^!PC{xWt~$(69A96HkSYZ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-3.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-3.png new file mode 100644 index 0000000000000000000000000000000000000000..94130e29e3665bf45c916e8f5c0351d75949630f GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}rJgR1ArY;~ z2@vfWgz%&t;ucLK6U{1x8H( literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-4.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-4.png new file mode 100644 index 0000000000000000000000000000000000000000..2926bd17751b296a02789bb226db96f44687f505 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R})t)YnArY-_ zFD>M4aNuFRP|tE)C8s%=iDmKzrgvfoA9yshu#{`4S+F`z5Gm#S*5&vo{Z-xVEewJ{ zpedsyv}$V@Tm7jA{+YYuk~U9T@4V;j?Cx`(re}?leQuP^Ron5JjlrZe)ui%bT{RQ$ nR|dzpDGUv%a-sGPE?*dSopp)PQc7S1I)lN})z4*}Q$iB}fviD) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-5.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large-fill-5.png new file mode 100644 index 0000000000000000000000000000000000000000..5afbd181bc29a11bbf73ae1a4f3db56702f5e679 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}J)SO(ArY-_ zFKy&xaujKKSby}4*PCN!xOj99a_Kl8OprD-wEnf&lWkk+RQ_% zcvoZ4s$*}i3k9!F51;#3_|I1s!G}yoi?*^osN3E4uVLm*@v?boN2hI8oCz@qLn2y} z6C_v{Cy4Yk1sZU~R2JW9hn@PK-s$P-F}NRRSKRjSTE9IH2)v!SvZv)s5bJ@O z{yA(XeAyQVI*3VZ33T97xXoy=KvLk`0U#)N_$G7Hr2`sZXD~4AWXL`F`l21evJA|#7$5S0fcUw2YTCSDXSgvk91F}nz5mVo RpFnpqc)I$ztaD0e0swv+SrPyM literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/cleaner_large.png new file mode 100644 index 0000000000000000000000000000000000000000..e1bb12f4c8537644830074a50538bc13c53e1772 GIT binary patch literal 384 zcmV-`0e}99P)Px$I!Q!9R9J;$U>F6XU=$26U?fHHk|d`8xa4By{UgaN7+@h)13wQ7gOBzv4Dk=& znEnfJk?s(ZU0v^s2n9FIe+&!^3=F%jGch!7CNBh-NYwzdsB!Z@#!Jtb8LX7au@(VH zj)EmgO#jJ^Z>l%|+48-5?F{#?UuU=^#m2zEFq13?kQ@at;MdanKc=*lfm7dxLB=nN z!7e5aXAZ#!NDcv*pQndHizU8*i=)^$iTqxU(C=3V(F=K3=E$j<-z;YhZ*P>1>YGMPI59ZoPTwPf!#fl zfq{X6;hu^b1O1|a6H{z73I;q1$N^+K00!W`KYyC6G(c9Rf?VwW{P6=t?&O+PRI8{) e!6+C7bO8XYp@H>9y~u?C0000gTe~DWM4f0Y@%y literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-left-fill-4.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-left-fill-4.png new file mode 100644 index 0000000000000000000000000000000000000000..7a92e1dc66d293497bb5bcec7477dba829cd2e5b GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|Vm)0PLn`LH zy|t0I!GOp0V8`F~MQI#m3l^1>9oW{gbT{KXrR_hn89`>;k`=6fw{_ROdB@92`(Hiy z86sZ2`zbq61_TzIT=Cao>zllUKi@0L%nkklg+82Rt2iwE%GkTo8l=M0)z4*}Q$iB} D_vJgt literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..80ab8b8b22cdb0ba36c64af53b2882131b7a3ca0 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`NC)_YxB}^V zU#9;v8FFUKp85ZO>zn@!XZ|}oJBO8)b6=ME50vIC3GxeO_zwlRaj$Be<%9Z*S|KscVn6&Q literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right-fill-1.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right-fill-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c02fe3484fe9d8e40c815556491d406f78aa0d41 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|tUO&DLn`LH zy=lnHV8Fw&@d5v(O&*LXFT?hxDDU{Y3aEmC;l{5sfAT6OUg8Av7#KA7R4_0U#a{B| U3Up^Ny8sgPboFyt=akR{0A$M~+5i9m literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right-fill-2.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right-fill-2.png new file mode 100644 index 0000000000000000000000000000000000000000..db0064cbcc1dcfc5e36abd36443096f218b8db7b GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|oIG6|Ln`LH zy>*b6K|p}PF>s$(X`z(BL&c_jce^yfeINOoc()c*Dl4REynKhajC1G zmoJ|CkQpQa1O=;N&6sWH?>k<8ljq9~cA&rtwyi4#BH!%Y6akX=boFyt=akR{06us& Ay#N3J literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right-fill-4.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right-fill-4.png new file mode 100644 index 0000000000000000000000000000000000000000..fe05a665de9aa70036f6036ac66c6bf4c37183f6 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|QaxQ9Ln`LH zy|t0IK|!D`@XOTJOE&AV`g; LtDnm{r-UW|TtGab literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..543ae1f94c8aa34e4a464e1b9898d164accfa356 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`NC)_Yxc>kD zzuuSW|4fFQ8M9~p|KIxNKf{^-&d$zZrRC3On>+$4<17jC3uXYS0|RrW*;jyq>7Fi* zArY-_r#W&l7;-RY=N|mOe}{a4$An9_-J@$&D5=yoQ_h*e!E`dbe#6J zRk}+j=fl+d<~ldRSp*rs?OY?^)FFSkr)A6eo))KzZ-SK--wG=)T#(yP|3|e^Zhys5 ZMwV3!m-X_TT7XtEc)I$ztaD0e0sy%{T`2$n literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/meta.json b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/meta.json new file mode 100644 index 0000000000..57e906415f --- /dev/null +++ b/Resources/Textures/Objects/Specific/Janitorial/spray_bottle.rsi/meta.json @@ -0,0 +1,93 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "cleaner, cleaner_large and in-hand sprites are from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428 and modified by chaisftw (GitHub), Fill levels created by chaisftw (GitHub) by modifying cleaner, cleaner_large and in-hand sprites", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "cleaner" + }, + { + "name": "cleaner-fill-1" + }, + { + "name": "cleaner-fill-2" + }, + { + "name": "cleaner-fill-3" + }, + { + "name": "cleaner-fill-4" + }, + { + "name": "cleaner-fill-5" + }, + { + "name": "cleaner_large" + }, + { + "name": "cleaner_large-fill-1" + }, + { + "name": "cleaner_large-fill-2" + }, + { + "name": "cleaner_large-fill-3" + }, + { + "name": "cleaner_large-fill-4" + }, + { + "name": "cleaner_large-fill-5" + }, + { + "name": "cleaner_large-fill-6" + }, + { + "name": "cleaner_large-fill-7" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-fill-1", + "directions": 4 + }, + { + "name": "inhand-left-fill-2", + "directions": 4 + }, + { + "name": "inhand-left-fill-3", + "directions": 4 + }, + { + "name": "inhand-left-fill-4", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-fill-1", + "directions": 4 + }, + { + "name": "inhand-right-fill-2", + "directions": 4 + }, + { + "name": "inhand-right-fill-3", + "directions": 4 + }, + { + "name": "inhand-right-fill-4", + "directions": 4 + } + ] +} -- 2.52.0