# 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 {
    # If true, then a single file is used for storing the recipes, instead of per-world or per-server files
    B:craftingScrollingSaveFileIsGlobal=false

    # 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:craftingScrollingSaveToFile=true

    # If enabled, then the recipe is ALSO stored when scrolling to re-fill the crafting grid, and not only when scrolling to craft items.
    # Note that this will make it impossible to scroll up and down to craft items one at a time from non-stackable ingredients,
    #  IF there is also a match to the recipe without those non-stacking items.
    # So for example when trying to craft Dispensers, after the bow is used, the recipe will match a Dropper,
    # and then that Dropper recipe would end up being stored.
    # Note also however, that using the Ctrl + Shift + scroll to craft as many items as possible would still work.
    # 
    B:craftingScrollingStoreRecipeOnFill=true

    # Enable dropping all matching items from the same inventory when pressing Ctrl + Shift + the drop key
    B:enableControlShiftDropkeyDropItems=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

    # 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:scrollableCraftingGrids <
        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
     >
}


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
}


generic {
    S:blackListedGuis <
     >
    S:blackListedSlots <
        appeng.client.me.SlotME
        slimeknights.mantle.inventory.SlotWrapper
     >
    B:enableControlShiftDropkeyDropItems=true
    B:enableDragMovingControlLeft=true
    B:enableDragMovingShiftLeft=true
    B:enableDragMovingShiftRight=true
    B:enableMovingEverything=true
    B:enableScrollingMatchingStacks=true
    B:enableScrollingSingle=true
    B:enableScrollingStacks=true
    B:enableScrollingStacksFallback=true
    B:enableScrollingVillager=true
    B:enableShiftDropItems=true
    B:enableShiftPlaceItems=true
    B:reverseScrollDirectionSingle=false
    B:reverseScrollDirectionStacks=false
    B:useSlotPositionAwareScrollDirection=false
}


