From 0169cb55d8337341d24992090c41245db17c8ee3 Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:48:08 +0300 Subject: [PATCH] Alchemy instruments (#122) * add beer barrel * add vet * add storage to vat * make bucket viable! * bandage vat item fix * Update vat.yml * add small vial * tiny vial * Update SharedStorageSystem.cs * Create biological.yml * spilable and bonfire climbing --- .../Chemistry/UI/InjectorStatusControl.cs | 2 +- .../Chemistry/EntitySystems/InjectorSystem.cs | 10 +- .../Chemistry/Components/InjectorComponent.cs | 3 +- .../EntitySystems/SharedInjectorSystem.cs | 2 +- .../Objects/Specific/Alchemy/vials.yml | 137 ++++++++++++++++++ .../_CP14/Entities/Objects/Tools/bucket.yml | 61 ++++++++ .../Entities/Structures/Furniture/barrel.yml | 28 +++- .../Entities/Structures/Furniture/bonfire.yml | 11 +- .../Structures/Specific/Alchemy/vat.yml | 88 +++++++++++ .../Prototypes/_CP14/Reagents/biological.yml | 0 .../Specific/Alchemy/vial_small.rsi/liq-1.png | Bin 0 -> 121 bytes .../Specific/Alchemy/vial_small.rsi/liq-2.png | Bin 0 -> 144 bytes .../Specific/Alchemy/vial_small.rsi/liq-3.png | Bin 0 -> 173 bytes .../Specific/Alchemy/vial_small.rsi/liq-4.png | Bin 0 -> 191 bytes .../Specific/Alchemy/vial_small.rsi/liq-5.png | Bin 0 -> 199 bytes .../Specific/Alchemy/vial_small.rsi/meta.json | 29 ++++ .../Specific/Alchemy/vial_small.rsi/vial.png | Bin 0 -> 356 bytes .../Specific/Alchemy/vial_tiny.rsi/liq-1.png | Bin 0 -> 118 bytes .../Specific/Alchemy/vial_tiny.rsi/liq-2.png | Bin 0 -> 135 bytes .../Specific/Alchemy/vial_tiny.rsi/liq-3.png | Bin 0 -> 140 bytes .../Specific/Alchemy/vial_tiny.rsi/liq-4.png | Bin 0 -> 154 bytes .../Specific/Alchemy/vial_tiny.rsi/liq-5.png | Bin 0 -> 156 bytes .../Specific/Alchemy/vial_tiny.rsi/meta.json | 29 ++++ .../Specific/Alchemy/vial_tiny.rsi/vial.png | Bin 0 -> 267 bytes .../Specific/Alchemy/alchemy_vat.rsi/full.png | Bin 0 -> 752 bytes .../Specific/Alchemy/alchemy_vat.rsi/liq0.png | Bin 0 -> 96 bytes .../Specific/Alchemy/alchemy_vat.rsi/liq1.png | Bin 0 -> 166 bytes .../Specific/Alchemy/alchemy_vat.rsi/liq2.png | Bin 0 -> 230 bytes .../Specific/Alchemy/alchemy_vat.rsi/liq3.png | Bin 0 -> 272 bytes .../Specific/Alchemy/alchemy_vat.rsi/liq4.png | Bin 0 -> 263 bytes .../Specific/Alchemy/alchemy_vat.rsi/liq5.png | Bin 0 -> 264 bytes .../Specific/Alchemy/alchemy_vat.rsi/liq6.png | Bin 0 -> 273 bytes .../Alchemy/alchemy_vat.rsi/meta.json | 35 +++++ 33 files changed, 414 insertions(+), 21 deletions(-) create mode 100644 Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/vials.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Objects/Tools/bucket.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/vat.yml create mode 100644 Resources/Prototypes/_CP14/Reagents/biological.yml create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-1.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-2.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-3.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-4.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-5.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/vial.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/liq-1.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/liq-2.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/liq-3.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/liq-4.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/liq-5.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/vial.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/full.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq0.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq1.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq2.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq3.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq4.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq5.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq6.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/meta.json diff --git a/Content.Client/Chemistry/UI/InjectorStatusControl.cs b/Content.Client/Chemistry/UI/InjectorStatusControl.cs index ba1f97cd1e..f9b0d90e20 100644 --- a/Content.Client/Chemistry/UI/InjectorStatusControl.cs +++ b/Content.Client/Chemistry/UI/InjectorStatusControl.cs @@ -32,7 +32,7 @@ public sealed class InjectorStatusControl : Control { base.FrameUpdate(args); - if (!_solutionContainers.TryGetSolution(_parent.Owner, InjectorComponent.SolutionName, out _, out var solution)) + if (!_solutionContainers.TryGetSolution(_parent.Owner, _parent.Comp.SolutionName, out _, out var solution)) return; // only updates the UI if any of the details are different than they previously were diff --git a/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs b/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs index 85d4ade3a4..77c8620ea4 100644 --- a/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs @@ -124,7 +124,7 @@ public sealed class InjectorSystem : SharedInjectorSystem Popup.PopupEntity(Loc.GetString("injector-component-injecting-user"), target, user); } - if (!SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out _, out var solution)) + if (!SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out _, out var solution)) return; var actualDelay = MathHelper.Max(injector.Comp.Delay, TimeSpan.FromSeconds(1)); @@ -254,7 +254,7 @@ public sealed class InjectorSystem : SharedInjectorSystem private void TryInject(Entity injector, EntityUid targetEntity, Entity targetSolution, EntityUid user, bool asRefill) { - if (!SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out var soln, + if (!SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out var soln, out var solution) || solution.Volume == 0) return; @@ -296,7 +296,7 @@ public sealed class InjectorSystem : SharedInjectorSystem private void AfterInject(Entity injector, EntityUid target) { // Automatically set syringe to draw after completely draining it. - if (SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out _, + if (SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out _, out var solution) && solution.Volume == 0) { SetMode(injector, InjectorToggleMode.Draw); @@ -310,7 +310,7 @@ public sealed class InjectorSystem : SharedInjectorSystem private void AfterDraw(Entity injector, EntityUid target) { // Automatically set syringe to inject after completely filling it. - if (SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out _, + if (SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out _, out var solution) && solution.AvailableVolume == 0) { SetMode(injector, InjectorToggleMode.Inject); @@ -324,7 +324,7 @@ public sealed class InjectorSystem : SharedInjectorSystem private void TryDraw(Entity injector, Entity target, Entity targetSolution, EntityUid user) { - if (!SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out var soln, + if (!SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out var soln, out var solution) || solution.AvailableVolume == 0) { return; diff --git a/Content.Shared/Chemistry/Components/InjectorComponent.cs b/Content.Shared/Chemistry/Components/InjectorComponent.cs index 605a15d73a..ee7f9bd579 100644 --- a/Content.Shared/Chemistry/Components/InjectorComponent.cs +++ b/Content.Shared/Chemistry/Components/InjectorComponent.cs @@ -24,7 +24,8 @@ public sealed partial class InjectorDoAfterEvent : SimpleDoAfterEvent [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class InjectorComponent : Component { - public const string SolutionName = "injector"; + [DataField] + public string SolutionName = "injector"; /// /// Whether or not the injector is able to draw from containers or if it's a single use diff --git a/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs b/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs index 6c43c1d5f0..1620344652 100644 --- a/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs +++ b/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs @@ -113,7 +113,7 @@ public abstract class SharedInjectorSystem : EntitySystem if (injector.Comp.InjectOnly) return; - if (!SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out var solEnt, out var solution)) + if (!SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out var solEnt, out var solution)) return; string msg; diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/vials.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/vials.yml new file mode 100644 index 0000000000..2791e2eec2 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/vials.yml @@ -0,0 +1,137 @@ +- type: entity + parent: BaseItem + id: CP14BaseVial + abstract: true + components: + - type: MeleeWeapon + soundNoDamage: + path: "/Audio/Effects/Fluids/splat.ogg" + damage: + types: + Blunt: 0 + - type: SolutionContainerManager + solutions: + vial: + maxVol: 1 + - type: MixableSolution + solution: vial + - type: FitsInDispenser + solution: vial + - type: RefillableSolution + solution: vial + - type: DrainableSolution + solution: vial + - type: ExaminableSolution + solution: vial + - type: DrawableSolution + solution: vial + - type: InjectableSolution + solution: vial + - type: SolutionItemStatus + solution: vial + - type: UserInterface + interfaces: + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface + - type: Drink + solution: vial + - type: Appearance + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Glass + - type: Injector + solutionName: vial + injectOnly: false + ignoreMobs: true + minTransferAmount: 1 + maxTransferAmount: 10 + transferAmount: 1 + toggleState: 1 # draw + +- type: entity + parent: CP14BaseVial + id: CP14BaseVialFragile + abstract: true + components: + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 5 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + params: + volume: -4 + - !type:SpillBehavior + solution: vial + - !type:SpawnEntitiesBehavior + spawn: + ShardGlass: + min: 1 + max: 1 + transferForensics: true + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: DamageOnLand + damage: + types: + Blunt: 10 # glass resistance set reduces damage. Need to land twice (w/o hitting wall) + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 + - type: DamageOnHighSpeedImpact + minimumSpeed: 2 + damage: + types: + Blunt: 5 + +- type: entity + id: CP14VialTiny + parent: CP14BaseVial + name: tiny vial + description: A sturdy glass vial to hold a tiny amount of liquid. + components: + - type: Sprite + sprite: _CP14/Objects/Specific/Alchemy/vial_tiny.rsi + layers: + - state: vial + - state: liq-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - type: Item + size: Tiny + sprite: _CP14/Objects/Specific/Alchemy/vial_tiny.rsi + - type: SolutionContainerManager + solutions: + vial: + maxVol: 5 + - type: SolutionContainerVisuals + maxFillLevels: 5 + fillBaseName: liq- + +- type: entity + id: CP14VialSmall + parent: CP14BaseVialFragile + name: small vial + description: A fragile glass vial to hold a small amount of liquid. + components: + - type: Sprite + sprite: _CP14/Objects/Specific/Alchemy/vial_small.rsi + layers: + - state: vial + - state: liq-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - type: Item + size: Tiny + sprite: _CP14/Objects/Specific/Alchemy/vial_small.rsi + - type: SolutionContainerManager + solutions: + vial: + maxVol: 10 + - type: SolutionContainerVisuals + maxFillLevels: 5 + fillBaseName: liq- \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Tools/bucket.yml b/Resources/Prototypes/_CP14/Entities/Objects/Tools/bucket.yml new file mode 100644 index 0000000000..9483233e47 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Tools/bucket.yml @@ -0,0 +1,61 @@ +- type: entity + parent: BaseItem + id: CP14Bucket + name: bucket + description: It's a boring old bucket. + suffix: CP14 + components: + - type: Drink + solution: bucket + ignoreEmpty: true + - type: Clickable + - type: Sprite + sprite: Objects/Tools/bucket.rsi + layers: + - state: icon + - map: ["enum.SolutionContainerLayers.Fill"] + state: fill-1 + visible: false + - type: Item + size: Normal + - type: SolutionContainerManager + solutions: + bucket: + maxVol: 50 + - type: Injector + solutionName: bucket + injectOnly: false + ignoreMobs: true + minTransferAmount: 1 + maxTransferAmount: 50 + transferAmount: 50 + toggleState: 1 # draw + - type: UserInterface + interfaces: + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface + - type: MeleeWeapon + soundNoDamage: + path: "/Audio/Effects/Fluids/splat.ogg" + damage: + types: + Blunt: 0 + - type: Spillable + solution: bucket + - type: RefillableSolution + solution: bucket + - type: SolutionItemStatus + solution: bucket + - type: MixableSolution + solution: bucket + - type: DrainableSolution + solution: bucket + - type: Appearance + - type: SolutionContainerVisuals + maxFillLevels: 3 + fillBaseName: fill- + - type: ExaminableSolution + solution: bucket + - type: Tag + tags: + - Bucket \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml index 8e1c0798d9..daed9c24b9 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml @@ -77,20 +77,22 @@ - type: SolutionContainerVisuals maxFillLevels: 7 fillBaseName: liq + - type: Spillable + solution: barrel - type: DrainableSolution solution: barrel - type: ExaminableSolution solution: barrel - - type: InjectableSolution + - type: MixableSolution + solution: barrel + - type: RefillableSolution + solution: barrel + - type: DrawableSolution + solution: barrel + - type: DumpableSolution solution: barrel - type: Drink solution: barrel - - type: SolutionTransfer - canChangeTransferAmount: true - - type: UserInterface - interfaces: - enum.TransferAmountUiKey.Key: - type: TransferAmountBoundUserInterface - type: entity id: CP14BarrelWater @@ -102,4 +104,16 @@ barrel: reagents: - ReagentId: Water + Quantity: 300 + +- type: entity + id: CP14BarrelBeer + parent: CP14BaseBarrel + suffix: Beer + components: + - type: SolutionContainerManager + solutions: + barrel: + reagents: + - ReagentId: Beer Quantity: 300 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml index 31fedfe512..3db88853b5 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml @@ -17,14 +17,12 @@ fix1: shape: !type:PhysShapeAabb - bounds: "-0.08,-0.35,0.15,0.25" + bounds: "-0.45,-0.45,0.45,0.45" + density: 55 mask: - - TabletopMachineMask + - TableMask layer: - - Impassable - - MidImpassable - - LowImpassable - hard: true + - TableLayer - type: Damageable damageContainer: Inorganic damageModifierSet: Wood @@ -76,3 +74,4 @@ components: - Temperature - type: CP14FlammableEntityHeater + - type: Climbable diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/vat.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/vat.yml new file mode 100644 index 0000000000..054237a18a --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/vat.yml @@ -0,0 +1,88 @@ +- type: entity + id: CP14BaseVat + parent: + - BaseStructureDynamic + name: vat + description: VATVATVAT + placement: + mode: PlaceFree + components: + - type: Climbing + - type: Transform + noRot: true + - type: InteractionOutline + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.3,-0.3,0.3,0.3" + density: 155 + mask: + - MachineMask + layer: + - WallLayer + - type: Damageable + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:SpillBehavior + solution: vat + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Appearance + - type: Sprite + drawdepth: Mobs + sprite: _CP14/Structures/Specific/Alchemy/alchemy_vat.rsi + noRot: true + layers: + - state: full + - state: liq1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - type: SolutionContainerManager + solutions: + vat: + maxVol: 500 + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: liq + - type: DrainableSolution + solution: vat + - type: ExaminableSolution + solution: vat + - type: MixableSolution + solution: vat + - type: RefillableSolution + solution: vat + - type: DrawableSolution + solution: vat + - type: DumpableSolution + solution: vat + - type: Spillable + solution: vat + - type: Drink + solution: vat + - type: UserInterface + interfaces: + enum.StorageUiKey.Key: + type: StorageBoundUserInterface + - type: ContainerContainer + containers: + storagebase: !type:Container + - type: ThrowInsertContainer + containerId: storagebase + - type: Storage + grid: + - 0,0,4,3 + blacklist: + components: + - SolutionContainerManager \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Reagents/biological.yml b/Resources/Prototypes/_CP14/Reagents/biological.yml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-1.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a0af350f3b8bcb0ea864d7060b66c1c4eb2d4fd4 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}#-1*YArY-_ z&u!#oP~c%c*ztF|??b6F1rL*Q<{z=F3F=WxTh|vd#98cIA*OTW SGV5xfb_P#ZKbLh*2~7Z?*#q-zh++8>BvO9z_Zn!3u`u6gt r)j#aIJC3{W`P6tOB}mWnSBvnE8i^hIR?V6TG?l^A)z4*}Q$iB}3bQv> literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-3.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-3.png new file mode 100644 index 0000000000000000000000000000000000000000..01ed290ee40b418838efbe8d8db9b4de44a63a17 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}>7Fi*ArY-_ zFB)<+7znsrTz^B=p!VJ5;O9D%j9Df{X&=0noAYccxAo=?32A9*-!|*++Hq|c!!Zel zDM3z=?pyw7)}0UXn%{pznf*(h5~nAF$D;4XLZbDK*>9OnSQgQu&X%Q~loCIHxSKS2Nh literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-4.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-4.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4f234cd9ace47baf560e769cef5c183af05981 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}m7Xq+ArY-_ zFBx(%D~hx{tUp}Fwf?)^yjz=f;uLf`_EiP5PAZC@tn_(mlW{YLl9JM=_uF2$mhWdc zCc!Wz$SJaV%b(akmD7TD**+4KyzskmW?~w{49UIn6Ia~eKJzlZ_4&^fKYm`0|Bcsf ou}&yXTkE>kbdIW$lKoev$3HZuJX^ak0O$w?Pgg&ebxsLQ0O4~<3jhEB literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-5.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/liq-5.png new file mode 100644 index 0000000000000000000000000000000000000000..a510a956c9adc05a155def6503a1cf96b7e06306 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}jh-%!ArY-_ zFKy&HY{0{EA^SvH^S)E@Z}U0joE2GImfV~xrExd!WKq6R(`5c+2NxF?xo=6$Gc6ep z+)Yf=SQ@Z literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/meta.json b/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/meta.json new file mode 100644 index 0000000000..7351a432fe --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (Github) for CrystallPunk14", + "states": [ + { + "name": "vial" + }, + { + "name": "liq-1" + }, + { + "name": "liq-2" + }, + { + "name": "liq-3" + }, + { + "name": "liq-4" + }, + { + "name": "liq-5" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/vial.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_small.rsi/vial.png new file mode 100644 index 0000000000000000000000000000000000000000..7fff0c2428188681bc661d1ddb1c8590517d0290 GIT binary patch literal 356 zcmV-q0h|7bP)Px$9!W$&R9J=WmAh&JK@^66LkgF$Bw`Xp#BBm@wvyl*r19bM0%@$Y7prZoB;Ar& zjZLM5&5>YpzG~*c`Oj@G0K+iMnJG{m<3x&dv3&=Cpk99Jw8My^ zb4hU$>1sdznD^x@9p!CNP<1Yd)B%yM_I9m4zo!7uxVw3zBtYsw6jTdwBE{zC_si%^ z?X;P6+TjaD>w@BBvB6K#ASGa{&)Z%HZ#{|@X#~Ju_3QO!3jnoRvq8~u?m(PKF_|v9 z0APbxD);5(ayN_zSpAYI459dpRc~;do9l|l1AWs28_-W0E7?0GXU7Y zMrR7wSGTTuq=)GE78so=>T`V3Uy$EZ{{n_#80G+V;((O`jWu%s0000sp%F)}n9IFnPJe`&`{m(Zo04d-odd}QD6sArH5 P)XU)M>gTe~DWM4f9K|IB literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/liq-2.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/liq-2.png new file mode 100644 index 0000000000000000000000000000000000000000..2edda69cd89d8892489dd7794ef58ddbf2842ec2 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}j-D=#ArY-_ zFKpyxFyLTz)b=|6Z+D)^pUXO@geCyg@h;#1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/liq-4.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/liq-4.png new file mode 100644 index 0000000000000000000000000000000000000000..726cf864ddcd1d72d8fc9789f097e458f4e0adc3 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}A)YRdArY-_ zFDUXcIC3~&OxwKc&i}j@A15qGzdCOL)8*%l@(jkt#=>XL*glU*J-*n@rN!jG*5R3& zvg}9rOTOnZcv?FBV>r3D!9GcM!Kx*X)6&=&^2h BHIx7V literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/liq-5.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/vial_tiny.rsi/liq-5.png new file mode 100644 index 0000000000000000000000000000000000000000..680db5e95ff43349e46dcef9687a3d00afc4cbba GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}VV*9IArY-_ zFK*;yFywI#ER0$ExBat_*$Tf^vmIJ3FT8&HCqY3;>Ct%=SuKXBlHg1&Ojlf*>}UHdF`o@DI$_TlLN!_VLA z?Ja!%FfPSVw~}*`txFk4O!bdP_RP%8hZkR$Uw68bD`Qf!B{TC(MTX51Vyxop>}R^K zv-EkA)x!8BLqdSPqr01ve+Kit`hRr~pPmlSXFtPeaGKX7b<&G>3=xN;L8zT4Hw06oOu M>FVdQ&MBb@087DSga7~l literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/full.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/full.png new file mode 100644 index 0000000000000000000000000000000000000000..8784c667295f54568fc06b38aebab381c31c98ae GIT binary patch literal 752 zcmVPx%s!2paR9J=WmQ8CDK^TCaq;`W)Pn{Obrssl?mK+q+;z98sLZycs3L;2vrO>~i z_zMK_)`K8;@Fe2LS=2&%C~ZL~ikEgP=;UOeBt_yOypx&TnS7Lp9(+%m`FNja-r4L7 z{N>0EI-$C_)aus%{Mp(-IeQLH1J6xQ2gm-b*V#{!frNsc0={+g1_0lGXbzG?(|=}c zECcuTecIdWDw1hTgYEeI*9s;rp#O0J3(OcsGey9h)$1X+C-=_J7d~xiBstbrMSq; z*KZxL4g7W7@WKI(jvI`O791hTv$ehBNJ!+MvwFaRH;?LFf&IkDXu(uQDP<(23i;5) zVZfnXvCx(Qs<0dSBUqO~3xJT0NMHZQm^^X1B1OW*+4uU#D~+?Kd|=QeOu5Jhb7?6w7zQpClx zMgs7PNTO0)%m~ddR88OHg!?&u@#>9}w-7}nhu_dzcLb!P(QE=Z6Q<(WB=fzf_9)Sa0ToV* #K9CKQ@a2)YMgZC$1Y05` z5)ujlePA2DyY)VoISo65YR-!67x;htGw~a{xQKeKVws@;0000B?Wc})uc*XMaSfSB*u1QZw;-5D2j067evu6{1-oD!Mdo}B18$z-$onTZ0SydO?F3knKaK4tqPm~n35g78?N OT@0SCelF{r5}E)TVm!V8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq2.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq2.png new file mode 100644 index 0000000000000000000000000000000000000000..f66b3f6ce1a6742912b11e3dfd4125075f6d494b GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}3p`yMLn2z= zUOdQqSb>N2!hOF9ai=)axQurjx7spIpTPTqGvtzU;MI^-Ps*K`{`4}=DL(gCS#ag~ zkgZ)Fwx%JWt5@+YjMmie%~=`}Iydi`m2@3HqYDdzfw6#K-swx{XGj*EJ3M#ht?4sA zY&&P!JhT1pruPgNW=CEZJ;P(n%y2~FewvTvzv|0wbtci@AHQ>1(kAfhMzGiY%9X|E eET7lCWn6S=#`U20<;#I?W$<+Mb6Mw<&;$TZFI@8g literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq3.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq3.png new file mode 100644 index 0000000000000000000000000000000000000000..17339910893b5b26b26313261a8996e8716760b9 GIT binary patch literal 272 zcmV+r0q_2aP)Px#%1J~)R9J=WlgkmqFbG69X@U~egLB8M;@WE0Co&Y!s)y}-;yL=098fTb%$$iA|fUt_K1ksoU^@B<04`o5ohLwh?yBP zFHAAB%{jNT$Ha9@oQRN1X|dYw7~|6z0Dy=vqyzw%R9lVH1}c*(`o0H%g=j9N84MvH z#)u)MMc!$c+1`!8%v!70a<*Q7*vQ&4R-w9p)y&?yr@u_y553R&E8ov?9LI5-UvL9o WdkjJz3Z}&X0000w{P*e z-3#}IZu#rZbbc?B=L)SLFNMxRnccOYZI~J2Qfk=(eus*x*vmOAz5Dg1{l(~`H-Gl~ zyD%s$WnqwLOAHMUWmvI&?y{GcZcb;da?*4DRFojV;wZpUe_T5HO!u`W;kTtg&oFqp L`njxgN@xNAsjp~d literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq5.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq5.png new file mode 100644 index 0000000000000000000000000000000000000000..a3acd94dcaeb7cb384a6277457a2b18f4ee9b98f GIT binary patch literal 264 zcmV+j0r&oiP)Px#!bwCyR9J=WlRXZDFbsuXyRy)U+rZg<3tu5ilY!lx9GNH<1>$+~5u%UXcXKyj3w7GwcBj$N_1LsnZO9223!%)}lH+Ijj(CPQ8 zw^e&TPx#%Sl8*R9J=Wl(7xOAPhy}S{hO@0$Z@Vw_pXDKtb=TjGPDr;ZCXiDrDgM`-?;= zK@c{GF(N0%hyZ{)T6*OW0HAYDdGA{-m(tdUwS94|m-L6+C*>2LIpdjgn|^c#5x0_2 zJy8w-bQ{wi8Qe0#g}De#HiJ^3gs8S`fGz<*i*l9-QER;OW1CFhu*`CUw%s4hW