-Only update rendering settings when project settings change
-Fixes the update spinner (and editor rendering) updating all the time.
-Added a "project_settings_changed" signal to EditorNode and EditorPlugin
This can be used to ensure a file has its contents saved
even if the project crashes or is killed by the user
(among other use cases).
See discussion in #29075.
Now TextEdit adjusts x & y offset according to the corresponding
StyleBox when in normal or read-only mode.
In order to handle bottom content margin, wrapped lines that are entirely outside the stylebox content area are not drawn.
Cylinder contact points generation is adjusted to make it more stable
when standing on triangle meshes.
Point-Circle:
Switched to simpler plane projection as it's done for Point-Face contact
points. It solves some cases where discrepancies between the two points
caused the cylinder to jump.
Edge-Circle:
Same as before, the case for edge has just been moved from Face-Circle
to a specific method.
Face-Circle:
The previous method was clipping edges against the circle, and then
tried to add contact points when there wasn't enough support and failed
in some cases.
Now using a different algorithm which adds proper contact points around
the circle more consistently.
First, by clipping edges against circle segments using Face-Face
algorithm.
Second, by clipping edges against the circle plane.
`OS.get_screen_scale` will now return the `window.devicePixelRatio`
value, `OS.get_screen_dpi` uses CSS media queries to find approximate
DPI value for the current display.
`OS.get_screen_size` also return the actual screen size (not the CSS
pixel size).
-Added a new method in Resource: reset_state , used for reloading the same resource from disk
-Added a new cache mode "replace" in ResourceLoader, which reuses existing loaded sub-resources but resets their data from disk (or replaces them if they chaged type)
-Because the correct sub-resource paths are always loaded now, this fixes bugs with subresource folding or subresource ordering when saving.
According to the docs at
https://docs.godotengine.org/en/stable/tutorials/plugins/editor/import_plugins.html#the-editorimportplugin-class
> The get_visible_name() method is responsible for returning the name of
> the type it imports and it will be shown to the user in the Import dock.
> You should choose this name as a continuation to "Import as", e.g.
> "Import as Silly Material"
I've verified Godot's behavior reflects this, so the code examples
should reflect this.
Also document propagating save error in EditorImportPlugin.
It seems that the suggested code ignores any error from
`ResourceSaver.save`, but I think we should return it.