- type: entity
  parent: [ BaseMachinePowered, ConstructibleMachine ]
  id: Shredder
  name: shredder
  description: It shreds things. What more is there to say?
  components:
  - type: Sprite
    sprite: _NF/Structures/Machines/shredder.rsi
    snapCardinals: true
    layers:
    - state: icon
      map: ["enum.LatheVisualLayers.IsRunning"]
    - state: normal
      shader: unshaded
      map: ["enum.PowerDeviceVisualLayers.Powered"]
    - state: shredding-empty
      map: ["enum.MaterialStorageVisualLayers.Inserting"]
  - type: Appearance
  - type: WiresVisuals
  - type: GenericVisualizer
    visuals:
      enum.PowerDeviceVisuals.Powered:
        enum.DamageStateVisualLayers.Base:
          True: { state: shredding-empty}
          False: { state: off }
        enum.PowerDeviceVisualLayers.Powered:
          True: { visible: true }
          False: { visible: false }
  - type: LitOnPowered
  - type: PointLight
    radius: 1.5
    energy: 1.6
    enabled: false
    color: "#da824d"
    mask: /Textures/Effects/LightMasks/cone.png
    autoRot: true
    offset: "0, 0.4"
    castShadows: false
  - type: PowerSwitch
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 100
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: MetalGlassBreak
      - !type:ChangeConstructionNodeBehavior
        node: machineFrame
      - !type:DoActsBehavior
        acts: ["Destruction"]
  - type: Machine
    board: ShredderMachineCircuitboard
  - type: MaterialReclaimer
    whitelist:
      components:
        - Currency
        - Mail
      tags:
        - Paper
    soundCooldown: 0
    sound:
      path: /Audio/Ambience/Objects/crushing.ogg
      params:
        volume: 5
        maxDistance: 5
        loop: true
  - type: MaterialStorage
    insertOnInteract: false
  - type: ContainerContainer
    containers:
      active-material-reclaimer-container: !type:Container
      machine_board: !type:Container
      machine_parts: !type:Container
  - type: ApcPowerReceiver # Frontier
    powerLoad: 500 # Allows us to not use the 1000 baseline
  - type: MaterialReclaimerMagnetPickup # Frontier
    range: 0.30
    magnetEnabled: false
