Commit Graph

1207 Commits

Author SHA1 Message Date
Rémi Verschelde a2459c7d35
Merge pull request #61610 from TokageItLab/importer-retarget-registered-gdhumanoid 2022-07-02 00:17:21 +02:00
Silc Renew dc43cfc830 implement bone renamer in importer 2022-07-01 03:55:28 +09:00
Fabio Alessandrelli 0e504e4191 [AssetLib] Fix crash in Web editor.
Add EditorAssetLibrary::is_available which always returns false in the
Web editor and use it in EditorNode for detection.
2022-06-30 01:26:08 +02:00
Voylin c6291bcd8a Adding print_rich for printing with BBCode 2022-06-29 00:41:29 +09:00
Rémi Verschelde bbca1d6530 Fixup #62318 after ResourceCache changes 2022-06-27 14:02:21 +02:00
Rémi Verschelde 09c584990c
Merge pull request #62318 from reduz/simplify-subresource-saving
Simplify Subresource Saving
2022-06-27 13:50:49 +02:00
Rémi Verschelde b192073001
Merge pull request #62309 from reduz/remake-resource-thread-safety
Remake ResourceCache thread safety code and API
2022-06-25 14:09:28 +02:00
reduz 9eb5f2a0d7 Simplify Subresource Saving
Redo edited subresource (and resource) saving in a much more simplified way.
I think this should work (unless I am missing something) and be faster than what is there.
It should also supersede #55885.

I am not 100% entirely convinced that this approach works, but I think it should so please test.
2022-06-23 21:25:20 +02:00
Marius Hanl 3b20b9d32a Update the window title when the project settings were changed or when the unsaved cache was changed (either by editing something or by saving)
This makes sure that:
1.) The title is always up-to-date with project settings
2.) The title always reflects the changes made in the editor by showing or hiding the '(*)'
2022-06-22 23:53:52 +02:00
reduz e772b65d92 Remake resource thread safety and API
* Ensures thread safety when resources are destroyed.
* Simplified API by always forcing `ResourceCache::get_ref`, which needs less hacks and is fully thread safe.
* Removed RWLock for resources because its not possible to use for the new logic. Should not be a problem.

Supersedes #57533
2022-06-22 13:46:46 +02:00
Rémi Verschelde 40c360b870
Merge pull request #62122 from reduz/implement-movie-writer
Implement a Movie Maker mode
2022-06-21 14:24:14 +02:00
reduz 5786516d4d Implement Running Godot as Movie Writer
* Allows running the game in "movie writer" mode.
* It ensures entirely stable framerate, so your run can be saved stable and with proper sound (which is impossible if your CPU/GPU can't sustain doing this in real-time).
* If disabling vsync, it can save movies faster than the game is run, but if you want to control the interaction it can get difficult.
* Implements a simple, default MJPEG writer.

This new features has two main use cases, which have high demand:
* Saving game videos in high quality and ensuring the frame rate is *completely* stable, always.
* Using Godot as a tool to make movies and animations (which is ideal if you want interaction, or creating them procedurally. No other software is as good for this).

**Note**: This feature **IS NOT** for capturing real-time footage. Use something like OBS, SimpleScreenRecorder or FRAPS to achieve that, as they do a much better job at intercepting the compositor than Godot can probably do using Vulkan or OpenGL natively. If your game runs near real-time when capturing, you can still use this feature but it will play no sound (sound will be saved directly).

Usage:

$ godot --write-movie movie.avi [scene_file.tscn]

Missing:

* Options for configuring video writing via GLOBAL_DEF
* UI Menu for launching with this mode from the editor.
* Add to list of command line options.
* Add a feature tag to override configurations when movie writing (fantastic for saving videos with highest quality settings).
2022-06-21 11:28:47 +02:00
Rémi Verschelde 0aa85f4ff8
Merge pull request #62252 from Maran23/project-window-title-rename-fix
Update project window title when a project setting was changed
2022-06-20 23:19:14 +02:00
Marius Hanl 9f2d1b5cf0 Update project window title when a project setting was changed
Before this fix the title was just updated when we make the first change in the project settings. Now we always update the window title as it may be changed in the meantime when a project setting is changed (e.g. the app name (application/config/name)).
2022-06-20 21:57:50 +02:00
Rémi Verschelde b4804a2d3f
Merge pull request #61459 from reduz/new-shader-editor 2022-06-20 15:27:16 +02:00
cow-neaz 8935cf17cf Stop game on reloading project 2022-06-17 03:20:37 +03:00
Rémi Verschelde ac9cfd0c2d
Merge pull request #61820 from pfertyk/issue-61604-is-plugin-enabled-by-name 2022-06-16 09:59:07 +02:00
Hugo Locurcio c178cfef8e
Mark some common project settings as basic 2022-06-12 19:50:14 +02:00
Paweł Fertyk 725eb629b3 Allow plugin name in `is_plugin_enabled`
Fixes #61604.
2022-06-09 18:42:32 +02:00
bruvzg e00571b194
Add readable export errors. 2022-06-08 17:55:46 +03:00
K. S. Ernest (iFire) Lee 1b776a6e7a Allow picking similar colours using OKHSL. 2022-06-07 05:53:27 -07:00
reduz 73c102f272 Redo the shader editor
* Shader editor is permanent (no longer transient).
* Can edit multiple files at the same time.

Likely fixes many usability issues (please lend me a hand Bugsquad team to identify them).
2022-05-28 11:03:16 +02:00
Rémi Verschelde 42b48496de HTML5: Always disable Asset Library
GitHub doesn't allow CORS so we can't download assets from it.

There'd also be more work needed for the Asset Library plugin to be
usable in the Web editor even if that was supported.
2022-05-25 14:19:46 +02:00
reduz 45af29da80 Add a new HashSet template
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +02:00
Aaron Record 900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
reduz 746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
Rémi Verschelde 6d5d9dd82a
Merge pull request #61016 from macjuul/mono-script-editor-fix
Fix script editor opening when external editor is configured for C#
2022-05-14 09:19:32 +02:00
Julian Mills 77f23a3023 Fix script editor opening when external editor is configured 2022-05-14 01:27:01 +02:00
clayjohn 652adcd5bf Basic 3D rendering 2022-05-12 10:37:27 -07:00
kobewi 1dc7bcc83c Cleanup metadata usage 2022-05-06 00:27:10 +02:00
Rémi Verschelde 71e41eb395
Merge pull request #60597 from reduz/missing-node-resource-placeholders 2022-05-05 15:57:50 +02:00
kobewi 3f50dad460 Cache script icons in editor 2022-05-05 14:27:29 +02:00
Rémi Verschelde 84f64ddde9
Merge pull request #60723 from reduz/refactor-module-initialization 2022-05-04 19:08:43 +02:00
reduz de0ca3b999 Refactor module initialization
* Changed to use the same stages as extensions.
* Makes the initialization more coherent, helping solve problems due to lack of stages.
* Makes it easier to port between module and extension.
* removed the DRIVER initialization level (no longer needed).
2022-05-04 17:34:51 +02:00
reduz 0a57f964a3 Implement missing Node & Resource placeholders
Implemented by request of @neikeq to advance in the GDExtension version of Mono.

* If a Resource type is missing upon load, it will be remembered together with its data (Unless manually overriden).
* If a Node type is missing upon load, it will be also be remembered together with its data (unless deleted).

This feature makes working with GDExtension much easier, as it ensures that missing types no longer cause data loss.
2022-05-03 17:08:09 +02:00
Hugo Locurcio 180e5d3028
Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
These typedefs don't save much typing compared to the full `Ref<Resource>`
and `Ref<RefCounted>`, yet they sometimes introduce confusion among
new contributors.
2022-05-03 01:43:50 +02:00
Rémi Verschelde c273ddc3ee Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`
Didn't commit all the changes where it wants to initialize a struct
with `{}`. Should be reviewed in a separate PR.

Option `IgnoreArrays` enabled for now to be conservative, can be
disabled to see if it proposes more useful changes.

Also fixed manually a handful of other missing initializations / moved
some from constructors.
2022-05-02 16:28:25 +02:00
Haoyu Qiu ba90778f1c Load fallback icon for custom class when no icon available 2022-04-29 09:40:20 +08:00
Rémi Verschelde d22850234c
Merge pull request #59393 from techiepriyansh/move-gltf-export-under-scene-menu 2022-04-27 11:51:49 +02:00
Rémi Verschelde 676f9d39ed
Merge pull request #60535 from timothyqiu/class-name-icon
Fix custom class icon when it inherits from a script
2022-04-27 08:05:38 +02:00
Haoyu Qiu 8960b990ec Fix custom class icon when it inherits from a script 2022-04-27 10:02:21 +08:00
FireForge fb1d4be7bd Add RayCast2D target_position editor handle 2022-04-26 15:14:35 -05:00
Rémi Verschelde e8cca501fe
Merge pull request #60395 from Geometror/editor-gradient-preview-plugin 2022-04-26 12:22:07 +02:00
Rémi Verschelde 948f4e3fbd
Merge pull request #60008 from fire-forge/bitmap-preview 2022-04-26 12:20:07 +02:00
Rémi Verschelde 02bb8e948f
Merge pull request #60261 from fire-forge/theme-prop-renames 2022-04-25 16:20:19 +02:00
Hugo Locurcio 5626d026d8
Add an external link editor icon
This replaces the existing "chainlink" instance icon that was
used for external links. That icon is still used for scene instancing.

The icon was designed by redlamp.

Co-authored-by: Taylor Wright <taylor@redlamp.org>
2022-04-24 17:26:29 +02:00
FireForge 3073b85de9 Rename theme properties to include underscores
- check_vadjust -> check_v_adjust
- close_h_ofs -> close_h_offset
- close_v_ofs -> close_v_offset
- commentfocus -> comment_focus
- hseparation -> h_separation
- ofs -> offset
- selectedframe -> selected_frame
- state_machine_selectedframe -> state_machine_selected_frame
- table_hseparation -> table_h_separation
- table_vseparation -> table_v_separation
- vseparation -> v_separation
2022-04-23 11:16:18 -05:00
FireForge 1f60584970 Add an inspector preview for BitMap 2022-04-20 22:20:31 -05:00
Hendrik Brucker a93834c819 Add gradient resource preview generator 2022-04-21 00:08:35 +02:00
reduz 66009318e0 Import scenes as AnimationLibrary
Added the ability to import scenes as AnimationLibrary

* Completes implementation of https://github.com/godotengine/godot-proposals/issues/4296
* Helps if you want to export animations to a separate file (say a GLTF) to avoid re-importing/exporting them every time the model changes.
* Helps if you simply want to have animations using a dummy model, which can be shared across multiple models.

Creates a secondary scene importer used only for animations.

**NOTE**: A new flag for scene importer: EditorSceneFormatImporter.IMPORT_DISCARD_MESHES_AND_MATERIALS has been added, to hint importers that they should skip meshes and animations (and hence make importing faster). It is not implemented in any importer yet, this should be done in a separate PR.
2022-04-13 15:06:56 +02:00