extends Node2D class_name PlantSprite const PLANTED_SEED_CROP_WIDTH = 50 const PLANTED_SEED_POS_Y = -50 signal harvest_animation_finished func update_plant_sprite(plant : Plant, with_animation = false): if with_animation: $AnimationPlayer.play("bump") await $AnimationPlayer.animation_finished %Sprite.flip_h = true if randi()%2 == 0 else false %Sprite.texture = get_state_texture(plant.state, plant.plant_type) %PlantedSeed.visible = plant.state == Plant.State.PLANTED %PlantedSeed.texture = plant.plant_type.seed_texture %PlantedSeed.region_rect = Rect2( 0, PLANTED_SEED_POS_Y, plant.plant_type.seed_texture.get_width(), plant.plant_type.seed_texture.get_height() - PLANTED_SEED_CROP_WIDTH + -1 * PLANTED_SEED_POS_Y, ) func get_state_texture(s: Plant.State, plant_type : PlantType) -> Texture2D: match s: Plant.State.PLANTED: return null Plant.State.GROWING: return plant_type.growing_texture Plant.State.MATURE: return plant_type.mature_texture return null func start_harvest_animation(): $AnimationPlayer.play("harvest") await $AnimationPlayer.animation_finished harvest_animation_finished.emit()