# Configuration file

enabledmappers {
    # Allows other Mods to add Recipes to the EMC Calculation. [default: true]
    B:APICustomConversionMapper=true

    # Allows other mods to set EMC values using the ProjectEAPI [default: true]
    B:APICustomEMCMapper=true

    # Add mappings for Blocks that are created with the Chisel2-Chisel. [default: false]
    B:Chisel2Mapper=false

    # Add Conversions for Crafting Recipes gathered from net.minecraft.item.crafting.CraftingManager [default: true]
    B:CraftingMapper=true

    #  [default: true]
    B:CustomConversionMapper=true

    # Uses the `custom_emc.cfg` File to add EMC values. [default: true]
    B:CustomEMCMapper=true

    # Adds Conversions for fluid container items and fluids. [default: true]
    B:FluidMapper=true

    # Default values for Items [default: true]
    B:LazyMapper=true

    # Blacklist some OreDictionary names from getting an EMC value [default: true]
    B:OreDictionaryMapper=true

    # Add Conversions for `FurnaceRecipes` [default: true]
    B:SmeltingMapper=true
}


general {
    # Want to take a look at the internals of EMC Calculation? Enable this to write all the conversions and setValue-Commands to config/ProjectE/mappingdump.json [default: false]
    B:dumpEverythingToFile=false

    # Log known EMC Exploits. This can not and will not find all possible exploits. This will only find exploits that result in fixed/custom emc values that the algorithm did not overwrite. Exploits that derive from conversions that are unknown to ProjectE will not be found. [default: true]
    B:logEMCExploits=true

    # When the next EMC mapping occurs write the results to config/ProjectE/pregenerated_emc.json and only ever run the mapping again when that file does not exist, this setting is set to false, or an error occurred parsing that file. [default: false]
    B:pregenerate=false
}


mapperConfigurations {

    OreDictionaryMapper {
        # Set EMC=0 for everything that has an OD Name that starts with `ore`, `dust` or `crushed` besides `dustPlastic` [default: true]
        B:blacklistOresAndDusts=true
    }

    APICustomEMCMapper {

        customemcpriorities {
            I:IC2priority=1

            # Priority for Mod with ModId = uptodate. Values: 35 [range: 0 ~ 512, default: 1]
            I:uptodatepriority=1
        }

        permissions {

            uptodate {
                # Allow 'uptodate' to set and or remove values for 'uptodate'. Options: [both, set, remove, none] [default: both]
                S:uptodate=both
            }

            ic2 {
                S:IC2=both
            }

        }

    }

    CustomConversionMapper {
        # Read file: ODdefaults.json? [default: true]
        B:ODdefaults=true

        # Read file: example.json? [default: true]
        B:example=true

        # Read file: metals.json? [default: true]
        B:metals=true

        # Create the default files if they are not present, yet. Will not overwrite them, only create them when they are not present. [default: true]
        B:writeDefaultFiles=true
    }

    CraftingMapper {
        # If this option is enabled items that are made by crafting, with unconsumed ingredients, should only get an emc value, if the unconsumed item also has a value. (Examples: Extra Utilities Sigil, Cutting Board, Mixer, Juicer...) [default: true]
        B:emcDependencyForUnconsumedItems=true

        irecipeimplementations {
            # Maps custom IRecipe's from ProjectE [default: true]
            B:enablePECustomRecipeMapper=true

            # Maps `IRecipe` crafting recipes that extend `ShapedOreRecipe` or `ShapelessOreRecipe`. This includes CraftingRecipes that use OreDictionary ingredients. [default: true]
            B:enableVanillaOreRecipeMapper=true

            # Maps `IRecipe` crafting recipes that extend `ShapedRecipes` or `ShapelessRecipes` [default: true]
            B:enableVanillaRecipeMapper=true
        }

    }

    SmeltingMapper {
        # If X has a value and is smelted from Y, Y will get a value too. This is an experimental thing and might result in Mappings you did not expect/want to happen. [default: false]
        B:doBackwardsMapping=false
    }

    APICustomConversionMapper {

        allow {
            B:IC2=true
        }

    }

}


