extends Item class_name Shovel const USE_INTERVAL = 0.15 const SHOVEL_ZONE_RADIUS = 30 func get_item_name() -> String: return "Shovel" func get_description() -> String: return "Can dig up buried seeds and can be used to harvest mature plants." func get_icon() -> Texture2D: return preload("res://common/icons/shovel.svg") func get_energy_used() -> int: return 1 func get_usage_zone_radius() -> int: return SHOVEL_ZONE_RADIUS func use_text() -> String: return "Dig" func can_use(_player : Player, zone : Player.ActionZone) -> bool: var areas = zone.area.get_overlapping_areas() for area in areas : if area is Plant or area is UndergroundLoot: return true return false func use(player : Player, zone : Player.ActionZone) -> bool: dig( zone.area.get_overlapping_areas(), player ) return true func dig(areas: Array[Area2D], player: Player): for area in areas : if area is Plant: player.play_sfx("harvest") area.harvest() if area is UndergroundLoot: player.play_sfx("dig") area.dig() await player.get_tree().create_timer(USE_INTERVAL).timeout