This adds 4 new observer variants. All of them are blocks (not tile entities), so they can be moved by pistons.
The Mobserver, which detects all mobs and players in the 5x5x5 region in front of it. It can detect through solid walls.
The Surveyor, which measures the distance to the first block in the direction it's looking. It outputs 15 if there's a block right in front of it, and the value drops as the distance increases.
The Toggle Observer, crafted with an observer and a lever. This functions the same as a normal observer, but instead of outputting a 2-tick pulse, it toggles signal strength between 15 and 0. After it flips, it ignores further block changes for the next 25 ticks. So for example, if you wire up a stone button to the front, the output at the back will be as if you were toggling a lever instead of pressing a button. (You can build this in vanilla, but it's far more complicated and expensive than it needs to be.)
The Discerner currently does the same thing as a comparator for single blocks' states, but supports a few extra integer properties. In a future version I'll change vanilla comparators to also work for those additional blocks, and then change this block to do something else.
For example, it will detect wheat growth, outputting a signal of 5 when you plant it, gradually rising to 10, then jumping to 15 once it's fully grown, and same for all other crops. It can also detect the honey level of a beehive, level of a compost bin, bites of a cake, and 9 other properties. It always outputs 15 at the max value, 5-10 at other values, and 0 if there is no property. It can also measure the hydration of farmland - see my other mods for an idea of why that could be useful.