]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add secure chemistry crates and jugs (#15211)
authorChris <HoofedEar@users.noreply.github.com>
Sun, 23 Apr 2023 23:53:17 +0000 (16:53 -0700)
committerGitHub <noreply@github.com>
Sun, 23 Apr 2023 23:53:17 +0000 (09:53 +1000)
23 files changed:
Resources/Locale/en-US/prototypes/catalog/fills/crates/chemistry-crates.ftl [new file with mode: 0644]
Resources/Prototypes/Catalog/Fills/Crates/chemistry.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml
Resources/Textures/Objects/Specific/Chemistry/jug.rsi/inhand-left.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Chemistry/jug.rsi/inhand-right.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug1.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug2.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug3.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug4.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug5.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Chemistry/jug.rsi/jug6.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Chemistry/jug.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/base.png [new file with mode: 0644]
Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/closed.png [new file with mode: 0644]
Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/icon.png [new file with mode: 0644]
Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/locked.png [new file with mode: 0644]
Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/open.png [new file with mode: 0644]
Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/sparking.png [new file with mode: 0644]
Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/unlocked.png [new file with mode: 0644]
Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/welded.png [new file with mode: 0644]

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 (file)
index 0000000..bb9ad44
--- /dev/null
@@ -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 (file)
index 0000000..c243b17
--- /dev/null
@@ -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 (file)
index 0000000..5d7731f
--- /dev/null
@@ -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
index 007d6a7a6b15dfb988a74aaf8d3e44f2e6fa7529..a97010a4025c1dbb46b223e9070dab708d052dee 100644 (file)
   - 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 (file)
index 0000000..6ec4b0f
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 (file)
index 0000000..9c73c96
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 (file)
index 0000000..1fda41e
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 (file)
index 0000000..5ecf243
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 (file)
index 0000000..05e647f
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 (file)
index 0000000..0a46411
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 (file)
index 0000000..c16054a
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 (file)
index 0000000..363e3a1
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 (file)
index 0000000..6412658
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 (file)
index 0000000..98c4ac8
--- /dev/null
@@ -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 (file)
index 0000000..5a88c20
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 (file)
index 0000000..99b95d0
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 (file)
index 0000000..3268a61
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 (file)
index 0000000..d481c3e
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 (file)
index 0000000..53b77b7
--- /dev/null
@@ -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 (file)
index 0000000..633f1c0
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 (file)
index 0000000..87b78b9
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 (file)
index 0000000..e957cfa
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 (file)
index 0000000..340ab6c
Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/chemcrate_secure.rsi/welded.png differ