diff --git a/src/main/java/com/hbm/blocks/machine/GeigerCounter.java b/src/main/java/com/hbm/blocks/machine/GeigerCounter.java index b9d3e933c..bd07ad6d0 100644 --- a/src/main/java/com/hbm/blocks/machine/GeigerCounter.java +++ b/src/main/java/com/hbm/blocks/machine/GeigerCounter.java @@ -131,4 +131,22 @@ public class GeigerCounter extends BlockContainer { return false; } } + + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + TileEntityGeiger te = (TileEntityGeiger)world.getTileEntity(x, y, z); + if (te == null) return 0; + + float rad = te.check(); + + // 0 at exactly 0 rads/sec + // +1 per 5 rads/sec + // 15 at 75+ rads/sec + return Math.min((int)Math.ceil(rad / 5f), 15); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java index 98719f542..806756011 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -35,6 +35,9 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent, IIn if(timer == 10) { timer = 0; ticker = check(); + + // To update the adjacent comparators + worldObj.notifyBlocksOfNeighborChange(this.xCoord, this.yCoord, this.zCoord, this.getBlockType()); } if(timer % 5 == 0) { @@ -65,6 +68,7 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent, IIn public float check() { return ChunkRadiationManager.proxy.getRadiation(worldObj, xCoord, yCoord, zCoord); } + @Override @Optional.Method(modid = "OpenComputers") public String getComponentName() {