Observer placed observing the last block of flowing water should trigger only once, when water arrives, and again when water flow stops. Instead keeps re-triggering a few times per second whenever water is present.
(This also occurs with observers watching water at any constant level, whether flowing or not, if the water arrives after the observer is placed)
Linked issues
is duplicated by 7
Attachments
Comments 12
The observer isn't just detecting the presence of a liquid. It's also detects the change in their level, which is a block state for water and lava.
And taking that away would go against MC-107664, where the Observer is intended to detect any block state changes.
FM: That is not the issue. In the case of the last (lowest level) block of flowing water, after the water has arrived at the observed block its level does not change, and yet the observer keeps re-triggering. Also, you can observe a block of non-flowing water (source block) and the observer keeps re-triggering. This only started happening in the last two snapshots. I have no issue with re-triggering when the level actually changes.
Update: The continual re-triggering only occurs if the output of the observer is connected to redstone dust. If instead a repeater is placed facing away from the output, or there is only air at the output it is only triggered twice when the water arrives, if this is its furthest extent/lowest level.
The same thing happens if a source block is placed in the observed location with no way for it to flow anywhere else.
If a source block is placed in the observed location with air next to it in this configuration the observer triggers three times and then stops. This is still wrong. In both cases there is only one change of state.
Although in the last case it could be argued that the source block changes from not flowing to flowing that still makes only two changes, not three.
Two new screenshots showing the application that has been broken, and the workaround to fix it. It's a slow clock generator. The one without a repeater used to work - the dispenser drops water which goes around the track until it reaches the observer, which triggers the dispenser to remove the water. When it is gone the observer triggers the dispenser to drop water again. Multiple triggering of the observer makes the clock much too fast. The repeater in the next screenshot blends the double pulse into one, restoring the speed at the expense of a slight increase in complexity. There may be other applications not so easily fixable, but if this is deemed to be standard behaviour and documented I guess it can be worked with.
Ely: I have not seen any evidence of your (1). However it does seem to be the case that (in snapshot 17w06a at least) the re-triggering occurs only when there is redstone dust present at the output when the water arrives.
When a static liquid (water
or lava
) is updated, it is replaced with the flowing version (flowing_water
or flowing_lava
). The problem is that redstone wire causes block updates offset by 2 blocks and therefor updates the liquid.
I just had an issue with this on snapshot 17w14a. In the two tests I did, I had a dispenser place or pick up the water or lava. In both tests, the observer fired both on the initial placement of the liquid and on the next "flow tick"*** for lack of a better phrase. I don't have redstone connected to the observer, it fires directly into a piston.
: Just a phrase I came up with representing the amount of in-game ticks it takes for a liquid to flow. The amount of time it takes in ticks for a liquid to go 1 block is a "flow tick"
Still happens in 1.11 Pre-Release 1...
Also happens with Lava