extends Node3D @onready var playback: AnimationNodeStateMachinePlayback = %AnimationTree.get("parameters/playback") @export var pouncing := false func _ready() -> void: $Breed.paused = true func idle(): playback.travel("Idle") func walk(): playback.travel("Walk") func pounce(): pass func is_busy(): return pouncing func root_motion(): return %AnimationTree.get_root_motion_position() func caught(): var manager: PlayerManager = $"../.." manager.switch_player($"..".input) $"..".queue_free() var can_press: bool = true func _process(_delta: float) -> void: if not visible: return var input: PlayerInputData = $"..".input if input == null: $Breed.paused = true return $Breed.paused = not breeding if input.raw_dig or input.raw_jump: if can_press: var manager: PlayerManager = $"../.." manager.switch_player(input) can_press = false else: can_press = true var breeding = false func _on_area_3d_on() -> void: breeding = true func _on_area_3d_off() -> void: breeding = false func _on_breed_timeout() -> void: if randi_range(0, 2) == 2 or true: var new: Player = load("res://player.tscn").instantiate() new.transform = get_parent().transform new.transform.origin.y += 1. new.initial_model = Player.initial.vole get_parent().get_parent().add_child(new)