- type: entity
  id: BaseSpeedLoader556x45mm
  name: "speed loader (5.56x45mm FMJ)"
  parent: BaseItem
  abstract: true
  components:
  - type: Tag
    tags:
      - SpeedLoader556x45mmFMJ
  - type: SpeedLoader
  - type: BallisticAmmoProvider
    whitelist:
      tags:
        - Cartridge556x45mmFMJ
    capacity: 8
  - type: Sprite
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
        ents: []

- type: entity
  id: SpeedLoader556x45mmFMJ
  name: "speed loader (5.56x45mm FMJ)"
  parent: BaseSpeedLoader556x45mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge556x45mmFMJ
  - type: Icon
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/SpeedLoaders/5.56x45mm/5.56x45mm.rsi
    state: icon
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/SpeedLoaders/5.56x45mm/5.56x45mm.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: base-8
        map: [ "enum.GunVisualLayers.Mag" ]
  - type: MagazineVisuals
    magState: base
    steps: 9
    zeroVisible: false
  - type: Appearance

- type: entity
  id: SpeedLoader556x45mmEmpty
  name: "speed loader (5.56x45mm any)"
  parent: SpeedLoader556x45mmFMJ
  components:
  - type: BallisticAmmoProvider
    proto: null
  - type: Icon
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/SpeedLoaders/5.56x45mm/5.56x45mm.rsi
    state: base
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/SpeedLoaders/5.56x45mm/5.56x45mm.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: base-8
        map: [ "enum.GunVisualLayers.Mag" ]

- type: entity
  id: SpeedLoader556x45mmIncendiary
  name: "speed loader (5.56x45mm incendiary)"
  parent: BaseSpeedLoader556x45mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge556x45mmIncendiary
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/SpeedLoaders/5.56x45mm/5.56x45mm.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: base-8
        map: [ "enum.GunVisualLayers.Mag" ]
  - type: MagazineVisuals
    magState: base
    steps: 9
    zeroVisible: false
  - type: Appearance

- type: entity
  id: SpeedLoader556x45mmPractice
  name: "speed loader (5.56x45mm practice)"
  parent: BaseSpeedLoader556x45mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge556x45mmPractice
  - type: Icon
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/SpeedLoaders/5.56x45mm/5.56x45mm.rsi
    state: practice-icon
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/SpeedLoaders/5.56x45mm/5.56x45mm.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: practice-8
        map: [ "enum.GunVisualLayers.Mag" ]
  - type: MagazineVisuals
    magState: practice
    steps: 9
    zeroVisible: false
  - type: Appearance

- type: entity
  id: SpeedLoader556x45mmUranium
  name: "speed loader (5.56x45mm uranium)"
  parent: BaseSpeedLoader556x45mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge556x45mmUranium
  - type: Icon
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/SpeedLoaders/5.56x45mm/5.56x45mm.rsi
    state: uranium-icon
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/SpeedLoaders/5.56x45mm/5.56x45mm.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: uranium-8
        map: [ "enum.GunVisualLayers.Mag" ]
  - type: MagazineVisuals
    magState: uranium
    steps: 9
    zeroVisible: false
  - type: Appearance

- type: entity
  id: SpeedLoader556x45mmRubber
  name: "speed loader (5.56x45mm rubber)"
  parent: BaseSpeedLoader556x45mm
  components:
  - type: BallisticAmmoProvider
    proto: Cartridge556x45mmRubber
  - type: Icon
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/SpeedLoaders/5.56x45mm/5.56x45mm.rsi
    state: rubber-icon
  - type: Sprite
    sprite: _Mono/Objects/Weapons/Guns/Ammunition/SpeedLoaders/5.56x45mm/5.56x45mm.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: rubber-8
        map: [ "enum.GunVisualLayers.Mag" ]
  - type: MagazineVisuals
    magState: rubber
    steps: 9
    zeroVisible: false
  - type: Appearance
