Commit Graph

461 Commits

Author SHA1 Message Date
b1f392c25e Remove VisualScript module for 4.0
As announced in https://godotengine.org/article/godot-4-will-discontinue-visual-scripting,
Godot maintainers have agreed to discontinue the current implementation of
our VisualScript language.

The way it had been designed was not user-friendly enough and we did not
succeed in improving its usability to actually make it a good low-code
solution for users who need one.

So we prefer to remove it for Godot 4.0 and leave the door open for new,
innovative ideas around visual scripting, to be developed as plugins or
extensions now that Godot provides sufficient functionality for this
(notably via GDExtension and the godot-cpp C++ bindings).

The current module has been moved to a dedicated repository (with full Git
history extracted with `git filter-branch`):

https://github.com/godotengine/godot-visual-script

It can still be compiled as a C++ module (for now, but will likely require
work to be kept in sync with the engine repository), but our hope is that
contributors will port it to GDExtension (which is quite compatibile with
the existing C++ module code when using the godot-cpp C++ bindings).
2022-08-24 12:08:17 +02:00
1abdffe7a0 Replace Array return types with TypedArray 2 2022-08-23 23:21:32 +02:00
8be27dc59e Replace Array return types with TypedArray 2022-08-22 22:42:36 +02:00
ece3df3938 Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
c80540f9a2 Merge pull request #63700 from YeldhamDev/no_methods_to_filter_pal
Hide method filter bar when selecting a doc in the Script editor
2022-08-06 00:39:30 +02:00
7d9a5d79e6 Find a better solution for the script editor member list sometimes not being updated 2022-07-31 21:43:11 +02:00
c86cceb423 Hide method filter bar when selecting a doc in the Script editor 2022-07-30 20:07:46 -03:00
c9fe780239 Fix elements not being shown on first selected script/doc 2022-07-30 19:33:58 -03:00
ba3734e69a Merge pull request #63603 from aaronfranke/editor-paths
Move editor paths into the EditorPaths class
2022-07-29 19:31:59 +02:00
ac870ab1c8 Move editor paths into the EditorPaths class 2022-07-29 11:07:30 -05:00
d4433ae6d3 Remove Signal connect binds
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind().
Changed all uses of it to Callable.bind()
2022-07-29 16:26:13 +02:00
b942c1ffe3 Merge pull request #62827 from fire-forge/ok-cancel
Add `ok_button_text` to AcceptDialog and `cancel_button_text` to ConfirmationDialog
2022-07-13 14:10:38 +02:00
af19501cc7 Seperate filter and description in FileDialog.add_filter() 2022-07-09 10:51:45 -05:00
e4067064ce Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
b4804a2d3f Merge pull request #61459 from reduz/new-shader-editor 2022-06-20 15:27:16 +02:00
7f7244f04a Use consistent casing in editor filter/search bars 2022-05-28 18:43:16 -05:00
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
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
5b02415fd0 Merge pull request #55134 from KoBeWi/script_pillow_or_something
Always soft-reload scripts
2022-05-17 15:09:09 +02:00
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
8b7c7f5a75 Add a new HashMap implementation
Adds a new, cleaned up, HashMap implementation.

* Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing).
* Keeps elements in a double linked list for simpler, ordered, iteration.
* Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much
  for performance vs keeping the key, but helps replace old code).
* Uses a more modern C++ iterator API, deprecates the old one.
* Supports custom allocator (in case there is a wish to use a paged one).

This class aims to unify all the associative template usage and replace it by this one:
* Map<> (whereas key order does not matter, which is 99% of cases)
* HashMap<>
* OrderedHashMap<>
* OAHashMap<>
2022-05-12 11:21:29 +02:00
1dc7bcc83c Cleanup metadata usage 2022-05-06 00:27:10 +02:00
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
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
4bf99f4af2 Narrow FileAccess scope to prevent deadlocks. 2022-04-12 10:54:39 +03:00
9381acb6a4 Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
f00803b8a5 Merge pull request #56695 from bruvzg/mod_unicode_input 2022-04-05 14:03:39 +02:00
d1207a0504 [Input] Add extra shortcut_input input processing step to process Unicode character input with Alt / Ctrl modifiers, after processing of shortcuts. 2022-04-05 13:46:45 +03:00
5db47c5521 Fix lookup symbol in scripts which doesn't open a tab at first attempt 2022-04-05 10:18:45 +03:00
1062bc9884 Fix creation and reopening of built-in scripts 2022-04-03 15:34:21 -03:00
360dea5348 Add GDExtension support to Script
* Ability to create script languages from GDExtension
* Some additions to gdnative_extension.h to make this happen
* Moved the GDExtension binder to core

This now allows creating scripting languages from GDExtension, with the same ease as if it was a module. It replaces the old PluginScript from Godot 3.x.
Warning: GodotCPP will need to be updated to support this (it may be a bit of work as ScriptInstance needs to be created over there again).
2022-03-27 16:13:00 +02:00
42078dec9f Allow negative indexes in ItemList and PopupMenu 2022-03-12 01:14:03 +01:00
2057ea2883 Remove duplicate editor settings definitions 2022-03-06 22:05:49 +01:00
7d44bb8f06 Remove set_as_minsize() 2022-03-06 00:57:42 +01:00
917dac78e7 Replace some bits of code left to work with the new TabContainer 2022-03-04 19:16:33 -03:00
a811ebf699 Make TabContainer use TabBar internally 2022-03-03 21:49:58 -03:00
f653107764 Fix scripts not saving when closing 2022-03-01 01:23:26 +01:00
958912a33f Use versioned URL for "Online Documentation" buttons in the editor
This also avoids a redirect, making the page appear to load faster.
2022-02-17 18:17:02 +01:00
8824b6c5e9 Update if == NOTIFICATION_* to switch statements to match coding style 2022-02-16 08:44:37 -05:00
05b56f316d Remove most EditorNode constructor parameters and fields 2022-02-14 14:16:24 +01:00
7a7fabe4f6 Merge pull request #57641 from Geometror/compilation-time-improvements-1 2022-02-12 09:46:02 +01:00
b396fd4eef Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
e97e894aa0 Fix editor compile error when VisualScript is disabled 2022-02-11 18:45:41 +01:00
a66e55069e Merge pull request #57796 from akien-mga/revert-sname-theme-setters 2022-02-08 11:13:24 +01:00
fc076ece3d Revert "Add missing SNAME macro optimization to all theme methods call"
This reverts commit a988fad9a0.

As discussed in #57725 and clarified in #57788, `SNAME` is not meant to be used
everywhere but only in critical code paths. For theme methods specifically, it
was by design that only getters use `SNAME` and not setters.
2022-02-08 10:17:25 +01:00
317cd0b19a Refactor some object type checking code with cast_to
Less stringly typed logic, and less String allocations and comparisons.
2022-02-08 10:08:34 +01:00
a988fad9a0 Add missing SNAME macro optimization to all theme methods call 2022-02-06 23:06:11 +01:00
f8f19b313d Merge pull request #57562 from AnilBK/string-add-contains
String: Add contains().
2022-02-03 22:21:24 +01:00
adbe948bda String: Add contains(). 2022-02-04 01:28:02 +05:45
71fb89390f Save script editor's function list split offset with the editor layout 2022-02-02 22:50:49 +01:00