-
-
Notifications
You must be signed in to change notification settings - Fork 237
Description
More detailed breakdown of the builtin types than present in #24.
Similar to #209 and #143, there are more builtins missing functions, here's a list of our progress when it comes to implementing all functionality.
The missing functionality here is largely going to be easy to reimplement, unless otherwise specified. We should try to reimplement what we can in rust, but for many types (like for instance the stringy types) it's likely not going to be very easy to do so. In those cases we can simply make a wrapper around a call to the InnerX
type, (for instance InnerGString
for GString
). Which simply makes a call to godot to call that function.
For anything labelled ❔ it would be good to check if all the godot methods are implemented yet. Feel free to leave a comment on this post if you do. Keep in mind that not everything is directly implemented as a method in rust, some things for instance are trait implementations, for instance Projection(Transform3D from)
was reimplemented as a impl From<Transform3D> for Projection { .. }
.
Legend
🟥 bare-bones, missing almost everything
🟡 most functions re-implemented
💚 all planned functions re-implemented, (could still mean there are QOL things we could add)
🚧 work already in progress
❔ to be confirmed if everything is re-implemented
Stringy Types
-
GString
💚 Tracking issue for builtin feature-completeness #310 (comment) -
StringName
💚 Tracking issue for builtin feature-completeness #310 (comment) -
NodePath
💚
Bounding Boxes
-
Aabb
💚 Reimplemented Aabb.rs in godot-core/src/builtin #280 -
Rect2
💚 Reimplement Rect2 functions #242 -
Rect2i
💚
Matrices
-
Basis
💚 Implement the matrix types #124 -
Transform2D
💚 Implement the matrix types #124 -
Transform3D
💚 Implement the matrix types #124 -
Projection
💚 Reimplements ManyProjection
Methods in Rust #179fovy_of
is currently a wrapper aroundInnerProjection::get_fovy
create_fit_aabb
, initially not implemented becauseAabb
wasn't implemented
Vectors
-
Vector2
💚- missing documentation
- todo note - compare
slerp
with gdnative
-
Vector2i
💚 -
Vector3
💚- missing slerp Reimplement
slerp
on Vector3 #316
- missing slerp Reimplement
-
Vector3i
💚 -
Vector4
💚 -
Vector4i
💚 -
snapped
for int vectors 🟥
Misc Math
-
Plane
💚 godot-core: builtin: reimplement Plane functions/methods #268 -
Quaternion
💚 PR #4/5 Astolfo feature/builtin-quaternion #68-
spherical_cubic_interpolate
-
spherical_cubic_interpolate_in_time
-
Arrays
-
Packed*Array
💚to_byte_array()
len()
should have a doc-alias forsize()
Add doc-aliases to functions that have their name changed from godot #232- could have
FromIterator
impl for&T
for the copy-arrays - validate that functions work as expected, see here
-
PackedByteArray
🟡compress/decompress
should likely just defer to godot implementationencode_*/decode_*
andget_string_from_*
can be done throughslice()
, is this sufficient?has_encoded_var
hex_encode
Standard Collections
-
Dictionary
🟡- Consider whether we should include the read-only semantics with
is_read_only()
andmake_read_only()
- Consider whether we should include the read-only semantics with
-
Array
🟡- [x]
bsearch_custom()
-
sort_custom()
- Consider whether we should include the read-only semantics with
is_read_only()
andmake_read_only()
- [x]
Other
-
Rid
💚 Implement support for RID #171 -
Callable
💚 Add implementation of Callable #231, the unimplemented functionality is currently broken and cannot be used in gdextension -
Signal
💚, not going to be easy to reimplement