# SPDX-FileCopyrightText: 2020 20kdc <asdd2808@gmail.com>
# SPDX-FileCopyrightText: 2020 Clement-O <topy72.mine@gmail.com>
# SPDX-FileCopyrightText: 2020 Clément <clement.orlandini@gmail.com>
# SPDX-FileCopyrightText: 2020 Pieter-Jan Briers <pieterjan.briers@gmail.com>
# SPDX-FileCopyrightText: 2020 ike709 <ike709@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 py01 <60152240+collinlunn@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 py01 <pyronetics01@gmail.com>
# SPDX-FileCopyrightText: 2021 Acruid <shatter66@gmail.com>
# SPDX-FileCopyrightText: 2021 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Galactic Chimp <GalacticChimpanzee@gmail.com>
# SPDX-FileCopyrightText: 2021 Metal Gear Sloth <metalgearsloth@gmail.com>
# SPDX-FileCopyrightText: 2021 Paul <ritter.paul1+git@googlemail.com>
# SPDX-FileCopyrightText: 2021 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2021 ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Swept <sweptwastaken@protonmail.com>
# SPDX-FileCopyrightText: 2021 Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Vera Aguilera Puerto <zddm@outlook.es>
# SPDX-FileCopyrightText: 2021 collinlunn <60152240+collinlunn@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2021 mirrorcult <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2021 moonheart08 <moonheart08@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Electro <no>
# SPDX-FileCopyrightText: 2022 Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Justin Trotter <trotter.justin@gmail.com>
# SPDX-FileCopyrightText: 2022 Mervill <mervills.email@gmail.com>
# SPDX-FileCopyrightText: 2022 Paul Ritter <ritter.paul1@googlemail.com>
# SPDX-FileCopyrightText: 2022 Profane McBane <profanedbane+github@gmail.com>
# SPDX-FileCopyrightText: 2022 Rane <60792108+Elijahrane@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Rinkashikachi <15rinkashikachi15@gmail.com>
# SPDX-FileCopyrightText: 2022 TekuNut <13456422+TekuNut@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Vera Aguilera Puerto <gradientvera@outlook.com>
# SPDX-FileCopyrightText: 2023 Kevin Zheng <kevinz5000@gmail.com>
# SPDX-FileCopyrightText: 2023 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Vordenburg <114301317+Vordenburg@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 potato1234_x <79580518+potato1234x@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Łukasz Mędrek <lukaszm210@gmail.com>
# SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Jeff <velcroboy333@hotmail.com>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 MilenVolf <63782763+MilenVolf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TGRCDev <tgrc@tgrc.dev>
# SPDX-FileCopyrightText: 2024 Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lapatison <100279397+lapatison@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 taydeo <td12233a@gmail.com>
# SPDX-FileCopyrightText: 2025 ActiveMammmoth <140334666+ActiveMammmoth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ActiveMammmoth <kmcsmooth@gmail.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Steve <marlumpy@gmail.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gus <august.eymann@gmail.com>
# SPDX-FileCopyrightText: 2025 keronshb <54602815+keronshb@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 marc-pelletier <113944176+marc-pelletier@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  abstract: true
  parent: BaseStructureDynamic
  id: GasCanister
  name: gas canister
  description: A canister that can contain any type of gas. It can be attached to connector ports using a wrench.
  components:
    - type: Animateable
    - type: InteractionOutline
    - type: Transform
      noRot: true
    - type: Sprite
      sprite: Structures/Storage/canister.rsi
      noRot: true
      layers:
        - state: grey
    - type: Appearance
    - type: GenericVisualizer
      visuals:
        enum.AnchorVisuals.Anchored:
          connectedToPort:
            False: { state: can-connector, visible: false }
            True: { state: can-connector, visible: true }
        enum.GasCanisterVisuals.TankInserted:
          tankInserted:
            False: { state: can-open, visible: false }
            True: { state: can-open, visible: true }
        enum.LockVisuals.Locked:
          locked:
            False: { state: unlocked, shader: "unshaded" }
            True: { state: locked, shader: "unshaded" }
        enum.GasCanisterVisuals.PressureState:
          pressureLight:
            0: { state: can-o0, shader: "unshaded" }
            1: { state: can-o1, shader: "unshaded" }
            2: { state: can-o2, shader: "unshaded" }
            3: { state: can-o3, shader: "unshaded" }
    - type: ActivatableUI
      key: enum.GasCanisterUiKey.Key
    - type: ActivatableUIRequiresLock
    - type: UserInterface
      interfaces:
        enum.GasCanisterUiKey.Key:
          type: GasCanisterBoundUserInterface
    - type: Destructible
      thresholds:
        - trigger:
            !type:DamageTrigger
            damage: 600
          behaviors:
            - !type:DoActsBehavior
              acts: [ "Destruction" ]
        - trigger:
            !type:DamageTrigger
            damage: 300
          behaviors:
            - !type:PlaySoundBehavior
              sound:
                collection: MetalBreak
            - !type:SpawnEntitiesBehavior
              spawn:
                GasCanisterBrokenBase:
                  min: 1
                  max: 1
            - !type:DoActsBehavior
              acts: [ "Destruction" ]
            - !type:DumpCanisterBehavior
    - type: Damageable
      damageContainer: Inorganic
      damageModifierSet: Metallic
    - type: Physics
      bodyType: Dynamic
    - type: Fixtures
      fixtures:
        fix1:
          shape:
            !type:PhysShapeAabb
            bounds: "-0.25,-0.25,0.25,0.25"
          density: 190
          mask:
          - SmallMobMask
          layer:
          - MachineLayer
    - type: AtmosDevice
      requireAnchored: false
      joinSystem: true
    - type: ContainerContainer
      containers:
        tank_slot: !type:ContainerSlot {}
    - type: NodeContainer
      nodes:
        port:
          !type:PortablePipeNode
          nodeGroupID: Pipe
          rotationsEnabled: false
          volume: 1
    - type: ItemSlots
    - type: AutomationSlots # Goobstation
      slots:
      - !type:AutomatedItemSlot
        input: AutomationSlotGasTank
        output: AutomationSlotGasTank
        slotId: tank_slot
      - !type:AutomatedPorts
        sinks:
        - Open
        - Close
        - Toggle
    - type: GasPortable
    - type: GasCanister
      gasTankSlot:
        name: comp-gas-canister-slot-name-gas-tank
        ejectOnBreak: true
        whitelist:
          components:
            - GasTank
    - type: StaticPrice
      price: 200
    - type: AccessReader
      access: [["Atmospherics"], ["Engineering"], ["Research"]]
    - type: Lock
      locked: false
    - type: GuideHelp
      guides:
      - GasCanisters
    - type: Paintable
      group: Canisters

- type: entity
  parent: GasCanister
  id: StorageCanister
  name: storage canister
  components:
    - type: Sprite
      layers:
        - state: yellow
    - type: GasCanister
      gasMixture:
        volume: 1000
        moles: # List of gasses for easy reference
          - 0 # oxygen
          - 0 # nitrogen
          - 0 # CO2
          - 0 # Plasma
          - 0 # Tritium
          - 0 # Water vapor
          - 0 # Ammonia
          - 0 # N2O
          - 0 # Frezon
        temperature: 293.15
    - type: Destructible
      thresholds:
      - trigger:
          !type:DamageTrigger
          damage: 600
        behaviors:
          - !type:DoActsBehavior
            acts: [ "Destruction" ]
      - trigger:
          !type:DamageTrigger
          damage: 300
        behaviors:
        - !type:PlaySoundBehavior
          sound:
            collection: MetalBreak
        - !type:SpawnEntitiesBehavior
          spawn:
            StorageCanisterBroken:
              min: 1
              max: 1
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
        - !type:DumpCanisterBehavior

# Filled canisters, contain 1871.71051 moles each

- type: entity
  parent: GasCanister
  id: AirCanister
  name: air canister
  description: A canister that can contain any type of gas. This one is supposed to contain air mixture. It can be attached to connector ports using a wrench.
  components:
  - type: Sprite
    layers:
      - state: grey
  - type: GasCanister
    gasMixture:
      volume: 1000
      moles:
        - 393.0592071 # oxygen 21%
        - 1478.6513029 # nitrogen 79%
      temperature: 293.15
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 600
      behaviors:
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
    - trigger:
        !type:DamageTrigger
        damage: 300
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: MetalBreak
      - !type:SpawnEntitiesBehavior
        spawn:
          AirCanisterBroken:
            min: 1
            max: 1
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
      - !type:DumpCanisterBehavior

- type: entity
  parent: GasCanister
  id: OxygenCanister
  name: oxygen canister
  description: A canister that can contain any type of gas. This one is supposed to contain oxygen. It can be attached to connector ports using a wrench.
  components:
  - type: Sprite
    layers:
      - state: blue
  - type: GasCanister
    gasMixture:
      volume: 1000
      moles:
        - 1871.71051 # oxygen
      temperature: 293.15
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 600
      behaviors:
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
    - trigger:
        !type:DamageTrigger
        damage: 300
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: MetalBreak
      - !type:SpawnEntitiesBehavior
        spawn:
          OxygenCanisterBroken:
            min: 1
            max: 1
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
      - !type:DumpCanisterBehavior

- type: entity
  id: LiquidOxygenCanister
  parent: OxygenCanister
  name: liquid oxygen canister
  description: A canister that can contain any type of gas. This one is supposed to contain liquid oxygen. It can be attached to connector ports using a wrench.
  components:
  - type: GasCanister
    gasMixture:
      volume: 1000
      moles:
        - 18710.71051 # oxygen
      temperature: 72
  - type: AccessReader
    access: [["Atmospherics"]]

- type: entity
  parent: GasCanister
  id: NitrogenCanister
  name: nitrogen canister
  description: A canister that can contain any type of gas. This one is supposed to contain nitrogen. It can be attached to connector ports using a wrench.
  components:
    - type: Sprite
      layers:
        - state: red
    - type: GasCanister
      gasMixture:
        volume: 1000
        moles:
          - 0 # oxygen
          - 1871.71051 # nitrogen
        temperature: 293.15
    - type: Destructible
      thresholds:
      - trigger:
          !type:DamageTrigger
          damage: 600
        behaviors:
          - !type:DoActsBehavior
            acts: [ "Destruction" ]
      - trigger:
          !type:DamageTrigger
          damage: 300
        behaviors:
        - !type:PlaySoundBehavior
          sound:
            collection: MetalBreak
        - !type:SpawnEntitiesBehavior
          spawn:
            NitrogenCanisterBroken:
              min: 1
              max: 1
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
        - !type:DumpCanisterBehavior

- type: entity
  id: LiquidNitrogenCanister
  parent: NitrogenCanister
  name: liquid nitrogen canister
  description: A canister that can contain any type of gas. This one is supposed to contain liquid nitrogen. It can be attached to connector ports using a wrench.
  components:
  - type: GasCanister
    gasMixture:
      volume: 1000
      moles:
        - 0 # oxygen
        - 18710.71051 # nitrogen
      temperature: 72
  - type: AccessReader
    access: [["Atmospherics"]]

- type: entity
  parent: GasCanister
  id: CarbonDioxideCanister
  name: carbon dioxide canister
  description: A canister that can contain any type of gas. This one is supposed to contain carbon dioxide. It can be attached to connector ports using a wrench.
  components:
    - type: Sprite
      layers:
        - state: black
    - type: GasCanister
      gasMixture:
        volume: 1000
        moles:
          - 0 # oxygen
          - 0 # nitrogen
          - 1871.71051 # CO2
        temperature: 293.15
    - type: Destructible
      thresholds:
      - trigger:
          !type:DamageTrigger
          damage: 600
        behaviors:
          - !type:DoActsBehavior
            acts: [ "Destruction" ]
      - trigger:
          !type:DamageTrigger
          damage: 300
        behaviors:
        - !type:PlaySoundBehavior
          sound:
            collection: MetalBreak
        - !type:SpawnEntitiesBehavior
          spawn:
            CarbonDioxideCanisterBroken:
              min: 1
              max: 1
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
        - !type:DumpCanisterBehavior
    - type: Lock
      locked: true

- type: entity
  id: LiquidCarbonDioxideCanister
  parent: CarbonDioxideCanister
  name: liquid carbon dioxide canister
  description: A canister that can contain any type of gas. This one is supposed to contain liquid carbon dioxide. It can be attached to connector ports using a wrench.
  components:
  - type: GasCanister
    gasMixture:
      volume: 1000
      moles:
        - 0 # oxygen
        - 0 # nitrogen
        - 18710.71051 # CO2
      temperature: 72
  - type: AccessReader
    access: [["Atmospherics"]]

- type: entity
  parent: GasCanister
  id: PlasmaCanister
  name: plasma canister
  description: A canister that can contain any type of gas. This one is supposed to contain plasma. It can be attached to connector ports using a wrench.
  components:
    - type: Sprite
      layers:
        - state: orange
    - type: GasCanister
      gasMixture:
        volume: 1000
        moles:
          - 0 # oxygen
          - 0 # nitrogen
          - 0 # carbon dioxide
          - 1871.71051 # plasma
        temperature: 293.15
    - type: Destructible
      thresholds:
      - trigger:
          !type:DamageTrigger
          damage: 600
        behaviors:
          - !type:DoActsBehavior
            acts: [ "Destruction" ]
      - trigger:
          !type:DamageTrigger
          damage: 300
        behaviors:
        - !type:PlaySoundBehavior
          sound:
            collection: MetalBreak
        - !type:SpawnEntitiesBehavior
          spawn:
            PlasmaCanisterBroken:
              min: 1
              max: 1
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
        - !type:DumpCanisterBehavior
    - type: Lock
      locked: true

- type: entity
  parent: GasCanister
  id: TritiumCanister
  name: tritium canister
  description: A canister that can contain any type of gas. This one is supposed to contain tritium. It can be attached to connector ports using a wrench.
  components:
    - type: Sprite
      layers:
        - state: green
    - type: GasCanister
      gasMixture:
        volume: 1000
        moles:
          - 0 # oxygen
          - 0 # nitrogen
          - 0 # CO2
          - 0 # Plasma
          - 1871.71051 # Tritium
        temperature: 293.15
    - type: Destructible
      thresholds:
      - trigger:
          !type:DamageTrigger
          damage: 600
        behaviors:
          - !type:DoActsBehavior
            acts: [ "Destruction" ]
      - trigger:
          !type:DamageTrigger
          damage: 300
        behaviors:
        - !type:PlaySoundBehavior
          sound:
            collection: MetalBreak
        - !type:SpawnEntitiesBehavior
          spawn:
            TritiumCanisterBroken:
              min: 1
              max: 1
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
        - !type:DumpCanisterBehavior
    - type: Lock
      locked: true

- type: entity
  parent: GasCanister
  id: WaterVaporCanister
  name: water vapor canister
  description: A canister that can contain any type of gas. This one is supposed to contain water vapor. It can be attached to connector ports using a wrench.
  components:
    - type: Sprite
      layers:
        - state: water_vapor
    - type: GasCanister
      gasMixture:
        volume: 1000
        moles:
          - 0 # oxygen
          - 0 # nitrogen
          - 0 # CO2
          - 0 # Plasma
          - 0 # Tritium
          - 1871.71051 # Water vapor
        temperature: 293.15
    - type: Destructible
      thresholds:
      - trigger:
          !type:DamageTrigger
          damage: 600
        behaviors:
          - !type:DoActsBehavior
            acts: [ "Destruction" ]
      - trigger:
          !type:DamageTrigger
          damage: 300
        behaviors:
        - !type:PlaySoundBehavior
          sound:
            collection: MetalBreak
        - !type:SpawnEntitiesBehavior
          spawn:
            WaterVaporCanisterBroken:
              min: 1
              max: 1
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
        - !type:DumpCanisterBehavior

- type: entity
  parent: GasCanister
  id: AmmoniaCanister
  name: ammonia canister
  description: A canister that can contain any type of gas. This one is supposed to contain ammonia. It can be attached to connector ports using a wrench.
  components:
    - type: Sprite
      layers:
        - state: greenys
    - type: GasCanister
      gasMixture:
        volume: 1000
        moles:
          - 0 # oxygen
          - 0 # nitrogen
          - 0 # CO2
          - 0 # Plasma
          - 0 # Tritium
          - 0 #  Water vapor
          - 1871.71051 # Ammonia
        temperature: 293.15
    - type: Destructible
      thresholds:
      - trigger:
          !type:DamageTrigger
          damage: 600
        behaviors:
          - !type:DoActsBehavior
            acts: [ "Destruction" ]
      - trigger:
          !type:DamageTrigger
          damage: 300
        behaviors:
        - !type:PlaySoundBehavior
          sound:
            collection: MetalBreak
        - !type:SpawnEntitiesBehavior
          spawn:
            AmmoniaCanisterBroken:
              min: 1
              max: 1
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
        - !type:DumpCanisterBehavior
    - type: Lock
      locked: true

- type: entity
  parent: GasCanister
  id: NitrousOxideCanister
  name: nitrous oxide canister
  description: A canister that can contain any type of gas. This one is supposed to contain nitrous oxide. It can be attached to connector ports using a wrench.
  components:
    - type: Sprite
      layers:
        - state: redws
    - type: GasCanister
      gasMixture:
        volume: 1000
        moles:
          - 0 # oxygen
          - 0 # nitrogen
          - 0 # CO2
          - 0 # Plasma
          - 0 # Tritium
          - 0 #  Water vapor
          - 0 # Ammonia
          - 1871.71051 # N2O
        temperature: 293.15
    - type: Destructible
      thresholds:
      - trigger:
          !type:DamageTrigger
          damage: 600
        behaviors:
          - !type:DoActsBehavior
            acts: [ "Destruction" ]
      - trigger:
          !type:DamageTrigger
          damage: 300
        behaviors:
        - !type:PlaySoundBehavior
          sound:
            collection: MetalBreak
        - !type:SpawnEntitiesBehavior
          spawn:
            NitrousOxideCanisterBroken:
              min: 1
              max: 1
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
        - !type:DumpCanisterBehavior
    - type: Lock
      locked: true

- type: entity
  parent: GasCanister
  id: FrezonCanister
  name: frezon canister
  description: A canister that can contain any type of gas. This one is supposed to contain frezon. It can be attached to connector ports using a wrench.
  components:
  - type: Sprite
    layers:
    - state: frezon
  - type: GasCanister
    gasMixture:
      volume: 1000
      moles:
      - 0 # oxygen
      - 0 # nitrogen
      - 0 # CO2
      - 0 # Plasma
      - 0 # Tritium
      - 0 # Water vapor
      - 0 # Ammonia
      - 0 # N2O
      - 1871.71051 # Frezon
      temperature: 293.15
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 600
      behaviors:
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
    - trigger:
        !type:DamageTrigger
        damage: 300
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: MetalBreak
      - !type:SpawnEntitiesBehavior
        spawn:
          FrezonCanisterBroken:
            min: 1
            max: 1
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
      - !type:DumpCanisterBehavior
  - type: Lock
    locked: true

# Broke Entities

- type: entity
  parent: BaseStructureDynamic
  id: GasCanisterBrokenBase
  name: broken gas canister
  description: A broken gas canister. Not useless yet, as it can be salvaged for high quality materials.
  components:
    - type: Destructible
      thresholds:
      - trigger:
          !type:DamageTrigger
          damage: 200
        behaviors:
          - !type:DoActsBehavior
            acts: [ "Destruction" ]
      - trigger:
          !type:DamageTrigger
          damage: 100
        behaviors:
        - !type:PlaySoundBehavior
          sound:
            collection: MetalBreak
        - !type:SpawnEntitiesBehavior
          spawn:
            SheetPlasteel1:
              min: 1
              max: 2
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
    - type: Damageable
      damageContainer: Inorganic
      damageModifierSet: Metallic
    - type: InteractionOutline
    - type: Sprite
      sprite: Structures/Storage/canister.rsi
      state: grey-1
    - type: Physics
      bodyType: Dynamic
    - type: Fixtures
      fixtures:
        fix1:
          shape:
            !type:PhysShapeAabb
            bounds: "-0.4,-0.3,0.4,0.3"
          density: 190
          mask:
          - MachineMask
          layer:
          - MachineLayer
    - type: PhysicalComposition
      materialComposition:
        Steel: 500
    - type: StaticPrice
      price: 125

- type: entity
  parent: GasCanisterBrokenBase
  id: StorageCanisterBroken
  categories: [ HideSpawnMenu ]
  components:
    - type: Sprite
      state: yellow-1

- type: entity
  parent: GasCanisterBrokenBase
  id: AirCanisterBroken
  categories: [ HideSpawnMenu ]
  components:
  - type: Sprite
    state: grey-1

- type: entity
  parent: GasCanisterBrokenBase
  id: OxygenCanisterBroken
  categories: [ HideSpawnMenu ]
  components:
  - type: Sprite
    state: blue-1

- type: entity
  parent: GasCanisterBrokenBase
  id: NitrogenCanisterBroken
  categories: [ HideSpawnMenu ]
  components:
    - type: Sprite
      state: red-1

- type: entity
  parent: GasCanisterBrokenBase
  id: CarbonDioxideCanisterBroken
  categories: [ HideSpawnMenu ]
  components:
    - type: Sprite
      state: black-1

- type: entity
  parent: GasCanisterBrokenBase
  id: PlasmaCanisterBroken
  categories: [ HideSpawnMenu ]
  components:
    - type: Sprite
      state: orange-1

- type: entity
  parent: GasCanisterBrokenBase
  id: TritiumCanisterBroken
  categories: [ HideSpawnMenu ]
  components:
    - type: Sprite
      state: green-1

- type: entity
  parent: GasCanisterBrokenBase
  id: WaterVaporCanisterBroken
  name: broken water vapor canister
  categories: [ HideSpawnMenu ]
  components:
    - type: Sprite
      state: water_vapor-1

- type: entity
  parent: GasCanisterBrokenBase
  id: AmmoniaCanisterBroken
  categories: [ HideSpawnMenu ]
  components:
    - type: Sprite
      state: greenys-1

- type: entity
  parent: GasCanisterBrokenBase
  id: NitrousOxideCanisterBroken
  categories: [ HideSpawnMenu ]
  components:
    - type: Sprite
      state: redws-1

- type: entity
  parent: GasCanisterBrokenBase
  id: FrezonCanisterBroken
  categories: [ HideSpawnMenu ]
  components:
  - type: Sprite
    state: frezon-1
