Skip to content

Commit

Permalink
Merge pull request #207 from minami110/main
Browse files Browse the repository at this point in the history
AddTo support for Godot Node
  • Loading branch information
neuecc authored Jun 25, 2024
2 parents 1d01408 + 17eb8eb commit 297235d
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions src/R3.Godot/addons/R3.Godot/GodotNodeExtensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
using System;
using Godot;

namespace R3;

public static class GodotNodeExtensions
{
/// <summary>
/// Dispose self on target node has bee tree exited.
/// </summary>
/// <param name="disposable"></param>
/// <param name="node"></param>
/// <typeparam name="T"></typeparam>
/// <returns>Self disposable</returns>
public static T AddTo<T>(this T disposable, Node node) where T : IDisposable
{
// Note: Dispose when tree exited, so if node is not inside tree, dispose immediately.
if (!node.IsInsideTree())
{
if (!node.IsNodeReady()) // Before enter tree
{
GD.PrintErr("AddTo does not support to use before enter tree.");
}

disposable.Dispose();
return disposable;
}

node.TreeExited += () => disposable.Dispose();
return disposable;
}
}

0 comments on commit 297235d

Please sign in to comment.