Age | Commit message (Collapse) | Author |
|
|
|
Clarify RigidDynamicBody modes
|
|
|
|
|
|
|
|
|
|
|
|
RigidDynamicBody modes are replaced with several properties to make their
usage clearer:
-lock_rotation: disable body's rotation (instead of MODE_LOCKED)
-freeze: no gravity or forces (instead of MODE_STATIC and MODE_KINEMATIC)
-freeze_mode: Static (can be only teleported) or Kinematic (can be animated)
Also renamed MODE_DYNAMIC_LOCKED to MODE_DYNAMIC_LINEAR in the physics
servers.
|
|
Rename WorldMarginShape to WorldBoundaryShape
|
|
|
|
|
|
Add unit tests for `Array.pop_at()`
|
|
|
|
|
|
[Net] Move multiplayer classes to own subfolder. Split RPC from MultiplayerAPI.
|
|
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".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Make FontData importable resource. Add multi-channel SDF font rendering.
|
|
Adds multi-channel SDF font texture generation and rendering support.
Adds per-font oversampling support.
Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading.
Adds BMFont binary format and outline support.
|
|
Segment collision results could be different depending on the direction
when they exactly touch (order of the points in segments). This was due
to the way parallelism was checked, using different logic based on
positive or negative sign of cross products.
Now the results are the same whatever the direction, without changing
the current design, which is that parallel or colinear segments are
not considered colinear.
Fixes inconsistencies with raycasts exactly on edges of convex shapes
depending on the direction.
|
|
The new tests cover:
- A file with empty extension.
- A file with only extension (a "hidden" file, unix style).
- A file directly at the windows top level directory.
- A file directly at the unix root directory.
- A file directly at the res:// base directory.
|
|
While calculating interpolated points, intervals between two baked
points has been assummed to be `baked_interval`. The assumption could
cause significant error in some extreme cases (for example #7088).
To improve accuracy, `baked_dist_cache` is introduced, which stores
distance from starting point for each baked points. `interpolate_baked`
now returns exact linear-interpolated position along baked points.
|
|
String: Fix default decimals truncation in num and num_real
|
|
Fixes undefined behavior, and fixes the logic for negative powers of ten.
Fixes #51764.
Adds tests to validate the changes and prevent regressions.
Adds docs for `String.num`.
|
|
|
|
The new name makes it more obvious that it acts as an infinite plane,
and is consistent with its 3D counterpart (WorldMarginShape3D).
|
|
|
|
Move code for looking_at to Basis
|
|
|
|
Adds a few more complex edge cases which are supported.
Also adds some documentation, simplifies the code a bit and forbids using
double quotes as a delimiter.
|
|
|
|
|
|
|
|
|
|
The various get_meta, set_meta, has_meta, get_meta_list, remove_meta
functions now uses StringName, allowing further optimizations via the
SNAME macro when used from C++ (this PR does not change the various
usage though).
|
|
|
|
* Added a new macro SNAME() that constructs and caches a local stringname.
* Subsequent usages use the cached version.
* Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time.
* Replaced all theme usages by this new macro.
* Replace all signal emission usages by this new macro.
* Replace all call_deferred usages by this new macro.
This is part of ongoing work to optimize GUI and the editor.
|
|
* This PR adds the ability to disable classes when building.
* For now it's only possible to do this via command like:
`scons disable_classes=RayCast2D,Area3D`
* Eventually, a proper UI will be implemented to create a build config file to do this at large scale, as well as detect what is used in the project.
|
|
Since class scoping should not be used for bindings as they might have
uninteded consequences in scripting.
|
|
|
|
Renames JSON.parse_string() to parse()
Renames JSON.decode_data() to stringify()
|
|
|
|
|
|
Method from `String`
|