- type: entity
  id: BaseMagazine9x19mm
  name: pistol magazine (9x19mm FMJ)
  parent: [ BaseItem, RecyclableItemSteelTiny ]
  abstract: true
  components:
  - type: Tag
    tags:
      - Magazine9x19mmPistolFMJ
  - type: BallisticAmmoProvider
    mayTransfer: true
    whitelist:
      tags:
        - Cartridge9x19mmFMJ
    capacity: 19
  - type: Item
    size: Small
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_pistol_mag.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: MagazineVisuals
    magState: mag
    steps: 6
    zeroVisible: false
  - type: Appearance

#Start Pistol mags
- type: entity
  id: Magazine9x19mmPistolFMJ
  name: pistol magazine (9x19mm FMJ)
  parent: BaseMagazine9x19mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmFMJ
  - type: Sprite
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmPistolEmpty
  name: pistol magazine (9x19mm any)
  suffix: empty
  parent: Magazine9x19mmPistolFMJ
  components:
  - type: BallisticAmmoProvider
    proto: null
  - type: Sprite
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmPistolIncendiary
  name: pistol magazine (9x19mm incendiary)
  parent: Magazine9x19mmPistolFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmIncendiary
  - type: Sprite
    layers:
    - state: red
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmPistolPractice
  name: pistol magazine (9x19mm practice)
  parent: BaseMagazine9x19mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmPractice
  - type: Sprite
    layers:
    - state: red
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmPistolUranium
  name: pistol magazine (9x19mm uranium)
  parent: BaseMagazine9x19mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmUranium
  - type: Sprite
    layers:
    - state: uranium
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

#Upstream
- type: entity
  id: Magazine9x19mmPistolRubber
  name: pistol magazine (9x19mm rubber)
  parent: BaseMagazine9x19mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmRubber
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_pistol_mag.rsi
    layers:
    - state: rubber
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

#Mono AP system
#anti-flesh ammo
- type: entity
  id: Magazine9x19mmPistolHP
  name: pistol magazine (9x19mm hollow-point)
  parent: BaseMagazine9x19mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmHP
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_pistol_mag.rsi
    layers:
    - state: HP
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmPistolRIP
  name: pistol magazine (9x19mm RIP)
  parent: BaseMagazine9x19mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmRIP
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_pistol_mag.rsi
    layers:
    - state: RIP
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

#armor-piercing ammo

- type: entity
  id: Magazine9x19mmPistolPlasteelAP
  name: pistol magazine (9x19mm AP)
  parent: BaseMagazine9x19mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmPlasteelAP
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_pistol_mag.rsi
    layers:
    - state: plasteelAP
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

#End Pistol mags
#Start HighCapacity mags
- type: entity
  id: BaseMagazine9x19mmPistolHighCapacityFMJ
  name: machine pistol magazine (9x19mm FMJ)
  parent: [BaseItem, RecyclableItemSteelTiny]
  abstract: true
  components:
  - type: Tag
    tags:
      - Magazine9x19mmPistolHighCapacityFMJ
  - type: BallisticAmmoProvider
    mayTransfer: true
    whitelist:
      tags:
        - Cartridge9x19mmFMJ
    capacity: 34
  - type: Item
    size: Small
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_pistol_high_capacity_mag.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: MagazineVisuals
    magState: mag
    steps: 6
    zeroVisible: false
  - type: Appearance

- type: entity
  id: Magazine9x19mmPistolHighCapacityEmpty
  name: machine pistol magazine (9x19mm any)
  suffix: empty
  parent: BaseMagazine9x19mmPistolHighCapacityFMJ
  components:
  - type: BallisticAmmoProvider
    proto: null
  - type: Sprite
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmPistolHighCapacityFMJ
  name: machine pistol magazine (9x19mm FMJ)
  parent: BaseMagazine9x19mmPistolHighCapacityFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmFMJ
  - type: Sprite
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmPistolHighCapacityPractice
  name: machine pistol magazine (9x19mm practice)
  parent: BaseMagazine9x19mmPistolHighCapacityFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmFMJ
  - type: Sprite
    layers:
    - state: practice
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmPistolHighCapacityRubber
  name: machine pistol magazine (9x19mm rubber)
  parent: BaseMagazine9x19mmPistolHighCapacityFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmFMJ
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_pistol_high_capacity_mag.rsi
    layers:
    - state: rubber
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

#End HighCapacity mags
#Start SubMachineGun mags
- type: entity
  id: BaseMagazine9x19mmSubMachineGunFMJ
  name: SMG magazine (9x19mm FMJ)
  parent: [BaseItem, RecyclableItemSteelTiny]
  abstract: true
  components:
  - type: Tag
    tags:
      - Magazine9x19mmSubMachineGunFMJ
  - type: BallisticAmmoProvider
    mayTransfer: true
    whitelist:
      tags:
        - Cartridge9x19mmFMJ
    capacity: 35
  - type: Item
    size: Small
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_smg_mag.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: MagazineVisuals
    magState: mag
    steps: 6
    zeroVisible: false
  - type: Appearance

- type: entity
  id: Magazine9x19mmSubMachineGunFMJ
  name: SMG magazine (9x19mm FMJ)
  parent: BaseMagazine9x19mmSubMachineGunFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmFMJ
    whitelist:
      tags:
        - Cartridge9x19mmFMJ
    soundInsert:
      path: /Audio/Weapons/Guns/MagIn/bullet_insert.ogg
  - type: Sprite
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmSubMachineGunEmpty
  name: SMG magazine (9x19mm any)
  suffix: empty
  parent: BaseMagazine9x19mmSubMachineGunFMJ
  components:
  - type: BallisticAmmoProvider
    proto: null
  - type: Sprite
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmSubMachineGunPractice
  name: SMG magazine (9x19mm practice)
  parent: BaseMagazine9x19mmSubMachineGunFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmPractice
  - type: Sprite
    layers:
    - state: practice
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmSubMachineGunUranium
  name: SMG magazine (9x19mm uranium)
  parent: BaseMagazine9x19mmSubMachineGunFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmUranium
  - type: Sprite
    layers:
    - state: uranium
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  parent: BaseMagazine9x19mmSubMachineGunFMJ
  id: Magazine9x19mmSubMachineGunIncendiary
  name: SMG magazine (9x19mm incendiary)
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmIncendiary
  - type: Sprite
    layers:
    - state: red
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmSubMachineGunRubber
  name: SMG magazine (9x19mm rubber)
  parent: BaseMagazine9x19mmSubMachineGunFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmRubber
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_smg_mag.rsi
    layers:
    - state: rubber
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

# Frontier
- type: entity
  id: Magazine9x19mmSubMachineGunEmp
  name: SMG magazine (9x19mm emp)
  parent: BaseMagazine9x19mmSubMachineGunFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmEmp
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_smg_mag.rsi
    layers:
    - state: emp
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

#Mono AP system
#anti-flesh ammo
- type: entity
  id: Magazine9x19mmSubMachineGunHP
  name: SMG magazine (9x19mm hollow-point)
  parent: BaseMagazine9x19mmSubMachineGunFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmHP
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_smg_mag.rsi
    layers:
    - state: HP
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

- type: entity
  id: Magazine9x19mmSubMachineGunRIP
  name: SMG magazine (9x19mm RIP)
  parent: BaseMagazine9x19mmSubMachineGunFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmRIP
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_smg_mag.rsi
    layers:
    - state: RIP
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

#armor-piercing ammo

- type: entity
  id: Magazine9x19mmSubMachineGunPlasteelAP
  name: SMG magazine (9x19mm AP)
  parent: BaseMagazine9x19mmSubMachineGunFMJ
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge9x19mmPlasteelAP
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_smg_mag.rsi
    layers:
    - state: plasteelAP
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]

#End SubMachineGun mags
#Start TopMounted mags
- type: entity
  id: Magazine9x19mmSubMachineGunTopMountedFMJ
  name: top-mounted magazine (9x19mm top-mounted)
  parent: [ BaseItem, RecyclableItemSteelTiny ]
  components:
  - type: Tag
    tags:
      - Magazine9x19mmSubMachineGunTopMountedFMJ
  - type: BallisticAmmoProvider
    mayTransfer: true
    proto: Cartridge9x19mmFMJ
    whitelist:
      tags:
      - Cartridge9x19mmFMJ
    capacity: 30
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/Magazine/9x19mm/9x19mm_smg_mag_top_mounted.rsi
    layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-unshaded-1
        map: ["enum.GunVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: MagazineVisuals
    magState: mag
    steps: 6
    zeroVisible: false
  - type: Appearance
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container

- type: entity
  id: Magazine9x19mmSubMachineGunTopMountedEmpty
  name: top-mounted magazine (9x19mm top-mounted any)
  parent: Magazine9x19mmSubMachineGunTopMountedFMJ
  components:
  - type: BallisticAmmoProvider
    proto: null
#End TopMounted mags
