godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.34k stars 21.25k forks source link

[4.0] Project converter: Missing conversion for button_pressed for nodes extending BaseButton #74410

Open nobuyukinyuu opened 1 year ago

nobuyukinyuu commented 1 year ago

Godot version

4.0 stable

System information

Windows 10

Issue description

BaseButton Property pressed has changed from a bool to a signal. Code explicitly referencing nodes extending BaseButton do not change this property nor warn the user that the property has changed when migrating from 3.x to 4.0.

There may be issues regarding object qualification if converter doesn't do this yet, addressed in other issues (I don't know if an issue specific to this is filed or how to word it since I don't know the state of the internals of the project converter). It should at least be possible to qualify nodes that exist at design time...

Steps to reproduce

Migrate 3.x project to 4.0

Minimal reproduction project

n/a

YuriSizov commented 1 year ago

This is not going to be possible to address, because convertor has no context and is simply doing substitutions. So something as common as "pressed" would result in many false positives.

Reneator commented 1 year ago

pressed would become button_pressed in godot 4

Zireael07 commented 1 year ago

@Reneator as Yuri said the word pressed is impossible to convert because the converter doesn't know the context

nobuyukinyuu commented 1 year ago

This is why I mentioned type qualification, which I'm not sure if this is an appropriate issue for addressing here directly, but if there is an existing proposal or tracker this can be moved to encapsulate all project converter issues which require type qualification, by all means please link it. In my first issue referencing converter problems I linked #67003 because it's the first issue being tracked I noticed where qualification issues were being discussed.

Basic qualification can still be done in instances where a NodePath is known at design time. (The autocomplete hinter already appears to do this.)

YuriSizov commented 1 year ago

@nobuyukinyuu This issue is fine, it's just unlikely to be fixed, unless someone wants to reimplement the convertor to be smarter than just a bunch of regex substitutions.