Commit graph

1843 commits

Author SHA1 Message Date
George Marques
1ac9c0fe3a
GDScript: Allow strict conversion when assigning typed variables 2018-07-25 20:50:12 -03:00
George Marques
96ee93e8c7
GDScript: Fix mismatching between export hint and type hint 2018-07-25 20:50:12 -03:00
George Marques
4cb17191b8
GDScript: Allow inherited method to add optional arguments
Also show the parent method signature in the error message.
2018-07-25 20:50:11 -03:00
George Marques
cd6ad5462c
GDScript: Fix returned value of get_default_argument_count() 2018-07-25 20:50:11 -03:00
George Marques
65c069c8d9
GDScript: Fix main script detection 2018-07-25 20:50:11 -03:00
George Marques
b7bd85e70c
GDScript: Look up local scope first for detecting type 2018-07-25 20:50:11 -03:00
Hein-Pieter van Braam
0e29f7974b Reduce unnecessary COW on Vector by make writing explicit
This commit makes operator[] on Vector const and adds a write proxy to it.  From
now on writes to Vectors need to happen through the .write proxy. So for
instance:

Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;

Failing to use the .write proxy will cause a compilation error.

In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.

_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
Ignacio Etcheverry
762c912e8e Fix continuous attempt to reload domain with API assemblies out of sync 2018-07-25 21:54:21 +02:00
Ignacio Etcheverry
f1130f9a8a Mono: Fix domain reload never triggering 2018-07-25 21:31:02 +02:00
Ignacio Etcheverry
8edf85b09c Fix '!valid' error spam on C# script instance create 2018-07-25 21:30:49 +02:00
Ignacio Etcheverry
5aefe5d936 Mono: Fix null dereferences 2018-07-25 21:30:11 +02:00
Rémi Verschelde
19fe78fe6f
Merge pull request #20450 from fire/vs_generic_search_20433
Visualscript: Don't show Shift+A search box at every screen.
2018-07-25 20:54:45 +02:00
Max Hilbrunner
bacc02b7d8
Merge pull request #20452 from fire/vs_hide_empty_categories_20433
Visualscript: Hide empty categories for basic types and methods.
2018-07-25 20:08:05 +02:00
K. S. Ernest (iFire) Lee
31008c9199 Visualscript: Don't show Shift+A search box at every screen and reuse EDIT_FIND_NODE_TYPE (ctrl-f) shortcut.
The generic search shortcut is now CTRL-F.
2018-07-25 09:34:52 -07:00
Ignacio Etcheverry
fe28e323b3
Merge pull request #20298 from PJB3005/18-07-20-mono-partial-api-ext
Makes Mono binding classes partial & adds GetNode<T>.
2018-07-25 18:03:57 +02:00
K. S. Ernest (iFire) Lee
5b2c4b77e2 Visualscript: Hide empty categories for basic types and methods. 2018-07-25 08:56:03 -07:00
Thomas Herzog
95d9302248
Merge pull request #20370 from marcelofg55/gdnative_crash
Fix possible crash at NativeScript::get_base_script
2018-07-25 17:09:51 +02:00
Marcelo Fernandez
77f3c0b495 Fix possible crash at NativeScript::get_base_script 2018-07-25 10:58:15 -03:00
Rémi Verschelde
f778bd8e69
Merge pull request #20404 from TigerCaldwell/master
Ensured consistency between RigidBody, PhysicsDirectBodyState, PhysicsServers and their 2D counterparts
2018-07-25 08:25:34 +02:00
Juan Linietsky
2e67fc57e6
Merge pull request #18867 from fire/better_vx_us_rebase_02
Improve VisualScript UX
2018-07-24 18:02:10 -03:00
K. S. Ernest (iFire) Lee
85670726fd Improve VisualScript UX
* Prototype faster function call ux.
* Work on general search ux.
* Able to create nodes from search.
* Show class for variables but not methods.
* Get actions search working.
* Descriptions now show for both methods and properties.
* Enable zooming on mouse wheel up and down.
* Make the drag trigger on right mouse button.
* Search now shows for action visual script nodes.
* Able to search visual node names.
* Search works better.
* Change zooming scale to hide artifacts better.
* Remove zoom changes
* Select from base should check properties too like the other functions.
* Seq_connect flag is needed to set sequence lines correctly.
* Remove comment
* Code cleanup with function names and arguments.
* Use brief description for search descriptions.
* Clean and fix bug with input nodes connecting with sequence lines.
* Add a warning and fix some edge conditions with sequence into data lines and vice versa.
* Don't search functions when pulling from a sequence node.
* Don't show actions when pulling from a data line.
* Set set and get properties.
* Convert visual script operators to the correct type
* Create a function preset finds only functions.
* Singletons can now find functions.
* Add shift-a for generic search.
* Add brief descriptions for Visual Script nodes.
* Search boxes can now filter names.
* Add bigger hit zones to node connect.
* For the drop zones, make all the rect2 areas the same size.
* Function names in visual script node should be lower case so that search works better.
* Use the convention of capitalize() for set, set, visual script nodes and methods.
* Make search more general. Ignore "_" and make case-insensitive. Also made the search window smaller and remove extra info from search
* Make type_cast use the connecting node's type and remove use of found variable.
* Fix case where you call an instance's call function where it becomes an invalid call.
* Make get_visual_node_names use a set of filters, move action creations and fix bug with sequence node connections.
* Make the window bigger.
* Make connect_data and connect_seq more robust.
* Add icons to search items.
* Add vs constructors in shift-a menu.
* Operators, builtins and constructors show type name. Fix several problems with port connections.
* In shift-a mode search everything.
* Code cleanup
* Work on autocompleting the type.
  * Use type guess in action creation.
  * Check if type hint string exists in object variables when generating the visual script search.
  * Add the hint to SceneTree.
  * Add original type detection.
  * Make type casting great again. This puts the type casted base type as the data output type string hint.
  * Pass the type in a VisualScriptFunctionCall too.
  * Set the base type correctly in VisualScriptFunctionGet and VisualScriptFunctionSet using hint string.
  * Make sure the instance is passed in VisualScriptPropertySet.
  * Restore search on the node's type.
* Remove dependencies from graph_edit.
* Remove dependencies from property_selector and name the class visual_script_property_selector.
* Extract hot zones into a function.
* Move hot_zones constants into default theme.
* Bigger capture zones.
* Clean messy port_grab_distance variables.
* Remove RMB functionality.
* Remove memory leak on showing visual script descriptions.
* Read the port_grab_distance constants on enter tree and theme changed.
2018-07-24 13:59:28 -07:00
Max Hilbrunner
b92c432313
Merge pull request #19225 from Paulb23/open_all_files_in_script_editor
Open all files in script editor
2018-07-24 21:52:11 +02:00
Tiger Caldwell
40c7716586 Modified RigidBody, PhysicsDirectBodyState, PhysicsServer, and their respective 2D counterparts to be more consistent and to include more useful methods.
RigidBody:
- Added add_central_force
- Added add_force
- Added add_torque
- Added apply_central_impulse

RigidBody2D:
- Added add_central_force
- Added add_torque
- Added apply_central_impulse
- Added apply_torque_impulse

PhysicsDirectBodyState:
- Added apply_central_impulse

Physics2DDirectBodyState:
- Added add_central_force
- Added add_force
- Added add_torque
- Added apply_central_impulse
- Added apply_impulse
- Added apply_torque_impulse

PhysicsServer:
- Added body_add_force
- Added body_add_torque
- Added body_add_central_force
- Added body_apply_central_impulse

Physics2DServer:
- Added body_add_torque
- Added body_add_central_force
- Added body_apply_central_impulse
- Added body_apply_torque_impulse

Also fixed some small bugs along the way
2018-07-24 05:00:56 -04:00
Wilson E. Alvarez
a22e746bc3 Removed unnecessary assignments 2018-07-24 09:51:03 +02:00
Ignacio Etcheverry
779c9d638e
Merge pull request #15880 from neikeq/better-collections
Mono: Add Dictionary and Array classes
2018-07-23 23:59:04 +02:00
AndreaCatania
17ebbfb56d Implemented Soft body
- Soft Body Physics node
- Soft Body Rendering
- Soft body Editor
- Soft body importer
2018-07-23 20:50:23 +02:00
Juan Linietsky
1ad20dc2f1
Merge pull request #12403 from AndreaCatania/phymat
Physics material
2018-07-23 07:37:03 -03:00
Rémi Verschelde
df170d81cc Mono: Default to not shipping C# scripts content
Fixes #20053.
2018-07-22 17:28:17 +02:00
Paulb23
8ff747171f Allow opening and editing of any utf_8 file in script editor 2018-07-22 11:55:56 +01:00
Ignacio Etcheverry
525384d8cc
Merge pull request #20337 from aaronfranke/mono-pascal-gd
[Mono] Improvements to GD.cs: PascalCasing and real_t
2018-07-22 03:49:58 +02:00
Rémi Verschelde
7478649b2f
Merge pull request #20229 from aaronfranke/mono-warning-text
[Mono] Update about/warning text
2018-07-22 00:40:15 +02:00
Aaron Franke
174cf31d00 [Mono] Improvements to GD.cs: PascalCasing and real_t
[Mono] Improvements to GD.cs: PascalCasing and real_t
2018-07-21 16:40:46 -05:00
Rémi Verschelde
92415365c8
Merge pull request #19264 from vnen/typed-gdscript-final
Typed GDScript
2018-07-21 23:13:51 +02:00
Juan Linietsky
2b9902db06 -Fix disable_3d flag
-Add extra flag optimize=[size,speed] to be able to prioritize size
2018-07-21 17:26:49 -03:00
Aaron Franke
69530ef614 [Mono] Update about/warning text
I've removed the section about being unable to export games using C# - as you are now able to do this, as long as the export templates are installed. Also, I've made a few minor grammar tweaks.
2018-07-21 15:26:41 -05:00
George Marques
3e87ad5187
Rewrite code completion
- Use data type struct from the parser.
- Avail from type hints when type can't be guessed.
- Consider inner classes and other scripts when looking for candidates.
2018-07-20 21:55:18 -03:00
George Marques
3445dca01d
Add ability to infer variable type from assigned value
Syntax: var x : = 42
Infers the type of "x" to be an integer.
2018-07-20 21:55:18 -03:00
George Marques
03746da73f
Add editor highlight for type-safe lines
The line number is hightlighted to indicate that the line contains only
type-safe code.
2018-07-20 21:55:18 -03:00
George Marques
a2305cd8b2
Fix line number detection in some parser nodes 2018-07-20 21:55:17 -03:00
George Marques
75f395c2a0
Use type hints to improve completion
- Allow type hints to be completed.
- Use type information to infer completion candidates.
- Show typed function signature in tooltip.
- Add type hints when completing declaration from virtual functions
(optional).
2018-07-20 21:55:17 -03:00
George Marques
95351ac867
Add syntax highlighting to type hints 2018-07-20 21:55:17 -03:00
George Marques
e3d72d14ff
Use type information to enable GDScript introspection
This makes the Script API provide accurate information when requesting
property or method info.
2018-07-20 21:55:17 -03:00
George Marques
4b18c4e448
Add typed instructions to GDScript
- Typed assignment (built-in, native, and script).
- Cast (built-in conversion; native and script checks).
- Check type of functions arguments on call.
- Check type of members on set.
2018-07-20 21:55:17 -03:00
George Marques
743053734f
Add static type checks in the parser
- Resolve types for all identifiers.
- Error when identifier is not found.
- Match return type and error when not returning a value when it should.
- Check unreachable code (code after sure return).
- Match argument count and types for function calls.
- Determine if return type of function call matches the assignment.
- Do static type check with match statement when possible.
- Use type hints to determine export type.
- Check compatibility between type hint and explicit export type.
2018-07-20 21:55:16 -03:00
George Marques
f7793fc5c9
Store type hint of declared identifiers 2018-07-20 21:55:16 -03:00
George Marques
b7a00aead0
Move inheritance resolution to the parser 2018-07-20 21:55:16 -03:00
George Marques
8aab9a06d4
Add typing syntax 2018-07-20 21:55:16 -03:00
Juan Linietsky
6c09cdd136
Merge pull request #20157 from GodotExplorer/image-load-webp
Add webp buffer loader for Image
2018-07-20 12:00:21 -03:00
Pieter-Jan Briers
a8c97eb094 Makes Mono bindings partial & adds GetNode<T>. 2018-07-20 13:55:13 +02:00
Ignacio Etcheverry
a85f0f89fe
Merge pull request #20257 from oisincar/fix_basis
Fix bug with Basis.Transposed()
2018-07-20 06:47:15 +02:00