We should have non-scripting methods to do logic and decision making
First off, the PB is is a wonderful tool, something not many games have for in-game automation.
However, for the non-coding oriented people, and even those that are, and don't want to deal with yet more code, we should have a full alternative. We have sensors and timers, and they are a start, but they are not a complete solution.
What I suggest is some sort of block which provides a custom UI for performing boolean testing and decision making.
Here's a use case:
I want to build an airlock, right now, if I want to make sure it's foolproof, I have to use a PB, so I can check the current state of the doors involved, and the airvent, and work according to those states. If someone is not a coder, it's a daunting task.
Yes, they could get a blueprint from the workshop, and many people do.
However that's not the best option:
1) Some people may not want to deal with other people's code. If it breaks, they can't fix it.
2) Some servers block programmable blocks, so scripts can't be used anyway.
3) Some people (like myself) would prefer the feeling of "making it yourself". Using someone else's code has little appeal to me. I'd rather engineer the solution myself.
What we currently have a timers and sensors. I could make a sensor to track the player, and trigger the timer when approach, which would cycle the airlock. Problem is, which way is the airlock currently configured? There's no way for just a timer and sensor to know the states of the blocks involved. It leaves it in a semi-automatic state. You can used two sensors, or a button panel with two buttons and two timer blocks. But it's not the same, plus it doesn't scale well.
There are several blocks and enhancements to existing blocks that would be added:
New block: Logic Block
This block would have an action, and would execute one of two (or more) branches, given a set of conditions. The conditions could be provided by supplying the block name/entityid, and the terminal property to check. This would use the dynamic properties, which would allow modded blocks and actions to be included. The branches would be standard toolbar based actions, like the timer block. For simplicity it could be a single action, which could be used to execute a timer to perform the rest of the operations.
In the example of the airlock, there could be a logic statement that says something like:
Action 1: When "door 1" "DoorState" is equal to "Open" then "Execute action bar 1"
Action 2: When "door 2" "DoorState" is equal to "Open" then "Execute action bar 2"
You could have an option to continue if condition is met, or short circuit and stop.
In the above example, you'd want to short circuit and end once the first condition was met.
This is the simplest implementation, I'm sure the devs could think of a better one.