From: Chris Date: Sun, 23 Apr 2023 23:53:17 +0000 (-0700) Subject: Add secure chemistry crates and jugs (#15211) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=e6012a39562d2e7594ab322b9fb08f19ac508e9d;p=space-station-14.git Add secure chemistry crates and jugs (#15211) --- diff --git a/Resources/Locale/en-US/prototypes/catalog/fills/crates/chemistry-crates.ftl b/Resources/Locale/en-US/prototypes/catalog/fills/crates/chemistry-crates.ftl new file mode 100644 index 0000000000..bb9ad44b4e --- /dev/null +++ b/Resources/Locale/en-US/prototypes/catalog/fills/crates/chemistry-crates.ftl @@ -0,0 +1,8 @@ +ent-CrateChemistryP = Chemicals crate (P) + .desc = Contains chemicals from the P-Block of elements. Requires Chemistry access to open. + +ent-CrateChemistryS = Chemicals crate (S) + .desc = Contains chemicals from the S-Block of elements. Requires Chemistry access to open. + +ent-CrateChemistryD = Chemicals crate (D) + .desc = Contains chemicals from the D-Block of elements. Requires Chemistry access to open. diff --git a/Resources/Prototypes/Catalog/Fills/Crates/chemistry.yml b/Resources/Prototypes/Catalog/Fills/Crates/chemistry.yml new file mode 100644 index 0000000000..c243b1731d --- /dev/null +++ b/Resources/Prototypes/Catalog/Fills/Crates/chemistry.yml @@ -0,0 +1,56 @@ +- type: entity + id: CrateChemistryP + parent: CrateChemistrySecure + components: + - type: StorageFill + contents: + - id: JugAluminium + amount: 1 + - id: JugCarbon + amount: 1 + - id: JugChlorine + amount: 1 + - id: JugFluorine + amount: 1 + - id: JugIodine + amount: 1 + - id: JugPhosphorus + amount: 1 + - id: JugSulfur + amount: 1 + - id: JugSilicon + amount: 1 + +- type: entity + id: CrateChemistryS + parent: CrateChemistrySecure + components: + - type: StorageFill + contents: + - id: JugHydrogen + amount: 1 + - id: JugLithium + amount: 1 + - id: JugSodium + amount: 1 + - id: JugPotassium + amount: 1 + - id: JugRadium + amount: 1 + +- type: entity + id: CrateChemistryD + parent: CrateChemistrySecure + components: + - type: StorageFill + contents: + - id: JugIron + amount: 1 + - id: JugCopper + amount: 1 + - id: JugGold + amount: 1 + - id: JugMercury + amount: 1 + - id: JugSilver + amount: 1 diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml b/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml new file mode 100644 index 0000000000..5d7731f80d --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml @@ -0,0 +1,301 @@ +- type: entity + name: jug + parent: BaseItem + id: Jug + description: Used to contain a very large amount of chemicals or solutions. Chugging is extremely ill-advised. + components: + - type: SolutionContainerManager + solutions: + beaker: + maxVol: 200 + canMix: true + - type: Sprite + sprite: Objects/Specific/Chemistry/jug.rsi + netsync: false + layers: + - state: jug + - state: jug1 + map: [ "enum.SolutionContainerLayers.Fill" ] + visible: false + - type: Item + size: 10 + sprite: Objects/Specific/Chemistry/jug.rsi + - type: RefillableSolution + solution: beaker + - type: DrainableSolution + solution: beaker + - type: ExaminableSolution + solution: beaker + - type: DrawableSolution + solution: beaker + - type: InjectableSolution + solution: beaker + - type: SolutionTransfer + canChangeTransferAmount: true + - type: UserInterface + interfaces: + - key: enum.TransferAmountUiKey.Key + type: TransferAmountBoundUserInterface + - type: Drink + isOpen: true + solution: beaker + - type: Spillable + solution: beaker + - type: Appearance + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: jug + - type: StaticPrice + price: 80 + +- type: entity + parent: Jug + id: JugCarbon + noSpawn: true + components: + - type: Label + currentLabel: Carbon + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Carbon + Quantity: 200 + +- type: entity + parent: Jug + id: JugIodine + noSpawn: true + components: + - type: Label + currentLabel: Iodine + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Iodine + Quantity: 200 + +- type: entity + parent: Jug + id: JugFluorine + noSpawn: true + components: + - type: Label + currentLabel: Fluorine + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Fluorine + Quantity: 200 + +- type: entity + parent: Jug + id: JugChlorine + noSpawn: true + components: + - type: Label + currentLabel: Chlorine + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Chlorine + Quantity: 200 + +- type: entity + parent: Jug + id: JugAluminium + noSpawn: true + components: + - type: Label + currentLabel: Aluminium + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Aluminium + Quantity: 200 + +- type: entity + parent: Jug + id: JugPhosphorus + noSpawn: true + components: + - type: Label + currentLabel: Phosphorus + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Phosphorus + Quantity: 200 + +- type: entity + parent: Jug + id: JugSulfur + noSpawn: true + components: + - type: Label + currentLabel: Sulfur + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Sulfur + Quantity: 200 + +- type: entity + parent: Jug + id: JugSilicon + noSpawn: true + components: + - type: Label + currentLabel: Silicon + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Silicon + Quantity: 200 + +- type: entity + parent: Jug + id: JugHydrogen + noSpawn: true + components: + - type: Label + currentLabel: Hydrogen + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Hydrogen + Quantity: 200 + +- type: entity + parent: Jug + id: JugLithium + noSpawn: true + components: + - type: Label + currentLabel: Lithium + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Lithium + Quantity: 200 + +- type: entity + parent: Jug + id: JugSodium + noSpawn: true + components: + - type: Label + currentLabel: Sodium + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Sodium + Quantity: 200 + +- type: entity + parent: Jug + id: JugPotassium + noSpawn: true + components: + - type: Label + currentLabel: Potassium + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Potassium + Quantity: 200 + +- type: entity + parent: Jug + id: JugRadium + noSpawn: true + components: + - type: Label + currentLabel: Radium + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Radium + Quantity: 200 + +- type: entity + parent: Jug + id: JugIron + noSpawn: true + components: + - type: Label + currentLabel: Iron + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Iron + Quantity: 200 + +- type: entity + parent: Jug + id: JugCopper + noSpawn: true + components: + - type: Label + currentLabel: Copper + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Copper + Quantity: 200 + +- type: entity + parent: Jug + id: JugGold + noSpawn: true + components: + - type: Label + currentLabel: Gold + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Gold + Quantity: 200 + +- type: entity + parent: Jug + id: JugMercury + noSpawn: true + components: + - type: Label + currentLabel: Mercury + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Mercury + Quantity: 200 + +- type: entity + parent: Jug + id: JugSilver + noSpawn: true + components: + - type: Label + currentLabel: Silver + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Silver + Quantity: 200 diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml index 007d6a7a6b..a97010a402 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml @@ -155,6 +155,18 @@ - type: AccessReader access: [["Medical"]] +- type: entity + parent: CrateBaseSecure + id: CrateChemistrySecure + name: secure chemistry crate + components: + - type: Icon + sprite: Structures/Storage/Crates/chemcrate_secure.rsi + - type: Sprite + sprite: Structures/Storage/Crates/chemcrate_secure.rsi + - type: AccessReader + access: [["Chemistry"]] + - type: entity parent: CrateBaseSecure id: CratePrivateSecure diff --git a/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/inhand-left.png new file mode 100644 index 0000000000..6ec4b0fc67 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/inhand-right.png new file mode 100644 index 0000000000..9c73c96809 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug.png b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug.png new file mode 100644 index 0000000000..1fda41e3b5 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug.png differ diff --git a/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug1.png b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug1.png new file mode 100644 index 0000000000..5ecf243047 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug1.png differ diff --git a/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug2.png b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug2.png new file mode 100644 index 0000000000..05e647f110 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug2.png differ diff --git a/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug3.png b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug3.png new file mode 100644 index 0000000000..0a464113d7 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug3.png differ diff --git a/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug4.png b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug4.png new file mode 100644 index 0000000000..c16054a21a Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug4.png differ diff --git a/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug5.png b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug5.png new file mode 100644 index 0000000000..363e3a1bfc Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug5.png differ diff --git a/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug6.png b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug6.png new file mode 100644 index 0000000000..64126589da Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug6.png differ diff --git a/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/meta.json b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/meta.json new file mode 100644 index 0000000000..98c4ac810b --- /dev/null +++ b/Resources/Textures/Objects/Specific/Chemistry/jug.rsi/meta.json @@ -0,0 +1,40 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by HoofedEar", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "jug" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "jug1" + }, + { + "name": "jug2" + }, + { + "name": "jug3" + }, + { + "name": "jug4" + }, + { + "name": "jug5" + }, + { + "name": "jug6" + } + ] +} diff --git a/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/base.png new file mode 100644 index 0000000000..5a88c2079d Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/base.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/closed.png b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/closed.png new file mode 100644 index 0000000000..99b95d0af8 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/icon.png b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/icon.png new file mode 100644 index 0000000000..3268a61956 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/locked.png b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/locked.png new file mode 100644 index 0000000000..d481c3ef91 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/locked.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/meta.json new file mode 100644 index 0000000000..53b77b7774 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/meta.json @@ -0,0 +1,45 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Citadelstation at commit https://github.com/Citadel-Station-13/Citadel-Station-13/commit/85186a971453b0653bacfb3fae88f978dc1be689 - Modified by HoofedEar", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "closed" + }, + { + "name": "open" + }, + { + "name": "welded" + }, + { + "name": "sparking", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "locked" + }, + { + "name": "unlocked" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/open.png new file mode 100644 index 0000000000..633f1c0daf Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/open.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/sparking.png b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/sparking.png new file mode 100644 index 0000000000..87b78b9b46 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/sparking.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/unlocked.png b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/unlocked.png new file mode 100644 index 0000000000..e957cfaf25 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/unlocked.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/welded.png b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/welded.png new file mode 100644 index 0000000000..340ab6cf38 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/welded.png differ