diff --git a/src/main/java/dev/galacticraft/machinelib/api/transfer/TransferType.java b/src/main/java/dev/galacticraft/machinelib/api/transfer/TransferType.java index 369ea61..3fb573b 100644 --- a/src/main/java/dev/galacticraft/machinelib/api/transfer/TransferType.java +++ b/src/main/java/dev/galacticraft/machinelib/api/transfer/TransferType.java @@ -28,7 +28,8 @@ public enum TransferType { INPUT(0x009001, true, false, true), // external: insertion only, players: insertion and extraction allowed OUTPUT(0xa7071e, false, true, false), // external: extraction only, players: extraction only STORAGE(0x008d90, true, true, true), // external: insertion and extraction allowed, players: insertion and extraction allowed - TRANSFER(0x908400, false, false, true); // external: immutable, players: insertion and extraction allowed - e.g. battery slots + TRANSFER(0x908400, false, false, true), // external: immutable, players: insertion and extraction allowed - e.g. battery slots + PROCESSING(0x908400, true, true, true); // external: insertion and extraction allowed, players: insertion and extraction allowed - e.g. bucket slots private final int color; private final boolean externalInsert; diff --git a/src/main/java/dev/galacticraft/machinelib/client/api/screen/MachineScreen.java b/src/main/java/dev/galacticraft/machinelib/client/api/screen/MachineScreen.java index 560e54e..77ad655 100644 --- a/src/main/java/dev/galacticraft/machinelib/client/api/screen/MachineScreen.java +++ b/src/main/java/dev/galacticraft/machinelib/client/api/screen/MachineScreen.java @@ -369,7 +369,7 @@ protected void drawConfigurationPanels(@NotNull GuiGraphics graphics, int mouseX * @see #titleLabelY */ protected void drawTitle(@NotNull GuiGraphics graphics) { - graphics.drawString(this.font, this.title, this.titleLabelX, this.titleLabelY, 0xFFFFFFFF, false); + graphics.drawString(this.font, this.title, this.titleLabelX, this.titleLabelY, 0xFF404040, false); } /** diff --git a/src/main/java/dev/galacticraft/machinelib/impl/compat/transfer/ExposedSlotImpl.java b/src/main/java/dev/galacticraft/machinelib/impl/compat/transfer/ExposedSlotImpl.java index 0fd6a1d..7681cbc 100644 --- a/src/main/java/dev/galacticraft/machinelib/impl/compat/transfer/ExposedSlotImpl.java +++ b/src/main/java/dev/galacticraft/machinelib/impl/compat/transfer/ExposedSlotImpl.java @@ -26,6 +26,7 @@ import dev.galacticraft.machinelib.api.compat.transfer.ExposedSlot; import dev.galacticraft.machinelib.api.storage.slot.ResourceSlot; import dev.galacticraft.machinelib.api.transfer.ResourceFlow; +import dev.galacticraft.machinelib.api.transfer.TransferType; import net.fabricmc.fabric.api.transfer.v1.storage.StorageView; import net.fabricmc.fabric.api.transfer.v1.storage.TransferVariant; import net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext; @@ -57,7 +58,15 @@ public long insert(Variant variant, long maxAmount, TransactionContext transacti @Override public long extract(Variant variant, long maxAmount, TransactionContext transaction) { - return this.supportsExtraction() ? this.slot.extract(variant.getObject(), variant.getComponents(), maxAmount, transaction) : 0; + if (this.supportsExtraction()) { + if (this.slot.transferMode() == TransferType.PROCESSING) { + if (this.slot.getFilter().test(variant.getObject(), variant.getComponents())) { + return 0; + } + } + return this.slot.extract(variant.getObject(), variant.getComponents(), maxAmount, transaction); + } + return 0; } @Override diff --git a/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/GeneratorBlockEntity.java b/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/GeneratorBlockEntity.java index 7fabde1..4dd2ab7 100644 --- a/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/GeneratorBlockEntity.java +++ b/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/GeneratorBlockEntity.java @@ -54,7 +54,7 @@ public class GeneratorBlockEntity extends MachineBlockEntity { public static final StorageSpec STORAGE_SPEC = StorageSpec.of( MachineItemStorage.spec( - ItemResourceSlot.builder(TransferType.TRANSFER) + ItemResourceSlot.builder(TransferType.PROCESSING) .pos(8, 62) .filter(ResourceFilters.CAN_INSERT_ENERGY) .capacity(32), diff --git a/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/MelterBlockEntity.java b/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/MelterBlockEntity.java index 1f39738..fb6171d 100644 --- a/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/MelterBlockEntity.java +++ b/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/MelterBlockEntity.java @@ -68,7 +68,7 @@ public class MelterBlockEntity extends MachineBlockEntity { ItemResourceSlot.builder(TransferType.INPUT) .pos(59, 42) .filter(ResourceFilters.ofResource(Items.COBBLESTONE)), - ItemResourceSlot.builder(TransferType.TRANSFER) + ItemResourceSlot.builder(TransferType.PROCESSING) .pos(152, 62) .filter(ResourceFilters.canInsertFluid(Fluids.LAVA)) ), diff --git a/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/MixerBlockEntity.java b/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/MixerBlockEntity.java index bcca976..cb29d98 100644 --- a/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/MixerBlockEntity.java +++ b/src/testmod/java/dev/galacticraft/machinelib/testmod/block/entity/MixerBlockEntity.java @@ -66,10 +66,10 @@ public class MixerBlockEntity extends MachineBlockEntity { .pos(8, 8) .filter(ResourceFilters.CAN_EXTRACT_ENERGY) .capacity(32), - ItemResourceSlot.builder(TransferType.TRANSFER) + ItemResourceSlot.builder(TransferType.PROCESSING) .pos(48, 8) .filter(ResourceFilters.canExtractFluid(Fluids.WATER)), - ItemResourceSlot.builder(TransferType.TRANSFER) + ItemResourceSlot.builder(TransferType.PROCESSING) .pos(70, 8) .filter(ResourceFilters.canExtractFluid(Fluids.LAVA)), ItemResourceSlot.builder(TransferType.OUTPUT)