Commit Graph

58 Commits

Author SHA1 Message Date
K. S. Ernest (iFire) Lee
9a4df15d3e Codebase Enhancements and Performance Improvements
We've made several updates to improve our codebase and application performance.

- Clang format was applied for better readability and consistency, aiding other developers in understanding and contributing to the code.
- We resolved issues that were causing visual script compilation failure. The visual script now compiles successfully, ensuring application functionality.
- Broken sections within the codebase were fixed, improving overall stability.
- Built-in functions from the visual script were removed to simplify the code and enhance readability.
- Generic search performance was improved to provide faster results, enhancing user experience.
- Missing flow nodes were added to the Visual Script, ensuring all necessary components are present for correct functioning.

In an effort to streamline the codebase:

- `VisualScriptComment` class and related code were removed, reducing complexity and improving maintainability.
- Error messages were optimized for quicker feedback when errors occur.
- Licenses were updated to reflect recent changes, ensuring legal compliance and project transparency.
- The `get_global_name()` override in `visual_script.h` was fixed, and `TYPE_BUILTIN_FUNC` in `visual_script_expression.h` was removed, improving code functionality.
- Search logic was refactored to avoid double searching, enhancing performance.
- Documentation was updated to reflect recent changes, providing accurate information to users and developers.
- Property selection logic in `VisualScriptPropertySelector` was refactored for easier understanding and modification.
- Code was refactored to avoid variable shadowing, improving readability and reducing potential errors.
- `.clang-format` and `.clang-tidy` configuration files were added to ensure consistent code styling.

To make the code more robust and easier to understand:

- Variable names were corrected for clarity, and error handling in `visual_script_expression.cpp` was improved.
- Function and variable names were refactored for better readability and maintainability.
- Member editing logic in `VisualScriptEditor` was simplified.
- Name variables were updated to be unique, avoiding potential conflicts and errors.
- The `VisualScriptSubCall` class was refactored for simplicity and ease of understanding.

For macOS workflow:

- It was updated to use the latest version and correct path for installing Vulkan SDK, enabling the application to leverage the latest features and improvements from the Vulkan SDK.
- Mac Vulkan SDK was installed to support Vulkan-based functionalities.

Lastly, we made necessary changes to pass CI/CD tests, ensuring the code quality and stability of the application.
2023-08-19 09:42:23 -07:00
Yuri Sizov
43bbd78992 Make _validate_property a multilevel method 2022-08-22 18:35:11 +03:00
Fabio Alessandrelli
6c71fc9089 [Net] Modularize multiplayer, expose MultiplayerAPI to extensions.
- RPC configurations are now dictionaries.
- Script.get_rpc_methods renamed to Script.get_rpc_config.
- Node.rpc[_id] and Callable.rpc now return an Error.
- Refactor MultiplayerAPI to allow extension.
- New MultiplayerAPI.rpc method with Array argument (for scripts).
- Move the default MultiplayerAPI implementation to a module.
2022-07-26 09:31:12 +02:00
Rémi Verschelde
7a2dfcf238 Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
Marcel Admiraal
aaccecb0d8 Remove unimplemented methods 2021-10-21 18:44:25 +01:00
Fabio Alessandrelli
df4cc73fa5 [Net] Move multiplayer to core subdir, split RPCManager.
Move multiplayer classes to "core/multiplayer" subdir.

Move the RPCConfig and enums (TransferMode, RPCMode) to a separate
file (multiplayer.h), and bind them to the global namespace.

Move the RPC handling code to its own class (RPCManager).

Renames "get_rpc_sender_id" to "get_remote_sender_id".
2021-09-07 11:14:30 +02:00
reduz
7a88123b88 Replace BIND_VMETHOD by new GDVIRTUAL syntax
* New syntax is type safe.
* New syntax allows for type safe virtuals in native extensions.
* New syntax permits extremely fast calling.

Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`.
These will require API rework on a separate PR as they work different than the rest of the functions.

Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
2021-08-22 08:23:58 -03:00
Rémi Verschelde
0f3463f3d4 Merge pull request #48972 from DavidCambre/Expose_VisualScriptCustomNode_TypeHints_m 2021-07-21 12:02:17 +02:00
David Cambré
2e6b8bafd1 expose type hints for VisualScriptCustomNode
Co-Authored-By: Rémi Verschelde <rverschelde@gmail.com>
2021-07-21 10:52:45 +02:00
Dipal M Zambare
47d8d98121 Fixes Visual script nodes operator mismatch issue #49943 2021-06-29 15:01:34 +05:30
Lightning_A
6db897c183 Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
reduz
9a402f0232 Improve resource load cache
-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.
2021-02-11 15:44:28 -03:00
Rémi Verschelde
3debf92210 Update copyright statements to 2021
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 🎆
2021-01-01 20:19:21 +01:00
Marcel Admiraal
894bc9aa5a Add override keywords. 2020-07-10 13:56:54 +01:00
Rémi Verschelde
7916419087 Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.

This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.

There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).

Part of #33027.
2020-05-14 16:54:55 +02:00
Ignacio Etcheverry
bdf2a26d45 Fix ClassDB API portability with some android and editor classes
- `EditorNavigationMeshGenerator` was being registered as part of the Core API,
even after d3f48f88bb84d22b7805ce971ac86cf1953a29fd. We must make sure to
set Editor as the current ClassDB API type before creating an instance.

- The `VisualScriptEngineSingleton.constant` property has a property hint string
that's different between tools and non-tools builds. This commit makes the
hint string to no longer be set in `_bind_methods`, and to instead set it in
`_validate_property`. This way it's ignored when calculating the API hash.

- `JavaClassWrapper` is now registered in ClassDB on all platforms,
using a dummy implementation on platforms other than Android.
This fixes API portability between Android and other platforms.

- Updated `--class-db-json` command to ignore non-virtual methods that start
with an underscore (see: 4be87c6016a5893cbde897924e540df4c988cee5).
2020-01-19 20:15:13 +01:00
Rémi Verschelde
be5dd6ce1f Update copyright statements to 2020
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.
2020-01-01 11:16:22 +01:00
Swarnim Arun
3d8b00c657 Visualscript editor graph unification & refactoring
Removes the need to have separate graphs per function for the VisualScript Nodes, and refactoring UI and other improvements such as fuzzy search, right click search boxes and in-graph editable nodes
2019-09-26 01:53:58 +05:30
JohnJLight
af6a3a56a4 Made use of semicolons more consitent, fixed formatting 2019-06-19 15:24:31 +02:00
Rémi Verschelde
c3208308e0 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
K. S. Ernest (iFire) Lee
9f2f90f1a6 Carry property hint and hint string through to Visualscript virtual functions. 2018-07-27 13:12:34 -07:00
Fabio Alessandrelli
c5201bf556 Refactor RPCMode enum and checks 2018-05-29 20:26:41 +02:00
Max Hilbrunner
6ab5b2700b Revert "RPCMode refactor, more sync modes" 2018-05-29 11:47:52 +02:00
Max Hilbrunner
08c1e2541f Merge pull request #19021 from Faless/rpc_sync_fix
RPCMode refactor, more sync modes
2018-05-29 09:44:03 +02:00
Fabio Alessandrelli
677ad7597e Refactor RPCMode enum and checks 2018-05-26 10:43:43 +02:00
Pieter-Jan Briers
8422bffe51 More stuff! 2018-05-01 00:39:28 +02:00
Pieter-Jan Briers
9f439ddb9d Move things into the title bars of Visual Script nodes.
This is an attempt to make VS slightly nicer to use.

WiP.
2018-04-30 01:28:31 +02:00
Rémi Verschelde
30788bc72e Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Rémi Verschelde
61831d2992 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Goutte
4cf6b16693 Add support for the TAU constant. Fixes #12094. 2017-11-12 13:32:35 +01:00
Poommetee Ketson
2460e901b0 Fix files header 2017-09-01 21:07:55 +07:00
Rémi Verschelde
0df10e88da Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Ignacio Etcheverry
a2ae9ae426 ClassDB: Provide the enum name of integer constants 2017-08-20 22:07:43 +02:00
Wilson E. Alvarez
b7257f91e3 Updated function argument names 2017-08-12 15:12:49 -04:00
Juan Linietsky
1322eeb3e3 Ability to set a function as sequenced, so when called you can choose not to use sequence ports. Fixes #6346 2017-08-08 13:14:36 -03:00
George Marques
4a3a63eb7d Update a VS custom node when its script changes 2017-07-21 23:45:57 -03:00
Juan Linietsky
b0c39a1a34 -Many fixes to VisualScript, fixed property names, etc.
-Added ability to set/get a field in GetSet, as well as assignment ops
-Added a Select node
-Fixed update bugs related to variable list and exported properties, closes #9458
2017-06-30 21:35:05 -03:00
Juan Linietsky
e113ce6546 Removal of InputEvent as built-in Variant type..
this might cause bugs I haven't found yet..
2017-05-20 17:05:38 -03:00
Rémi Verschelde
db85b6c88f Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Rémi Verschelde
cf1590bb62 A Whole New World (clang-format edition)
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?

I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon

A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format

A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
2017-03-05 16:44:50 +01:00
Rémi Verschelde
4ac67c3c30 Add a bunch of missing Godot headers in own files 2017-03-05 15:47:28 +01:00
Saracen
c38ec226ef Inf and NaN support added to GDScript. 2017-02-28 21:52:33 +00:00
Juan Linietsky
b6306b2091 -All types have editable script now in properties
-Changed clip to a property in Control which can be set by the user
2017-01-09 15:50:59 -03:00
Juan Linietsky
19d42ccc73 ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant.
All usages of "type" to refer to classes were renamed to "class"
ClassDB has been exposed to GDScript.
OBJ_TYPE() macro is now GDCLASS()
2017-01-02 23:03:46 -03:00
Juan Linietsky
be6daa776e Connection hints when connecting to empty space. 2016-09-03 14:58:23 -03:00
Juan Linietsky
0af3b5e48e Basic type constants for visual script 2016-09-02 02:13:12 -03:00
Juan Linietsky
9d29d41f2d -Modified Input and added is_action_just_pressed() as well as is_action_just_released() 2016-09-01 18:59:46 -03:00
Juan Linietsky
a8172af66e -Reworked constant nodes better
-Added simple switch node, removed InputEventFilter
2016-08-31 12:50:46 -03:00
Juan Linietsky
96448f39a4 More visual script improvements
-Added anti-aliasing on lines
-Improved draw performance enormously
-Removed sequence ports for most nodes, current visual scripts will likely be broken now. Sorry!
2016-08-30 23:46:41 -03:00
Juan Linietsky
b8ca97b8a9 Several all around fixes to visual scripting (in the process of creating demos) 2016-08-28 20:59:01 -03:00