Skip to content

Releases: SysError99/q-godot

1.1.3 Stable

20 Jun 08:02
17a407a
Compare
Choose a tag to compare

This version introduces new class System which does nothing new but helps making code shorter, by omitting QGodot calls.

Simply extends the system class with extends QGodot.System and say Goodbye to the constant QGodot callings!

extends QGodot.System

# 'QGodot.query' gets shortened to just 'query'
onready var owned_horses := query("KinematicBody2D", ["Inventory", "horse"]) 


func _ready() -> void:
	# 'QGodot.to_signal' gets shortened to just 'to_signal'
	yield(to_signal("game_loaded"), "completed")
	print("Game is fully loaded!")


func _process(_delta: float) -> void:
	# Only API reference that has been changed, you must call it as function instead
	# 'QGodot.is_second_frame' -> 'is_second_frame()'
	if is_second_frame():
		print("This is second frame.")

1.1.2.1 Stable

10 May 06:23
926ad18
Compare
Choose a tag to compare

This release fixes minor issue that signal_name doesn't show up when no signal awaiters exist.

This version has no backwards compatibility issues.

1.1.2 Stable

06 May 11:18
14915d9
Compare
Choose a tag to compare

This version finalises 1.1.1.1 version and become a new stable version that is ready for use.

Changes

  • QGodot.signal is now QGodot.to_signal since signal is a reserved keyword in both Godot 3 and Godot 4, however it works in Godot 3 and not Godot 4, so making change to to_signal makes total sense.
  • Warning if any of global signals getting emitted but no awaiters exist.

This version presents a compatibility issue with ones who use 1.1.1.1 version regarding signal keyword change, but upgrading from 1.0.3 has no compatibility issues.

1.1.1.1 Latest

19 Apr 19:08
3965b6d
Compare
Choose a tag to compare

This version has two new features.

  • Now QGodot supports yielding global signals that will help writing asynchronous procedural code, by generating an awaiter with QGodot.signal(), then emitting signals as usual. However, this will only work with signals with either zero or one parameter.
  • QGodot.by_name: Dictionary<String, Dictionary>, a new key-value of main node name and binding list that contains (almost) all nodes that are in the query. This will help on some use cases that you need to make changes on specific nodes and not using common iteration method which helps up on speed. However, you need to be careful since main nodes with same name will make this variable malfunction.

This version flagged as 'untested' as usual, although I still play test it myself in occasion. I already planned to test all added features, along with fix bugs in the upcoming 1.2 version. At a meantime, feel free to test on your own pace, or use it at your own risk!

v0.4 Release

03 Apr 10:24
Compare
Choose a tag to compare
v0.4 Release Pre-release
Pre-release

This release features an ability to 'exclude' sub nodes and groups from query for even more refined querying. Simply add - symbol before sub node path or group name, and QGodot will exclude those from the query.

# Query that finds only wild horse, judging by the way that they don't have inventory.
onready var wild_horses := QGodot.query("KinematicBody", ["HorseSound", "-Inventory"]

Also, now it includes warnings on the use of deprecated functions in the library.

This release doesn't have any of breaking changes as long as the project doesn't use - symbol before node names and group names, which means without the condition described, this is a safe upgrade.

v0.1

02 Mar 16:58
Compare
Choose a tag to compare
v0.1 Pre-release
Pre-release

This release is so far been tested on Godot 3.5.1 (over a month), with experimental support on 4.0. However, some unique features are dropped since 4.0 has significant changes on how GDScript works (mainly on get_meta() won't accept special characters anymore). This is still not production ready and some features still need to be re-implemented (such as get_meta() on cached nodes).

Feel free to play test with it and give me a feedback via issues panel!

1.0.3 Stable

12 Apr 09:36
Compare
Choose a tag to compare

This version brings one new feature. Now querying using default names will also include nodes with custom clases.

class Enemy extends KinematicBody2D:
    ...

class Player extends KinematicBody2D:
    ...

# Will include 'Enemy' and 'Player' as supposed to 'none'.
onready var entities := QGodot.query("KinematicBody2D")

This version may cause compatibility issues if your project still relies on old querying mechanism (which means, the project intentionally uses default names and custom names to filter the query), you may need certain reworks on the project before upgrading to this version, but if not, this version should just work.