From 1dcdd196eb57aa7f0be21996aac447b95b3307e3 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 20 May 2017 19:55:59 +0200 Subject: [PATCH] make Phantomfaces output comparator signal Closes #759 --- .../mod/tile/TileEntityPhantomface.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomface.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomface.java index 68430db4a..b658c1a90 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomface.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomface.java @@ -14,6 +14,7 @@ import de.ellpeck.actuallyadditions.api.tile.IPhantomTile; import de.ellpeck.actuallyadditions.mod.blocks.BlockPhantom; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; @@ -33,6 +34,7 @@ public abstract class TileEntityPhantomface extends TileEntityInventoryBase impl private int rangeBefore; private BlockPos boundPosBefore; private Block boundBlockBefore; + private int lastStrength; public TileEntityPhantomface(String name){ super(0, name); @@ -93,6 +95,13 @@ public abstract class TileEntityPhantomface extends TileEntityInventoryBase impl if(this.doesNeedUpdateSend()){ this.onUpdateSent(); } + + int strength = this.getComparatorStrength(); + if(this.lastStrength != strength){ + this.lastStrength = strength; + + this.markDirty(); + } } else{ if(this.boundPosition != null){ @@ -193,4 +202,18 @@ public abstract class TileEntityPhantomface extends TileEntityInventoryBase impl } return super.getCapability(capability, facing); } + + @Override + public int getComparatorStrength(){ + if(this.isBoundThingInRange()){ + BlockPos pos = this.getBoundPosition(); + IBlockState state = this.world.getBlockState(pos); + Block block = state.getBlock(); + + if(block.hasComparatorInputOverride(state)){ + return block.getComparatorInputOverride(state, this.world, pos); + } + } + return 0; + } }