PokemonLike/Library/Characters/CharacterCollisionRayCast.cs

40 lines
1 KiB
C#

using Godot;
using PokemonLike.Library.Support;
namespace PokemonLike.Library.Characters;
[GlobalClass]
public partial class CharacterCollisionRayCast : RayCast2D
{
[Signal] public delegate void CollisionEventHandler(bool collided);
[ExportCategory("Collision Vars")] [Export]
public CharacterInput CharacterInput;
[Export] public GodotObject Collider;
public override void _Ready()
{
Logger.Info("Loading character collision raycast ...");
}
public override void _Process(double delta)
{
if (TargetPosition != CharacterInput.TargetPosition)
TargetPosition = CharacterInput.TargetPosition;
if (IsColliding())
{
Collider = GetCollider();
string colliderType = Collider.GetType().Name;
switch (colliderType)
{
default:
EmitSignal(SignalName.Collision, true);
break;
}
}
else
EmitSignal(SignalName.Collision, false);
}
}