# Configuration file

~CONFIG_VERSION: 7

common {
    # Allow to use NPOT Texture in order to reduce resource consumption.
    B:allowNPOTTexture=true

    # Experimental: Try interpolation for MOD original font renderer.
    B:alternativeInterpolation=false

    # Automatic detection of brightness.
    B:autoBrightness=true

    # Enable a blur reduction for fonts less than or equal to the specified size.(0~16)
    I:blurReduction=10

    # Brightness correction level for interpolated fonts.
    I:brightness=1

    # This value is an option to adjust the rounding method of the character width that can be obtained by getCharWidth().
    # The character widths are rounded up if the fractions of the character width are equal to or more than this fraction value.
    # Other character widths are rounded down. (Default: 0.3333335)
    D:charWidthFractionToRoundUp=0.3333335

    # Disable italic for small fonts.
    B:disableSmallItalic=false

    # Enable alpha blending
    B:enableAlphaBlend=true

    # Enable anisotropic filtering.
    B:enableAnisotropicFilter=true

    # Enable double rendering
    B:enableDouble=false

    # Enable linear interpolation
    B:enableInterpolation=true

    # Enable mipmap for fonts.
    B:enableMipmap=true

    # Enable premultiplied alpha instead of straight alpha.
    B:enablePremultipliedAlpha=false

    # Disable interpolation for characters drawn with high magnification.
    B:excludeHighMag=true

    # Disable interpolation for the integral multiple of default size.
    B:excludeIntMultiple=true

    # Tolerance (in percent) for rounding font scale to integer.(Default: 0.5)
    D:fontScaleRoundingTolerance=0.5

    # Force to use unicode font.
    B:forceUnicode=false

    # Disable interpolation for fonts above this magnification when excludeHighMag is enabled.(Default: 3.0)
    D:limitMagnification=3.0

    # Mipmap level.
    I:mipmapLevel=4

    # Mipmap LOD bias.
    I:mipmapLodBias=-3

    # Mipmap LOD bias for overlay screen.
    I:overlayLodBias=-5

    # Prioritize performance rather than quality.
    B:performanceMode=false

    # Enable odd multiple GUI scale factors (x3,x5,...) when using unicode font.
    B:removeScaleRestriction=true

    # Select run mode. (0:Enable mod, 1:Disable mod, 2:Disable mod(Optimization only)
    I:runMode=0

    # To save memory and VRAM usage by adjusting some parameters when a large amount of memory or VRAM will be required.
    # (0:off, 1:conservative, 2:moderate, 3:aggressive)
    I:saveMemory=3

    # Shadow length. (0~10)
    I:shadowLength=5

    # Shadows are rendered smoothly by using linear interpolation if the font resolution is more than or equal to this value.
    I:smoothShadowThreshold=24

    # Correct character width error in a normal precision mode as much as possible.
    B:widthErrorCorrection=true
}


debug {
    # Enable debug log.
    B:debugLog=false

    # Debug option
    S:debugOption=

    # Show event log on the game screen.
    B:showLogInChat=false
}


font {
    # Use the fonts installed in the operating system.
    B:useOSFont=true

    # Primary font name.
    # (The font installed in the system or existing in the externalFontPaths folders (default:<minecraft dir>/fontfiles).)
    S:fontName=Calibri

    # Secondary font name. It is used if the character cannot be rendered with the primary font.
    # (The font installed in the system or existing in the externalFontPaths folders (default:<minecraft dir>/fontfiles).)
    S:secondaryFontName=Arial

    # Primary font style.(0:plain, 1:bold, 2:italic, 3:bold+italic)
    I:primaryFontStyle=0

    # Secondary font style.(0:plain, 1:bold, 2:italic, 3:bold+italic)
    I:secondaryFontStyle=0

    # Enable anti-alias for OS fonts.(0:off, 1:normal, 2:high precision)
    I:fontAntiAlias=1

    # Enable emphasis for OS fonts. (0:off, 1:Ascii only, 2:Non-Ascii, 3:All)
    I:fontEmphasis=0

    # OS font resolution. (0:8px, 1:10px, 2:12px, 3:16px, 4:24px, 5:32px, 6:48px, 7:64px)
    I:fontResolution=4

    # Enable automatic font size detection for the font resolution.
    B:fontAutoSizing=true

    # Reference characters used for font-sizing.
    # If this option is not specified, the default value "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" is used.
    S:fontSizingRefChars=

    # Scaling factor of system font size.
    D:fontSizeScaleFactor=1.0

    # Transform non-default font narrowly or widely for MC default charset.
    D:widthFactorDefaultCharset=1.0

    # Transform non-default font narrowly or widely for unicode charset.
    D:widthFactorUnicodeCharset=1.0

    # Font gap.
    I:fontGap=0

    # Space width for system fonts.
    # (0:space width specified by the primary font, 1~3:custom width, 4:Minecraft default width)
    I:fontSpaceWidth=0

    # Align baseline among different fonts.
    B:fontAlignBaseline=true

    # Target to replace fonts. (0:Exclude special fonts specified by mods, 1:All fonts)
    I:fontTargetToReplace=0

    # Internal state.
    B:fontDetailList=false

    # Margin around the glyph image.
    I:glyphImageMargin=1
}


global {
    # (Experimental) Initialize the mod asynchronously. It reduces initialization processing time.
    B:asyncInitialization=true

    # Disable font selection GUI only.
    B:disableFontSelectionGui=false

    # Disable In-Game configuration GUI.
    B:disableInGameConfigGui=false

    # Enable per-player configuration. (Settings in common category)
    B:enablePerPlayerConfig=true

    # Paths to font file folder. Default is "<Minecraft folder>/fontfiles"
    S:externalFontsPaths <
        fontfiles
     >

    # These font renderer classes use high precision font width.
    # Best quality, but width calculation compatibility may slightly decreases
    # in other font renderer other than the Minecraft default font renderer.
    S:highPrecisionClasses <
        net.minecraft.client.gui.FontRenderer
     >

    # High precision mode for MC standard font renderer is not used if these mods(mod ids) exist.
    # This option is useful when there is a text wrapping problem with particular MODs or
    # when there is an error in computing the text width.
    # This option takes precedence over setMcRendererToHighPrecision option.
    S:modsNotUsingHighPrecision <
        betterquesting
     >

    # Minecraft standard font renderer object is always set to high precision even if it is replaced.
    B:setMcRendererToHighPrecision=false

    # Tweak the texture manager in order to make "Force LERP" function usable.
    B:tweakLoadTexture=true

    # Tweak the experience level rendering.
    B:tweakRenderExperience=true

    # Tweak the scaled resolution in order to make "Unlock Large GUI" function usable.
    B:tweakScaledResolution=true

    # These font renderer classes are not affected by this mod.
    S:unaffectedClasses <
        malte0811.industrialWires.client.panelmodel.RawModelFontRenderer
     >

    # These font renderer classes is most high compatibility with vanilla font width calculation,
    # but the precision of font width calculation is more poorer than the other precision modes.
    S:vanillaPrecisionClasses <
     >

    # Workaround for the broken font width of a mod. Some mods have an independent font renderer which
    # directly refer charWidth/glyphWidth values of a MC standard font renderer in order to get the font
    # width values of the Minecraft standard fonts or the resource pack fonts. If this workaround is true,
    # charWidth and glyphWidth of the MC standard font renderer keep the font width values of the MC
    # standard fonts or the resource pack fonts even if using the platform fonts.
    # (ex. MalisisDoors(MalisisCore) needs this workaround.)
    B:workaroundKeepOriginalWidthValues=true

    # Workaround for transparent texts on a scoreboard.
    B:workaroundTransparentScoreboard=true

    # Workaround for the issue that Java8 cannot recognize per-user installed fonts properly on Windows 10.
    B:workaroundWin10PerUserFontsUnusable=true

    # Workaround for wrong GL state in GlStateManager.
    # Some mods directly call GL11 method and don't use GlStateManager properly.
    # If the color of the transparent part changes or the alpha blending is wrong, try this option.
    B:workaroundWrongGlState=true
}


##########################################################################################################
# memory
#--------------------------------------------------------------------------------------------------------#
# The options in this category are related to memory savings.
# By setting options in this category, you can set the memory saving options
# more detailed than the "saveMemory" option.
# You can enable each memory saving function regardless of the "saveMemory" option setting.
# Also, even if set to false, memory options equivalent to or less than the saveMemory value are enabled.
# The saveMemory level of each saving function may be changed with future improvement of functions.
##########################################################################################################

memory {
    # Compress glyph images of your platform fonts.
    # The memory saving effect of this option is very high.(1/10 or less).
    # saveMemory:  1(conservative)
    # Side effect: There are almost no side effects.
    #              It takes just a little extra time to compress/uncompress glyph images.
    B:compressImage=true

    # Required number of logical CPUs to use "compressImage" function.
    # If number of logical CPUs is below this value, compressing images is canceled
    # to avoid taking a long time to generate glyph images.
    # When 0 is set, there is no limit on the number of CPUs. (Default: 0)
    I:compressImageRequiredCPUs=2

    # Max temporary working memory size for generating glyph images. [MB]
    # More larger max temporary memory allows to use more CPU cores for generating glyph images.
    # When 0 is set, there is no limit on max temporary memory usage.
    # When -1 is set, a working memory size depends on saveMemory setting. (Default: -1)
    # saveMemory:  0(off):no limit, 1(conservative):32[MB], 2(moderate):16[MB]
    # Side effect: Depending on the size of the font, the usage of the multi-core CPU is limited
    #              during generation of the glyph images.
    I:maxTempMemForGlyphImgGen=-1

    # Generate gray-scale glyph images of your platform fonts instead of ABGR images.
    # This reduces memory usage by a quarter.
    # saveMemory:  1(conservative)
    # Side effect: There are almost no side effects.
    #              When loading texture, it requires a little additional time
    #              to convert to ABGR image. After the texture is loaded once,
    #              there are no side effect after that.
    B:useGrayscaleImage=true
}


