extends Node2D class_name PlantSprite const PLANTED_SEED_CROP_WIDTH = 50 const PLANTED_SEED_POS_Y = 0 const PARTICLES_SCENE : PackedScene = preload("res://common/vfx/particles/particles.tscn") signal harvest_animation_finished var last_updated_on_state : PlantData.State = PlantData.State.MATURE func update_plant_sprite(plant_data : PlantData, with_animation = false): if with_animation: %AnimationPlayer.play("bump") await %AnimationPlayer.animation_finished %Sprite.flip_h = true if plant_data.random_seed%2 == 0 else false %Sprite.texture = plant_data.get_plant_texture() %PlantedSeed.texture = plant_data.get_seed_texture() %PlantedSeed.visible = plant_data.get_state() == PlantData.State.PLANTED # %PlantedSeed.region_rect = Rect2( # 0, # PLANTED_SEED_POS_Y, # %PlantedSeed.texture.get_width(), # %PlantedSeed.texture.texture.get_height() - PLANTED_SEED_CROP_WIDTH + -1 * PLANTED_SEED_POS_Y, # ) func generate_mutation_effects(plant : Plant): for m in plant.data.mutations: var particles_emitter : Particles = PARTICLES_SCENE.instantiate() as CPUParticles2D particles_emitter.setup_particles( Particles.Parameters.new( m.get_icon(), PlantMutation.get_rarity_color(m.get_rarity()) ) ) add_child(particles_emitter) func start_harvest_animation(): $AnimationPlayer.play("harvest") await $AnimationPlayer.animation_finished harvest_animation_finished.emit()