Integer availableWidgets = dronePieces.get(availableWidget);
if(availableWidgets > requiredWidget) {
ItemStack stack = ItemProgrammingPuzzle.getStackForWidgetKey(availableWidget);
stack.stackSize = (availableWidgets - requiredWidget) * inventory[PROGRAM_SLOT].stackSize;
while(stack.stackSize > stack.getMaxStackSize()) {
stacks.add(stack.splitStack(stack.getMaxStackSize()));
}
stacks.add(stack);
}
} else {
ItemStack stack = ItemProgrammingPuzzle.getStackForWidgetKey(availableWidget);