# Configuration file

~CONFIG_VERSION: 2.1

##########################################################################################################
# general_settings
#--------------------------------------------------------------------------------------------------------#
# ATTENTION: Editing this file manually is no longer necessary UNLESS YOU ARE ADDING NEW MODS/TREES. 
# On the Mods list screen select the entry for Treecapitator, then click the Config button to modify these settings.
##########################################################################################################

general_settings {
    # [Global] Set to true to enable Treecapitator, false to disable. [default: true]
    B:enabled=true

    miscellaneous_settings {
        # [Global] Set to true if you want Treecapitator to log info about what it's doing, false to disable.
        # If you are having an issue with the mod, set this option to true and post the resulting log to the
        # Treecapitator Minecraftforum.net thread along with a detailed description of the issue. [default: false]
        B:allowDebugLogging=false

        # [Global] Flag to disable drops in Creative mode [default: false]
        B:disableCreativeDrops=false

        # [Global] Flag to disable tree chopping in Creative mode [default: false]
        B:disableInCreative=false

        # [Global] When true, Treecapitator will scan the Forge Ore Dictionary for blocks with an ore name matching
        # one of the strings in oreDictionaryLogStrings and generate a generic tree definition for them on the fly. 
        # When false oreDictionaryLogStrings and oreDictionaryLeafStrings will be ignored. [default: false]
        B:allowOreDictionaryLookup=false

        # [Global] The list of log type values to check for in the Forge Ore Dictionary. Entries are comma (,) separated. [default: logWood, woodRubber,]
        S:oreDictionaryLogStrings=logWood, woodRubber,

        # [Global] The list of leaf type values to check for in the Forge Ore Dictionary. Entries are comma (,) separated. [default: treeLeaves,]
        S:oreDictionaryLeafStrings=treeLeaves,

        # [Global] Add unique block names to this list if you want to keep them from being registered as logs. This list will override
        # the local user configuration, inter-mod communication (IMC) configuration, and the Ore Dictionary scanning feature.
        # Use ',' to split block name from metadata and ';' to split entries.
        # Refer to the UniqueNames.txt file in the config folder for a list of values. [default: ]
        S:blockIDBlacklist=

        # [Global] Add unique item names to this list if you want to keep them from being registered as axes. This list will override
        # the local user configuration and inter-mod communication (IMC) configuration.
        # Use ',' to split item name from metadata and ';' to split entries.
        # Refer to the UniqueNames.txt file in the config folder for a list of values. [default: ]
        S:itemIDBlacklist=
    }

    break_speed_settings {
        # [Global, PerTree] When using an item that can chop trees, the break speed will by multiplied by this value
        # THIS OPTION IS IGNORED WHEN treeHeightDecidesBreakSpeed=true [range: 0.01 ~ 1.0, default: 0.256]
        S:breakSpeedModifier=0.256

        # [Global] When true, the log break speed is equal to original break speed / (tree height * <treeHeightModifier>)
        # When false, the original break speed is multiplied by the breakSpeedModifier value [default: true]
        B:treeHeightDecidesBreakSpeed=true

        # [Global] See description for treeHeightDecidesBreakSpeed [range: 0.25 ~ 10.0, default: 2.0]
        S:treeHeightModifier=2.0
    }

    item_settings {
        # [Global] This setting controls whether or not Treecapitator will automatically detect axe-type items. This is
        # done by checking the effectiveness of the tool against logs.
        # Set to true to enable this feature, false to disable. [default: true]
        B:allowAutoAxeDetection=true

        # [Global] Whether you need an item from the axeIDList to chop down a tree. Disabling will let you chop 
        # trees with any item. [default: true]
        B:needItem=true

        # [Global] Enable to cause item damage based on number of blocks destroyed [default: true]
        B:allowItemDamage=true

        # [Global] Axes and shears will take damage this many times for each log broken. Remaining damage is 
        # rounded and applied to tools when a tree is finished. [range: 0.1 ~ 50.0, default: 1.0]
        S:damageMultiplier=1.0

        # [Global] Enable to allow chopping down the entire tree even if your item does not have enough damage 
        # remaining to cover the number of blocks. [default: false]
        B:allowMoreBlocksThanDamage=false

        # [Global] Set to true to have the per-block item damage amount increase after every 
        # increaseDamageEveryXBlocks blocks are broken. [default: false]
        B:useIncreasingItemDamage=false

        # [Global] When useIncreasingItemDamage=true the damage applied per block broken will increase by this 
        # amount every increaseDamageEveryXBlocks blocks broken in a tree. [range: 0.1 ~ 100.0, default: 1.0]
        S:damageIncreaseAmount=1.0

        # [Global] When useIncreasingItemDamage=true the damage applied per block broken will increase each time 
        # this many blocks are broken in a tree. [range: 1 ~ 500, default: 8]
        I:increaseDamageEveryXBlocks=8
    }

    tree_chop_behavior_settings {
        # [Global] This setting controls whether or not Treecapitator will automatically detect new trees when they are
        # chopped. This is done by first checking Block.isLog() for the block broken, finding the highest connected block
        # of the same type above the block broken, and checking Block.isLeaves() for the blocks around the top log. If
        # enough leaf blocks are found the structure is considered a tree and is added to the TreeRegistry. Trees will
        # also be added to your local config file to allow for tweaking of settings if desired.
        # Set to true to enable this feature, false to disable. [default: true]
        B:allowAutoTreeDetection=true

        # [Global, PerTree] Set to false to disable Treecapitator Smart Tree Detection.
        # Smart Tree Detection counts the number of leaf blocks that are adjacent to the
        # top-most connected log block at the x, z location of a log you've broken. If
        # there are at least minLeavesToID leaf blocks within maxLeafIDDist blocks then
        # Treecapitator considers it a tree and allows chopping.
        # WARNING: Disabling Smart Tree Detection will remove the only safeguard against
        # accidentally destroying a log structure.  Make sure you know what you're doing! [default: true]
        B:allowSmartTreeDetection=true

        # [Global, PerTree] If a tree's top log is not close enough to leaf blocks, the tree will not be chopped.
        # Increasing this value will search further.  I would try to keep it at or below 3. [range: 1 ~ 8, default: 1]
        I:maxLeafIDDist=1

        # [Global, PerTree] The minimum number of leaves within maxLeafIDDist of the top log block required to identify a tree. [range: 0 ~ 8, default: 3]
        I:minLeavesToID=1

        # [Global, PerTree] Set to false to use the older "top log" algorithm for finding the top log of a tree.
        # The old algorithm searches only the vertical column of blocks above the log you are chopping,
        # the newer algorithm is able to branch out to find the true top log of a tree. [default: true]
        B:useAdvancedTopLogLogic=true

        # [Global] Set to true if you want only the log/leaf blocks listed with each log in a tree
        # to break when that log type is chopped.  When set to false it will break
        # any log/leaf type blocks connected to the tree, not just the types for that tree. [default: true]
        B:useStrictBlockPairing=true

        # [Global] Enabling this will make leaves be destroyed when trees are chopped. [default: true]
        B:destroyLeaves=true

        # [Global, PerTree] When true Treecapitator will only instantly decay leaves that have actually been marked 
        # for decay. Set to false if you want leaves to be destroyed regardless of their decay status 
        # (hint: or for "leaf" blocks that are not really leaves). [default: true]
        B:requireLeafDecayCheck=true

        # [Global] Enabling this will cause destroyed leaves to be sheared when a shearing item is in the hotbar 
        # (ignored if destroyLeaves is false). [default: false]
        B:shearLeaves=false

        # [Global] Enabling this will shear /some/ of the vines on a tree when a shearing item is in the hotbar 
        # (ignored if destroyLeaves is false). [default: false]
        B:shearVines=false

        # [Gloabl] The maximum number of blocks allowed in a tree to be chopped. If a tree has more blocks than this 
        # chopping will be canceled. Set to -1 for no limit. [range: -1 ~ 2147483647, default: -1]
        I:maxNumberOfBlocksInTree=-1

        # [Global, PerTree] The maximum horizontal distance that the leaf breaking effect will travel from the tree (use -1 for no limit). [range: -1 ~ 100, default: 4]
        I:maxHorLeafBreakDist=4

        # [Global, PerTree] The maximum horizontal distance that the log breaking effect will travel (use -1 for no limit). [range: -1 ~ 100, default: 16]
        I:maxHorLogBreakDist=16

        # [Global, PerTree] The maximum vertical distance that the log breaking effect will travel (use -1 for no limit). [range: -1 ~ 255, default: -1]
        I:maxVerLogBreakDist=-1

        # [Global, PerTree] Setting this to false will allow the chopping to move downward as well as upward (and 
        # blocks below the one you break will be chopped) [default: true]
        B:onlyDestroyUpwards=true

        # [Global] Set sneakAction = "disable" to disable tree chopping while sneaking,
        # set sneakAction = "enable" to only enable tree chopping while sneaking,
        # set sneakAction = "none" to have tree chopping enabled regardless of sneaking. [default: disable]
        S:sneakAction=disable

        # [Global] Set to true to enable the stacking of dropped items, false to disable. [default: false]
        B:stackDrops=false

        # [Global] Set to true to have items drop in place, false to have them drop at the player's position. [default: true]
        B:itemsDropInPlace=true
    }

    enchantment_mode_settings {
        # [Global] Toggle for whether or not to use the Treecapitating enchantment as opposed to requiring an item 
        # to be in the axeIDList to chop a tree. [default: false]
        B:enableEnchantmentMode=false

        # [Global] The internal ID for the Treecapitating enchantment. Change this if the default ID is conflicting 
        # with another mod. [range: 0 ~ 255, default: 187]
        I:enchantmentID=187

        # [Global] Whether or not to check the axe ID list for an item when determining if a given item can be 
        # imbued with the Treecapitating enchantment.
        # NOTE: when set to false, any ItemTool type item (pickaxes, shovels, etc) with a high enough 
        # enchantability level can get the enchantment, not just axes. [default: true]
        B:requireItemInAxeListForEnchant=true
    }

}


##########################################################################################################
# tree_and_mod_configs
#--------------------------------------------------------------------------------------------------------#
# This category is where all your settings live that are related to trees, items that can chop trees, and mods.
# NOTE: Using item or block number IDs WILL NOT WORK. Refer to the UniqueNames.txt file in the config folder for the list of block and item IDs.
# 
# How to add new mods: 
# 
# Keep in mind that you can also include settings marked with [PerTree] on a per-tree basis to override the global default values.
# 
# Format:
#     <section_name> { (typically same as modID)
#         S:modID=<modID> (this can be found on the Mods screen in game or in mcmod.info)
#         S:axeIDList=<unique_item_identifier>,<optional metadata>; minecraft:wooden_axe; minecraft:stone_axe
#         S:shearsIDList=<unique_item_identifier>,<optional metadata>
#         B:overrideIMC=<optional, defaults to false) whether or not a mod's user config (this file) should             override a mod's IMC config (IMC allows mods to send messages to each other for compatibility)
# 
#         <tree_name> { (the tree name is just for organization and clarity)
#             # logs/leaves: list of unique block name values. "," separates name and metadata, ";" separates block entries
#             S:logs=<unique block identifier>,<optional metadata>; <unique_block_identifier>,0; minecraft:log,0
#             S:leaves=<unique block identifier>,<optional metadata>; <unique_block_identifier>,0; minecraft:leaves,0
#             [optionally add per-tree settings here]
# 
#         }
#     }
##########################################################################################################

tree_and_mod_configs {
    # This setting controls whether or not IMC config messages sent by other mods will be saved to the local
    # config file when they are processed by Treecapitator. The message will only be saved if your local config
    # for a given mod is not set to override the IMC message. [default: true]
    B:saveIMCConfigsToFile=true

    # This setting controls the default behavior when a mod is both configured manually (in the config file) and 
    # by the mod itself via IMC (inter-mod communication). [default: false]
    B:userConfigOverridesIMC=false

    ##########################################################################################################
    # 1_vanilla_trees_and_items
    #--------------------------------------------------------------------------------------------------------#
    # This special category is the home of the vanilla tree block and item configurations. You can change the 
    # values in this category to suit your preferences.
    # 
    # WARNING: This config category must not be removed! If this category is renamed or removed Treecapitator 
    # will assume your config file is new and reload the default user mod config settings!
    ##########################################################################################################

    1_vanilla_trees_and_items {
        M:modID=minecraft
        S:axeIDList=minecraft:wooden_axe; minecraft:stone_axe; minecraft:iron_axe; minecraft:golden_axe; minecraft:diamond_axe
        S:shearsIDList=minecraft:shears

        # This setting controls whether or not the mod config section it appears in will override an IMC message sent by that mod. [default: false]
        B:overrideIMC=false

        vanilla_acacia {
            S:logs=minecraft:log2, 0 % 4
            S:leaves=minecraft:leaves2, 0 % 8
        }

        vanilla_birch {
            S:logs=minecraft:log, 2 % 4
            S:leaves=minecraft:leaves, 2 % 8
        }

        vanilla_dark_oak {
            S:logs=minecraft:log2, 1 % 4
            S:leaves=minecraft:leaves2, 1 % 8
        }

        vanilla_future_tree_1 {
            S:logs=minecraft:log2, 2 % 4
            S:leaves=minecraft:leaves2, 2 % 8
        }

        vanilla_future_tree_2 {
            S:logs=minecraft:log2, 3 % 4
            S:leaves=minecraft:leaves2, 3 % 8
        }

        vanilla_huge_brown_mushroom {
            S:logs=minecraft:brown_mushroom_block, 10; minecraft:brown_mushroom_block, 15
            S:leaves=minecraft:brown_mushroom_block, 1; minecraft:brown_mushroom_block, 2; minecraft:brown_mushroom_block, 3; minecraft:brown_mushroom_block, 4; minecraft:brown_mushroom_block, 5; minecraft:brown_mushroom_block, 6; minecraft:brown_mushroom_block, 7; minecraft:brown_mushroom_block, 8; minecraft:brown_mushroom_block, 9; minecraft:brown_mushroom_block, 14
            B:requireLeafDecayCheck=false
            I:maxHorLeafBreakDist=6
        }

        vanilla_huge_red_mushroom {
            S:logs=minecraft:red_mushroom_block, 10; minecraft:red_mushroom_block, 15
            S:leaves=minecraft:red_mushroom_block, 1; minecraft:red_mushroom_block, 2; minecraft:red_mushroom_block, 3; minecraft:red_mushroom_block, 4; minecraft:red_mushroom_block, 5; minecraft:red_mushroom_block, 6; minecraft:red_mushroom_block, 7; minecraft:red_mushroom_block, 8; minecraft:red_mushroom_block, 9; minecraft:red_mushroom_block, 14
            B:requireLeafDecayCheck=false
            I:maxHorLeafBreakDist=6
        }

        vanilla_jungle {
            S:logs=minecraft:log, 3 % 4
            S:leaves=minecraft:leaves, 3 % 8; minecraft:leaves, 0 % 8
            B:requireLeafDecayCheck=false
            I:maxHorLeafBreakDist=6
        }

        vanilla_oak {
            S:logs=minecraft:log, 0 % 4
            S:leaves=minecraft:leaves, 0 % 8
        }

        vanilla_spruce {
            S:logs=minecraft:log, 1 % 4
            S:leaves=minecraft:leaves, 1 % 8
        }

    }

    biomesoplenty {
        S:axeIDList=BiomesOPlenty:axeMud; BiomesOPlenty:axeAmethyst
        M:modID=BiomesOPlenty
        B:overrideIMC=false
        S:shearsIDList=

        bop_cherry {
            S:leaves=BiomesOPlenty:leaves3, 3 % 8
            S:logs=BiomesOPlenty:logs1, 1 % 4
        }

        bop_darkwood {
            S:leaves=BiomesOPlenty:leaves1, 3 % 8
            S:logs=BiomesOPlenty:logs1, 2 % 4
        }

        bop_magic {
            S:leaves=BiomesOPlenty:leaves1, 2 % 8
            S:logs=BiomesOPlenty:logs2, 1 % 4
        }

    }

    ic2 {
        S:axeIDList=IC2:itemToolBronzeAxe; IC2:itemToolChainsaw
        M:modID=IC2
        B:overrideIMC=false
        S:shearsIDList=IC2:itemToolChainsaw

        ic2_rubber_tree {
            S:leaves=IC2:blockRubLeaves
            S:logs=IC2:blockRubWood
        }

    }

    natura {
        S:axeIDList=Natura:natura.axe.bloodwood; Natura:natura.axe.darkwood; Natura:natura.axe.fusewood; Natura:natura.axe.ghostwood; Natura:natura.axe.netherquartz
        M:modID=Natura
        B:overrideIMC=false
        S:shearsIDList=

        eucalyptus {
            S:leaves=Natura:floraleaves, 1 % 8
            S:logs=Natura:tree, 0 % 4
        }

        ghostwood {
            S:leaves=Natura:floraleavesnocolor, 1 % 8
            S:logs=Natura:tree, 2 % 4
        }

        hopseed {
            S:leaves=Natura:floraleaves, 2 % 8
            S:logs=Natura:tree, 3 % 4
        }

        sakura {
            S:leaves=Natura:floraleavesnocolor, 0 % 8
            S:logs=Natura:tree, 1 % 4
        }

    }

    tconstruct {
        S:axeIDList=TConstruct:hatchet; TConstruct:mattock; TConstruct:lumberaxe
        M:modID=TConstruct
        B:overrideIMC=false
        S:shearsIDList=
    }

    thaumcraft {
        S:axeIDList=Thaumcraft:ItemAxeThaumium; Thaumcraft:ItemAxeElemental
        M:modID=Thaumcraft
        B:overrideIMC=false
        S:shearsIDList=

        greatwood {
            S:leaves=Thaumcraft:blockMagicalLeaves, 0 % 8
            S:logs=Thaumcraft:blockMagicalLog, 0 % 4
            I:maxHorLeafBreakDist=7
            B:requireLeafDecayCheck=false
        }

        silverwood {
            S:leaves=Thaumcraft:blockMagicalLeaves, 1 % 8
            S:logs=Thaumcraft:blockMagicalLog, 1 % 4
        }

    }

    twilightforest {
        S:axeIDList=TwilightForest:item.ironwoodAxe; TwilightForest:item.knightlyAxe; TwilightForest:item.minotaurAxe; TwilightForest:item.steeleafAxe
        M:modID=TwilightForest
        B:overrideIMC=false
        S:shearsIDList=

        tf_canopy {
            S:leaves=TwilightForest:tile.TFLeaves, 1 % 8
            S:logs=TwilightForest:tile.TFLog, 1 % 4
        }

        tf_darkwood {
            S:leaves=TwilightForest:tile.TFHedge, 1
            S:logs=TwilightForest:tile.TFLog, 3 % 4
            I:maxHorLeafBreakDist=5
            I:maxLeafIDDist=2
            B:requireLeafDecayCheck=false
        }

        tf_mangrove {
            S:leaves=TwilightForest:tile.TFLeaves, 2 % 8
            S:logs=TwilightForest:tile.TFLog, 2 % 4
        }

        tf_miner {
            S:leaves=TwilightForest:tile.TFMagicLeaves, 2 % 8
            S:logs=TwilightForest:tile.TFMagicLog, 2 % 4; TwilightForest:tile.TFMagicLogSpecial, 2 % 4
        }

        tf_oak {
            S:leaves=TwilightForest:tile.TFLeaves, 0 % 8
            S:logs=TwilightForest:tile.TFLog, 0 % 4
        }

        tf_sorting {
            S:leaves=TwilightForest:tile.TFMagicLeaves, 3 % 8
            S:logs=TwilightForest:tile.TFMagicLog, 3 % 4; TwilightForest:tile.TFMagicLogSpecial, 3 % 4
        }

        tf_time {
            S:leaves=TwilightForest:tile.TFMagicLeaves, 0 % 8
            S:logs=TwilightForest:tile.TFMagicLog, 0 % 4; TwilightForest:tile.TFMagicLogSpecial, 0 % 4
        }

        tf_transformation {
            S:leaves=TwilightForest:tile.TFMagicLeaves, 1 % 8
            S:logs=TwilightForest:tile.TFMagicLog, 1 % 4; TwilightForest:tile.TFMagicLogSpecial, 1 % 4
        }

    }

}


