# Configuration file

client {
    # Clears the baked models generated in the first pass *before* entering the second pass, instead of *after*. While this doesn't reduce memory usage in-game, it does reduce it noticeably during loading. [default: true]
    B:clearDuplicateModelRegistry=true

    # Enable deduplication of redundant objects in memory. [default: true]
    B:deduplicateModels=true

    # The maximum amount of levels of recursion for the deduplication process. Smaller values will deduplicate less data, but make the process run faster. [range: 1 ~ 2147483647, default: 6]
    I:deduplicateModelsMaxRecursion=6

    # Disables texture animations. [default: false]
    B:disableTextureAnimations=false
    B:fasterResourceLoading=true

    # Initialize the options.txt and forge.cfg files with rendering performance-friendly defaults if not present. [default: true]
    B:initOptions=true
}


coremod {
    # Stops certain non-Minecraft-related libraries from being ASM transformed. You shouldn't be transforming those anyway. [default: true]
    B:blacklistLibraryTransformers=true

    # Make 3D forms of items be rendered dynamically and cached when necessary. [default: true]
    B:dynamicItemModels=true

    # Optimizes ItemStack.isEmpty by removing a map lookup. [default: true]
    B:fasterAirItemLookup=true

    # Optimizes the backing map for EntityDataManager, saving memory *and* CPU time! [default: true]
    B:fasterEntityDataManager=true

    # Speeds up entity lookup by optimizing ClassInheritanceMultiMap.getByClass. [default: true]
    B:fasterEntityLookup=true

    # Optimizes blockstate property equals and hashCode methods. [default: true]
    B:fasterPropertyComparisons=true
    B:fasterSideTransformer=true
    B:optimizedBlockInfo=true

    # Optimizes BlockPos mutable/immutable getters to run on the same variables, letting them be inlined and thus theoretically increasing performance. [default: true]
    B:optimizedBlockPos=true

    # Replaces Class.getSimpleName in World.updateEntities with getName. As Class.getName's output is cached, unlike getSimpleName, this should provide a small performance boost. [default: true]
    B:replaceWorldSimpleName=true

    # Replaces the default BlockState/ExtendedBlockState implementations with a far more memory-efficient variant. [default: true]
    B:smallPropertyStorage=true
}


experimental {
    B:chunkedBlockInfo=false

    # Implements optimizations to VertexLighter(Flat) inspired by thecodewarrior and bs2609's work. [default: true]
    B:fasterVertexLighter=true

    # Threaded, parallel model baking. [default: true]
    B:parallelModelBaking=true
    B:smallLightingOptimize=true
    B:smallPropertyStorage=true
}


expert {
    B:immediateLightingUpdates=false
}


launchwrapper {
    B:dummyPackageManifestMap=true

    # Weaken LaunchWrapper's byte[] resource cache to make it cleanuppable by the GC. Safe. [default: true]
    B:weakenResourceCache=true
}


tweaks {
    # Prevent redstone from causing light updates by removing its light level. [default: false]
    B:disableRedstoneLight=false

    # Do not delay lighting updates over other types of updates. [default: false]
    B:immediateLightingUpdates=false
}


