Skip to content

Releases: rosshadden/gdext-v

v0.3.2

18 Jul 02:18

Choose a tag to compare

v0.3.1

16 Jul 20:59

Choose a tag to compare

Full Changelog: v0.3.0...v0.3.1

v0.3.0

16 Jul 17:00

Choose a tag to compare

Full Changelog: v0.2.1...v0.3.0

v0.2.1

29 Jun 02:01

Choose a tag to compare

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

26 Jun 20:56

Choose a tag to compare

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 p and pt for 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() string method. 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 explicit str method.

  • 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_variant to them all, which lets us... 👇
  • all functions that accepted Variant now accept ToVariant, 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.)
  • converted arg types for all constructor methods to V types
    • ex: Signal.new2, Callable.new2

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

24 Jun 22:05

Choose a tag to compare

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

24 Jun 04:45

Choose a tag to compare

Full Changelog: v0.1.5...v0.1.6

v0.1.5

20 Jun 20:45
73c2e76

Choose a tag to compare

Full Changelog: v0.1.4...v0.1.5

v0.1.4

20 Jun 18:42
50ddd65

Choose a tag to compare

Full Changelog: v0.1.3...v0.1.4

v0.1.3

20 Jun 18:42

Choose a tag to compare

Full Changelog: v0.1.2...v0.1.3