imperfect-space/scripts/GravityZone.cs

16 lines
417 B
C#

using Godot;
public partial class GravityZone : Area3D
{
public void OnBodyEntered(Node3D body)
{
GravityReceiver receiver = body.GetNodeOrNull<GravityReceiver>("GravityReceiver");
receiver?.EnterGravityZone(Gravity, GlobalTransform.Basis.Y);
}
public void OnBodyExited(Node3D body)
{
GravityReceiver receiver = body.GetNodeOrNull<GravityReceiver>("GravityReceiver");
receiver?.ExitGravityZone();
}
}