@tool extends Node2D @export var animal_type : String: set(value): animal_type = value if is_node_ready(): _update_sprite() @export var flip_horizontal : bool = false: set(value): flip_horizontal = value if is_node_ready(): _update_sprite() @export var show_shavings : bool = false: set(value): show_shavings = value if is_node_ready(): _update_shavings() # Called when the node enters the scene tree for the first time. func _ready() -> void: _update_sprite() _update_shavings() func _update_sprite() -> void: # Hide all animal sprites first %Fox.visible = false %Porcupine.visible = false %Wolf.visible = false %Cat.visible = false %Goose.visible = false %Frog.visible = false %Chick.visible = false %Dog.visible = false # Show the appropriate animal based on animal_type var active_sprite: AnimatedSprite2D match animal_type: "Fox": %Fox.visible = true active_sprite = %Fox "Porcupine": %Porcupine.visible = true active_sprite = %Porcupine "Wolf": %Wolf.visible = true active_sprite = %Wolf "Cat": %Cat.visible = true active_sprite = %Cat "Goose": %Goose.visible = true active_sprite = %Goose "Frog": %Frog.visible = true active_sprite = %Frog "Chick": %Chick.visible = true active_sprite = %Chick "Dog": %Dog.visible = true active_sprite = %Dog # Apply horizontal flip if enabled if active_sprite: active_sprite.flip_h = flip_horizontal func _update_shavings() -> void: %Shavings.visible = show_shavings # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass