Implement a pipe wire signal blocking / polarizing
SpaceToad opened this issue ยท 5 comments
With more complex control stations, having only 4 wires makes it a bit light to control robots. The emerald gates help a bit (they allow to create up to 16 messages) but the fact that wire signal systematically broadcasts limits that a bit. We need a system allowing to only send messages to a given direction, or polarize input / output on a given pipe. Maybe just a special pipe, a special action or something else.
I think any long-term fix to this should be stalled until 6.2. I would agree with sided direction sending for sided gates, though.
@asiekierka ok with delay to 6.2.0 :-)
@SpaceToad: Instead of blocking signals in one or more directions, how about creating 'channels' for each wire color? So, instead of Pipe.wireSet being an array of booleans, make it an array of bytes, with each byte representing one wire color and each bit representing on/off for each channel. Pipe wire triggers and actions would take an optional parameter to select the channel. If there's no parameter present, it responds to any or acts on all channels for that wire color.
I'm pretty sure I can implement this fairly quickly for 6.1. It may turn out to be more intrusive or complex than it's worth for a short to medium term fix, but I'll take a stab at it this week and let you know.
Pardon my ignorance. I'm looking into it now, and realized I didn't understand the purpose of wireSet. I'll familiarize myself with the code more before making off the cuff suggestions. :)
Deferred to #2196.