diff --git a/changelog-next.txt b/changelog-next.txt index d3b5fe1f..9cb2e6a2 100644 --- a/changelog-next.txt +++ b/changelog-next.txt @@ -1,2 +1,3 @@ -- Increased lava/flame damage when shoot from Nozzle/Pressure Gun -- Fixed bug where some fluids wouldn't render in uis. \ No newline at end of file +- Fixed Mechanical Spouts and Mechanical Drains interactions with Conveyors. +- Fixed Conveyors not ticking/updating item display correctly. +- Fixed a crash. \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 9b810d36..4544ff4c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ org.gradle.parallel=true loader_version=0.15.11 # Mod Properties - mod_version = 0.4.1 + mod_version = 0.4.2 maven_group = eu.pb4 archives_base_name = polyfactory diff --git a/src/main/java/eu/pb4/polyfactory/block/fluids/MSpoutBlock.java b/src/main/java/eu/pb4/polyfactory/block/fluids/MSpoutBlock.java index 6a57a551..0a580ce7 100644 --- a/src/main/java/eu/pb4/polyfactory/block/fluids/MSpoutBlock.java +++ b/src/main/java/eu/pb4/polyfactory/block/fluids/MSpoutBlock.java @@ -1,23 +1,17 @@ package eu.pb4.polyfactory.block.fluids; import com.kneelawk.graphlib.api.graph.user.BlockNode; -import eu.pb4.factorytools.api.resourcepack.BaseItemProvider; import eu.pb4.factorytools.api.util.WorldPointer; import eu.pb4.factorytools.api.virtualentity.ItemDisplayElementUtil; import eu.pb4.factorytools.api.virtualentity.LodItemDisplayElement; import eu.pb4.polyfactory.block.FactoryBlockEntities; import eu.pb4.polyfactory.block.mechanical.RotationUser; import eu.pb4.polyfactory.block.mechanical.machines.TallItemMachineBlock; -import eu.pb4.polyfactory.block.mechanical.machines.crafting.PressBlockEntity; import eu.pb4.polyfactory.block.network.NetworkComponent; -import eu.pb4.polyfactory.block.other.FilledStateProvider; -import eu.pb4.polyfactory.item.FactoryItems; import eu.pb4.polyfactory.models.GenericParts; import eu.pb4.polyfactory.models.RotationAwareModel; import eu.pb4.polyfactory.nodes.pipe.PumpNode; -import eu.pb4.polyfactory.util.FactoryUtil; import eu.pb4.polyfactory.util.movingitem.ContainerHolder; -import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils; import eu.pb4.polymer.virtualentity.api.ElementHolder; import eu.pb4.polymer.virtualentity.api.attachment.BlockBoundAttachment; import eu.pb4.polymer.virtualentity.api.attachment.HolderAttachment; @@ -28,8 +22,6 @@ import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityTicker; import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.component.DataComponentTypes; -import net.minecraft.component.type.CustomModelDataComponent; import net.minecraft.inventory.Inventory; import net.minecraft.item.ItemStack; import net.minecraft.screen.ScreenHandler; @@ -72,31 +64,9 @@ public boolean pushItemTo(WorldPointer self, Direction pushDirection, Direction return false; } - var be = (PressBlockEntity) self.getBlockEntity(); + var be = (MSpoutBlockEntity) self.getBlockEntity(); - if (self.getBlockState().get(INPUT_FACING).getOpposite() != pushDirection) { - var stack = be.getStack(1); - if (stack.isEmpty()) { - be.setStack(1, conveyor.pullAndDestroy().get()); - return true; - } - - var container = conveyor.getContainer(); - - if (ItemStack.areItemsAndComponentsEqual(container.get(), stack)) { - var i = Math.min(container.get().getCount(), stack.getMaxCount() - stack.getCount()); - stack.increment(i); - container.get().decrement(i); - } - - if (container.get().isEmpty()) { - conveyor.clearContainer(); - } - - return true; - } - - var container = be.getContainerHolder(0); + var container = be.getContainerHolder(MSpoutBlockEntity.INPUT_FIRST); if (container.isContainerEmpty()) { container.pushAndAttach(conveyor.pullAndRemove()); @@ -128,9 +98,9 @@ public void getItemFrom(WorldPointer self, Direction pushDirection, Direction re return; } - var be = (PressBlockEntity) self.getBlockEntity(); + var be = (MSpoutBlockEntity) self.getBlockEntity(); - var out = be.getContainerHolder(2); + var out = be.getContainerHolder(MSpoutBlockEntity.OUTPUT_FIRST); if (out.isContainerEmpty()) { return; diff --git a/src/main/java/eu/pb4/polyfactory/block/mechanical/conveyor/ConveyorBlock.java b/src/main/java/eu/pb4/polyfactory/block/mechanical/conveyor/ConveyorBlock.java index 1e7bcff4..508e5791 100644 --- a/src/main/java/eu/pb4/polyfactory/block/mechanical/conveyor/ConveyorBlock.java +++ b/src/main/java/eu/pb4/polyfactory/block/mechanical/conveyor/ConveyorBlock.java @@ -573,8 +573,8 @@ private void updateAnimation(Direction dir, DirectionValue value) { @Override protected void onTick() { - if (this.movingItemContainer != null && this.getTick() % 2 == 0) { - this.movingItemContainer.checkItems(); + if (this.movingItemContainer != null) { + this.movingItemContainer.tick(); } } @@ -692,11 +692,9 @@ public void pushAndAttach(MovingItem container) { } this.movingItemContainer = container; + container.scale(1); updateDelta(-1, this.delta); this.addElementWithoutUpdates(container); } - - public void tryTick() { - } } } diff --git a/src/main/java/eu/pb4/polyfactory/datagen/BlockTagsProvider.java b/src/main/java/eu/pb4/polyfactory/datagen/BlockTagsProvider.java index ecc99d42..5339e157 100644 --- a/src/main/java/eu/pb4/polyfactory/datagen/BlockTagsProvider.java +++ b/src/main/java/eu/pb4/polyfactory/datagen/BlockTagsProvider.java @@ -59,6 +59,9 @@ protected void configure(RegistryWrapper.WrapperLookup arg) { this.getOrCreateTagBuilder(FactoryBlockTags.CONVEYOR_SIDE_OUTPUT) .add(FactoryBlocks.PRESS) .add(FactoryBlocks.MIXER) + .add(FactoryBlocks.MECHANICAL_SPOUT) + .add(FactoryBlocks.MECHANICAL_DRAIN) + .add(FactoryBlocks.GRINDER) .add(Blocks.HOPPER) .add(Blocks.COMPOSTER) ; diff --git a/src/main/java/eu/pb4/polyfactory/util/movingitem/MovingItem.java b/src/main/java/eu/pb4/polyfactory/util/movingitem/MovingItem.java index 52686ec3..1160cee9 100644 --- a/src/main/java/eu/pb4/polyfactory/util/movingitem/MovingItem.java +++ b/src/main/java/eu/pb4/polyfactory/util/movingitem/MovingItem.java @@ -163,6 +163,7 @@ public void tick() { if (this.tick++ % 2 == 1) { return; } + this.checkItems(); for (var x : this.itemDisplay) { x.tick(); @@ -172,6 +173,7 @@ public void tick() { this.riddenBase.setTeleportDuration(4); this.isFirstMove = false; } + } @Override