In Godot 2 we had to call methods for basically everything, set_pos() to move Node2Ds and the like.
In Godot 3 it's encouraged that we set member variables directly: node2d.position = [value].
I've got a reasonably complex codebase and somewhere in it an object's position is being set to a very weird value for less than a full frame -- if I print the position in physicsprocess(), it will never catch the blip. This makes it very difficult to debug.
In Godot 2 I could've added a custom script for the object and overridden set_pos() so I could put a breakpoint. But it Godot 3 updating member variables such as position does not trigger their setget methods, and I can't add setget to position because I'm not allowed to override parent class member variables.
How can I make a function which is called every time a Node2D's position variable changes?
I was hoping that Node2D's set_position() would be called if it's overridden, much like how CanvasItems' _draw() can be overridden and will automatically and appropriately be called.