Work in progress - warning of a minor breaking change in the next update!
Hi,
I am re-working the collision triggers for Box2D+ to fix a bug and to make it impossible to accidentally use the events in ways that are incompatible with the Box2D+ library. I have looked at what information is available, how reliably the plugin can create the information and what can be done with that information. From that, I am going to deprecate the following triggers:
Begin Contact
Begin Contact With
Post Solve
Post Solve With
End Contact
End Contact With
And I am going to move the collision trigger to the standard c2 collision triggers
On Collision
On Collision With
This means that all actions will be available after the collision trigger and the only other collision information that will be available, the Pre-Solve, can be used to cancel a collision as before. In the current plugin, it is impossible to, for example, set velocity to an object in an action after a collision trigger (the End-Contact trigger was 'adjusted' to enable this, but that has had a knock-on effect, because the End-Contact does not fire if the objects remain in contact at the end of the collision resolution).
I will also add other conditions:
Is In Contact
Is In Contact With
These will be true if the object is touching another object.
Aside from making it impossible to accidentally use the triggers in ways that are not supported by the rest of the plugin, this will improve performance of the behavior a little (some of the collision listeners will be deleted - the removal of each will reduce the number of function calls per collision). I will leave the conditions in the editor so that games do not crash, but they will no longer have any effect and will be marked as *Deprecated*.
I would be very grateful if you could let me know what you think of this - the changes might appear severe but I believe them to be necessary and I hope that they make sense / are acceptable...?
Please let me know your thoughts - any big disagreements and good arguments will be considered, of course! Thanks.