# Configuration file

DraggingModesToggle {
    # Enable moving one item from all stacks by holding down Control and dragging over slots with the left mouse button held down.
    B:enableDragMovingControlLeft=true

    # Enable moving full stacks of items by holding down Shift and dragging over slots with the left mouse button held down.
    B:enableDragMovingShiftLeft=true

    # Enable moving everything but the last item from all stacks by holding down Shift and dragging over slots with the right mouse button held down.
    B:enableDragMovingShiftRight=true
}


Generic {
    # Enables saving and loading the stored recipes to a file inside minecraft/itemscroller/recipes_worldorservername.nbt,
    # so that they are persistent between game restarts.
    B:craftingRecipesStoreToFile=true

    # If enabled, then the recipe items are rendered for the selected or hovered recipe
    B:craftingRenderRecipeItems=true

    # If true, then a single file is used for storing the recipes, instead of per-world or per-server files
    B:craftingScrollingSaveFileIsGlobal=false

    # Enable Alt + click to move all matching stacks
    # (same as the Ctrl + scroll functionality).
    B:enableAltClickMoveMatching=true

    # Enable Alt + Shift + click to move everything
    # (same as the Ctrl + Shift + scroll functionality).
    B:enableAltShiftClickEverything=true

    # Enable dropping all matching items from the same inventory when pressing Ctrl + Shift + the drop key
    B:enableControlShiftDropkeyDropItems=true

    # Enable click dragging to drop single items while holding Ctrl + drop key
    B:enableDragDroppingSingle=true

    # Enable click dragging to drop full stacks while holding Shift + drop key.
    # (Left for entire stacks, right for all but one item.)
    B:enableDragDroppingStacks=true

    # Enable crafting up to one full stack when right clicking on a slot that has been configured as a crafting slot
    B:enableRightClickCraftingOneStack=true

    # Enable dropping items while holding shift to drop all the matching items at once.
    B:enableShiftDropItems=true

    # Enable placing items to an empty slot while holding shift to move all the mathing items to that inventory.
    B:enableShiftPlaceItems=true

    # Enable clicking on stacks while holding W or S to move the stack up or down in the inventory
    B:enableWSClicking=true

    # Reverse the scrolling direction for single item mode.
    B:reverseScrollDirectionSingle=false

    # Reverse the scrolling direction for full stacks mode.
    B:reverseScrollDirectionStacks=false

    # When enabled, the item movement direction depends on the slots' y-position on screen. Might be derpy with more complex inventories, use with caution!
    B:useSlotPositionAwareScrollDirection=false
}


Lists {
    # A list of GuiContainer classes where Item Scroller shouldn't do anything
    S:blackListedGuis <
     >

    # A list of Slot classes that Item Scroller shouldn't use
    S:blackListedSlots <
        appeng.client.me.SlotME
        slimeknights.mantle.inventory.SlotWrapper
     >

    # A list of crafting grid specifiers for the crafting grid scrolling feature.
    # All the crafting grids that you want to be usable for that feature, must be added in this list.
    # The entries must be one per line, in the following format: guiclassname,slotclassname,outputslotnumber,gridfirstslotnumber-gridlastslotnumber
    # To find out the class names and slot numbers, you can use the 'Ctrl + Alt + Shift + I' debug key combination
    # when hovering over slots (to get the slot info) and while NOT hovering over slots (to get the gui class name).
    # What you are looking for are the 'GUI class', 'slot class' and the 'slotNumber' (NOT 'getSlotIndex()'!) values.
    # The slot class must be from the crafting output slot!
    # NOTE: This feature is actually in no way specific or tied to crafting grids.
    # It can be used for other types of inventories as well, where you must move items into specific slots.
    # The limitations are special, non-standard slots like AE2, which don't have proper slot numbers.
    # The "recipe" slots should also form a continuous range, otherwise weirds stuff might happen when scrolling.
    S:craftingGridDefinitions <
        net.minecraft.client.gui.inventory.GuiCrafting,net.minecraft.inventory.SlotCrafting,0,1-9
        net.minecraft.client.gui.inventory.GuiInventory,net.minecraft.inventory.SlotCrafting,0,1-4
        fi.dy.masa.enderutilities.gui.client.GuiHandyBag,fi.dy.masa.enderutilities.inventory.slot.SlotItemHandlerCraftResult,100,101-104
        fi.dy.masa.enderutilities.gui.client.GuiCreationStation,fi.dy.masa.enderutilities.inventory.slot.SlotItemHandlerCraftResult,40,31-39
        fi.dy.masa.enderutilities.gui.client.GuiCreationStation,fi.dy.masa.enderutilities.inventory.slot.SlotItemHandlerCraftResult,50,41-49
        com.xcom.oneblocksolutions.gui.GUICraftingTable,com.xcom.oneblocksolutions.inventory.slot.SlotItemHandlerCraftResult,0,1-9
     >
}


ScrollingModesToggle {
    # Enable scrolling items to and from crafting grids, with a built-in 9 recipe memory.
    # Hold down the Recipe key to see the stored recipes and to change the selection.
    # While holding the Recipe key, you can either scroll or press a number key to change the selection.
    # A recipe is stored to the currently selected "recipe slot" by scrolling over the output slot,
    # or by pressing Shift + the Recipe key + a number key.
    # The supported crafting grids must be added to the scrollableCraftingGrids list.
    B:enableScrollingCrafting=true

    # Enable moving all items at once (while holding ctrl and shift).
    B:enableScrollingEverything=true

    # Enable moving all matching items at once (while holding ctrl).
    B:enableScrollingMatchingStacks=true

    # Enable scrolling items one item at a time.
    B:enableScrollingSingle=true

    # Enable scrolling full stack (while holding shift).
    B:enableScrollingStacks=true

    # Enable a "fallback" mode for scrolling entire stacks (for example to a vanilla crafting table, where shift + click doesn't work).
    B:enableScrollingStacksFallback=true

    # Enable special handling for Villager GUI (normally you can't shift+click items into them).
    B:enableScrollingVillager=true
}


