- type: entity
  parent: BaseItem
  id: FloorTileItemBase
  description: These could work as a pretty decent throwing weapon.
  abstract: true
  components:
  - type: Sprite
    sprite: Objects/Tiles/tile.rsi
    netsync: false
  - type: Item
    sprite: Objects/Tiles/tile.rsi
  - type: DamageOtherOnHit
    damage:
      types:
        Blunt: 10
  - type: Stack
    count: 1
  - type: Tag
    tags:
      - DroneUsable
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 100
      behaviors:
      - !type:DoActsBehavior
        acts: [ "Destruction" ]

- type: entity
  name: steel tile
  parent: FloorTileItemBase
  id: FloorTileItemSteel
  components:
  - type: Sprite
    state: steel
  - type: Item
    HeldPrefix: steel
  - type: FloorTile
    outputs:
      - plating
      - floor_steel
  - type: Stack
    stackType: FloorTileSteel
  - type: Construction
    graph: TileSteel
    node: steeltile

- type: entity
  name: wood floor
  parent: FloorTileItemBase
  id: FloorTileItemWood
  components:
  - type: Sprite
    state: wood
  - type: Item
    HeldPrefix: wood
  - type: FloorTile
    outputs:
      - plating
      - floor_wood
  - type: Stack
    stackType: FloorTileWood
  - type: Construction
    graph: TileWood
    node: woodtile

- type: entity
  name: white tile
  parent: FloorTileItemBase
  id: FloorTileItemWhite
  components:
  - type: Sprite
    state: white
  - type: Item
    HeldPrefix: white
  - type: FloorTile
    outputs:
      - plating
      - floor_white
  - type: Stack
    stackType: FloorTileWhite
  - type: Construction
    graph: TileWhite
    node: whitetile

- type: entity
  name: dark tile
  parent: FloorTileItemBase
  id: FloorTileItemDark
  components:
  - type: Sprite
    state: dark
  - type: Item
    HeldPrefix: dark
  - type: FloorTile
    outputs:
      - plating
      - floor_dark
  - type: Stack
    stackType: FloorTileDark
  - type: Construction
    graph: TileDark
    node: darktile

- type: entity
  name: techmaint floor
  parent: FloorTileItemBase
  id: FloorTileItemTechmaint
  components:
  - type: Sprite
    state: techfloor
  - type: Item
    HeldPrefix: dark
  - type: FloorTile
    outputs:
      - plating
      - floor_techmaint
  - type: Stack
    stackType: FloorTileTechmaint

- type: entity
  name: reinforced tile
  parent: FloorTileItemBase
  id: FloorTileItemReinforced
  components:
  - type: Sprite
    state: reinforced
  - type: Item
    HeldPrefix: reinforced
  - type: FloorTile
    outputs:
      - plating
      - floor_reinforced
  - type: Stack
    stackType: FloorTileReinforced

# TODO add a catwalk tile item once tile smoothing is supported

- type: entity
  name: mono tile
  parent: FloorTileItemBase
  id: FloorTileItemMono
  components:
  - type: Sprite
    state: monofloor
  - type: Item
    HeldPrefix: steel
  - type: FloorTile
    outputs:
      - plating
      - floor_mono
  - type: Stack
    stackType: FloorTileMono

- type: entity
  name: linoleum floor
  parent: FloorTileItemBase
  id: FloorTileItemLino
  components:
  - type: Sprite
    state: lino
  - type: Item
    HeldPrefix: steel
  - type: FloorTile
    outputs:
      - plating
      - floor_lino
  - type: Stack
    stackType: FloorTileLino

- type: entity
  name: dirty tile
  parent: FloorTileItemBase
  id: FloorTileItemDirty
  components:
  - type: Sprite
    state: dirty
  - type: Item
    HeldPrefix: dirty
  - type: FloorTile
    outputs:
      - plating
      - floor_steel_dirty
  - type: Stack
    stackType: FloorTileDirty

- type: entity
  name: elevator shaft tile
  parent: FloorTileItemBase
  id: FloorTileItemElevatorShaft
  components:
  - type: Sprite
    state: dark
  - type: Item
    HeldPrefix: dark
  - type: FloorTile
    outputs:
      - plating
      - floor_elevator_shaft

- type: entity
  name: rock vault tile
  parent: FloorTileItemBase
  id: FloorTileItemRockVault
  components:
  - type: Sprite
    state: rockvault
  - type: Item
    HeldPrefix: steel
  - type: FloorTile
    outputs:
      - plating
      - floor_rock_vault

- type: entity
  name: blue tile
  parent: FloorTileItemBase
  id: FloorTileItemBlue
  components:
  - type: Sprite
    state: blue
  - type: Item
    HeldPrefix: carpet-blue
  - type: FloorTile
    outputs:
      - plating
      - floor_blue

# Departamental
- type: entity
  name: freezer tile
  parent: FloorTileItemBase
  id: FloorTileItemFreezer
  components:
  - type: Sprite
    state: showroom
  - type: Item
    HeldPrefix: showroom
  - type: FloorTile
    outputs:
      - plating
      - floor_freezer
  - type: Stack
    stackType: FloorTileFreezer

- type: entity
  name: showroom tile
  parent: FloorTileItemBase
  id: FloorTileItemShowroom
  components:
  - type: Sprite
    state: showroom
  - type: Item
    HeldPrefix: showroom
  - type: FloorTile
    outputs:
      - plating
      - floor_showroom
  - type: Stack
    stackType: FloorTileShowroom

- type: entity
  name: hydro tile
  parent: FloorTileItemBase
  id: FloorTileItemHydro
  components:
  - type: Sprite
    state: hydro
  - type: Item
    HeldPrefix: hydro
  - type: FloorTile
    outputs:
      - plating
      - floor_hydro
  - type: Stack
    stackType: FloorTileHydro

- type: entity
  name: bar tile
  parent: FloorTileItemBase
  id: FloorTileItemBar
  components:
  - type: Sprite
    state: bar
  - type: Item
    HeldPrefix: steel
  - type: FloorTile
    outputs:
      - plating
      - floor_bar

- type: entity
  name: clown tile
  parent: FloorTileItemBase
  id: FloorTileItemClown
  components:
  - type: Sprite
    state: clown
  - type: Item
    HeldPrefix: steel
  - type: FloorTile
    outputs:
      - plating
      - floor_clown

- type: entity
  name: mime tile
  parent: FloorTileItemBase
  id: FloorTileItemMime
  components:
  - type: Sprite
    state: mime
  - type: Item
    HeldPrefix: steel
  - type: FloorTile
    outputs:
      - plating
      - floor_mime

- type: entity
  name: kitchen tile
  parent: FloorTileItemBase
  id: FloorTileItemKitchen
  components:
  - type: Sprite
    state: kitchen
  - type: Item
    HeldPrefix: dark
  - type: FloorTile
    outputs:
      - plating
      - floor_kitchen

- type: entity
  name: laundry tile
  parent: FloorTileItemBase
  id: FloorTileItemLaundry
  components:
  - type: Sprite
    state: laundry
  - type: Item
    HeldPrefix: steel
  - type: FloorTile
    outputs:
      - plating
      - floor_laundry

# Carpets
- type: entity
  name: blue arcade floor
  parent: FloorTileItemBase
  id: FloorTileItemArcadeBlue
  components:
  - type: Sprite
    state: arcadeblue
  - type: Item
    HeldPrefix: arcadeblue
  - type: FloorTile
    outputs:
      - plating
      - FloorArcadeBlue
  - type: Stack
    stackType: FloorTileStackArcadeBlue

- type: entity
  name: red arcade floor
  parent: FloorTileItemBase
  id: FloorTileItemArcadeRed
  components:
  - type: Sprite
    state: arcadered
  - type: Item
    HeldPrefix: arcadered
  - type: FloorTile
    outputs:
      - plating
      - FloorArcadeRed
  - type: Stack
    stackType: FloorTileStackArcadeRed

- type: entity
  name: eighties floor
  parent: FloorTileItemBase
  id: FloorTileItemEighties
  components:
  - type: Sprite
    state: eighties
  - type: Item
    HeldPrefix: eighties
  - type: FloorTile
    outputs:
      - plating
      - FloorEighties
  - type: Stack
    stackType: FloorTileStackEighties

# Shuttles
- type: entity
  name: white shuttle floor
  parent: FloorTileItemBase
  id: FloorTileItemShuttleWhite
  components:
  - type: Sprite
    state: shuttlewhite
  - type: Item
    HeldPrefix: shuttlewhite
  - type: FloorTile
    outputs:
      - plating
      - FloorShuttleWhite
  - type: Stack
    stackType: FloorTileStackShuttleWhite

- type: entity
  name: blue shuttle floor
  parent: FloorTileItemBase
  id: FloorTileItemShuttleBlue
  components:
  - type: Sprite
    state: shuttleblue
  - type: Item
    HeldPrefix: shuttleblue
  - type: FloorTile
    outputs:
      - plating
      - FloorShuttleBlue
  - type: Stack
    stackType: FloorTileStackShuttleBlue

- type: entity
  name: orange shuttle floor
  parent: FloorTileItemBase
  id: FloorTileItemShuttleOrange
  components:
  - type: Sprite
    state: shuttleorange
  - type: Item
    HeldPrefix: shuttleorange
  - type: FloorTile
    outputs:
      - plating
      - FloorShuttleOrange
  - type: Stack
    stackType: FloorTileStackShuttleOrange

- type: entity
  name: purple shuttle floor
  parent: FloorTileItemBase
  id: FloorTileItemShuttlePurple
  components:
  - type: Sprite
    state: shuttlepurple
  - type: Item
    HeldPrefix: shuttlepurple
  - type: FloorTile
    outputs:
      - plating
      - FloorShuttlePurple
  - type: Stack
    stackType: FloorTileStackShuttlePurple

- type: entity
  name: red shuttle floor
  parent: FloorTileItemBase
  id: FloorTileItemShuttleRed
  components:
  - type: Sprite
    state: shuttlered
  - type: Item
    HeldPrefix: shuttlered
  - type: FloorTile
    outputs:
      - plating
      - FloorShuttleRed
  - type: Stack
    stackType: FloorTileStackShuttleRed

# Materials
- type: entity
  name: gold floor
  parent: FloorTileItemBase
  id: FloorTileItemGold
  components:
  - type: Sprite
    state: gold
  - type: Item
    HeldPrefix: gold
  - type: FloorTile
    outputs:
      - plating
      - floor_gold
  - type: Stack
    stackType: FloorTileGold

- type: entity
  name: silver tile
  parent: FloorTileItemBase
  id: FloorTileItemSilver
  components:
  - type: Sprite
    state: silver
  - type: Item
    HeldPrefix: silver
  - type: FloorTile
    outputs:
      - plating
      - floor_silver

# Circuits
- type: entity
  name: green circuit floor
  parent: FloorTileItemBase
  id: FloorTileItemGCircuit
  components:
  - type: Sprite
    state: gcircuit
  - type: Item
    HeldPrefix: gcircuit
  - type: FloorTile
    outputs:
      - plating
      - floor_green_circuit

- type: entity
  name: blue circuit floor
  parent: FloorTileItemBase
  id: FloorTileItemBCircuit
  components:
  - type: Sprite
    state: bcircuit
  - type: Item
    HeldPrefix: bcircuit
  - type: FloorTile
    outputs:
      - plating
      - floor_blue_circuit

# Terrain
- type: entity
  name: grass tile
  parent: FloorTileItemBase
  id: FloorTileItemGrass
  components:
  - type: Sprite
    state: grass
  - type: Item
    HeldPrefix: grass
  - type: FloorTile
    outputs:
      - plating
      - floor_grass

- type: entity
  name: jungle grass tile
  parent: FloorTileItemBase
  id: FloorTileItemGrassJungle
  components:
  - type: Sprite
    state: grassjungle
  - type: Item
    HeldPrefix: grassjungle
  - type: FloorTile
    outputs:
      - plating
      - FloorGrassJungle

- type: entity
  name: snow tile
  parent: FloorTileItemBase
  id: FloorTileItemSnow
  components:
  - type: Sprite
    state: snow
  - type: Item
    HeldPrefix: snow
  - type: FloorTile
    outputs:
      - plating
      - floor_snow
