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 get_usage_object_affected(i : InspectableEntity) -> bool: return i is Plant or i is UndergroundLoot func use_text() -> String: return "Dig" func can_use(_player : Player, zone : Player.ActionZone) -> bool: var areas = zone.get_affected_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.get_affected_areas(), player ) return true func dig(areas: Array[Area2D], player: Player): for area in areas : if area and area is Plant: player.play_sfx("harvest") area.harvest() await player.get_tree().create_timer(USE_INTERVAL).timeout if area and area is UndergroundLoot: player.play_sfx("dig") area.dig() await player.get_tree().create_timer(USE_INTERVAL).timeout