Releases: rosshadden/gdext-v
v0.3.2
Full Changelog: v0.3.1...v0.3.2
v0.3.1
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Full Changelog: v0.2.1...v0.3.0
v0.2.1
Full Changelog: v0.2.0...v0.2.1
Added some CI things. This release ate my own dogfood and was published through CI.
v0.2.0
Full Changelog: v0.1.7...v0.2.0
Huge UX improvements!
- relaxed API struct requirements, making Godot 4.4.1 or something work again (reported by @VBismuth)
- added
pandptfor easy printing with varargs
gd.p('player', player)
gd.pt(2, 4, 6, 8, 'who', 'do', 'we', 'appreciate', true)Note: this only works on builtin types and any type that explicitly defines a
str() stringmethod. This is a bug/lacking-feature I found in V and made an issue for here. After that gets merged these should work for any type ever, with no need for an explicitstrmethod.
- made variant functions have more convenient arg types (removed indirection)
- added some Godot type aliases:
pub type Bool = bool
pub type Int = i64
pub type Float = f64- this lets us add methods to them
- notably I added
to_variantto them all, which lets us... 👇 - all functions that accepted
Variantnow acceptToVariant, and converts them within- this is SOOOOO much nicer! No more wrapping args as variants!
- converted arg types for builtin classes to V types
- this was already how it worked for Object-based classes (ex:
Node,Control, etc.), but now is how it works for packed struct as well (ex:Vector2,Array, etc.)
- this was already how it worked for Object-based classes (ex:
- converted arg types for all constructor methods to V types
- ex:
Signal.new2,Callable.new2
- ex:
Some of the above things work together to make things much nicer.
Things like creating Callables, Signals, and Arrays, and supplying args to Signal#emit for example.
v0.1.7
Added version info to gdext.
Definitions:
pub struct InfoVersion {
name string
description string
major int
minor int
patch int
full string
time time.Time
status string
build string
}
pub struct Info {
version InfoVersion
godot InfoVersion
}Usage:
pub fn init(v voidptr, l gd.GDExtensionInitializationLevel) {
if l == .initialization_level_scene {
gdext.register_class[services.Debug]('Node')
gdext.register_class[actors.Player]('Node2D')
println(gdf.info())
}
}Output:
gdext.Info{
version: gdext.InfoVersion{
name: 'gd'
description: 'V bindings for Godot.'
major: 0
minor: 1
patch: 7
full: 'v0.1.7'
time: 2025-06-24 18:03:36
status: ''
build: ''
}
godot: gdext.InfoVersion{
name: 'Godot Engine'
description: 'Multi-platform 2D and 3D game engine'
major: 4
minor: 5
patch: 0
full: 'Godot Engine v4.5.beta.custom_build'
time: 0000-00-00 00:00:00
status: 'beta'
build: 'custom_build'
}
}
Full Changelog: v0.1.6...v0.1.7
v0.1.6
Full Changelog: v0.1.5...v0.1.6
v0.1.5
Full Changelog: v0.1.4...v0.1.5
v0.1.4
Full Changelog: v0.1.3...v0.1.4
v0.1.3
Full Changelog: v0.1.2...v0.1.3