Fix GraphEdit port valid connections incorrectly checking sides #81600
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Minimal reproduction project: GraphEditPortConnectionTest.zip
The project has this code in it to create an asymmetric valid connection type:
In the above screenshot, red is type 0 and green is type 1. This code makes it so that a connection from red to green is valid. The expectation is that this will allow to connect the top two GraphNodes, either by dragging from the red output to the green input or the green input to the red output, because we have an output of red and an input of green, and we stated that from red to green is allowed.
However, in the current master, this does not work correctly. In master, the test project will allow you to drag from red to green left to right on top, and from right to left on bottom, and doesn't let you start with green. This behavior is wrong, the only thing that matters is which inputs and outputs may be used together, not where the user started clicking. The fix is to flip the order of the arguments in this
ConnectionType
constructor (note: this must be the opposite of a similar line of code 20 lines down, in master they are the same which is wrong).