# This is the default config. Rename it to curvy_pipes.yaml before making edit. Otherwise, it will be overwritten.

# If true, unknown pipes in save data will be deleted instead of crashing.
ignore_unknown_pipes: false

# Right-clicking an item pipe with this item will toggle it between being opaque and being transparent.
transparency_toggle_item: glass

# Customizable pipe types are defined here. You can remove this section entirely if you only want pipes added by cross-mod integrations, or the redstone cable.
pipe_types:
  - # ID of the pipe item
    id: tiny_item_pipe
    # Default translation of `item.curvy_pipes.tiny_item_pipe`
    name: Tiny Item Pipe
    # Texture must be in the `block` directory.
    texture: curvy_pipes:block/tiny_item_pipe
    # Smaller diameter allows more pipes to fit in tight (e.g. single block) space.
    # There is no upper limit on diameter: pipes can be multiple blocks wide.
    diameter: 0.1
    # Items per tick (can be smaller than 1)
    variant: { Item: { rate: 0.1 } }
  - { id: small_item_pipe, name: Small Item Pipe, texture: curvy_pipes:block/small_item_pipe, diameter: 0.2, variant: { Item: { rate: 1. } } }
  - { id: medium_item_pipe, name: Medium Item Pipe, texture: curvy_pipes:block/item_pipe, diameter: 0.4, variant: { Item: { rate: 10. } } }
  - { id: large_item_pipe, name: Large Item Pipe, texture: curvy_pipes:block/item_pipe, diameter: 0.8, variant: { Item: { rate: 100. } } }
  - { id: huge_item_pipe, name: Huge Item Pipe, texture: curvy_pipes:block/huge_item_pipe, diameter: 1.6, variant: { Item: { rate: 1E3 } } }

  # Fluid transfer rate is mB per tick.
  - { id: tiny_fluid_pipe, name: Tiny Fluid Pipe, texture: curvy_pipes:block/tiny_fluid_pipe, diameter: 0.1, variant: { Fluid: { rate: 10. } } }
  - { id: small_fluid_pipe, name: Small Fluid Pipe, texture: curvy_pipes:block/small_fluid_pipe, diameter: 0.2, variant: { Fluid: { rate: 100. } } }
  - { id: medium_fluid_pipe, name: Medium Fluid Pipe, texture: curvy_pipes:block/fluid_pipe, diameter: 0.4, variant: { Fluid: { rate: 1E3 } } }
  - { id: large_fluid_pipe, name: Large Fluid Pipe, texture: curvy_pipes:block/fluid_pipe, diameter: 0.8, variant: { Fluid: { rate: 10E3 } } }
  - { id: huge_fluid_pipe, name: Huge Fluid Pipe, texture: curvy_pipes:block/huge_fluid_pipe, diameter: 1.6, variant: { Fluid: { rate: 100E3 } } }

  # Energy transfer rate is FE per tick.
  - { id: tiny_energy_pipe, name: Tiny Energy Pipe, texture: curvy_pipes:block/tiny_energy_pipe, diameter: 0.1, variant: { Energy: { rate: 1E3 } } }
  - { id: small_energy_pipe, name: Small Energy Pipe, texture: curvy_pipes:block/small_energy_pipe, diameter: 0.2, variant: { Energy: { rate: 10E3 } } }
  - { id: medium_energy_pipe, name: Medium Energy Pipe, texture: curvy_pipes:block/energy_pipe, diameter: 0.4, variant: { Energy: { rate: 100E3 } } }
  - { id: large_energy_pipe, name: Large Energy Pipe, texture: curvy_pipes:block/energy_pipe, diameter: 0.8, variant: { Energy: { rate: 1E6 } } }
  - { id: huge_energy_pipe, name: Huge Energy Pipe, texture: curvy_pipes:block/huge_energy_pipe, diameter: 1.6, variant: { Energy: { rate: 10E6 } } }

# Applied Energistics 2 integration (ignored if AE2 is not installed)
ae2:
  # Automatically generate curvy variants of ME glass/covered/smart/dense covered/dense smart cables
  # and quartz fiber. No new items will be added. Instead, the curvy variants can be placed using the
  # corresponding AE2 items.
  # Allowed values:
  #   OffHand: using AE2 cables in off-hand will place the curvy variants.
  #   AnyHand: always place the curvy variants. The original AE2 variant can no longer be placed.
  #   Disable: do not generate the curvy variants.
  cables: OffHand

# GregTech CEu integration (ignored if GTCEu is not installed)
gtceu:
  # Automatically generate curvy EU cables, item pipes and fluid pipes for every GTCEu material.
  # No new items will be added. Instead, the curvy variants can be placed using the corresponding GTCEu items.
  # Note that the curvy item & fluid pipes use Curvy Pipes' logistics system and can't accept GTCEu covers.
  # The curvy fluid pipes follow the same temperature & material restrictions specified by the GTCEu pipes.
  # Curvy EU cables support amp-splitting, i.e. they can distribute load across parallel cables.
  # Allowed values: same as the AE2 integration above.
  eu_cables: OffHand
  item_pipes: OffHand
  fluid_pipes: OffHand

# You can customize recipes here. The format is similar to that of a vanilla datapack.
# You can also remove this section entirely if you want to use other mods to manage recipes.
recipes:
  item_base:
    result: { count: 1, item: curvy_pipes:small_item_pipe }
    type: crafting_shaped
    key: { A: { tag: forge:nuggets/gold }, B: { tag: forge:stone } }
    pattern: [ 'AAA', 'ABA', 'AAA' ]
  fluid_base:
    result: { count: 1, item: curvy_pipes:small_fluid_pipe }
    type: crafting_shaped
    key: { A: { tag: forge:gems/lapis }, B: { tag: forge:stone } }
    pattern: [ ' A ', 'ABA', ' A ' ]
  energy_base:
    result: { count: 1, item: curvy_pipes:small_energy_pipe }
    type: crafting_shaped
    key: { A: { tag: forge:dusts/redstone }, B: { tag: forge:stone } }
    pattern: [ ' A ', 'ABA', ' A ' ]

# Automatically generate shapeless recipes for up conversion (e.g. 4 small to 1 medium) and down conversion (e.g. 1 medium to 4 small) chains.
# You can remove this section entirely if you don't need them.
conversion_chains:
  - factor: 4
    items: [curvy_pipes:tiny_item_pipe, curvy_pipes:small_item_pipe, curvy_pipes:medium_item_pipe, curvy_pipes:large_item_pipe, curvy_pipes:huge_item_pipe]
  - factor: 4
    items: [curvy_pipes:tiny_fluid_pipe, curvy_pipes:small_fluid_pipe, curvy_pipes:medium_fluid_pipe, curvy_pipes:large_fluid_pipe, curvy_pipes:huge_fluid_pipe]
  - factor: 4
    items: [curvy_pipes:tiny_energy_pipe, curvy_pipes:small_energy_pipe, curvy_pipes:medium_energy_pipe, curvy_pipes:large_energy_pipe, curvy_pipes:huge_energy_pipe]
