gamejam-march-28/vole.gd
2025-03-30 18:43:56 -06:00

61 lines
1.3 KiB
GDScript

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)