From c88e44be3b40b19398f1041bc9328c664a8c1f51 Mon Sep 17 00:00:00 2001 From: Roelymole Date: Sun, 26 Jan 2025 22:56:58 +0000 Subject: [PATCH 1/4] fix: changed title color in MachineScreen to match vanilla --- .../machinelib/client/api/screen/MachineScreen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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); } /** From b7e8b1f5ae6306a20fb9f722f184a62a8c14319c Mon Sep 17 00:00:00 2001 From: Roelymole Date: Mon, 27 Jan 2025 13:03:44 +0000 Subject: [PATCH 2/4] feat: allow hoppers to interact with machines including inserting items matching the filter into transfer item slots and removing non-matching items --- .../machinelib/api/transfer/TransferType.java | 2 +- .../impl/compat/transfer/ExposedSlotImpl.java | 10 +++++++++- .../impl/storage/MachineItemStorageImpl.java | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) 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..81cd70f 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,7 @@ 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, true, true, true); // external: insertion and extraction allowed, players: insertion and extraction allowed - e.g. battery slots private final int color; private final boolean externalInsert; 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..a8794f7 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,14 @@ 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.TRANSFER) { + 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/main/java/dev/galacticraft/machinelib/impl/storage/MachineItemStorageImpl.java b/src/main/java/dev/galacticraft/machinelib/impl/storage/MachineItemStorageImpl.java index 8397139..108aabc 100644 --- a/src/main/java/dev/galacticraft/machinelib/impl/storage/MachineItemStorageImpl.java +++ b/src/main/java/dev/galacticraft/machinelib/impl/storage/MachineItemStorageImpl.java @@ -91,12 +91,12 @@ public boolean stillValid(Player player) { @Override public boolean canPlaceItem(int i, ItemStack itemStack) { - return false; + return true; } @Override public boolean canTakeItem(Container container, int i, ItemStack itemStack) { - return false; + return true; } @Override From c60c46eb087b2bb3e4b1ce2d92a6cbf1009b9fd5 Mon Sep 17 00:00:00 2001 From: Roelymole Date: Tue, 28 Jan 2025 01:54:20 +0000 Subject: [PATCH 3/4] fix: add TransferType.PROCESSING --- .../galacticraft/machinelib/api/transfer/TransferType.java | 3 ++- .../machinelib/impl/compat/transfer/ExposedSlotImpl.java | 5 +++-- .../testmod/block/entity/GeneratorBlockEntity.java | 2 +- .../machinelib/testmod/block/entity/MelterBlockEntity.java | 2 +- .../machinelib/testmod/block/entity/MixerBlockEntity.java | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) 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 81cd70f..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, true, true, true); // external: insertion and extraction allowed, 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/impl/compat/transfer/ExposedSlotImpl.java b/src/main/java/dev/galacticraft/machinelib/impl/compat/transfer/ExposedSlotImpl.java index a8794f7..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 @@ -59,9 +59,10 @@ public long insert(Variant variant, long maxAmount, TransactionContext transacti @Override public long extract(Variant variant, long maxAmount, TransactionContext transaction) { if (this.supportsExtraction()) { - if (this.slot.transferMode() == TransferType.TRANSFER) { - if (this.slot.getFilter().test(variant.getObject(), variant.getComponents())) + 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); } 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) From 33f8b39b0e3dab570154910eefe1c7d824c8fbe8 Mon Sep 17 00:00:00 2001 From: Roelymole Date: Tue, 28 Jan 2025 10:10:46 +0000 Subject: [PATCH 4/4] fix: change canPlaceItem and canTakeItem back to false --- .../machinelib/impl/storage/MachineItemStorageImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/dev/galacticraft/machinelib/impl/storage/MachineItemStorageImpl.java b/src/main/java/dev/galacticraft/machinelib/impl/storage/MachineItemStorageImpl.java index 108aabc..8397139 100644 --- a/src/main/java/dev/galacticraft/machinelib/impl/storage/MachineItemStorageImpl.java +++ b/src/main/java/dev/galacticraft/machinelib/impl/storage/MachineItemStorageImpl.java @@ -91,12 +91,12 @@ public boolean stillValid(Player player) { @Override public boolean canPlaceItem(int i, ItemStack itemStack) { - return true; + return false; } @Override public boolean canTakeItem(Container container, int i, ItemStack itemStack) { - return true; + return false; } @Override