mirror of
https://github.com/architectury/architectury-api.git
synced 2026-04-02 13:37:43 -05:00
Implement forge item extract
This commit is contained in:
@@ -28,7 +28,6 @@ import dev.architectury.transfer.access.BlockLookup;
|
||||
import dev.architectury.transfer.access.ItemLookup;
|
||||
import dev.architectury.transfer.fluid.FluidTransfer;
|
||||
import dev.architectury.transfer.forge.ForgeBlockLookupRegistration;
|
||||
import dev.architectury.transfer.forge.ForgeItemLookupRegistration;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
@@ -296,8 +295,8 @@ public class FluidTransferImpl {
|
||||
|
||||
@Override
|
||||
public FluidStack extract(FluidStack toExtract, TransferAction action) {
|
||||
// TODO: implement
|
||||
return null;
|
||||
// impossible to extract from a forge handler with an index
|
||||
return blank();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -163,8 +163,22 @@ public class ItemTransferImpl {
|
||||
|
||||
@Override
|
||||
public ItemStack extract(ItemStack toExtract, TransferAction action) {
|
||||
// TODO: implement
|
||||
return null;
|
||||
for (int i = 0; i < handler.getSlots(); i++) {
|
||||
ItemStack slot = handler.getStackInSlot(i);
|
||||
|
||||
if (ItemHandlerHelper.canItemStacksStack(toExtract, slot)) {
|
||||
int toExtractCount = toExtract.getCount();
|
||||
ItemStack left = handler.extractItem(i, toExtractCount, action == TransferAction.SIMULATE);
|
||||
|
||||
if (left.isEmpty()) {
|
||||
return toExtract;
|
||||
}
|
||||
|
||||
toExtract = left;
|
||||
}
|
||||
}
|
||||
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user