From b947151d9adf5eb8bc90b8d3d587fc26a5841c8c Mon Sep 17 00:00:00 2001 From: Kara Date: Sun, 7 Aug 2022 01:50:52 -0700 Subject: [PATCH] Bucket solution fills + ECS SolutionContainerVisualizer (#10289) --- .../SolutionContainerVisualizer.cs | 61 ------------ .../SolutionContainerVisualsComponent.cs | 28 ++++++ .../SolutionContainerVisualsSystem.cs | 47 +++++++++ Content.Server/Entry/IgnoredComponents.cs | 1 + .../drinks_solutioncontainerexample.yml | 18 ++-- .../Consumable/Food/Containers/condiments.yml | 91 ++++++++---------- .../Objects/Specific/Janitorial/janitor.yml | 20 ++-- .../Objects/Specific/Medical/hypospray.yml | 18 ++-- .../Objects/Specific/chemistry-bottles.yml | 28 +++--- .../Entities/Objects/Specific/chemistry.yml | 36 +++---- .../Entities/Objects/Tools/bucket.yml | 12 ++- .../Reagents/Consumable/Drink/drinks.yml | 2 +- .../Janitorial/janitorial.rsi/meta.json | 8 +- .../janitorial.rsi/mopbucket_water-1.png | Bin 0 -> 244 bytes .../janitorial.rsi/mopbucket_water-2.png | Bin 0 -> 251 bytes .../janitorial.rsi/mopbucket_water-3.png | Bin 0 -> 279 bytes .../janitorial.rsi/mopbucket_water.png | Bin 140 -> 0 bytes .../janitorial_cart.rsi/cart_water-1.png | Bin 0 -> 344 bytes .../janitorial_cart.rsi/cart_water-2.png | Bin 0 -> 451 bytes .../janitorial_cart.rsi/cart_water-3.png | Bin 0 -> 517 bytes .../janitorial_cart.rsi/cart_water_1.png | Bin 682 -> 0 bytes .../janitorial_cart.rsi/cart_water_2.png | Bin 495 -> 0 bytes .../janitorial_cart.rsi/cart_water_3.png | Bin 803 -> 0 bytes .../Janitorial/janitorial_cart.rsi/meta.json | 6 +- .../Objects/Tools/bucket.rsi/fill-1.png | Bin 0 -> 226 bytes .../Objects/Tools/bucket.rsi/fill-2.png | Bin 0 -> 217 bytes .../Objects/Tools/bucket.rsi/fill-3.png | Bin 0 -> 184 bytes .../Objects/Tools/bucket.rsi/meta.json | 9 ++ 28 files changed, 200 insertions(+), 185 deletions(-) delete mode 100644 Content.Client/Chemistry/Visualizers/SolutionContainerVisualizer.cs create mode 100644 Content.Client/Chemistry/Visualizers/SolutionContainerVisualsComponent.cs create mode 100644 Content.Client/Chemistry/Visualizers/SolutionContainerVisualsSystem.cs create mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water-1.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water-2.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water-3.png delete mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water-1.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water-2.png create mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water-3.png delete mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water_1.png delete mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water_2.png delete mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water_3.png create mode 100644 Resources/Textures/Objects/Tools/bucket.rsi/fill-1.png create mode 100644 Resources/Textures/Objects/Tools/bucket.rsi/fill-2.png create mode 100644 Resources/Textures/Objects/Tools/bucket.rsi/fill-3.png diff --git a/Content.Client/Chemistry/Visualizers/SolutionContainerVisualizer.cs b/Content.Client/Chemistry/Visualizers/SolutionContainerVisualizer.cs deleted file mode 100644 index f97e1b479c..0000000000 --- a/Content.Client/Chemistry/Visualizers/SolutionContainerVisualizer.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using Content.Shared.Chemistry; -using JetBrains.Annotations; -using Robust.Client.GameObjects; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Maths; -using Robust.Shared.Serialization.Manager.Attributes; - -namespace Content.Client.Chemistry.Visualizers -{ - [UsedImplicitly] - public sealed class SolutionContainerVisualizer : AppearanceVisualizer - { - [DataField("maxFillLevels")] private int _maxFillLevels = 0; - [DataField("fillBaseName")] private string? _fillBaseName = null; - [DataField("layer")] private SolutionContainerLayers _layer = SolutionContainerLayers.Fill; - [DataField("changeColor")] private bool _changeColor = true; - [DataField("emptySpriteName")] private string? _emptySpriteName = null; - [DataField("emptySpriteColor")] private Color _emptySpriteColor = Color.White; - - public override void OnChangeData(AppearanceComponent component) - { - base.OnChangeData(component); - - if (!component.TryGetData(SolutionContainerVisuals.VisualState, - out SolutionContainerVisualState state)) return; - - var entities = IoCManager.Resolve(); - if (!entities.TryGetComponent(component.Owner, out ISpriteComponent? sprite)) return; - if (!sprite.LayerMapTryGet(_layer, out var fillLayer)) return; - - var fillPercent = state.FilledVolumePercent; - var closestFillSprite = (int) Math.Round(fillPercent * _maxFillLevels); - - if (closestFillSprite > 0) - { - if (_fillBaseName == null) return; - - sprite.LayerSetVisible(fillLayer, true); - - var stateName = _fillBaseName + closestFillSprite; - sprite.LayerSetState(fillLayer, stateName); - - if (_changeColor) - sprite.LayerSetColor(fillLayer, state.Color); - } - else - { - if (_emptySpriteName == null) - sprite.LayerSetVisible(fillLayer, false); - else - { - sprite.LayerSetState(fillLayer, _emptySpriteName); - if (_changeColor) - sprite.LayerSetColor(fillLayer, _emptySpriteColor); - } - } - } - } -} diff --git a/Content.Client/Chemistry/Visualizers/SolutionContainerVisualsComponent.cs b/Content.Client/Chemistry/Visualizers/SolutionContainerVisualsComponent.cs new file mode 100644 index 0000000000..d0301e3dea --- /dev/null +++ b/Content.Client/Chemistry/Visualizers/SolutionContainerVisualsComponent.cs @@ -0,0 +1,28 @@ +using System; +using Content.Shared.Chemistry; +using JetBrains.Annotations; +using Robust.Client.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Maths; +using Robust.Shared.Serialization.Manager.Attributes; + +namespace Content.Client.Chemistry.Visualizers +{ + [RegisterComponent] + public sealed class SolutionContainerVisualsComponent : Component + { + [DataField("maxFillLevels")] + public int MaxFillLevels = 0; + [DataField("fillBaseName")] + public string? FillBaseName = null; + [DataField("layer")] + public SolutionContainerLayers Layer = SolutionContainerLayers.Fill; + [DataField("changeColor")] + public bool ChangeColor = true; + [DataField("emptySpriteName")] + public string? EmptySpriteName = null; + [DataField("emptySpriteColor")] + public Color EmptySpriteColor = Color.White; + } +} diff --git a/Content.Client/Chemistry/Visualizers/SolutionContainerVisualsSystem.cs b/Content.Client/Chemistry/Visualizers/SolutionContainerVisualsSystem.cs new file mode 100644 index 0000000000..0e1bd57be1 --- /dev/null +++ b/Content.Client/Chemistry/Visualizers/SolutionContainerVisualsSystem.cs @@ -0,0 +1,47 @@ +using Content.Shared.Chemistry; +using Robust.Client.GameObjects; + +namespace Content.Client.Chemistry.Visualizers; + +public sealed class SolutionContainerVisualsSystem : VisualizerSystem +{ + protected override void OnAppearanceChange(EntityUid uid, SolutionContainerVisualsComponent component, ref AppearanceChangeEvent args) + { + if (!args.Component.TryGetData(SolutionContainerVisuals.VisualState, out SolutionContainerVisualState state)) + return; + + if (args.Sprite == null) + return; + + if (!args.Sprite.LayerMapTryGet(component.Layer, out var fillLayer)) + return; + + var fillPercent = state.FilledVolumePercent; + var closestFillSprite = (int) Math.Round(fillPercent * component.MaxFillLevels); + + if (closestFillSprite > 0) + { + if (component.FillBaseName == null) + return; + + args.Sprite.LayerSetVisible(fillLayer, true); + + var stateName = component.FillBaseName + closestFillSprite; + args.Sprite.LayerSetState(fillLayer, stateName); + + if (component.ChangeColor) + args.Sprite.LayerSetColor(fillLayer, state.Color); + } + else + { + if (component.EmptySpriteName == null) + args.Sprite.LayerSetVisible(fillLayer, false); + else + { + args.Sprite.LayerSetState(fillLayer, component.EmptySpriteName); + if (component.ChangeColor) + args.Sprite.LayerSetColor(fillLayer, component.EmptySpriteColor); + } + } + } +} diff --git a/Content.Server/Entry/IgnoredComponents.cs b/Content.Server/Entry/IgnoredComponents.cs index 049f538fe2..e9238f295c 100644 --- a/Content.Server/Entry/IgnoredComponents.cs +++ b/Content.Server/Entry/IgnoredComponents.cs @@ -26,6 +26,7 @@ namespace Content.Server.Entry "HandheldGPS", "SpentAmmoVisuals", "MagazineVisuals", + "SolutionContainerVisuals", "PowerCellVisuals", "ToggleableLightVisuals", "CableVisualizer", diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_solutioncontainerexample.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_solutioncontainerexample.yml index edc46d5860..3ed87fcf4d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_solutioncontainerexample.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_solutioncontainerexample.yml @@ -25,10 +25,9 @@ # REMEMBER IF YOU'RE SPAWNING WITH LIQUID ALREADY IN IT YOU WANT THIS TRUE visible: true - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 6 - fillBaseName: fill- + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: fill- # Without (For food, non cut-out stuff) @@ -53,9 +52,8 @@ map: ["enum.SolutionContainerLayers.Fill"] visible: true - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 6 - fillBaseName: icon- - changeColor: false - emptySpriteName: icon + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: icon- + changeColor: false + emptySpriteName: icon diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/condiments.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/condiments.yml index 33ec7899bc..100c6a0a2c 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/condiments.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/condiments.yml @@ -58,10 +58,9 @@ - type: Icon state: packet-astrotame - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 2 - fillBaseName: packet-trans- + - type: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: packet-trans- - type: entity parent: FoodCondimentPacket @@ -85,10 +84,9 @@ - type: Icon state: packet-bbq - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 2 - fillBaseName: packet-trans- + - type: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: packet-trans- - type: entity parent: FoodCondimentPacket @@ -112,10 +110,9 @@ - type: Icon state: packet-cornoil - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 2 - fillBaseName: packet-trans- + - type: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: packet-trans- - type: entity parent: FoodCondimentPacket @@ -139,10 +136,9 @@ - type: Icon state: packet-frostoil - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 2 - fillBaseName: packet-trans- + - type: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: packet-trans- - type: entity parent: FoodCondimentPacket @@ -166,10 +162,9 @@ - type: Icon state: packet-greygoo - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 2 - fillBaseName: packet-solid- + - type: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: packet-solid- - type: entity parent: FoodCondimentPacket @@ -193,10 +188,9 @@ - type: Icon state: packet-hotsauce - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 2 - fillBaseName: packet-trans- + - type: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: packet-trans- - type: entity parent: FoodCondimentPacket @@ -219,10 +213,9 @@ - type: Icon state: packet-ketchup - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 2 - fillBaseName: packet-solid- + - type: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: packet-solid- - type: entity parent: FoodCondimentPacket @@ -245,10 +238,9 @@ - type: Icon state: packet-pepper - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 2 - fillBaseName: packet-solid- + - type: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: packet-solid- - type: entity parent: FoodCondimentPacket @@ -273,10 +265,9 @@ - type: Icon state: packet-salt - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 2 - fillBaseName: packet-solid- + - type: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: packet-solid- - type: entity parent: FoodCondimentPacket @@ -299,10 +290,9 @@ - type: Icon state: packet-soysauce - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 2 - fillBaseName: packet-solid- + - type: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: packet-solid- - type: entity parent: FoodCondimentPacket @@ -325,10 +315,9 @@ - type: Icon state: packet-sugar - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 2 - fillBaseName: packet-solid- + - type: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: packet-solid- # Bottles @@ -355,10 +344,9 @@ sprite: Objects/Consumable/Food/condiments.rsi state: bottle-empty - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 6 - fillBaseName: bottle-alpha- + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: bottle-alpha- - type: TrashOnEmpty solution: food @@ -501,10 +489,9 @@ sprite: Objects/Consumable/Food/condiments.rsi state: bottle-s-empty - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 3 - fillBaseName: bottle-s-alpha- + - type: SolutionContainerVisuals + maxFillLevels: 3 + fillBaseName: bottle-s-alpha- - type: TrashOnEmpty solution: food diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml index 5c079f682a..7971baa74d 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml @@ -32,7 +32,9 @@ sprite: Objects/Specific/Janitorial/janitorial.rsi layers: - state: mopbucket - - state: mopbucket_water + - state: mopbucket_water-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false drawdepth: Objects - type: InteractionOutline - type: SolutionContainerManager @@ -47,6 +49,8 @@ solution: bucket - type: RefillableSolution solution: bucket + - type: ExaminableSolution + solution: bucket - type: Tag tags: - Wringer @@ -67,6 +71,10 @@ - type: Pullable - type: Drink isOpen: true + - type: Appearance + - type: SolutionContainerVisuals + maxFillLevels: 3 + fillBaseName: mopbucket_water- - type: entity name: wet floor sign @@ -96,8 +104,9 @@ sprite: Objects/Specific/Janitorial/janitorial_cart.rsi layers: - state: cart - - state: cart_water_1 + - state: cart_water-1 map: ["enum.SolutionContainerLayers.Fill"] + visible: false - type: Rotatable - type: InteractionOutline - type: Storage @@ -202,10 +211,9 @@ visuals: - type: MappedItemVisualizer sprite: Objects/Specific/Janitorial/janitorial_cart.rsi - - type: SolutionContainerVisualizer - maxFillLevels: 3 - fillBaseName: cart_water_ - changeColor: false + - type: SolutionContainerVisuals + maxFillLevels: 3 + fillBaseName: cart_water- - type: UserInterface interfaces: - key: enum.StorageUiKey.Key diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml index 691b01edd2..212a0d981e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml @@ -67,11 +67,10 @@ solutionName: pen transferAmount: 15 - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 1 - changeColor: false - emptySpriteName: medipen_empty + - type: SolutionContainerVisuals + maxFillLevels: 1 + changeColor: false + emptySpriteName: medipen_empty - type: Tag tags: - Trash @@ -126,11 +125,10 @@ - state: hypovolemic map: [ "enum.SolutionContainerLayers.Fill" ] - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 1 - changeColor: false - emptySpriteName: hypovolemic_empty + - type: SolutionContainerVisuals + maxFillLevels: 1 + changeColor: false + emptySpriteName: hypovolemic_empty - type: Hypospray solutionName: pen transferAmount: 30 diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml index 7933ab2d8c..4cb5d83493 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml @@ -56,10 +56,9 @@ map: ["enum.SolutionContainerLayers.Fill"] visible: false - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 6 - fillBaseName: bottle-1- + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: bottle-1- - type: entity name: bottle @@ -74,10 +73,9 @@ map: ["enum.SolutionContainerLayers.Fill"] visible: false - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 6 - fillBaseName: bottle-2- + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: bottle-2- - type: entity name: bottle @@ -92,10 +90,9 @@ map: ["enum.SolutionContainerLayers.Fill"] visible: false - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 6 - fillBaseName: bottle-3- + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: bottle-3- - type: entity name: bottle @@ -110,10 +107,9 @@ map: ["enum.SolutionContainerLayers.Fill"] visible: false - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 6 - fillBaseName: bottle-4- + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: bottle-4- - type: entity id: EpinephrineChemistryBottle diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml index 5f9a07e2a1..06b5589000 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml @@ -41,10 +41,9 @@ - type: Drink isOpen: true - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 6 - fillBaseName: beaker + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: beaker - type: Damageable damageContainer: Inorganic damageModifierSet: Glass @@ -111,10 +110,9 @@ beaker: maxVol: 100 - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 6 - fillBaseName: beakerlarge + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: beakerlarge - type: entity name: cryostasis beaker @@ -204,10 +202,9 @@ - type: Item sprite: Objects/Specific/Chemistry/dropper.rsi - type: Appearance - visuals: - - type: SolutionContainerVisualizer - maxFillLevels: 1 - fillBaseName: dropper + - type: SolutionContainerVisuals + maxFillLevels: 1 + fillBaseName: dropper - type: entity name: syringe @@ -238,18 +235,9 @@ - type: TrashOnEmpty solution: injector - type: Appearance - visuals: - # this visualizer used for reagent inside - - type: SolutionContainerVisualizer - maxFillLevels: 4 - fillBaseName: syringe - # this one for syrigine itself (plunger) - - type: SolutionContainerVisualizer - maxFillLevels: 4 - fillBaseName: syringe_base - emptySpriteName: syringe_base0 - layer: Base - changeColor: false + - type: SolutionContainerVisuals + maxFillLevels: 4 + fillBaseName: syringe - type: entity name: pill diff --git a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml index c98529e461..81c8d06b05 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml @@ -10,7 +10,11 @@ - type: Sprite netsync: false sprite: Objects/Tools/bucket.rsi - state: icon + layers: + - state: icon + - map: ["enum.SolutionContainerLayers.Fill"] + state: fill-1 + visible: false - type: Item size: 100 - type: Clothing @@ -38,3 +42,9 @@ solution: bucket - type: DrainableSolution solution: bucket + - type: Appearance + - type: SolutionContainerVisuals + maxFillLevels: 3 + fillBaseName: fill- + - type: ExaminableSolution + solution: bucket diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml index 9415d67a75..78b5d5d9be 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml @@ -240,7 +240,7 @@ parent: BaseDrink desc: reagent-desc-water physicalDesc: reagent-physical-desc-translucent - color: "#c0e0ff20" + color: "#75b1f0" boilingPoint: 100.0 meltingPoint: 0.0 metabolisms: diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/meta.json b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/meta.json index a52e53539a..138f9c25c7 100644 --- a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/meta.json @@ -14,7 +14,13 @@ "name": "mopbucket" }, { - "name": "mopbucket_water" + "name": "mopbucket_water-1" + }, + { + "name": "mopbucket_water-2" + }, + { + "name": "mopbucket_water-3" }, { "name": "inhand-left", diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water-1.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9cef7cdf97fc5d57d63d1f4416533ad556b0ea0d GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSK$uZf!>a)(*y-uw7!u+BcA6nygMt7HzcANN7X3vJmfEz> zI&vw@L{aejl{o8JcT+aEFy}dysXe|%d-ebRV>DUQ!P}qDup_v4nf0fD=X17hd-UehonK<^ kMoazopr00d%DKL7v# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water-2.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water-2.png new file mode 100644 index 0000000000000000000000000000000000000000..aa307200d6eaa8d88e041c45abaeb5a71e556f7d GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSK$uZf!>a)(IKk7!F(ktM?KMZP1_c4u3mXd_uM@6N5}$YF z@s4joLY!B9G`0jT>Ye>RaYNe0`U`GP=PaHX`N~oks1*zjtpDBcz3y_9yv_2h(}KLj z*QctapR43meDk$-#(4(4TCN_$5HCf&`fu+;cnljP7QCvOaen^-(No7+6_)o*+4fu_ jS^PTpx)g|EK5PPa1&^7l&X?SE5+vg3>gTe~DWM4fdxcfT literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water-3.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water-3.png new file mode 100644 index 0000000000000000000000000000000000000000..5d98ef2f04f076049565c644ef597c71a48ee8ec GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSK$uZf!>a)(xW?1PF(ktM?KDHa!wNjEbHj9EnuHAte8u_> zKU$i7-OEEXFj!h}rMJ|S)~EF+Z&W<6-*e#6-sLlQeYNogY6k-!_8os@+6CTSyR|R- zR!QMGLF3?_kC%6;?=oRDyx(KEddg~veX9Fa<_Yl&UXO}=rO4~=;A{GN?a>C71z+oz zZWm|JS{mS$`SR_4sd)$TRCtTJq1QPOe L^>bP0l+XkKKdNCq literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_water.png deleted file mode 100644 index 9fae1353e1e82bb01d0f871a013dbc9265dba940..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv{s5m4*8>L*2+lgfu>Gq4l@A;% z&(_@F+60thED7=pW^j0RBMr#W_H=O!(U_Q=Ai?UOuw+R})0y-Vqo5#{N8GD4G&PmE jEx3Rd?YeNhkeQR=jvdoWDP{F3Ky3`3u6{1-oD!MNn{1`IRkt`T$e0avT4&MAWwIjw*io1E(!7r{{Nrh`YB$ZS_aMnkH}&M25w;x zW@MN(M*=8#($mE;B*Xdbt&3a@3Oub3U;ef)xh)eotxKiy^ZeCCQ{^QNYMq=7as~s# zJcfx=l0KVGTC&=&xk_{zNT{Cajo@;BO<$gf2qq984k8#X^u4~98~U+m^FEdZw(iJA_bW-FTKK2ddbs)IGbK)n1PFXzf+ER`KAOTNTKbLh* G2~7YZ?rqTk literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water-2.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water-2.png new file mode 100644 index 0000000000000000000000000000000000000000..6c5a6017988a72b099e8afd49f22a4e5d115f2a1 GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^4M3d0!3-oHE$ONTQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`IRkt`T$e0avT4&MAWwIjw*io1E(!7r{{Nrh`YB$ZS_aMnkH}&M2EM}} z%y>M1MGDYR6Hgb%kPPRyv)=MG8SpT$zyE*X+i4efO-Vn4k9z+SUT>2-IwK_a^;v}m z1}2Ui)~M)dJA5VZ@2RIl!hsi32Q*`DRHI7R0Z7b6lO{#LN7%Vf|00_i3<6FXMQj zdraZsH?9>A>S~$}r2m=JAa+Um#h!$3Yu@U{i`GoJzW7mvqMFs21J{lm;YpiU%Ecn! zz`zJ29*DCnxodGTJ4CkUk*^<*(7eLRmq#!B_v5)8@@7+os=)87j^Se7#eMGsf{!R1 z-0dK|LES*{dW$<+Mb6Mw<&;$SvT&>0c literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water-3.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water-3.png new file mode 100644 index 0000000000000000000000000000000000000000..f7830945c8a1843db6138c17df37dc3ef0e6047c GIT binary patch literal 517 zcmeAS@N?(olHy`uVBq!ia0vp^4M3d0!3-oHE$ONTQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`IRkt`T$e0avT4&MAWwIjw*io1E(!7r{{Nrh`YB$ZS_aMnkH}&M25w;x zW@MN(M*?VQnWu|mNQU#2R^Vvyz4w1%KdX_i=*E{4mv`Qr`;TMM2hLpg_fg;4 zT^X1J8W?mPG;craUwCA0(Db!SUTbgNs8To2!RSZwii!J!tjl8>WeT=5dWAo`r^FR(D#Mdw-rUg%EE-3C&dyS7Fmv3c@QE=))j<9J?F9Pj5 zmEV1z{A2br1{KaT_u1z#BuwWuXUb%J$8vyevzSNSPQjfQGq@bCJ(gd=z+hj=pP@Z@ ze}CpI&OKA(1Ou0EnZ*2mx|Qn{*;lMqdJ@M<{emvMwrc6pi2^{3+DyBR*cr7SNpBNV@% z=H~w%l5l}3mY?m6&$44u?*%mPa4b1JQC9SXv+1Tgi~Lvx{L@Rc7G(Q!6+}j4{%`x% q=rzmkyR{OJbhRJMqc%Jn-q$C7iw%^}&npB*3xlVtpUXO@geCwFVZYG; literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water_1.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water_1.png deleted file mode 100644 index 371b6ccfb5b0da51670910d3abc5afcc79f879f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 682 zcmeAS@N?(olHy`uVBq!ia0vp^4M3d0!3HF+R#kZdDb50q$YKTtZeb8+WSBKa0w}1E z>=ES4z)+bp@bf>Ae#yX4YQVtoDuIE)Y6b&?c>bjLqizfgOa`7Vjv*Dd-rPMH z*z6$D_VDOJwtlmPy%~ZVIrrXd$yDl{p;qK0{JQaGhsP8FhlqLKr_7L?rjvhT{?vTU zq#nlCPu;`?7+4q>9T?!0_5vUMu0=2QPW;3jG`VEi1B>nr{BgkUFvI1htfm!;@yF+>+^q#N#G>35x<2qxG%NOSq za6iocwDR2X>K8Q|tbAFHN^ovaxYhRN*+*kR7N!OUmJ6(?uE4@eaol-L|DO6gvlO#M z`FHYO)VRGgH>h21&3tA;`}2aX*sG7jg4cfk{6QvZ^IHME?#h*nY!3?7sH}MYep#M% zr^U&ezGeloU(fE$NwB;wYc}ot8nz7{ElMAv7fw00#_X6@%sJ7lvwtOb7o2*g?TvKTpQ6U)tx{YakJ zzKvD>(*3&E*Z2LMF;DkS>y^6YIS+y|$`0&o*XiH*%3Wwd<%8QTck;U*ZGZSBig8x% wwzXA7R_~hTKSPd5gd-;0rxxz0nz6*>!42M@`=Xa>t=~A;e$$s~UrvyDp*OBr zoOt~C-gLt`|J1QgKq8px^ln$oMQ{V{``M5wzv7n!S|~Cb?<-K z9)DoIN~fXbQYBNFDW6r~`Gfmgxq)UetlKa{cJwTkppuo9tQ>zwf}; z7h=0YCbO+Pv%G)rnlq+9oVycVe4kMRvlvJx@SbDrn&IDnuzP8{&ar=mn@iu>FI}HF zEqY~rU;A;-{)?-3etx<3>A{T3IOmI7r?mxz{QR?h`o1g5>h|pt-}C0~KmT>J+}6{- zKAP9;X8w{jA>izn*V-j5yP={d!{|SI_>=bjUV!M izL@qejveBTn8(ZuUC+Ka##UGc67Y2Ob6Mw<&;$TP{Ovvf diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water_3.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/cart_water_3.png deleted file mode 100644 index 20298c57b086eccc2343b2c347909225a203499b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 803 zcmeAS@N?(olHy`uVBq!ia0vp^4M3d0!3HF+R#kZdDb50q$YKTtZeb8+WSBKa0w}1E z>=ES4z)+bp@bf>Ae#yX4YQVtoDuIE)Y6b&?c>bjLqizfgOe;NI978H@y}5g~ z@R5Un!^4T)5;Y}4E}J|Bj^4ZGxu!WnJ!#Sd520JlVbO;T0{%qUD%8GD2^Q&f^S52B zS$g?v?feZfaXgHS4h#YeEDT_(JJIyt#nQWH(wr55x+lJ{Ns_5xWAL_AK8}HNG>>(S6?Bd^jmZKSu-C-$31(us4xZzaunO!~kTo#2&Q9kUI%Qvt1A%2zZ-w(?@D<`S#KL7oO zXwg60MZX!(b*}!!a_!k6vD%;WHuBzHT%5_~vAg!wY3&W$vSgoce80~s`}@hQM{k9E zd_IeDofg0Srb=h0v(?@t9dRSzq;%D zft^2A|M7jgK44qk41=o)Th2LLWSV!nLI3%^Ew|4vPSV)Vbc{!!GG?pPsTDt-UX4#X zu$bq@Tr%v2jPD#Q2b55Q9;eK>s kgqm3s)>uh9bDxo6{}rQY|0h>$048t-Pgg&ebxsLQ02UTYzW@LL diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/meta.json b/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/meta.json index 5d2fd5515d..b0413325bd 100644 --- a/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/meta.json @@ -44,7 +44,7 @@ "directions": 4 }, { - "name": "cart_water_1", + "name": "cart_water-1", "directions": 4, "delays": [ [ @@ -70,7 +70,7 @@ ] }, { - "name": "cart_water_2", + "name": "cart_water-2", "directions": 4, "delays": [ [ @@ -96,7 +96,7 @@ ] }, { - "name": "cart_water_3", + "name": "cart_water-3", "directions": 4, "delays": [ [ diff --git a/Resources/Textures/Objects/Tools/bucket.rsi/fill-1.png b/Resources/Textures/Objects/Tools/bucket.rsi/fill-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f5067a9a9bbfff1beeb15cab8268079974eb9034 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=Dh+L6~vJ#O${~!E#R*$B+p3w^JOs8VqG}+y6Bs;Q{an^LB{Ts5xaCXG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/bucket.rsi/fill-2.png b/Resources/Textures/Objects/Tools/bucket.rsi/fill-2.png new file mode 100644 index 0000000000000000000000000000000000000000..1be4b4d75db2617b448b3e49c479d8c267b09454 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=Dh+L6~vJ#O${~!8}hF$B+p3x6=-C9#G(6NDj|fD0%#%>~Y;o zVxL~Pd;a=((VByesmi5e+O=70Qa+bTaws$~FfH_q$o{J1mbR;ibw10Poc)h0j=o%K zvhwch;T#OqTHvevk&Bt^@a3UG%(V6?V+ozD@^dGlQqApUXO@ GgeCxU_ey*K literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/bucket.rsi/fill-3.png b/Resources/Textures/Objects/Tools/bucket.rsi/fill-3.png new file mode 100644 index 0000000000000000000000000000000000000000..6c597a01e6d4ef1512d872c34ec381cd69546a9d GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCils0(?STSFBh8WX@P{{v(iLDhcun{?G7qyMY&w$64SJScd{3~r(h2Ob0;U|4{s@FpB^H literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/bucket.rsi/meta.json b/Resources/Textures/Objects/Tools/bucket.rsi/meta.json index a8847188b7..0f89430388 100644 --- a/Resources/Textures/Objects/Tools/bucket.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/bucket.rsi/meta.json @@ -10,6 +10,15 @@ { "name": "icon" }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, { "name": "equipped-HELMET", "directions": 4