using Godot; using System; public class Block : StaticBody2D { private AnimatedSprite _sprite; private AnimationPlayer _animation; private Area2D _bolt; private AnimationPlayer _boltAnimation; public override void _Ready() { _sprite = GetNode("AnimatedSprite"); _animation = GetNode("AnimationPlayer"); _bolt = GetNode("Bolt"); _boltAnimation = GetNode("Bolt/AnimationPlayer"); } public void Hit() { if (_animation.HasAnimation("hit")) { _animation.Play("hit"); _boltAnimation.Play("bounce"); } } public void OnAnimationPlayerAnimationFinished(string AnimName) { GD.Print(AnimName); if (AnimName.Equals("hit")) { _sprite.Play("opened"); return; } if (AnimName.Equals("bounce")) { if (_bolt.HasMethod("Collected")) { _bolt.CallDeferred("Collected"); } else { _bolt.QueueFree(); } return; } } }