# Configuration file

##########################################################################################################
# apis
#--------------------------------------------------------------------------------------------------------#
# Custom APIs for computers
##########################################################################################################

apis {
    # Enable the biginteger API.
    B:bigInteger=true

    # Enable the extended bit operator library
    B:bitop=true

    # Enable the debug API.
    #  This is NOT recommended for servers, use at your own risk.
    #  It should be save on servers if using Cobalt though.
    B:debug=false

    # Enable the profiler API.
    #  Only works on Cobalt
    B:profiler=false

    ##########################################################################################################
    # socket
    #--------------------------------------------------------------------------------------------------------#
    # TCP connections from the socket API
    ##########################################################################################################

    socket {
        # Blacklisted domain names.
        # 
        #  Entries are either domain names (www.example.com) or IP addresses in
        #  string format (10.0.0.3), optionally in CIDR notation to make it easier
        #  to define address ranges (1.0.0.0/8). Domains are resolved to their
        #  actual IP once on startup, future requests are resolved and compared
        #  to the resolved addresses.
        S:blacklist <
            127.0.0.0/8
            10.0.0.0/8
            192.168.0.0/16
            172.16.0.0/12
         >

        # Enable TCP connections.
        #  When enabled, the socket API becomes available on
        #  all computers.
        B:enabled=true

        # Maximum number of characters to read from a socket.
        I:maxRead=2048

        # Maximum TCP connections a computer can have at any time
        I:maxTcpConnections=4

        # Number of threads to use for processing name lookups.
        I:threads=4

        # Whitelisted domain names.
        #  If something is mentioned in both the blacklist and whitelist then
        #  the blacklist takes priority.
        S:whitelist <
         >
    }

    ##########################################################################################################
    # data
    #--------------------------------------------------------------------------------------------------------#
    # Basic data manipulation
    ##########################################################################################################

    data {
        # If the data API is enabled
        B:enabled=true

        # Maximum number of bytes to process.
        #  The default is 1MiB
        I:limit=1048576
    }

}


##########################################################################################################
# computer
#--------------------------------------------------------------------------------------------------------#
# Computer tweaks and items.
##########################################################################################################

computer {
    # Specify a custom bios path to use. You
    #  must include the initial slash.
    S:biosPath=/assets/computercraft/lua/bios.lua

    # Use the Cobalt Lua engine instead.
    #  This is a fork of LuaJ with many bugs fixed.
    #  However other bugs may have appeared, so use with caution.
    B:cobalt=false

    # Time in milliseconds before 'Too long without yielding' errors.
    #  You cannot shutdown/reboot the computer during this time.
    #  Use carefully.
    I:computerThreadTimeout=7000

    # Enable crafting the computer upgrade.
    #  Requires computerUpgradeEnabled.
    B:computerUpgradeCrafting=true

    # Enable upgrading computers.
    B:computerUpgradeEnabled=true

    # Enable using the debug wand.
    B:debugWandEnabled=true

    # Compile Lua bytecode to Java bytecode.
    #  This speeds up code execution.
    B:luaJC=false

    # Verify LuaJC sources on generation.
    #  This will slow down compilation.
    #  If you have errors, please turn this and debug on and
    #  send it with the bug report.
    B:luaJCVerify=false

    # Maximum number of file handles a single computer can have open
    I:maxFilesHandles=1024

    # Error much earlier on a timeout.
    #  Note: This only applies to the Cobalt VM
    B:timeoutError=false
}


##########################################################################################################
# integration
#--------------------------------------------------------------------------------------------------------#
# Integration with other mods.
##########################################################################################################

integration {
    # Enable ChickenBones Multipart
    #  (aka ForgeMultipart) integration.
    B:cbMultipart=true

    # Allows pushing items from one inventory
    #  to another inventory on the network.
    B:openPeripheralInventories=true
}


##########################################################################################################
# misc
#--------------------------------------------------------------------------------------------------------#
# Various tweaks that don't belong to anything
##########################################################################################################

misc {
    # The light level given off by advanced monitors.
    #  Redstone torches are 7, normal torches are 14.
    I:advancedMonitorLight=10

    # The light level given off by normal monitors.
    #  Redstone torches are 7, normal torches are 14.
    I:monitorLight=7
}


##########################################################################################################
# network
#--------------------------------------------------------------------------------------------------------#
# Additional network functionality.
##########################################################################################################

network {
    # Enable the crafting of full block modems.
    # 
    #  If you disable, existing ones will still function,
    #  and you can obtain them from creative.
    B:fullBlockModemCrafting=true

    ##########################################################################################################
    # wirelessbridge
    #--------------------------------------------------------------------------------------------------------#
    # The wireless bridge allows you to connect
    #  wired networks across dimensions.
    ##########################################################################################################

    wirelessbridge {
        # Enable the crafting of Wireless Bridges.
        B:crafting=true

        # Enable the wireless bridge
        B:enabled=true

        # Enable the Wireless Bridge upgrade for pocket computers.
        #  Requires Peripherals++
        B:pocketEnabled=true

        # The pocket upgrade Id
        #  Requires Peripherals++
        I:pocketId=331

        # Enable the Wireless Bridge upgrade for turtles.
        B:turtleEnabled=true

        # The turtle upgrade Id
        I:turtleId=331
    }

}


##########################################################################################################
# testing
#--------------------------------------------------------------------------------------------------------#
# Only used when testing and developing the mod.
#  Nothing to see here, move along...
##########################################################################################################

testing {
    # Show debug messages.
    #  If you hit a bug, enable this, rerun and send the log
    B:debug=false

    # Enable debug blocks/items.
    #  Only use for testing.
    B:debugItems=false

    # Throw exceptions on calling deprecated methods
    # 
    #  Only for development/testing
    B:deprecatedWarnings=false

    # Dump the modified class files to asm/CCTweaks
    B:dumpAsm=false

    # Controller validation occurs by default as a
    #  way of ensuring that your network has been
    #  correctly created.
    # 
    #  By enabling this it is easier to trace
    #  faults, though it may slow things down
    #  slightly
    B:extendedControllerValidation=false
}


##########################################################################################################
# turtle
#--------------------------------------------------------------------------------------------------------#
# Turtle tweaks and items.
##########################################################################################################

turtle {
    # Disabled turtle actions:
    #  (compare, compareTo, craft, detect, dig,
    #  drop, equip, inspect, move, place,
    #  refuel, select, suck, tool, turn).
    S:disabledActions <
     >

    # Amount of Eu required for one refuel point.
    #  Set to 0 to disable.
    I:euRefuelAmount=25

    # Amount of RF required for one refuel point
    #  Set to 0 to disable.
    I:fluxRefuelAmount=100

    # Fun actions for turtle names
    B:funNames=true

    ##########################################################################################################
    # toolhost
    #--------------------------------------------------------------------------------------------------------#
    # Various tool host options
    ##########################################################################################################

    toolhost {
        # Enable the Tool Manipulator
        B:advanced=true

        # Upgrade Id for Tool Manipulator
        I:advancedUpgradeId=333

        # Enable crafting the Tool Host
        B:crafting=true

        # The dig speed factor for tool hosts.
        #  20 is about normal player speed.
        I:digFactor=10

        # Enable the Tool Host
        B:enabled=true

        # Upgrade Id
        I:upgradeId=332
    }

}


