diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java index c82e621..75c04b0 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java @@ -227,6 +227,19 @@ public class PipeBlock extends ContainerBlock implements IPipeConnectable { } } + @Override + public boolean hasComparatorInputOverride(BlockState state) { + return true; + } + + @Override + public int getComparatorInputOverride(BlockState blockState, World worldIn, BlockPos pos) { + PipeTileEntity pipe = Utility.getTileEntity(PipeTileEntity.class, worldIn, pos); + if (pipe == null) + return 0; + return Math.min(15, pipe.getItems().size()); + } + @Nullable @Override public TileEntity createNewTileEntity(IBlockReader worldIn) { diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/PipeTileEntity.java b/src/main/java/de/ellpeck/prettypipes/pipe/PipeTileEntity.java index a451e7b..9228422 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/PipeTileEntity.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/PipeTileEntity.java @@ -54,6 +54,7 @@ public class PipeTileEntity extends TileEntity implements INamedContainerProvide } }; private List items; + private int lastItemAmount; private int priority; public PipeTileEntity() { @@ -115,6 +116,10 @@ public class PipeTileEntity extends TileEntity implements INamedContainerProvide List items = this.getItems(); for (int i = items.size() - 1; i >= 0; i--) items.get(i).updateInPipe(this); + if (items.size() != this.lastItemAmount) { + this.lastItemAmount = items.size(); + this.world.updateComparatorOutputLevel(this.pos, this.getBlockState().getBlock()); + } profiler.endSection(); }