Bug Description:
When a Conveyor/Liquid/Gas Meter receives a green signal, it will continuously reset the Amount, thus emitting more than Amount if there is something in the "Input" slot at the time of receiving the green signal.
It only behaves correctly if there is nothing in the "Input" for the duration of receiving the green signal.
The Valves are set to "0.1", so a reasonable player would expect that once every 4.2 seconds, a single 0.1 kg packet would be emitted, but instead sometimes a second packet is emitted despite the green signal being a very brief 0.2 seconds.
Behavior when the input is full:
If the green signal is 1 second long, the Conveyor meter always emits an extra packet.
If the green signal is 0.2 seconds long, the Conveyor meter occasionally emits an extra packet.
If the green signal is 0.1 second long, the conveyor meter very occasionally emits an extra packet and occasionally misses the green signal.
If the signal is 0.05 s long, the conveyor meter usually misses the green signal but doesn't seem to emit extra packets.
Clearly working as programmed to:
As a programmer, it's clear to me that the Meters are working exactly as programmed. However this behavior of "reset literally every moment that a green signal is being received" is super annoying to the player with difficult workarounds, and IMO largely "violates" the "promise" of the Meters which is to emit exactly Amount after receiving a green signal. While it would seem reasonable that the player keeps the green signal brief, having to force the Input to be empty simultaneously with receiving the reset signal seems too much!
Suggested Fix:
I believe the most logical behavior would be if the Meters can only be reset once per second, with any subsequent reset signal being ignored, e.g. it could remember the game tick when it last reset, and not reset for the next 5-10 ticks (I'm not sure in this context how many ticks are in a second, but in any case "one second worth of ticks"), though even not resetting on the next tick would be a huge improvement, allowing a single-tick signal to cleanly reset the Meter.
Now to be clear, I think it's important that if a Meter receives a continuous reset signal it should emit packages continuously, that is to say that if it receives a continuous green signal it should reset once per second and emit "Amount" or the input packet (if Amount is bigger) every second. That behavior should not change.
- Have a full pipe/conveyor go into a Meter.
- Set Amount to something small.
- Send a brief green signal (e.g. 0.2s) and longer red signal (e.g. 4s) to the Reset Port of the Meter, e.g. using Timer Sensor.
- Observe more than Amount getting emitted from time to time.
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now