@tool extends Node3D @export var is_chopped:bool = true: get: return is_chopped set(value): if value != is_chopped: is_chopped = value _update_geometry() @onready var grass_large: Node3D = %grassLarge @onready var grow_timer: Timer = %GrowTimer # Called when the node enters the scene tree for the first time. func _ready() -> void: _update_geometry() func _update_geometry() -> void: if grass_large == null: return if is_chopped: grass_large.transform = Transform3D(Basis.IDENTITY, grass_large.position) else: grass_large.transform = Transform3D(Basis.IDENTITY.scaled(Vector3(1, 3, 1)), grass_large.position) func _on_hitbox_area_shape_entered(area_rid: RID, area: Area3D, area_shape_index: int, local_shape_index: int) -> void: is_chopped = true grow_timer.start() func _on_grow_timer_timeout() -> void: if is_chopped: is_chopped = false