Objects/FishingBobber.cs
using Clover.Animals;
using Clover.Carriable;
namespace Clover.Objects;
public class FishingBobber : Component
{
[Property] public SoundEvent SplashSound { get; set; }
[Property] public SkinnedModelRenderer Bobber { get; set; }
[Property] public GameObject Tip { get; set; }
public CatchableFish Fish;
public FishingRod Rod;
public bool IsInWater { get; set; }
// private TimeSince _lastNibble;
public void OnHitWater()
{
// GetNode<AudioStreamPlayer3D>( "BobberWater" ).Play();
// GetNode<AnimationPlayer>( "fish_bobber/AnimationPlayer" ).Play( "bobbing" );
GameObject.PlaySound( SplashSound );
// Bobber.Set("anim", 0);
// Bobber.Set("bobbing", true);
IsInWater = true;
// Bobber.SceneModel.DirectPlayback.Play( "bobbing" );
// Log.Info( string.Join(",", Bobber.SceneModel.DirectPlayback.Animations ));
}
public void OnNibble()
{
Bobber.Set( "nibble", true );
}
public void OnFight()
{
Bobber.Set( "fight", true );
}
protected override void OnDestroy()
{
base.OnDestroy();
CameraMan.Instance?.RemoveTarget( GameObject );
}
protected override void OnFixedUpdate()
{
base.OnFixedUpdate();
if ( !IsInWater )
return;
/*if ( _lastNibble > 1 && Bobber.SceneModel.DirectPlayback.Name == "nibble" )
{
Bobber.SceneModel.DirectPlayback.Play( "bobbing" );
}*/
}
}