Skip to content

Releases: Delsin-Yu/GDTask.Nuget

v1.3.0

04 Dec 14:09
Compare
Choose a tag to compare
  • Add support for .Net 9
<PropertyGroup>
  <TargetFrameworks>net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
</PropertyGroup>
  • Make the GDTask and GDTask<T> struct implement the IGDTask interface.
partial struct GDTask : IGDTask;
partial struct GDTask<T> : IGDTask;

public interface IGDTask
{
    IGDTaskAwaiter GetAwaiter();
}

public interface IGDTaskAwaiter : ICriticalNotifyCompletion
{
    bool IsCompleted { get; }
    object GetResult();
}

Full Changelog: v1.2.2...v1.3.0

v1.2.2

29 Mar 18:37
Compare
Choose a tag to compare
  • Added Extra Runtime Checks to Prevent Package Consumers from Calling GDTask APIs under Editor Codes.
public partial class EditorHintCheck : Node
{
	[ModuleInitializer]
	public static void Init()
	{
		// Now throws InvalidOperationException instead of crashing the editor
		GDTask.Delay(TimeSpan.Zero);
	}
}
  • Implement from Up-Stream: Remove unnecessary AwakeMonitor/EnterTreeMonitor.

v1.2.1

28 Mar 15:18
Compare
Choose a tag to compare

The PlayerLoopTiming enum now has IsolatedProcess and IsolatedPhysicsProcess for running async APIs when the scene tree has paused.

v1.2.0

27 Feb 16:09
Compare
Choose a tag to compare

Fix an issue that accidentally exposes the GDTask.Internal namespace, which causes inconveniences when referencing the GDTask type.

v1.1.0

26 Feb 15:38
868a399
Compare
Choose a tag to compare

What's Changed

Implements GDTask Tracker feature, when calling TaskTracker.ShowTrackerWindow() in your code base, the GDTask system will create(or reuse) a GDTask Tracker window for inspecting/diagnosing (leaked) GDTasks.

v1.0.0

22 Feb 05:48
Compare
Choose a tag to compare

What's Changed

  • Migrate all APIs under the GodotTask.Tasks namespace to the GodotTask root namespace.
  • Update README.md with NuGet badges and license information by @ZerxZ in #3

v0.0.3

02 Feb 13:58
Compare
Choose a tag to compare

GDTaskPlayerLoopRunner now uses internal mode when adding to the scene tree.

v0.0.2

29 Jan 08:50
Compare
Choose a tag to compare

Fix an issue where SwitchToMainThread not working if the first API call is SwitchToThreadPool.

// Assuming this is the only script inside a Godot project.
var mainThreadId = System.Environment.CurrentManagedThreadId;
Assertions.AssertThat(Thread.CurrentThread.IsThreadPoolThread).IsFalse();

await GDTask.SwitchToThreadPool();

Assertions.AssertThat(System.Environment.CurrentManagedThreadId).IsNotEqual(mainThreadId);
Assertions.AssertThat(Thread.CurrentThread.IsThreadPoolThread).IsTrue();

await GDTask.SwitchToMainThread();

// This doesn't pass the test in v0.0.1.
Assertions.AssertThat(System.Environment.CurrentManagedThreadId).IsEqual(mainThreadId);
Assertions.AssertThat(Thread.CurrentThread.IsThreadPoolThread).IsFalse();

Full Changelog: v0.0.1...v0.0.2

v0.0.1

29 Jan 08:45
Compare
Choose a tag to compare

The initial release of the GDTask Nuget Package.