example-grass/Eat Da Rich/Hitter/Hitable.cs

38 lines
725 B
C#

using Godot;
using System.Collections;
using System.Collections.Generic;
using Godot.Collections;
namespace Rokojori
{
[GlobalClass,Tool]
public partial class Hitable:Node
{
[Export]
public OnCollision onCollision;
[Export]
public Action onReceivedHit;
public override void _Ready()
{
onCollision.onEnteredSlot.AddAction(
( n )=>
{
Action.Trigger( onReceivedHit );
var hitter = n.Get<Hitter>();
this.LogInfo( "Was hit by:", n, hitter );
if ( hitter != null )
{
hitter.hitable = this;
Action.Trigger( hitter.onHit );
hitter.hitable = null;
}
}
);
}
}
}