Micky
03bef1562b
Fix Typed Array of Objects not accepting `null`.
2022-10-09 10:32:48 +02:00
Haoyu Qiu
5da515773d
Add `is_finite` method for checking built-in types
2022-10-08 13:25:08 +08:00
Rémi Verschelde
62b066dbd6
Fix more MSVC C4702 (unreachable code) warnings
2022-10-07 14:43:59 +02:00
bruvzg
0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4.
2022-10-07 11:32:33 +03:00
Rémi Verschelde
3a2b0ab73d
Merge pull request #66898 from aaronfranke/proj-mat-columns
...
Rename Projection `matrix` to `columns`
2022-10-05 08:35:26 +02:00
Hugo Locurcio
6afbf0bd5a
Improve dictionary printing to avoid confusion with arrays
...
- Add leading and trailing spaces within dictionaries, as the `{}`
characters are hard to distinguish from `[]` on some fonts.
This is especially helpful with empty arrays and dictionaries.
2022-10-04 20:33:40 +02:00
Aaron Franke
2cea42cc7f
Rename Projection `matrix` to `columns`
2022-10-04 12:34:19 -05:00
Rémi Verschelde
6991e9b43d
Merge pull request #66583 from bruvzg/constexpr
...
Use `constexpr` in the conditions with template parameters and `sizeof`s to suppress C4127 warnings.
2022-09-29 10:44:22 +02:00
bruvzg
ea1848ce0a
Use `constexpr` in the conditions with template parameters and `sizeof`s to suppress C4127 warnings.
2022-09-29 10:38:21 +03:00
rune-scape
51c411c7ad
Fix unset `ObjectID` with validated `get_object()` call
...
Fixes unset `ObjectID` in variant when calling a validated builtin method returning an `Object *`.
2022-09-28 23:04:22 -07:00
bruvzg
8a9659b152
Change BitField to use 64-bit int.
2022-09-28 17:36:59 +03:00
kobewi
52b20ce909
Use 64bit integers in utility methods
2022-09-28 02:26:37 +02:00
kobewi
7499f41264
Fix wrong floori() behavior
2022-09-27 19:09:34 +02:00
Danil Alexeev
453c5ef682
Remove confusing `String + int` and `int + String` operations
2022-09-24 18:13:44 +03:00
Rémi Verschelde
006e345695
Merge pull request #65817 from bruvzg/typed_array
2022-09-23 10:24:46 +02:00
bruvzg
163257d51b
[GDExtension] Implement support for typed arrays.
2022-09-22 23:31:27 +03:00
Ricardo Buring
0c2055d15d
Callable: add callv method
...
This method can be called from GDExtension.
2022-09-21 08:25:48 +02:00
kobewi
a43319b6c9
Restore numeric from String constructors
2022-09-19 14:31:16 +02:00
Emmanuel Leblond
529afd8fbb
Remove Transfor2/3D,AABB,Basis,RID from Variant destructors given Variant::clear() considers they don't need to be destroyed
2022-09-17 23:48:50 +02:00
Rémi Verschelde
a981a8061f
Merge pull request #65325 from TokageItLab/refactor-variant-for-anim
...
Move some static methods to `Animation` from `Variant` for refactoring `Animation` and `Tween`
2022-09-16 09:20:50 +02:00
Micky
0715250ae4
Use variadic template in `vformat()`
...
Allows `vformat()` to take more than 5 arguments. as well as being a general optimisation that avoids redundant empty Variant checks.
2022-09-14 23:55:34 +02:00
Silc Renew
9d47e079b7
Move some methods to Animation from Variant for refactoring
2022-09-15 04:52:43 +09:00
Rémi Verschelde
5062aafc2d
Merge pull request #64417 from aaronfranke/has-space
...
Replace AABB/Rect2/Rect2i has_no_* methods with has_* methods
2022-09-06 17:00:44 +02:00
Micky
b6daad8d4b
Rename `range_lerp` to `remap`
2022-09-06 07:19:20 +02:00
Aaron Franke
995b9f94e8
Replace Rect2(i) has_no_area with has_area
2022-09-04 23:03:36 -05:00
Aaron Franke
817ae95667
Replace AABB has_no_volume with has_volume
...
Also replace has_no_surface with has_surface
2022-09-04 23:03:36 -05:00
Haoyu Qiu
3c0759608a
Fix crash when encoding freed object in ConfigFile
2022-09-04 19:56:37 +08:00
Jonathan Nicholl
15d057c521
Add `is_zero_approx` methods to `Vector2`, `3`, and `4`
2022-09-02 00:29:50 -04:00
Rémi Verschelde
41156a1e83
Merge pull request #63968 from KoBeWi/finding_stuff_in_a_dictionary
2022-09-01 17:38:39 +02:00
Rémi Verschelde
10aec9057c
Merge pull request #63411 from Calinou/improve-null-object-dictionary-print
...
Improve null and object printing to avoid confusion with arrays
2022-08-31 17:37:08 +02:00
Hugo Locurcio
291d3aaabe
Improve null and object printing to avoid confusion with arrays
...
- Use different syntax for object printing to avoid confusion with arrays.
- Print null as `<null>` to avoid confusion with a string `"null"`.
- Display `<empty>` in editor resource pickers to avoid confusion
with array-based properties.
2022-08-31 15:31:49 +02:00
Silc Renew
c139d9ef7d
Discontinued spherical_interpolate_with in Transform3D
2022-08-31 16:35:38 +09:00
Danil Alexeev
d4555ef5fb
Add `String.to_{camel,pascal,snake}_case` methods
2022-08-30 12:36:24 +03:00
Aaron Franke
10a56981dc
Rename String `plus_file` to `path_join`
2022-08-29 19:38:13 -05:00
Silc Renew
931fb4dc11
Add linear/cubic angle interpolation to Animation interpolation type
2022-08-27 07:58:22 +09:00
Micky
59e11934d8
Rename `str2var` to `str_to_var` and similar
...
Affects the Math class, a good chunk of the audio code, and a lot of other miscellaneous classes, too.
- `var2str` -> `var_to_str`
- `str2var` -> `str_to_var`
- `bytes2var` -> `bytes_to_var`
- `bytes2var_with_objects` -> `bytes_to_var_with_objects`
- `var2bytes` -> `var_to_bytes`
- `var2bytes_with_objects` -> `var_to_bytes_with_objects`
- `linear2db` -> `linear_to_db`
- `db2linear` -> `db_to_linear`
- `deg2rad` -> `deg_to_rad`
- `rad2deg` -> `rad_to_deg`
- `dict2inst` -> `dict_to_inst`
- `inst2dict` -> `inst_to_dict`
2022-08-26 14:58:22 +02:00
Yuri Rubinsky
e97ece55aa
Add constructor accepting four Vector4's to `Projection`
2022-08-24 08:30:40 +03:00
Rémi Verschelde
944bfc6d00
Merge pull request #63602 from TokageItLab/cubic-interp-time
2022-08-22 17:32:47 +02:00
rafallus
da7a5653f4
Expose Basis `set_orthogonal_index` method as a GridMap function
2022-08-20 21:42:20 -05:00
Silc Renew
dded7c72c1
Make `cubic_interpolate()` consider key time in animation
2022-08-19 14:48:37 +09:00
kobewi
cc424bcb18
Add Dictionary.find_key()
2022-08-16 13:48:59 +02:00
Haoyu Qiu
9c4ad8191b
Expose clear method for packed arrays
2022-08-10 17:12:20 +08:00
antonWetzel
40a1d6d100
vector4 distance_squared_to and update csharp
2022-08-09 01:59:17 +02:00
Rémi Verschelde
446fdc5b71
Merge pull request #64027 from Geometror/add-vector4-tests
2022-08-07 16:07:36 +02:00
Hendrik Brucker
36061c5dca
Vector4/Vector4i: Add missing methods, tests and fix change of sign operator
2022-08-07 12:25:05 +02:00
Rémi Verschelde
e6e13c8251
Merge pull request #63361 from KoBeWi/floorf_lol
2022-08-06 22:25:27 +02:00
kobewi
ae3d83b17b
Restore old lerp() behavior and add lerpf()
2022-08-06 21:15:37 +02:00
Rémi Verschelde
dc04050cfd
Merge pull request #63698 from PrecisionRender/plane-operator-asterisk
...
Add operator `*` to `Plane`
2022-08-06 00:38:59 +02:00
Rémi Verschelde
c717d5c64b
Arrays: Zero new items of trivial types on resize() (bindings only)
...
This is not enabled by default in the core version for performance reasons,
as Vector/CowData are used in critical code paths where not zero'ing memory
which is going to be set later on can be important.
But for bindings / the scripting API, we make zero the new items by default
(which already happened for built types like Vector3, etc., but not for
trivial types like int, float).
Fixes #43033 .
Co-authored-by: David Hoppenbrouwers <david@salt-inc.org>
2022-08-04 13:35:37 +02:00
Rémi Verschelde
a49cf9fe90
Merge pull request #55923 from bluenote10/feature/consistent_transform_operations
...
Fix consistency of translated/scaled/rotated in Transform2D and Transform3D
2022-08-03 07:50:01 +02:00
Fabian Keller
f242f9c738
Fix consistency of translated/scaled/rotated in Transform2D and Transform3D
2022-08-02 23:38:14 +02:00
lawnjelly
bb273bc972
Variant large bucket memory pool - for Projection
...
Add a larger bucket size pool for the new Projection Matrix.
2022-08-02 16:27:57 +01:00
Rémi Verschelde
33258d850c
Merge pull request #61315 from lawnjelly/variant_bucket_pools
...
Variant memory pools
2022-08-02 15:54:18 +02:00
PrecisionRender
2adb67c3c5
Add `operator*` to `Plane`
2022-07-30 17:48:55 -05:00
Rémi Verschelde
7199314eb3
Merge pull request #63595 from reduz/remove-signal-connect-binds
...
Remove Signal connect binds
2022-07-29 18:10:39 +02:00
Juan Linietsky
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
kobewi
ee6fd704b5
Fix Vector4 serialization
2022-07-29 12:09:03 +02:00
Rémi Verschelde
14d021287b
Merge pull request #63049 from Faless/mp/4.x_as_module
2022-07-28 20:46:31 +02:00
Rémi Verschelde
a5f12f9c21
Merge pull request #63532 from TokageItLab/rename-cubic-slerp
2022-07-28 10:39:33 +02:00
Rémi Verschelde
199ea349f5
Merge pull request #57698 from bluenote10/feature/rename_translated_to_translated_local
2022-07-28 10:03:07 +02:00
kobewi
fdf7441015
Split ceil(), floor() and round() method
2022-07-27 16:58:56 +02:00
Silc Renew
4211e68d80
rename and unify notation for spherical interpolation
2022-07-27 23:22:50 +09:00
Fabio Alessandrelli
ca7d572908
[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
kobewi
7006f7d693
Add some missing Vector4 methods
2022-07-26 02:35:42 +02:00
Rémi Verschelde
3084a48ace
Merge pull request #63219 from reduz/implement-vector4-projection
2022-07-25 11:13:27 +02:00
Jcrespo
1a3d57f319
Solve discrepancy between code and class reference for Plane
...
On #43310 , class reference was automatically updated from source,
causing xml documentation to disagree with parameter naming
description on Plane.intersects_segment().
Weirdly, it also changed the parameter for Plane.is_point_over()
from point to plane, when only the first has sense (and it is
defined on math.Plane as "const Vector3 &p_point"). Manual
mistake?
* Update begin/end to from/to on Plane.intersects_segment(...)
docs description to match source
* Update Plane bindings to use points instread of plane for
is_point_over(...)
* Change Plane.is_point_over(plane) to Plane.is_point_over(point)
AND its description on docs
Fixes godotengine/godot-docs#5976
2022-07-24 18:21:25 +02:00
reduz
455c06ecd4
Implement Vector4, Vector4i, Projection
...
Implement built-in classes Vector4, Vector4i and Projection.
* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.
These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.
**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00
Yuri Rubinsky
ccc56cc6d4
Rename `epsilon` to `tolerance` in the `Plane::has_point` method
2022-07-21 20:15:15 +03:00
cdemirer
dae5edf41c
Fix the argcount when generating error message for CallableComparator
2022-07-18 00:57:20 +03:00
Fabian Keller
2bf9e6090c
rename translate(d) to translate(d)_local in Transform 2D/3D
2022-07-16 11:47:54 +02:00
bruvzg
cbe3a2dcb7
Use BitField hint for the TextServer enums. Add missing parts for BitField support to the GDextension API.
2022-07-15 08:49:50 +03:00
reduz
5ac42cf576
Implement a BitField hint
...
Allows to specify the binder that an enum must be treated as a bitfield.
2022-07-05 22:13:37 +02:00
lawnjelly
b221eab426
Variant memory pools
...
Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.
2022-07-04 12:01:46 +01:00
Rémi Verschelde
a2459c7d35
Merge pull request #61610 from TokageItLab/importer-retarget-registered-gdhumanoid
2022-07-02 00:17:21 +02:00
Rémi Verschelde
88192269a8
Merge pull request #62477 from lyuma/packedbytearray
...
Prevent out-of-bounds write in array conversion; avoid logspam on empty arrays.
2022-07-01 09:03:20 +02:00
Lyuma
33fd7c63e1
Prevent out-of-bounds write in array conversion; avoid logspam on empty arrays.
2022-06-30 18:04:33 -07:00
Silc Renew
dc43cfc830
implement bone renamer in importer
2022-07-01 03:55:28 +09:00
Voylin
c6291bcd8a
Adding print_rich for printing with BBCode
2022-06-29 00:41:29 +09:00
Rémi Verschelde
622b656c40
Merge pull request #53135 from briansemrau/fix-ref-leak
2022-06-28 17:26:44 +02:00
Rémi Verschelde
b863c40356
Merge pull request #62468 from V-Sekai/core-const-expressions
...
Add a const call mode to Object, Variant and Script.
2022-06-28 01:08:24 +02:00
Rémi Verschelde
8fd0b4d1f8
Merge pull request #62449 from Chaosus/wrap_func
...
Add generalized version of `wrap` function
2022-06-27 23:28:37 +02:00
Rémi Verschelde
c4a426d6ec
Merge pull request #62462 from vnen/gdscript-setter-chaining
...
GDScript: Fix setter being called in chains for shared types
2022-06-27 23:25:53 +02:00
K. S. Ernest (iFire) Lee
9ddebc0c22
Add a const call mode to Object, Variant and Script.
...
For this to work safely (user not call queue_free or something in the expression), a const call mode was added to Object and Variant (and optionally Script).
This mode ensures only const functions can be called, making it safe to use from the editor.
Co-Authored-By: reduz <reduzio@gmail.com>
2022-06-27 13:33:06 -07:00
Hendrik Brucker
99ce0df3b1
Refactor bezier interpolation functions
2022-06-27 19:42:43 +02:00
George Marques
511a4b761c
GDScript: Fix setter being called in chains for shared types
...
When a type is shared (i.e. passed by reference) it doesn't need to be
called in a setter chain (e.g. `a.b.c = 0`) since it will be updated in
place.
This commit adds an instruction that jumps when the value is shared so
it can be used to skip those cases and avoid redundant calls of setters.
It also solves issues when assigning to sub-properties of read-only
properties.
2022-06-27 12:09:51 -03:00
Yuri Rubinsky
2476c50a66
Add generalized version of `wrap` function
2022-06-27 16:11:21 +03:00
Pierre-Thomas Meisels
c28936ba6d
Add core types enums description to extension api json
2022-06-23 19:19:22 +02:00
reduz
141c375581
Clean up Hash Functions
...
Clean up and do fixes to hash functions and newly introduced murmur3 hashes in #61934
* Clean up usage of murmur3
* Fixed usages of binary murmur3 on floats (this is invalid)
* Changed DJB2 to use xor (which seems to be better)
2022-06-20 12:54:19 +02:00
bruvzg
860e24683f
Make enum/constant binds 64-bit.
2022-06-17 16:36:26 +03:00
Pedro J. Estébanez
fb86430770
Validate every source element separately Array::append_array()
2022-06-15 20:36:20 +02:00
Rémi Verschelde
632b933a03
Merge pull request #61934 from Geometror/hashfuncs
...
Hash function improvements
2022-06-15 07:34:43 +02:00
Hendrik Brucker
8c61470fa9
Hash function improvements
2022-06-15 00:32:10 +02:00
Haoyu Qiu
6f38c21253
Fix parameter name for String.left and String.right
2022-06-12 16:34:44 +08:00
Rémi Verschelde
d52a79ad22
Merge pull request #59786 from V-Sekai/ok_color
...
Allow picking similar colours using OKHSL.
2022-06-07 20:52:32 +02:00
Rémi Verschelde
3f8d86b076
Merge pull request #50349 from Calinou/array-add-some-every
...
Add `any()` and `all()` methods to Array
2022-06-07 15:15:22 +02:00
K. S. Ernest (iFire) Lee
1b776a6e7a
Allow picking similar colours using OKHSL.
2022-06-07 05:53:27 -07:00
Rémi Verschelde
83421cd06f
Merge pull request #59883 from KoBeWi/merge_this
2022-06-06 23:38:29 +02:00
bruvzg
b3bbf3db47
[GDExtension] Expose Variant, NodePath and StringName hash functions.
2022-06-06 12:19:56 +03:00
George Marques
887e292210
Add StringName explicitly to Variant::hash_compare
...
This makes equality comparisons to StringName more performant
2022-06-03 11:51:46 +02:00
kobewi
a0915e6dee
Add Dictionary.merge()
2022-05-31 21:05:56 +02:00