Rémi Verschelde
4bd5ffd669
Merge pull request #83812 from smix8/navregion_properties
...
Fix missing NavigationRegion property updates in constructor
2023-12-04 22:59:13 +01:00
Rémi Verschelde
9be2f25c57
Merge pull request #83802 from smix8/navlink_properties
...
Fix missing NavigationLink property updates in constructor
2023-12-04 22:58:49 +01:00
smix8
25bf20d7a5
Fix missing NavigationRegion property updates in constructor
...
Fixes missing NavigationRegion property updates in constructor.
2023-12-04 19:50:17 +01:00
addmix
5b5ac92de5
Prevent Camera3D.current from being set to true automatically in the editor.
2023-12-01 02:48:53 -07:00
Ershn
fce16b6662
Make target_desired_distance affect the navigation of NavigationAgent2D/3D
...
When the target is reachable, stop the navigation only when the target is reached.
2023-11-29 23:48:54 +09:00
David Snopek
ce488930ea
Remove GI methods in parentheses from light baking options
2023-11-22 08:42:40 -06:00
Pedro J. Estébanez
fe4850c0d0
Use mingw-std-threads in MinGW builds
2023-11-18 11:56:05 +01:00
Mikael Hermansson
a3278c772e
Fix transform sync in RigidBody*D::_body_state_changed
2023-11-15 01:45:45 +01:00
kobewi
4296f0a771
Fill remaining global scope constant descriptions
2023-11-13 15:17:10 +01:00
Mikael Hermansson
21a3ed1715
Fix transform changes in _integrate_forces
being overwritten
2023-11-12 19:32:08 +01:00
Rémi Verschelde
28ada4582e
Merge pull request #82604 from Calinou/editor-camera3d-size-property-hint
...
Tweak Camera3D `size` property hint to make dragging more useful
2023-11-10 21:54:10 +01:00
rsburke4
f191330968
Node3D children using top_level in different position in-editor vs. runtime
2023-11-09 05:10:35 -05:00
Rémi Verschelde
5eb5a99379
Merge pull request #84165 from clayjohn/softbody-bug
...
Ensure SoftBody3D does not use compressed mesh format.
2023-10-30 10:19:43 +01:00
Rémi Verschelde
e2c79bcb95
Merge pull request #82471 from SaracenOne/recache_bone_attachment
...
Reimport bone attachment fixes
2023-10-30 10:18:00 +01:00
clayjohn
1d9554103c
Ensure SoftBody3D does not use compressed mesh format.
2023-10-29 22:45:47 +01:00
BlueCube3310
bd67e0a0bc
Change dropdown type filter to Texture2D in certain nodes
2023-10-28 17:39:47 +02:00
Saracen
4b671eec0e
Reimport bone attachment fixes:
...
Assign bone_idx to GLTF importer to fix serialization.
Notifies Skeletons and BoneAttachments when reimporting.
Removes usage of NOTIFICATION_NODE_RECACHE_REQUESTED
2023-10-27 20:34:01 +01:00
Rémi Verschelde
23b1f213a8
Merge pull request #81616 from bitsawer/fix_multimesh_voxelgi_bake
...
Fix VoxelGI MultiMesh and CSG mesh baking
2023-10-26 15:58:29 +02:00
Rémi Verschelde
bf46ee144d
Merge pull request #77788 from gongpha/stop-posting-about-(re)importing-assets-whatever-dot-exr
...
Avoid reimporting lightmap textures every getter call
2023-10-26 15:57:46 +02:00
Rémi Verschelde
346459e9fb
Merge pull request #83986 from SaracenOne/skeleton_bones_renamed_check
...
Add method check for `_notify_skeleton_bones_renamed`.
2023-10-26 12:10:32 +02:00
Saracen
d0e5bff542
Add method check for _notify_skeleton_bones_renamed.
2023-10-26 10:22:59 +01:00
Rémi Verschelde
79e9e201e8
Merge pull request #82415 from Calinou/reflectionprobe-fix-high-max-distance-rendering-2
...
Clamp ReflectionProbe Max Distance to 262,144 to fix rendering issues
2023-10-26 08:57:35 +02:00
bitsawer
cbb39f4b6e
Fix VoxelGI MultiMesh and CSG mesh baking
2023-10-25 16:37:47 +03:00
Hugo Locurcio
e4d846378b
Fix LightmapGI taking editor-only and sky-only lights into account
...
These lights are not visible when running the project (or at all),
so they shouldn't affect the lightmap baking process.
2023-10-23 22:56:17 +02:00
smix8
618d9492d9
Fix missing NavigationObstacle property updates in constructor
...
Fixes missing NavigationObstacle property updates in constructor.
2023-10-23 05:10:58 +02:00
smix8
9640179f93
Fix missing NavigationAgent property updates in constructor
...
Fixes missing NavigationAgent property updates in constructor.
2023-10-23 04:27:49 +02:00
smix8
2f1668804c
Fix missing NavigationLink property updates in constructor
...
Fixes missing NavigationLink property updates in constructor.
2023-10-23 01:43:55 +02:00
A Thousand Ships
72fccd82c5
[Audio] Fix pausing stream on entering tree
...
The paused notifications are only sent when pause status is changed,
this ensures that streams that are non-processing do not play when added
to the tree. Also ensures that the `process_mode` property applies
generally.
2023-10-22 22:35:32 +02:00
Kongfa Waroros
c165f0cf2e
Avoid reimporting lightmap textures every getter call
2023-10-22 16:32:08 +07:00
smix8
b7be45279d
Solve race condition between AThousandShips and Akien
...
Solves race condition between AThousandShips and Akien.
2023-10-21 19:04:41 +02:00
Rémi Verschelde
d2cd907e28
Merge pull request #83705 from smix8/agent_y_velocity_.4x
...
Fix NavigationAgent3D stored y-axis velocity and make it optional
2023-10-21 15:51:53 +02:00
Rémi Verschelde
0dc915b480
Merge pull request #83701 from smix8/obstacle_height_4.x
...
Fix NavigationObstacle3D height
2023-10-21 15:51:30 +02:00
Rémi Verschelde
918da63797
Merge pull request #82593 from smix8/navobstacle_debug_transform_4.x
...
Fix NavigationObstacle3D debug being affected by rotation and scale
2023-10-21 15:51:02 +02:00
BlueCube3310
982ce34a58
Improve Curve3D Debug Drawing
2023-10-21 11:56:05 +02:00
smix8
4771431b28
Fix NavigationAgent3D stored y-axis velocity and make it optional
...
Fixes NavigationAgent3D stored y-axis velocity and makes it optional.
2023-10-21 01:11:26 +02:00
smix8
b30b672649
Fix NavigationObstacle3D height
...
Fixes NavigationObstacle3D height.
2023-10-21 00:08:50 +02:00
Mikael Hermansson
a977199a3c
Fix unit suffixes for Generic6DOFJoint
2023-10-20 13:33:34 +02:00
Mathias
d4ced2506d
Fix unit suffix for HingeJoint3D's target velocity
2023-10-17 18:53:55 +02:00
Rémi Verschelde
cbfa941061
Merge pull request #83365 from Malcolmnixon/fix-disabled-nav-region
...
Fix enabling NavigationRegion3D saved disabled
2023-10-16 13:00:35 +02:00
Malcolm Nixon
0646b230e4
Fix enabling NavigationRegion3D saved disabled
...
This PR fixes issue #83364 by always registering the region when it enters the tree, and instead using region_set_enabled to control whether its enabled. The same logical changes have been applied to NavigationRegion2D.
2023-10-14 23:17:57 -04:00
风青山
30904ed3bc
Fix cannot update remote after disabling use_global_coordinates
in RemoteTransform2D
...
Due to the optimization in `CanvasItem`, `global_transform` is only
updated when `get_global_transform()` is called, and then notify
`NOTIFICATION_TRANSFORM_CHANGED`. That is, in the case where
`global_transform` is not obtained, the notification will not be sent.
So we use `NOTIFICATION_LOCAL_TRANSFORM_CHANGED` in this case. Use in
combination to prevent certain optimizations.
Same change for `RemoteTransform3D`, to prevent the same optimization
from being used in `Node3D` in the future.
2023-10-15 00:16:52 +08:00
Rémi Verschelde
135fa1ef5d
Merge pull request #83179 from clayjohn/tangents-sanitize
...
Sanitize tangents when creating mesh surfaces to avoid triggering the compressed mesh path in the shader
2023-10-13 22:17:02 +02:00
Dario
a9a197d2dc
Rewrite the GPU Lightmapper's indirect lighting logic to match Godot 3.5's CPU Lightmapper.
...
Port over the logic from Godot 3.5 for indirect lighting. This should fix many issues about indirect bounces causing more energy and improve the overall quality of the result.
2023-10-13 14:33:55 -03:00
clayjohn
e3d31837eb
Sanitize tangents when creating mesh surfaces to avoid triggering the compressed mesh path in the shader
2023-10-13 08:54:49 -06:00
Rémi Verschelde
55282ddc10
Merge pull request #79527 from QbieShay/qbe/particles-rework
...
Particle internal refactor and additions for more artistic control
2023-10-10 22:48:50 +02:00
QbieShay
c228fe1a0d
Particle internal refactor and additions for more artistic control
...
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Co-authored-by: Mew Pur Pur <85438892+MewPurPur@users.noreply.github.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2023-10-10 20:03:35 +02:00
bitsawer
416ef5ad1b
Fix VoxelGI bake memory leak
2023-10-09 12:27:03 +03:00
kleonc
db6a8956b2
Make gizmo plugin handle SpriteBase3D instead of Sprite3D
2023-10-06 11:03:44 +02:00
clayjohn
51ed3aef63
Vertex and attribute compression to reduce the size of the vertex format.
...
This allows Godot to automatically compress meshes to save a lot of bandwidth.
In general, this requires no interaction from the user and should result in
no noticable quality loss.
This scheme is not backwards compatible, so we have provided an upgrade
mechanism, and a mesh versioning mechanism.
Existing meshes can still be used as a result, but users can get a
performance boost by reimporting assets.
2023-10-05 12:02:23 -06:00
Rémi Verschelde
72cdb0b4c5
Merge pull request #82393 from jrouwe/body_changed_state
...
Fix performance regression in RigidBody2D/3D and PhysicalBone3D
2023-10-04 15:35:30 +02:00
bitsawer
12a2177967
Fix notification thread guards
2023-10-02 19:31:54 +03:00
Hugo Locurcio
14f40ec70e
Tweak Gravity Scale property hints to make dragging more useful
...
This also allows a more precise step.
2023-10-01 20:01:46 +02:00
Hugo Locurcio
af73db3c6d
Tweak Camera3D size
property hint to make dragging more useful
...
Values greater than the maximum can still be entered.
2023-10-01 03:49:17 +02:00
smix8
cbb9d21fd0
Fix NavigationObstacle3D debug being affected by rotation and scale
...
Fixes NavigationObstacle3D debug being affected by rotation and scale.
2023-09-30 22:35:38 +02:00
Yuri Sizov
7c23d4082b
Merge pull request #82391 from warriormaster12/improve-skeleton_ik3D
...
Fix `SkeletonIK3D` editor preview when changing active node
2023-09-28 20:04:30 +02:00
Yuri Sizov
7ae0fa1083
Merge pull request #77496 from clayjohn/GLES3-shadows
...
Implement 3D shadows in the GL Compatibility renderer
2023-09-28 20:03:53 +02:00
clayjohn
cb7200b028
Implement 3D shadows in the GL Compatibility renderer
2023-09-28 09:39:26 +02:00
warriormaster12
ddf93f3f59
Make SkeletonIk3D node usable
2023-09-28 07:38:50 +03:00
Yuri Sizov
aa82cccc41
Merge pull request #81659 from DarioSamo/nlm-denoiser
...
Replace OIDN denoiser in Lightmapper with a JNLM denoiser compute shader.
2023-09-27 19:08:01 +02:00
Rémi Verschelde
545d1c0adb
Merge pull request #82416 from Calinou/decal-fix-clamp-extents
...
Fix Decal clamping to positive values not being applied to RenderingServer
2023-09-27 09:21:58 +02:00
Hugo Locurcio
a052d34129
Fix Decal clamping to positive values not being applied to RenderingServer
...
This means the Decal editor gizmo could be incorrect compared to the actual
rendering if you enter a negative value in the inspector.
2023-09-27 02:21:07 +02:00
Hugo Locurcio
ce421da908
Clamp ReflectionProbe Max Distance to 262,144 to fix rendering issues
2023-09-27 02:19:59 +02:00
Hugo Locurcio
fcbf7011cc
Make 3D editor gizmos and debug shapes ignore fog
...
This makes them easier to see in their intended colors in scenes with fog.
2023-09-27 00:54:57 +02:00
Jorrit Rouwe
eff7f27c48
Fixed performance regression in godot 4.2 in RigidBody2D/3D and PhysicalBone3D
...
After change c118256865
the body state is synched 2x, but this is only needed if _integrate_forces is overridden.
Adding this extra if increases the FPS by 2.5% in a heavy physics scene, see: https://github.com/godot-jolt/godot-jolt/discussions/611
2023-09-26 21:19:58 +02:00
Rémi Verschelde
571792cd9d
Merge pull request #81695 from bitsawer/fix_bone_attachment_signal
...
Fix BoneAttachment3D signal connection
2023-09-26 08:21:45 +02:00
Rémi Verschelde
538928b273
Merge pull request #81545 from bitsawer/fix_lightmap_gridmap_bake
...
Fix LightmapGI baking with GridMap
2023-09-26 08:20:29 +02:00
Dario
1b2b726502
Replace OIDN denoiser with a JNLM denoiser compute shader implementation.
2023-09-25 14:53:45 -03:00
Rémi Verschelde
e4cfd4e26a
Merge pull request #82195 from AThousandShips/radian_fix
...
Replace `radians` range hint with `radians_as_degrees`
2023-09-25 17:18:38 +02:00
A Thousand Ships
e45927b2f2
Replace radians
range hint with radians_as_degrees
2023-09-25 08:50:19 +02:00
Rémi Verschelde
98747a9040
Merge pull request #78803 from EMBYRDEV/additional-mesh-import-options
...
Add layer, shadow and visibility range options to the Scene importer
2023-09-24 23:30:30 +02:00
Mikael Hermansson
ee9f41a12d
Fix bindings of PhysicsServer3DRenderingServerHandler
2023-09-20 12:24:32 +02:00
Rémi Verschelde
04d2aa61a3
Merge pull request #81641 from MewPurPur/bus-go-brrrr-2
...
Add a `bus_renamed` AudioServer signal
2023-09-17 14:47:29 +02:00
Rémi Verschelde
f4d85d58f7
Merge pull request #80736 from Ughuuu/add-get-rid-to-joints
...
Expose the `get_rid` method of Joint2D and Joint3D
2023-09-17 14:47:04 +02:00
bitsawer
34574db5b9
Fix BoneAttachment3D signal connection
2023-09-15 17:35:12 +03:00
MewPurPur
f29b6e73c2
Add a bus_renamed AudioServer signal
2023-09-15 13:02:03 +03:00
A Thousand Ships
a29416e332
[Scene,Main] Replace ERR_FAIL_COND
with ERR_FAIL_NULL
where applicable
2023-09-12 12:53:06 +02:00
Rémi Verschelde
5c43e4c1ef
Fix various typos with codespell
...
Using 2.2.6.dev180+ge3a2cfbd.
2023-09-12 08:54:18 +02:00
bitsawer
8c26da5460
Fix LightmapGI baking with GridMap
2023-09-11 15:15:40 +03:00
Dario
7dfb854556
Propagate error correctly when max texture size for lightmaps is too small.
...
Add error handling for BAKE_ERROR_LIGHTMAP_TOO_SMALL, which was previously ignored. Fixes #81453 .
2023-09-11 09:14:39 -03:00
Yuri Sizov
58126e479c
Introduce the concept of global theme contexts
...
This commit adds the default theme context, which replaces
the need to manually check the project and the default theme
all the time; simplifies related code.
It also adds framework for custom theme contexts, to be used
by the editor. Custom contexts can be attached to any node,
and not necessarily a GUI/Window node. Contexts do no break
theme inheritance and only define which global themes a node
uses as a fallback.
Contexts propagate NOTIFICATION_THEME_CHANGED when one of their
global themes changes. This ensures that global themes act just
like themes assigned to individual nodes and can be previewed
live in the editor.
2023-09-06 19:40:43 +02:00
Malcolm Nixon
22de1b31b5
Added XR tracking-state change signals
...
Add "pose_lost_tracking" signal to XRPositionalTracker.
Add "tracking_changed" signal to XRNode3D.
2023-09-03 12:17:16 -04:00
Rémi Verschelde
b272d7ed58
Merge pull request #81067 from bitsawer/fix_voxelgi_exposure
...
Fix VoxelGI CameraAttributes exposure normalization handling
2023-08-29 12:46:20 +02:00
Rémi Verschelde
ba1089689a
Merge pull request #80954 from bruvzg/sp_per_font
...
[Text Server] Store extra spacing of individual font variations.
2023-08-28 20:37:58 +02:00
bitsawer
c73e1f0d22
Fix VoxelGI CameraAttributes exposure normalization handling
2023-08-28 13:25:34 +03:00
Dragos Daian
f9435b6d72
Expose the get_rid method of Joint2D and Joint3D
...
update occurance of get_joint
Update documentation as per feedback.
update
update
Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-08-27 00:34:47 +03:00
Yuri Sizov
6ab34005ad
Extract editor scene tabs into their own component
2023-08-24 12:24:29 +02:00
bruvzg
5453503697
[Text Server] Store extra spacing of individual font variations.
2023-08-24 11:58:12 +03:00
Yuri Roubinski
7fcb91f077
Implement conversion from CPUParticles
to GPUParticles
(3D/2D)
2023-08-19 11:58:57 +03:00
Rémi Verschelde
d81767495a
Merge pull request #80512 from mihe/global-basis
...
Add `global_basis` property to `Node3D`
2023-08-18 09:31:41 +02:00
Rémi Verschelde
e6e79255ed
Merge pull request #77943 from aaronfranke/mass-dist
...
Add Mass Distribution, Deactivation, Solver inspector property groups
2023-08-17 12:26:59 +02:00
Rémi Verschelde
37d213b24e
Merge pull request #79972 from smix8/navgenerator_multithreading_4.x
...
Add multi-threaded NavMesh baking to NavigationServer
2023-08-17 11:22:11 +02:00
Mikael Hermansson
8be20c495c
Add global_basis
property to Node3D
2023-08-11 11:41:49 +02:00
Hugo Locurcio
49b6067aba
Use StringName consistently to refer to the Master audio bus name
2023-08-07 18:06:17 +02:00
smix8
8686e84b44
Add multi-threaded NavMesh baking to NavigationServer
...
Adds multi-threaded NavMesh baking to NavigationServer.
2023-08-07 17:14:37 +02:00
Rémi Verschelde
7eb047a5ed
Merge pull request #79643 from smix8/navgenerator_4.x
...
Move navigation mesh baking to NavigationServer
2023-08-07 14:48:15 +02:00
Rémi Verschelde
faaf27f284
Fix various typos with codespell
...
Also includes typo fixes from #79993 , #80068 , #80276 , and #80303 .
Co-authored-by: betalars <contact@betalars.de>
Co-authored-by: spaceyjase <429978+spaceyjase@users.noreply.github.com>
Co-authored-by: Swarkin <102416174+Swarkin@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-08-07 13:09:47 +02:00
Aaron Franke
49e0a01bf1
Add Mass Distribution, Deactivation, Solver inspector property groups
2023-08-06 21:26:33 -05:00
Yuri Sizov
a56e960150
Merge pull request #71233 from PrecisionRender/barycentric-coords
...
Add ability to get face index and barycentric coordinates from raycast
2023-08-03 22:37:30 +02:00
smix8
744fa87da2
Move navigation mesh baking to NavigationServer
...
Moves navigation mesh baking to NavigationServer.
2023-08-03 19:49:07 +02:00
PrecisionRender
af7f787c6e
Add ability to get barycentric coordinates from ray
2023-08-02 15:16:44 -05:00
Yuri Sizov
e810671116
Merge pull request #79977 from Owl-A/bugfix
...
Add state sync after call to `_integrate_forces` in `_body_state_changed`
2023-08-01 20:03:47 +02:00
Chinmay Awale
c118256865
added state sync after call to _integrate_forces
2023-08-01 19:03:43 +05:30
smix8
69fad39cf5
Add NavigationServer API to enable regions and links
...
Adds NavigationServer API to enable regions and links.
2023-07-26 01:20:15 +02:00
Yuri Sizov
182b94c86a
Merge pull request #79465 from smix8/navregion_bake_deferred_4.x
...
Make NavigationRegion3D baking NavMesh on the main thread not finish deferred
2023-07-18 13:15:15 +02:00
kobewi
de4a3fa151
Unify and streamline connecting to Resource changes
2023-07-17 19:35:57 +02:00
Hendrik Brucker
7e21eb7e00
Extract and reorganize texture resource classes
2023-07-14 20:04:21 +02:00
Yuri Sizov
0f7625ab46
Merge pull request #76859 from HolonProduction/emission-finished-gpu
...
Add `finished` signal to GPUParticles
2023-07-14 18:50:56 +02:00
Yuri Sizov
a91f0e6bca
Merge pull request #76853 from HolonProduction/emission_finished
...
Add `finished` signal to CPUParticles
2023-07-14 18:50:51 +02:00
Yuri Sizov
177768a7e4
Merge pull request #79373 from KoBeWi/no_need
...
Convert some Callables to `callable_mp()`
2023-07-14 18:49:53 +02:00
Yuri Sizov
892bc5f966
Merge pull request #79330 from mihe/ray-cast-back-faces
...
Add `hit_back_faces` property to `RayCast3D`
2023-07-14 18:49:49 +02:00
smix8
bb5f16033d
Make NavigationRegion3D baking NavMesh on the main thread not finish deferred
...
Makes NavigationRegion3D baking NavMesh on the main thread not finish deferred.
2023-07-14 16:15:14 +02:00
Yuri Sizov
4e66c4cdd9
Merge pull request #77191 from smix8/navigationregion_map_change_4.x
...
Add NavigationRegion function to change navigation map
2023-07-12 17:15:13 +02:00
kobewi
edd23074a2
Convert some Callables to callable_mp()
2023-07-12 15:33:54 +02:00
HolonProduction
a1c0d206e8
Add finished
signal to CPUParticles
2023-07-12 13:45:02 +02:00
HolonProduction
5322e255ad
Add finished
signal to GPUParticles
2023-07-12 13:29:47 +02:00
Mikael Hermansson
273f7e1c57
Add hit_back_faces
property to RayCast3D
2023-07-11 13:02:13 +02:00
Rémi Verschelde
7030ac555f
Merge pull request #79270 from clayjohn/particle-trails-error
...
Unify error condition for particles trail lifetime
2023-07-10 10:38:34 +02:00
clayjohn
78ecdb17f9
Unify error condition for particles trail lifetime
2023-07-10 10:17:27 +02:00
Rémi Verschelde
e00dc3c719
Merge pull request #75806 from bcmpinc/issue-61174
...
Fix Camera3D `project_*` methods not accounting for frustum offset
2023-07-07 16:01:47 +02:00
Rémi Verschelde
b8f28e287e
Merge pull request #78902 from nklbdev/Fix_wrong_type_casting_in_RenderingServer
...
Fix wrong type casting for octahedral tangents
2023-07-07 08:28:52 +02:00
Rémi Verschelde
2926ddec1c
Merge pull request #78939 from Scony/navi-crash-fix
...
Fix crash in `NavigationAgent3D`
2023-07-03 15:26:14 +02:00
Rémi Verschelde
813ff4b460
Merge pull request #78857 from smix8/navagent_pos_fix_4.x
...
Fix NavigationAgent position not always updating
2023-07-03 15:26:11 +02:00
Pawel Lampe
fcbb521392
Fix crash in 'NavigationAgent3D', fixes #78910
2023-07-02 22:30:03 +02:00
nklbdev
1d16704faf
Potencially fix nan's on octahedral tangents in RenderingServer
2023-07-01 18:46:52 +05:00
smix8
34bc410fb4
Fix NavigationAgent position not always updating
...
Fixes NavigationAgent position not always updating.
2023-06-30 00:18:26 +02:00
smix8
c912df9d05
Fix NavigationAgent continues avoidance velocity
...
Fixes NavigationAgent continues avoidance velocity.
2023-06-29 21:10:03 +02:00
Hannah Crawford
444e1a8e2c
Add layer, shadow and visibility range options to Scene Importer.
2023-06-28 17:09:23 +01:00
Ricardo Buring
104da478a8
Fix CharacterBody3D get_position_delta()
...
Calculate the difference of global positions.
This also fixes get_real_velocity().
2023-06-26 23:15:57 +02:00
Rémi Verschelde
c1ad74d4c3
Merge pull request #78579 from aaronfranke/col-poly-obj-name
...
Internally rename `parent` to `collision_object` in CollisionPolygon(2D/3D)
2023-06-23 00:06:09 +02:00
Aaron Franke
7c4921e794
Internally rename parent to collision_object in CollisionPolygon(2D/3D)
2023-06-22 14:06:05 -05:00
Rémi Verschelde
cb73a6e9f9
Merge pull request #78490 from clayjohn/GLES3-particles-subemit
...
Add warnings and fallbacks for particles sub emitters when using the GL Compatibility rendering backend
2023-06-22 21:02:38 +02:00
Markus Sauermann
399bce02cf
Fix 3D top_level resetting
...
There is no need to erase the top_level flag on EXIT_TREE.
During ENTER_TREE, `top_level = true` is not necessary, because it is
already set to true.
2023-06-22 18:58:29 +02:00
clayjohn
8a5af8183a
Add warnings and fallbacks for particles sub emitters when using the GL Compatibility rendering backend
...
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2023-06-21 12:56:52 -07:00
Bauke Conijn
47e63bc55f
Fix Camera3D project_* methods not accounting for frustum offset
...
This does not fix Camera3D::project_ray_normal().
Adds Camera3D::get_camera_projection() and exposes it to GDScript
2023-06-20 20:45:50 +02:00
Rémi Verschelde
243c8e0b40
Merge pull request #77465 from lyuma/ik_skeleton_reference_bug
...
SkeletonIK3D: Avoid holding hard pointers to Skeleton3D
2023-06-20 00:02:47 +02:00
Rémi Verschelde
d63794d466
Merge pull request #77629 from GameDevLlama/bugifx/issue-50813
...
Fix non-functional Node3D `top_level` property
2023-06-18 16:30:42 +02:00
Christian Ringshofer
20e8189f5d
Fix non functional Node3D op_level property
...
Fixes #50813 .
2023-06-18 15:01:01 +02:00
smix8
ae9dd47d0c
Add agent pause mode to NavigationServer
...
Adds agent pause mode to NavigationServer.
2023-06-18 12:37:03 +02:00
Rémi Verschelde
c6d9139f16
Merge pull request #78280 from raulsntos/path-follow-3d-clamp
...
Clamp `PathFollow3D` progress when not looping
2023-06-16 10:20:43 +02:00
Rémi Verschelde
6fb391bc23
Fix various typos with codespell
...
And ignore some false positives introduced by recent versions of codespell.
2023-06-16 08:45:35 +02:00
Raul Santos
0b4ec4027c
Clamp PathFollow3D progress when not looping
2023-06-15 16:59:14 +02:00
smix8
84647ab09e
Add NavigationRegion function to change navigation map
...
Adds NavigationRegion function to change navigation map.
2023-06-15 12:04:57 +02:00
Rémi Verschelde
0da20d019e
Merge pull request #77412 from smix8/fix_threaded_navmesh_baking_4.x
...
Fix for threaded NavigationMesh baking under new thread guards
2023-06-15 10:49:58 +02:00
Rémi Verschelde
b1d3070648
Merge pull request #77175 from smix8/region_refactor_4.x
...
Refactor NavigationRegion internals
2023-06-15 10:39:53 +02:00
smix8
4c970f1a67
Refactor NavigationRegion internals
...
Refactors NavigationRegion internals.
2023-06-15 09:52:14 +02:00
Hugo Locurcio
f683230a8b
Tweak VehicleBody3D and VehicleWheel3D property hints
...
These property hints are better aligned with the documentation
and typical use cases, while still allowing values to go outside
those ranges (except for steering, where steering above 180° doesn't
make sense).
2023-06-15 07:45:55 +02:00
smix8
ee14b010ac
Fix for threaded NavigationMesh baking under new thread guards
...
Fixes threaded NavigationMesh baking under new SceneTree thread guards that blocked the process.
2023-06-14 01:53:37 +02:00
Yuri Sizov
991f4d5183
Avoid error spam when (un)pausing GPUParticles out of tree
2023-06-12 18:18:51 +02:00
smix8
c1fc331b88
Update navigation obstacle API
...
Updates navigation obstacle API.
2023-06-12 14:26:45 +02:00
Ninni Pipping
0c16082e1e
Use get_node_or_null
when null checks are present
...
Avoids duplicate or unnecessary errors
2023-06-10 13:22:56 +02:00
Ninni Pipping
dcd2b883eb
Use NULL instead of COND checks when appropriate
...
Restricted to scene
2023-06-10 08:56:30 +02:00
Rémi Verschelde
da68c707f2
Merge pull request #78025 from lyuma/skeleton3d_rest_dirty
...
Skeleton3D: Only reset rest_dirty after ALL bone transforms have finished update
2023-06-09 11:07:42 +02:00
Lyuma
c567d46a2f
Skeleton3D: Only reset rest_dirty after ALL bone transforms have finished update
2023-06-08 19:23:14 -07:00
Aaron Franke
ec09cff7f3
Internally rename parent to collision_object in CollisionShape(2D/3D)
2023-06-07 12:02:27 -05:00
Hugo Locurcio
fc4ec42a09
Increase precision in particle damping properties in the editor
2023-06-07 15:26:02 +02:00
Rémi Verschelde
2a1bc05901
Merge pull request #77469 from lyuma/skeleton_ik_roll_fix
...
Fix for SkeletonIK3D interpolation and bone roll
2023-06-06 20:39:46 +02:00
Lyuma
9aa46bf3f5
Fix for SkeletonIK3D interpolation and bone roll
...
Fix bug in internal Basis::rotate_to_align function (also used with identity Basis in scene/resources/curve.cpp)
Use ChainItem children rather than local bone rest to determine IK bone roll to match Godot 3.x behavior
2023-06-05 20:44:45 -07:00
detomon
ea80213eee
Fix adding bones with the same name after calling Skeleton3D.clear_bones()
2023-06-05 11:55:09 +02:00
Lyuma
300aa06dba
SkeletonIK3D: Avoid holding hard pointers to Skeleton3D
2023-05-25 03:23:24 -07:00
Silc Renew
42aa5398d9
Fix Pathfollow direction
...
Co-authored-by: aaronfranke <arnfranke@yahoo.com>
2023-05-24 17:37:00 +09:00
Rémi Verschelde
6f34a23439
Merge pull request #76082 from reduz/ability-to-look-at-in-model-space
...
Add the ability to look-at in model-space.
2023-05-24 08:46:53 +02:00
Juan Linietsky
5fdc1232ef
Add the ability to look-at in model-space.
...
This is a much simpler attempt to solve the same problem as #76060 , but without breaking any compatibility.
* Adds a description of what model space is in the Vector3 enums (MODEL_* constants). This has the proper axes laid out for imported 3D assets.
* Adds the option to `look_at` using model_space, which uses Vector3.MODEL_FRONT as forward vector.
The attempt of this PR is to still break the assumption that there is a single direction of forward (which is not the case in Godot)
and make it easier to understand where 3D models are facing, as well as orienting them via look_at.
2023-05-24 10:10:24 +09:00
Artyom Lunchenkov
f645eee62e
Improve Skeleton3D::find_bone() performance
2023-05-23 21:02:46 +06:00
Yuri Sizov
ca8bbf24ae
Merge pull request #77194 from lyuma/pose_global_no_override
...
Fix get_bone_pose_global_no_override()
2023-05-18 18:55:00 +02:00
Lyuma
565803ce3d
Fix get_bone_pose_global_no_override()
2023-05-18 03:14:45 -07:00
Pedro J. Estébanez
50cf3d6966
Optimize threading-sensitive node data for single-threaded processing
2023-05-17 02:04:41 +02:00
Rémi Verschelde
59c19a7172
Merge pull request #75250 from bruvzg/lbl_rtl_jst_flags
...
Expose TextServer justification flags to Label, Label3D, TextMesh and RTL. Add flags to control last/single line justification.
2023-05-16 10:48:45 +02:00
Rémi Verschelde
8cfa19a078
Merge pull request #77000 from reduz/make-more-base-nodes-thread-safe
...
Make more base nodes thread safe
2023-05-16 00:31:56 +02:00
bruvzg
9163d8c336
Expose TextServer justification flags to Label, Label3D, TextMesh and RTL. Add flags to control last/single line justification.
2023-05-15 19:23:54 +03:00
Juan Linietsky
0a9f72d5a8
Make more base nodes thread safe
...
Ongoing work to make more of the base nodes thread safe.
2023-05-15 16:54:10 +02:00
kleonc
d3d84d90de
Fix AnimatedSprite3D autoplay warning
2023-05-13 13:10:38 +02:00
Rémi Verschelde
cc48827e4a
Merge pull request #76946 from AThousandShips/shadow_warning
...
Enable shadow warnings and fix raised errors
2023-05-12 10:04:09 +02:00
smix8
f986b52b3c
Make navigation mesh edge connections optional
...
Makes navigation mesh edge connections optional.
2023-05-11 18:46:34 +02:00
Ninni Pipping
71ee65dc57
Enable shadow warnings and fix raised errors
2023-05-11 16:00:59 +02:00
smix8
7e1a261cc6
Prevent unnecessary navigation map synchronizations
...
Prevents unnecessary navigation map synchronizations triggered by redundant calls to setters of e.g. region, link or map properties.
2023-05-11 07:38:16 +02:00
Rémi Verschelde
5271186f2f
Merge pull request #75901 from reduz/refactor-node-processing
...
Refactor Node Processing to allow Scene Multithreading
2023-05-10 12:46:44 +02:00
smix8
a6ac305f96
Rework Navigation Avoidance
...
Rework Navigation Avoidance.
2023-05-10 05:01:58 +02:00
Juan Linietsky
98c655ec8d
Refactor Node Processing
...
* Node processing works on the concept of process groups.
* A node group can be inherited, run on main thread, or a sub-thread.
* Groups can be ordered.
* Process priority is now present for physics.
This is the first steps towards implementing https://github.com/godotengine/godot-proposals/issues/6424 .
No threading or thread guards exist yet in most of the scene code other than Node. That will have to be added later.
2023-05-09 19:17:51 +02:00
RedworkDE
8e7afec479
Fix various errors when running the unit tests
...
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-05-09 18:40:56 +02:00
Max Hilbrunner
03dfae4208
Merge pull request #76004 from mashumafi/wait-nav-region-thread
2023-05-05 13:50:09 +02:00
mashumafi
a93a2e519d
Wait for navigation baking to finish before destruction
2023-05-02 21:05:47 -04:00
VolTer
818d57b5b4
Light3D show scaling warning immediately
2023-05-01 02:55:17 +02:00
Samuele Panzeri
4aaa2e6477
Fix wait for thread not started
2023-04-27 20:28:22 +02:00
Samuele Panzeri
a2be742f97
Fix editor lock on sdf collision bake on error
2023-04-19 11:00:11 +02:00
Rémi Verschelde
b5b371cf7c
Merge pull request #70332 from aaronfranke/rigid-body-units
...
Improve some units in RigidBody nodes
2023-04-18 23:38:20 +02:00
Yuri Sizov
8f113c6532
Merge pull request #72749 from aaronfranke/area-priority
...
Make Area physics priority consistently int and allow negative numbers
2023-04-18 14:21:06 +02:00
Aaron Franke
87bd8d2dcf
Make Area physics priority consistently int and allow negative numbers
2023-04-18 13:50:20 +02:00
smix8
4490a3303b
Fix NavigationMesh debug visuals for non-triangulated meshes
...
Fixes NavigationMesh debug visuals for non-triangulated meshes.
2023-04-16 23:31:54 +02:00
Aaron Franke
a83ce0b104
Improve some units in RigidBody nodes
2023-04-15 22:03:24 -05:00
clayjohn
821917ba9f
Use angle_rand to calculate base_angle in particles process material
2023-04-13 15:10:47 -07:00
smix8
1549aeaef8
Add Mesh ConvexDecompositionSettings wrapper
...
Adds wrapper MeshConvexDecompositionSettings to control parameters for Mesh ConvexDecomposition operations.
2023-04-07 22:39:25 +02:00
smix8
aadf33efd8
Fix NavigationObstacles not being added to avoidance simulation
...
Fixes NavigationObstacles not being added to avoidance simulation.
2023-04-06 16:32:49 +02:00
Aaron Franke
dd0eb1ab47
Change VehicleWheel3D suspension travel to use meters internally
2023-04-03 12:34:05 -07:00
Rémi Verschelde
b237df8cea
Merge pull request #75326 from smix8/navigationagent_expose_parameters_4.x
...
Expose NavigationAgent path postprocessing and pathfinding algorithm options
2023-04-03 16:02:21 +02:00
Brennen Shaughnessy
2d16fe681d
Fixed property hint for platform layers on 3D physics body
2023-03-31 19:40:45 -04:00
Yuri Sizov
1222d35cdd
Merge pull request #75398 from newobj/issue-75218
...
Update GPUParticles2D/3D speed scale on ENTER_TREE
2023-03-28 16:34:58 +02:00
Brian Long
4652fbd09e
Update GPUParticles2D/3D speed scale on ENTER_TREE
...
Fix for https://github.com/godotengine/godot/issues/75218
Pause notifications are not sent when a node is added as a child. So GPUParticles2D should also obey its can_process status on ENTER_TREE, not just PAUSED/UNPAUSED.
2023-03-27 13:24:59 -07:00
Yuri Sizov
2659fc1a34
Merge pull request #75266 from rburing/shapecast2d_disconnect
...
Port robust signal (dis)connection to `ShapeCast2D`
2023-03-27 13:08:58 +02:00
smix8
6e324bb341
Expose NavigationAgent path postprocessing and pathfinding algorithm options
...
Exposes the path postprocessing and pathfinding algorithm options of the NavigationAgent internal NavigationPathQueryParameters object.
2023-03-25 21:37:18 +01:00
Ricardo Buring
5bed055cdd
Port robust signal (dis)connection to ShapeCast2D
...
Ported from ShapeCast3D.
2023-03-24 09:23:03 +01:00
Adam Scott
fd1dfdb960
Set VehiculeWheel3D suspension_travel
default value to a resonable one
2023-03-18 16:33:33 -04:00
smix8
0b8798a995
Fix NavigationAgent3D debug path duplicated points
...
Fixes duplicated points in NavigationAgent3D debug path.
2023-03-16 09:19:04 +01:00
Rémi Verschelde
449e658583
Merge pull request #74555 from RedworkDE/cpuparticles3d-update-buffer-overrun
...
Fix buffer overrun in `CPUParticles3D` in `precision=double` builds
2023-03-08 08:58:11 +01:00
RedworkDE
89980dd9c9
Fix buffer overrun in CPUParticles3D
2023-03-07 15:46:51 +01:00
Johan Aires Rastén
007b488a5c
Fixed incorrect ERROR message when setting new PrimitiveMesh
...
If calling set_mesh with a PrimitiveMesh that has pending update, the
_mesh_changed function would be called twice. The first time before
set_base had been called, which could lead to an ERROR message about
trying to set an invalid surface override material.
2023-03-04 10:48:47 +01:00
Rémi Verschelde
a2ecbb7c37
Merge pull request #73749 from fabriceci/expose-apply-floor-snap
...
Exposes the apply_floor_snap function to allow manual snap
2023-03-03 11:03:42 +01:00
clayjohn
c69b14e96e
Add warnings for unsupported features in mobile and gl_compatibility backends
2023-02-26 12:28:02 -08:00
smix8
5d1a6e9b12
Fix ShapeCast3D add and remove exception functions
...
Fixes that ShapeCast3D would accept any parameter object and silently return when it was not a CollisionObject3D.
2023-02-23 23:45:16 +01:00
fabriceci
1381e6da4f
Exposes the apply_floor_snap function to allow a snap to be made regardless of velocity.
2023-02-22 14:08:32 +01:00
PrecisionRender
e713c270ea
Fix crash when reparenting SoftBody3D with pinned points
2023-02-20 12:12:58 +01:00
Albin
82b90c0e08
Remove visual limit for damping in CPUParticles
...
Issue #56324 notes that you may can't set the damping property of
CPUParticles2D to anything more that 100 in the editor inspector
while you may set it to anything in code, this is considered a bug and
changed in this commit
2023-02-19 12:47:34 +01:00
Rémi Verschelde
9583c20171
Merge pull request #70515 from stmSi/fix-hanging-audio-pitch-scale
...
Fix hanging if audiostream's pitch_scale is NaN
2023-02-17 14:06:55 +01:00
Rémi Verschelde
db9007aef4
Merge pull request #73428 from smix8/navigation_tweak_agent3d_4.x
...
Tweak NavigationAgent3D defaults
2023-02-17 09:56:49 +01:00
clayjohn
76093d6a03
Only include emission when enabled in material during VoxelGI bake
2023-02-16 14:29:17 -08:00
smix8
8be4af38e4
Tweak NavigationAgent3D defaults
...
Tweaks default values for NavigationAgent3D to work better out of the box within a new 3D project.
2023-02-16 14:26:39 +01:00
Rémi Verschelde
953383328a
Merge pull request #73229 from smix8/navlink_global_positions_4.x
...
Add NavigationLink helper functions for global positions
2023-02-16 11:02:17 +01:00
smix8
d87f124768
Add NavigationLink helper functions for global positions
...
Adds helper functions to set the links start and end position with global positions or get them as global positions.
Adds global start and end position for the navigation link to the 'link_reached' signal of NavigationAgent. That signal gets emitted when a navigation link waypoint is reached. Requires that 'owner' meta data is enabled on the NavigationAgent.
2023-02-14 21:56:58 +01:00
Hugo Locurcio
8b1de103a8
Clamp Decal size to positive values
...
This prevents using negative size, while also preventing
error messages from being spammed if one of the decal's dimensions
is set to exactly 0.
2023-02-13 22:01:49 +01:00
Rémi Verschelde
a90bbc3544
Merge pull request #72225 from MinusKube/shaped_text_invalidated_bug
...
Mark dirty flags when shaped texts are invalidated
2023-02-13 09:13:27 +01:00
Rémi Verschelde
c3a04f71fd
Merge pull request #73136 from clayjohn/LightmapGI-exr
...
Set Default compression to VRAM uncompressed for LightmapGI
2023-02-12 10:35:58 +01:00
clayjohn
340c3b84fd
Set Default compression to VRAM uncompressed for LightmapGI
...
This increases the speed to be near instant and removes the perceived lightmap bake speed regression
We need to investigate the speed and quality issues with BPTC and re-enable compression when we can
2023-02-11 16:26:09 -08:00
Haoyu Qiu
65223e98de
Strip name prefix of navigation agent debug properties in the inspector
2023-02-11 16:34:08 +08:00
Haoyu Qiu
a40ccc2d7e
Improve some editor strings for localization
2023-02-09 19:32:02 +08:00
Rémi Verschelde
d69809cab6
Merge pull request #72947 from DarkKilauea/nav-fix-avoidance-callback
...
Fix missing avoidance updates when using same velocity
2023-02-09 10:13:35 +01:00
Josh Jones
097f8a5fdb
Fix missing avoidance updates when using same velocity
...
When using avoidance, if you set the same velocity for the agent, you won't get an update from the avoidance system.
This changes both the `set_target_position` and `set_velocity` setters to always accept user provided values, even if they are the same. This ensures that repathing and avoidance logic is always run when the user expects.
2023-02-08 23:18:53 -08:00
smix8
820b841fcb
Fix NavigationAgent debug functions bindings in release builds
...
Fixes that certain NavigationAgent debug functions bindings were not available in release builds.
2023-02-08 21:49:04 +01:00
Markus Sauermann
826e54fa73
Some code simplifications
...
1. `number_width` isn't used later
2. `return_type` is used only once
3. AudioServer::get_singleton()->get_channel_count() always returns a channel_count of 1 or larger
4. negative `aa->backward` conditional
5. `current_canvas` == `find_world_2d()->get_canvas()`
6. identical if `render_shadows`
2023-02-07 14:30:16 +01:00
Josh Jones
20fdfd466b
Improve consistency of NavigationAgent setters
2023-02-02 22:51:37 -08:00
Rémi Verschelde
e52213e2fa
More codespell fixes, do more changes from previous ignore list
2023-02-01 12:11:36 +01:00
Rémi Verschelde
64f0dad2dc
Merge pull request #70446 from akien-mga/meshoptimizer-4a287848f
...
meshoptimizer: Sync with upstream commit 4a287848f
2023-02-01 07:40:23 +01:00
Rémi Verschelde
3eb1ac9fd2
Merge pull request #72075 from Maran23/extents-to-size
...
Replace Extents with Size in VoxelGI, ReflectionProbe, FogVolume, Decal and GPUParticles*3D
2023-02-01 07:30:09 +01:00
Rémi Verschelde
a350b42e4b
Merge pull request #72473 from aXu-AP/animatablebody3d-editor-move-fix
...
Fix AnimatableBody3D not being movable in editor
2023-02-01 07:28:47 +01:00
Rémi Verschelde
cf9df3b5d4
meshoptimizer: Sync with upstream commit 4a287848f
...
4a287848fd
2023-01-31 22:27:49 -08:00
aXu-AP
fab6065e35
Fix AnimatableBody3D not being movable in editor
2023-01-31 23:41:40 +02:00
Marius Hanl
a59819630d
Replace Extents with Size in VoxelGI, ReflectionProbe, FogVolume, Decal and GPUParticles*3D
...
- Extents are replaced by Size (Size is Extents * 2)
- The UI text displays 'Size'
- Snapping is adjusted to work with Size
- _set and _get handle extents for compatibility
Co-authored-by: ator-dev <dominic.codedeveloper@gmail.com>
2023-01-31 20:04:11 +01:00
smix8
0ab764e84b
Add NavigationAgent Path Debug Visualization
...
Adds path debug visuals for NavigationAgent2D, NavigationAgent3D and NavigationServer.
2023-01-31 18:27:35 +01:00
Lyuma
0020d2aeb6
BoneAttachment3D: Remove duplicate override_pose
...
Also removes unused override_mode property since we removed the local pose override feature in #71137 .
Fixes #72407
2023-01-31 03:31:47 -08:00
Rémi Verschelde
d14d6033a5
Merge pull request #72441 from bruvzg/lbl3d_aaa
...
[Sprite3D/Label3D] Expose alpha antialiasing properties.
2023-01-31 10:54:13 +01:00
Rémi Verschelde
c8446754dd
Merge pull request #72357 from aaronfranke/area-gravity-unit-dist
...
Replace Area gravity point distance scale with unit distance
2023-01-31 10:53:16 +01:00
bruvzg
b4fe514aa3
[Sprite3D/Label3D] Expose alpha antialiasing properties.
2023-01-31 10:46:38 +02:00
Rémi Verschelde
38f8411ed8
Merge pull request #71964 from bruvzg/mat_key
...
Fix unsafe murmur3 hash use for the default material keys, expose alpha hash transparency mode for default materials and Label3D and Sprite3D.
2023-01-30 10:03:49 +01:00
Aaron Franke
79215131b5
Replace Area gravity point distance scale with unit distance
2023-01-29 22:12:00 -06:00
Silc Renew
fa198c482e
Fix AnimatedSprite play() don't redraw immediately
2023-01-29 08:00:42 +09:00
Rémi Verschelde
3a25148b9b
Merge pull request #72228 from DarkKilauea/nav-agent-callable
...
Use Callable for Navigation Agent callbacks
2023-01-28 15:58:49 +01:00
Silc Renew
75330887d7
Implement blending audio feature to AnimationTree
2023-01-28 20:08:29 +09:00
Josh Jones
22f9ef19e1
Use Callable for Navigation Agent callbacks
2023-01-27 23:14:36 -08:00
MinusKube
d59c221404
Mark dirty flags when shaped texts are invalidated
2023-01-28 03:31:55 +01:00
Rémi Verschelde
91c0ed5e33
Merge pull request #71907 from TokageItLab/change-animated-sprite-api
...
Make `AnimatedSprite`'s playback API consistent with `AnimationPlayer`
2023-01-27 10:32:23 +01:00
Rémi Verschelde
91ad92657e
Merge pull request #69689 from smix8/navagent_rename_location_4.x
...
Rename Navigation uses of 'location' to 'position'
2023-01-26 22:57:03 +01:00
smix8
bf1571979c
Rename Navigation uses of 'location' to 'position'
...
Contrary to the entire rest of the engine NavigationAgent's and NavigationLinks decided to deal with locations instead of positions.
2023-01-26 18:19:03 +01:00