Commit Graph

182 Commits

Author SHA1 Message Date
26ff340d47 Reorganized NavigationMesh. 2023-06-05 19:21:59 +02:00
a3aebe8bc5 Ported the improvements to the NavigationMesh from the NavigationMeshGenerator rework pr. 2023-06-05 19:20:28 +02:00
c72a079c49 Removed the Polygon struct from NavigationMesh. 2023-06-05 19:07:04 +02:00
25078b1437 Ported from godot4: Remove / Replace old Navigation Debug Visualization
- removes / replaces leftovers from old navigation debug code
- cleanes SceneTree and ProjectSettings from old navigation debug
- smix8
d7f75fab60
2023-06-05 18:56:41 +02:00
68b9f4c90e Ported from godot4: Add more detailed Navigation Debug Visualization
- Adds more customization options to ProjectSettings.
- Displays navregion edge connections and navigation polygon edges in editor and at runtime.
- Majority of debug code moved from SceneTree to NavigationServer.
- Removes the irritating debug MeshInstance child node from NavigationRegion3D and replaces it with direct RenderingServer API.
- smix8
c394ea518e
2023-06-05 18:05:15 +02:00
cfa4384ad4 Backported from godot4: Fix NavigationMesh baking AABB Editor handling and visuals
Fixes handling and visuals for Navigation Mesh baking AABB in the Editor.
- smix8
2023-06-05 14:33:55 +02:00
b7892d6baf Backported from godot4: Implement NavigationMesh bake area.
Adds two new properties to NavigationMesh resources to restrict the navmesh baking to an area enclosed by an AABB with volume.
- smix8
0c4d99f4fd
2023-06-05 14:24:42 +02:00
6589d075bb Ported the improvements to the NavigationPolygon from the aforementioned pull request. 2023-06-05 14:13:02 +02:00
712eb8eb8a Removed the Polygon struct from NavigationPolygon. 2023-06-05 12:48:57 +02:00
0bfa40bb09 Reorganize NavigationPolygon. 2023-06-05 12:44:49 +02:00
8cbb1bb879 Started porting pull request from godot 4: Rework NavigationMeshGenerator
Reworks NavigationMeshGenerator and navigation mesh parse and bake process. Adds navigation mesh baking for 2D.
- smix8
https://github.com/godotengine/godot/pull/70724
38699a8259
2023-06-03 18:22:12 +02:00
2114b2239b Split NavigationPolygon and NavigationPolygonInstance into 2 files. Also renamedNavigationPolygonInstance to NavigationRegion2D. 2023-06-03 16:54:48 +02:00
3a1b2954f1 Ported: [3.x] Don't apply scale to autohide theme property
- AThousandShips
1c66257568
2023-04-20 23:47:14 +02:00
dd5ad408e8 Ported: SurfaceTool - efficiency improvements
Changed to use LocalVector rather than linked lists.
- lawnjelly
ff714fbe02
2023-04-20 23:44:12 +02:00
1263101396 Ported: Batching - Add MultiRect command
Large groups of similar rects can be processed more efficiently using the MultiRect command. Processing common to the group can be done as a one off, instead of per rect.

Adds the new API to VisualServerCanvas, and uses the new functionality from Font, BitmapFont, DynamicFont and TileMap, via the VisualServerCanvasHelper class.

- lawnjelly

910ddd13c4
2023-04-20 23:09:37 +02:00
Marius Hanl
1be818c478 Fix RichTextLabel: BBCode [color] tags are not counting in font char spacing
Each BBCode tag is drawn individually, so we have to add the character spacing manually.
2023-03-12 13:11:00 +01:00
e42c604bc3 Ported: Switch from recursion to iterative for backfilling colour regions.
- Paulb23
ee4a1c99a7
2023-02-21 13:11:37 +01:00
a79792ee67 Ported: Fix color region end key seach and start key order.
- Paulb23
6cdcdbc242
2023-02-21 13:08:49 +01:00
6ea9b581d7 Ported: Fix colour region continuation over blank lines, issue 41120
- Paulb23
5cf2cf8646
2023-02-21 12:53:41 +01:00
634bdfbb69 Ported: Changed line_edited_from(from) to lines_edit_from(from, to)
- Paulb23
907f9f2a84
2023-02-21 12:37:52 +01:00
0016b64316 Fix inconsistent overrides warning. 2023-02-21 01:34:30 +01:00
c356806ebf Ported: Extract Syntax highlighting from TextEdit and add EditorSyntaxHighlighter
- Extacted all syntax highlighting code from text edit
- Removed enable syntax highlighting from text edit
- Added line_edited_from signal to text_edit
- Renamed get/set_syntax_highlighting to get/set_syntax_highlighter
- Added EditorSyntaxHighligher
- Paulb23
bc4cee4458
2023-02-21 01:30:59 +01:00
0edf8fe956 Ported: Convert syntax highlighters into a resource
- Paulb23
2f1080be9b
2023-02-20 14:51:10 +01:00
db67fa53ea Ported: Add a theme usability setting which updates the touch area of UI elements (e.g: scrollbar) for the editor on touchscreen devices
- m4gr3d
8170b7ae1e
2023-02-07 02:50:11 +01:00
1f20512f8c Ported: Improve error messages and classref for occluders and portals
Misused functions would previously produce no error messages which was confusing for users.
- lawnjelly
5a0cb54b3a
2023-02-07 02:28:29 +01:00
Hugo Locurcio
04338a5018 Tweak particles animation offset property hint to allow more precise values 2023-01-16 13:47:55 +01:00
2cd4e4d828 Renamed Set to RBSet. 2023-01-15 19:42:08 +01:00
1b0aac6028 Renamed Map to RBMap. 2023-01-15 19:12:50 +01:00
213f393293 Fix typos with codespell. 2022-12-22 19:51:25 +01:00
8aa456b4c4 Ported: Add Vector2/3 linking to more properties
- Camera2D.zoom
- CanvasLayer.scale
- ParallaxBackground.scroll_base_scale
- ParallaxLayer.motion_scale
- Polygon2D.texture_scale
- SpatialMaterial.uv1_scale
- SpatialMaterial.uv2_scale
- fire-forge and timothyqiu
0d602ce881
2022-12-22 18:52:47 +01:00
kleonc
12e28bd557 AtlasTexture Fix calculating rects when flipping
(cherry picked from commit c3851b91db7a6dfd7170d6171109255ecb4a3809)
2022-12-22 14:31:21 +01:00
Paweł Fertyk
6ef3d20fb1 Fix BitMap.resize error spam
Fixes #70187.
2022-12-22 14:27:15 +01:00
lawnjelly
25c3232a77 VariantParser make readahead optional
It turns out some areas are independently moving / reading filepointers outside of the VariantParser, which can cause the readahead caching to get out of sync.

This PR makes the VariantParser readahead to be optional to allow for these use cases.
2022-12-22 13:52:51 +01:00
bruvzg
0c95c634bb Fix auto-translation and ignore control chars. 2022-12-11 19:14:14 +01:00
jbcolli2
6812b69c1e Changed normal of CylinderMesh to account for slanted side.
(cherry picked from commit 491ec622f641c28c919c9f8d1b0fbaad014e4714)
2022-11-30 19:23:53 +01:00
bruvzg
4b2281058a Improve font glyph cache packing shelf best height fit heuristic, delay font texture update, until texture is accessed. 2022-11-13 00:35:55 +01:00
Michael Alexsander
b85570c541 Expose various color themes for Button 2022-11-13 00:30:18 +01:00
Haoyu Qiu
177d20aeef Remove leading spaces from enumerator name hints 2022-11-13 00:26:34 +01:00
Waridley
16285d52a6 Support multiline strings in buttons 2022-10-08 17:06:51 +02:00
64f5bd2339 Ported: Bind Physics Interpolation functions in VisualServer
To allow maximum flexibility in the initial rollout, VisualServer functions were not bound in order to prevent compatibility issues if the API changed.

These functions are now bound to allow direct use from the VisualServer.
- lawnjelly
96a1b86717
2022-09-17 10:22:26 +02:00
bruvzg
876bac58ce Fix color modulation of the grayscale glyphs in font with mixed color / grayscale data. 2022-09-16 19:40:51 +02:00
Yuri Sizov
494dc2f957 Backport fixes to documentation for paths, curves and navigation servers 2022-09-16 13:07:20 +02:00
786e20b159 Work on fixing the remaining issues / error messages with World overrides. 2022-08-30 12:28:05 +02:00
9b3714a274 Now CanvasItems work with World overrides aswell. 2022-08-30 01:40:03 +02:00
dd2fa3e6e3 Move Cameras into the new 3d world on override. 2022-08-30 00:06:56 +02:00
aba4e9db3c Added a new World class and made Viewport inherit from it. 2022-08-29 18:40:38 +02:00
24a1580dbf Renamed the files aswell. 2022-08-29 17:33:10 +02:00
e4ae7f2ebc Renamed Environment to Environment3D, and WorldEnvironment to WorldEnvironment3D. 2022-08-29 17:21:40 +02:00
2aee6ab0bb Renamed World to World3D. 2022-08-29 16:49:00 +02:00
dc28777321 Moved Skeleton and it's related classes to a module. 2022-08-28 15:46:12 +02:00
b9f3d3b26a Moved Skeleton2D and it's related classes into a module. 2022-08-28 13:57:25 +02:00
e2d42db711 Also renamed the files. 2022-08-19 21:24:36 +02:00
cffe742085 Renamed the VisualServer to RenderringServer like in Godot4, as I think it's a lot better name for it. I did not yet rename the files. 2022-08-19 20:50:20 +02:00
kleonc
859a38b56e Make Mesh::generate_triangle_mesh() handle PRIMITIVE_TRIANGLE_STRIP and PRIMITIVE_TRIANGLE_FAN 2022-08-19 02:19:37 +02:00
Hugo Locurcio
c751d9dc17 Add an use_hdr property to GradientTexture to allow storing HDR colors
This is disabled by default to save some memory and preserve the existing
behavior of clamping colors.
2022-08-19 02:18:16 +02:00
Hugo Locurcio
089135783e Hide triplanar sharpness when triplanar is disabled in SpatialMaterial
The Triplanar Sharpness property has no effect when Triplanar
is disabled.
2022-08-19 02:17:26 +02:00
Hugo Locurcio
1ce49593aa Use interleaved gradient noise for distance fade
This provides better visuals and performance compared to the previous
ordered dither.
2022-08-19 02:14:27 +02:00
521934ff55 Ported from Godot4: New and improved IK system for Skeleton2D
This PR and commit adds a new IK system for 2D with the Skeleton2D node
that adds several new IK solvers, a way to control bones in a Skeleton2D
node similar to that in Skeleton3D. It also adds additional changes
and functionality.
This work was sponsored by GSoC 2020 and TwistedTwigleg.
Full list of changes:
* Adds a SkeletonModifier2D resource
  * This resource is the base where all IK code is written and executed
  * Has a function for clamping angles, since it is so commonly used
  * Modifiers are unique when duplicated so it works with instancing
* Adds a SkeletonModifierStack2D resource
  * This resource manages a series of SkeletonModification2Ds
  * This is what the Skeleton2D directly interfaces with to make IK possible
* Adds SkeletonModifier2D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in its own file
  * There is also a SkeletonModifier2D resource that acts as a stack for using multiple stacks together
* Adds a PhysicalBone2D node
  * Works similar to the PhysicalBone3D node, but uses a RigidBody2D node
* Changes to Skeleton2D listed below:
  * Skeleton2D now holds a single SkeletonModificationStack2D for IK
  * Skeleton2D now has a local_pose_override, which overrides the Bone2D position similar to how the overrides work in Skeleton3D
* Changes to Bone2D listed below:
  * The default_length property has been changed to length. Length is the length of the bone to its child bone node
  * New bone_angle property, which is the angle the bone has to its first child bone node
  * Bone2D caches its transform when not modified by IK for IK interpolation purposes
  * Bone2D draws its own editor gizmo, though this is stated to change in the future
* Changes to CanvasItemEditor listed below:
  * Bone2D gizmo drawing code removed
  * The 2D IK code is removed. Now Bone2D is the only bone system for 2D
* Transform2D now has a looking_at function for rotating to face a position
* Two new node notifications: NOTIFICATION_EDITOR_PRE_SAVE and NOTIFICATION_EDITOR_POST_SAVE
  * These notifications only are called in the editor right before and after saving a scene
  * Needed for not saving the IK position when executing IK in the editor
* Documentation for all the changes listed above.
- TwistedTwigleg
8aa3c2f091
2022-08-18 18:47:30 +02:00
6be9bf5dfe Cleaned up and added the skeleton modification stack implementations to the build. Also smaller fixes. 2022-08-18 15:41:28 +02:00
9757c39f05 Moved a few more core classes. 2022-08-17 17:43:49 +02:00
99e94b08c4 Moved base input related classes to core/input. 2022-08-17 17:02:24 +02:00
686663d3e4 Moved around more classes in core. 2022-08-17 16:01:01 +02:00
04feb63860 Moved Engine and projectSettings. 2022-08-17 15:35:28 +02:00
220b2db443 Moved String and related classes under a string folder in core. 2022-08-17 14:19:55 +02:00
dc9cc716c7 Moved Object related classes under core/object. 2022-08-17 13:45:14 +02:00
9555ee56b9 Moved Variant related classes under a variant folder in core. 2022-08-17 13:17:12 +02:00
388b88678e Moved container related classes in core under a new containers directory. 2022-08-17 12:53:49 +02:00
e71e3ed897 Now Vector4, Vector4i, Projection, PoolVector4Array, PoolVector4iArray, are built in variant types. Also reordered the Variant's Type enum, renamed _RID in it to RID, fixed a few smaller issues and removed some very old compat code. 2022-08-16 21:55:56 +02:00
8c2e76840c Removed CameraMatrix, and switched to Projection. 2022-08-16 10:26:35 +02:00
5cd44e02d0 Backported the improvements to Transform from Godot4. 2022-08-14 20:35:11 +02:00
e4cad690a3 Renamed elements in Transform2D to columns. 2022-08-14 15:37:05 +02:00
730bce8587 Renamed Quat to Quaternion for consistency with the other engine math classes. 2022-08-13 15:22:33 +02:00
e3918692a3 Backported from Godot 4: Fixed animation insertion in SkeletonEditor - TokageItLab
653e2a550c
2022-08-12 01:34:45 +02:00
15a5bea727 Clear surfaces in ImmediateMesh before adding a new one. 2022-08-11 18:09:33 +02:00
4db7bba945 Now ImmediateMesh actually sends the expected data to the VisualServer. 2022-08-11 17:56:31 +02:00
d662b2f3c9 Fix unused variable. 2022-08-11 12:31:24 +02:00
1b743e8a6d Fixed comparison of integer expressions of different signedness warnings. 2022-08-11 12:28:04 +02:00
dd250bf678 Backported ImmediateMesh from Godot4. 2022-08-11 12:23:36 +02:00
49f76407ba Fix unsigned signed comparison warnings. 2022-08-10 11:34:12 +02:00
7a9fe9117a Fix build. 2022-08-10 10:17:02 +02:00
22ce231a4e Backported from Godot 4: New and improved IK system for Skeleton3D
This PR and commit adds a new IK system for 3D with the Skeleton3D node
that adds several new IK solvers, as well as additional changes and functionality
for making bone manipulation in Godot easier.
This work was sponsored by GSoC 2020 and TwistedTwigleg
Full list of changes:
* Adds a SkeletonModification3D resource
  * This resource is the base where all IK code is written and executed
* Adds a SkeletonModificationStack3D resource
  * This node oversees the execution of the modifications and acts as a bridge of sorts for the modifications to the Skeleton3D node
* Adds SkeletonModification3D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in it's own file
* Several changes to Skeletons, listed below:
  * Added local_pose_override, which acts just like global_pose_override but keeps bone-child relationships intract
    * So if you move a bone using local_pose_override, all of the bones that are children will also be moved. This is different than global_pose_override, which only affects the individual bone
  * Internally bones keep track of their children. This removes the need of a processing list, makes it possible to update just a few select bones at a time, and makes it easier to traverse down the bone chain
  * Additional functions added for converting from world transform to global poses, global poses to local poses, and all the same changes but backwards (local to global, global to world). This makes it much easier to work with bone transforms without needing to think too much about how to convert them.
  * New signal added, bone_pose_changed, that can be used to tell if a specific bone changed its transform. Needed for BoneAttachment3D
  * Added functions for getting the forward position of a bone
* BoneAttachment3D node refactored heavily
  * BoneAttachment3D node is now completely standalone in its functionality.
    * This makes the code easier and less interconnected, as well as allowing them to function properly without being direct children of Skeleton3D nodes
  * BoneAttachment3D now can be set either using the index or the bone name.
  * BoneAttachment3D nodes can now set the bone transform instead of just following it. This is disabled by default for compatibility
  * BoneAttachment3D now shows a warning when not configured correctly
* Added rotate_to_align function in Basis
* Added class reference documentation for all changes
- TwistedTwigleg
5ffed49907
Note: It still needs some work.
2022-08-10 01:01:38 +02:00
6d293dc7a3 Removed Transform type track from the Animation. This leaves a few things, like the skeleton editor broken, it will be fixed soon. 2022-08-09 17:40:42 +02:00
3a8ffc6df3 Added missing cases to switch. 2022-08-09 12:26:47 +02:00
8fd473f685 Backported: "Remove animation 3D transform track, replace by loc/rot/scale tracks" from Godot4.
ec19ed3723
Its a bit broken right now, more patches need to be ported. Also I kept the Transform track for now, and I did not touch the gltf module yet.
2022-08-08 23:49:18 +02:00
7301c3f43c Backported ImporterMesh and ImporterMeshInstance3D from Godot4. 2022-08-07 22:44:42 +02:00
bb5acfd745 Ported: [3.5] Update NavigationServer backport
Backports features and bugfixes from current Godot 4.0 to 3.5 and brings functions and codebase of both version largely in sync to make tutorials more compatible and future backports easier.
- smix8
8bd7c6188b
2022-07-28 22:34:28 +02:00
a1a7c32f68 Ported: Backport default World navigation maps.
Backports default navigation maps created with each World or World2D.
- smix8
96d98d8c4e
2022-07-28 15:04:42 +02:00
lawnjelly
48c1a1ae34 VisibilityNotifier - add max_distance feature
Enables turning off objects by distance to the camera in addition to testing whether they are in the view frustum.
2022-07-28 14:59:45 +02:00
da8155f59b Ported: Remove slash delimiter from NavigationMesh properties - smix8
e629622598
2022-07-28 14:52:42 +02:00
Michael Alexsander
2ebc4905fc Fix hover being drawn twice inside PopupMenus 2022-07-28 13:42:35 +02:00
FireForge
73d95ac5e9 Fix get_data() for GradientTexture2D 2022-07-28 11:53:23 +02:00
bruvzg
3ef4f9128b Fix Label3D oversampling. 2022-07-28 11:46:40 +02:00
Hugo Locurcio
c6fa9ce87d Tweak TextMesh decomposition error message to mention self-intersecting lines 2022-07-28 10:37:18 +02:00
bruvzg
396899d91b Fix material shader key for SDF fonts. 2022-07-28 00:02:44 +02:00
d161a30a4b Ported: Backport TextMesh and expose dynamic font vector outlines - bruvzg
d502bd4847
2022-07-28 00:01:20 +02:00
f5dc24f4d5 Fix typo. 2022-07-27 23:45:42 +02:00
7fd0b29642 Ported: Backport Label3D node implementation and Sprite*3D material render priority. - bruvzg
dc6d8d6098
2022-07-27 23:40:35 +02:00
Hugo Locurcio
8f1ac63f60 Tweak the disabled files text color in FileDialog for readability
Contrast rate is still fairly low, but the text needs to be easy enough
to distinguish from non-disabled items.

(cherry picked from commit 8962d2760d05a2027d65d104bf3763edb828c52a)
2022-07-27 23:12:42 +02:00
smix8
29234d3ac3 Remove arbitrary NavigationMesh bake property limits
Lowers or removes the slider limits and steps from NavigationMesh resources and changes some default values to better work with realistic unit sizes by default.

(cherry picked from commit cda93057f73ad937deacb8200cf27f4996ed8918)
2022-07-27 23:08:58 +02:00
smix8
ced2f890b6 Add wrong surface warnings to NavigationMesh.create_from_mesh()
Adds warnings when at least one of the input mesh surfaces is of wrong primitive type or has an empty vertex / index array as those broken input meshes would fail as both navmesh as well as later when creating debug meshes.

(cherry picked from commit 4185fce0eff4c0fc40f077120d0ed26220e6c995)
2022-07-27 19:55:18 +02:00