Happy new year to the wonderful Godot community!
2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.
We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)
Here's to a great year 2021 for all Godot users 🎆
(cherry picked from commit b5334d14f7)
Avoid load_scene for built-in resources to make sure we don't
open a scene tab and prompt for model file editing.
Load scene as regular resource instead and store the reference to keep
the dependency until the remote inspector cache is cleared.
(cherry picked from commit 01802074a0)
- Refresh tha tab automatically when switching to it.
- Disable the Refresh button if no project is currently being debugged.
- Scale the column widths on hiDPI displays.
- Rename the tab from "Video Mem" to "Video RAM" for consistency.
(cherry picked from commit 8f838f33b7)
Previously, the CSV file could only be saved in `res://`. Since this is
an editor tool, it makes sense to allow saving anywhere on
the filesystem.
(cherry picked from commit 81f33df84b)
Happy new year to the wonderful Godot community!
We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.
Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
Changed to MarginContainer to enforce debugger tabs minimum size on the parent, avoids overlapping controls with Profiler and Network Profiler tabs.
Fixes#20837
Implemented uniform API in Viewport class to override 2D and/or
3D camera.
Added buttons in 2D and 3D editor viewport toolbars that override
the running game camera transform with the editor viewport camera
transform. Implemented via remote debugger protocol and camera
override API.
Removed LiveEditFuncs function pointers from ScriptDebugger class.
Since the debugger got access to the SceneTree instance (if one
exists), there is no need to store the function pointers. The live
edit functions in SceneTree are used directly instead. Also removed
the static version of live edit functions in SceneTree for the same
reason. This reduced the SceneTree -> Debugger coupling too since
the function pointers don't need to be set from SceneTree anymore.
Moved script_debugger_remote.h/cpp from 'core/' to 'scene/debugger/'.
This is because the remote debugger is now using SceneTree directly
and 'core/' classes should not depend on 'scene/' classes.
This was removed by @RyanStein in #21884 in the case where an error
message is provided, but this is actually useful information to have
even when there is a custom error message.
This PR makes it so that the "C++ Error" is shown whenever there is
a custom error message provided.
Also adds method name to the error item title, and re-adds the most
relevant info in the tooltip for quick error checks without expanding.
Renames C Error/Source to C++ Error/Source, since that's what it is.
And fix untranslatable entry due to misuse of TTR().
And some more cleanup for readability.
Cf. https://github.com/godotengine/godot/issues/32276#issuecomment-534119914
- Display the shortcut in the button tooltips by defining the shortcut
on the buttons as well.
- Swap "Step Over" and "Step Into" in the Debug menu to match the button
order in the Debugger bottom panel.
This fades out messages originating from the editor to make messages
printed by the project stand out more.
This also tweaks wording in some editor messages for consistency.
Resolves: #30731
When you stop debugging... if you were inspecting a remote node, partial information about the remote node remained in the inspector (e.g. name and warning).
To resolve this, called EditorNode::edit_current() instead of EditorInspector::edit(NULL), which will call all the methods required using "NULL" if the current selected object is NULL.
In EditorPath::update_path() if the selected object is NULL, it does not update the path to reflect this change, basically does nothing. To fix this, we nullify everything, before the history loop.
The editor debugger used to only take the first client connection,
leaving potential new connections hanging until TCP timeout.
This caused a lock after some time when running multiple game/editor
instances, as the client will fill the write buffer, and then lock until
timeout (as the editor server would never read from that socket).
The editor now drops new connections immediately if it is already
connected to a client.