Commit Graph

174 Commits (cb1569345a6f17da08241e645ab03cb2e1b78d2f)

Author SHA1 Message Date
Aaron Franke 3d1c9fd5de
Move server files into their subfolders 2025-09-30 19:39:39 +07:00
Aaron Franke 9fbf5808a0
Rename server "free" functions to "free_rid" to match exposed API 2025-09-30 16:52:25 +07:00
Thaddeus Crews 33c257c081
Merge pull request #95414 from jsjtxietian/inside-tree
Fix `!is_inside_tree` in csg node when reloading a scene
2025-07-30 09:03:45 +07:00
smix8 c2f8e70aa0 Revert "Create more optimized CSGShape3D baked static mesh"
This reverts commit 28875459d9.
2025-07-04 20:43:28 +07:00
smix8 28875459d9 Create more optimized CSGShape3D baked static mesh
Creates more optimized CSGShape3D baked static mesh by adding indices and cache optimization.
2025-06-13 21:43:28 +07:00
LuoZhihao 8ba4656ea3 Compile out editor-only logic within `validate_property` in games 2025-06-12 12:54:19 +07:00
Lukas Tenbrink 963c20565b Remove `OAHashMap`, in favour of `AHashMap`.
The two types had (mostly) the same decisions, but `AHashMap` is a faster implementation, and is more consistent with `HashMap`.
2025-05-31 15:50:10 +07:00
Thaddeus Crews 94282d88f9
Core: Use `Math` namespace for constants 2025-04-10 16:29:30 +07:00
Yufeng Ying 4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +07:00
Michael Alexsander 556933306a
Allow to compile templates without navigation features 2025-04-01 11:53:35 +07:00
Michael Alexsander 5ad414d046
Allow to compile templates without physics servers 2025-03-28 11:00:44 +07:00
kobewi e64a07cc57 Unbind CSGShape::_update_shape() and make it public 2025-03-16 00:36:50 +07:00
Robert Yevdokimov 6f0a0ba408 Fix collision reposition with `CSGShape3D` 2025-02-13 19:31:58 +07:00
Juan Pablo Arce dd7bbcc837 Add flag to enable use of accurate path tangents for polygon rotation in `CSGPolygon3D`
The new property is called `path_rotation_accurate`.
2025-01-17 08:18:21 +07:00
smix8 0ed2cb0439 Make nodes handle their respective navigation source geometry
Makes nodes handle their respective navigation source geometry.
2025-01-12 13:14:46 +07:00
Hilderin 055b418e4d Fix Selection Game View 2025-01-10 09:53:17 +07:00
Thaddeus Crews 77eb92f8f3
Merge pull request #100826 from Lielay9/csg-spin-360
Fix gaps in CSGPolygon3D spin mode at 360 degrees
2024-12-30 08:58:35 +07:00
Hei d310d9f975 Fix gaps in CSGPolygon3D spin mode at 360 degrees 2024-12-26 13:59:24 +07:00
A Thousand Ships a1846b27ea
Improve use of `Ref.is_null/valid`
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 +07:00
Rémi Verschelde 32c634a381
Merge pull request #100526 from fire/vsk-csg-warnings-update
Update the warnings for CSGShape3D.
2024-12-17 23:00:17 +07:00
Hugo Locurcio 7a04d85ec3
Only allow valid types in Decal, Light3D projector, PointLight2D texture and CSGMesh3D mesh
If an invalid type is supplied (which can still be done from a script),
a warning is printed (along with a workaround for ViewportTexture).

This also adds support for "negative" resource hints such as
"Texture2D,-ViewportTexture" to exclude one or more subclasses
from a class hint.

Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
2024-12-17 20:41:12 +07:00
K. S. Ernest (iFire) Lee 46b02f08c6 Update the warnings for CSGShape3D. 2024-12-17 11:02:38 +07:00
K. S. Ernest (iFire) Lee 441c440bf4 Push some warnings for CSG non manifold and other errors.
In the scene tree add warnings.
2024-12-16 12:49:51 +07:00
smix8 20c519d0fa Fix 3D CSG not reacting to child node order changes
Fixes 3D CSG not reacting to child node order changes.
2024-12-13 00:28:42 +07:00
Hei b4c6f9b3d9 Mend gaps in meshes caused by trigonometric funcs. 2024-12-06 17:10:12 +07:00
K. S. Ernest (iFire) Lee 6cf1d3c13e Print better manifold errors and avoid crash on non manifold csg input.
* Manifold does not have a snap property.
* Tolerance means simplification amount.
* CSG snap has been removed
* Add better error messages.
* Verbose print manifold meshgl64 properties as json.
* Update manifold for error fixes
2024-12-03 20:19:47 +07:00
K. S. Ernest (iFire) Lee fda444bb01 Add csg boolean operators using elalish/manifold.
Uses MeshGL64 for more floating point precision.

Co-Authored-By: 31 <31eee384@gmail.com>
Co-Authored-By: Claudio Z <120678869+cloudofoz@users.noreply.github.com>
2024-11-28 06:26:52 +07:00
Zi Ye a9e51c3aab Fixed CSG debug collision shapes being visible in editor. Also undid an old, incorrect fix which made debug collision visibility depend on CSG visibility. 2024-09-09 14:11:10 +07:00
Rémi Verschelde b39df869c7
Merge pull request #93252 from smix8/csg_bake
Add CSG options to bake to static mesh and collision shape
2024-08-19 16:04:59 +07:00
jsjtxietian a630744b9f Fix `!is_inside_tree` in csg node when reloading a scene 2024-08-12 12:58:06 +07:00
jsjtxietian 5e4dafb0d9 Fix CSGShape3D's _mesh_changed thread unsafe call to update_gizmos 2024-07-30 10:57:28 +07:00
smix8 6455810db8 Add CSG options to bake to static mesh and collision shape
Adds API to bake a CSG root node operation to either a static ArrayMesh or a ConcavePolygonShape3D physics collision shape. Adds menu options to the editor plugin when selecting a CSG root node to add baked sibling nodes.
2024-06-19 22:54:25 +07:00
31 649c87b957 Make CSG shape dirty after changing Snap, update doc
Update doc to mention that Snap only takes effect at the top level.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2024-06-16 14:33:48 +07:00
kobewi 413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +07:00
Rémi Verschelde 4859f8090f
Merge pull request #85455 from xiongyaohua/fix_CSGPolygon_not_following_Path3D
Notify CSGPolygon about transform changes in Path3D
2024-02-15 15:44:39 +07:00
A Thousand Ships 684752e75b
Replace error checks against `size` with `is_empty` 2024-02-09 12:50:15 +07:00
kobewi 0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +07:00
Yaohua Xiong 0e344f0d0b Path3D notify transform change to CSGPolygon 2024-01-08 18:29:18 +07:00
Rémi Verschelde 94edf0f9a1
Merge pull request #80326 from MewPurPur/no-exp-with-zero
Remove exp hint of a few properties
2023-12-04 22:57:09 +07:00
smix8 0cba21f2da Fix CSGShape debug_collision_shape crash
Fixes CSGShape debug_collision_shape crash.
2023-11-02 11:23:47 +07:00
jsjtxietian 173e2c7f29 Hide CSGShape's debug_collision_shape when it is invisible 2023-10-30 14:53:09 +07:00
A Thousand Ships 517e9f8aef [Modules] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-09-26 16:44:52 +07:00
pidogs f476b74ecf
Make CSGShape follow curve's tilt in Path mode
Fixes #65634.
2023-08-17 12:01:29 +07:00
MewPurPur 09270f9624 Remove exp hint of a few properties 2023-08-06 12:18:27 +07:00
kobewi de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +07:00
Evan Todd da7e54ec17 Fix CSGPolygon3D in path mode disappearing at runtime. 2023-05-15 16:52:39 +07:00
Ricardo Buring 3f17a81f87 Add debug collision shape to CSG with collision 2023-05-03 08:41:37 +07:00
K. S. Ernest (iFire) Lee eaa84bc682
Fix CSG edge case causing intersection line to hit on common edge of 2 triangles.
The previous implementation assumed that the intersection entered or exited a
shape when it hit right on the common edge of 2 triangles. However, there is
also a case where it just "skirts" the other shape on the outside.

To fix this, we added code to check the intersection distance and if the
normals of the faces are pointed in the same direction as the intersection or
not (e.g. inner product > 0). This handles the case where the intersection
line hits the common edge of 2 triangles and skirts the other shape on the
outside.

Extended code to cover a third case.

Fixes #58637.

Co-authored-by: OldBelge <StevenGeens@users.noreply.github.com>
2023-04-27 11:39:29 +07:00
DESKTOP-9O27V4U\Navi ac92704f39
Add compatibility code for CSGBox3D width/height/depth from Godot 3.x
Fixes #66420.
2023-02-13 20:41:23 +07:00
MinusKube 541b725190 Don't generate CSGPolygon3D shape before the assigned path is inside tree 2023-01-31 02:04:57 +07:00