extends Interactable class_name Compost const FILLED_ICON = preload("res://common/icons/bucket.svg") signal filled(c : Compost) signal rewarded(c : Compost) var reward : Reward = null : set(r): reward = r update_info() var containing_seed : int = 0 : set(c): containing_seed = c update_info() func _ready(): update_info() func update_info(): %Count.text = "" if reward == null else "%d/%d" % [containing_seed, reward.get_seed_needed()] %Icon.texture = null if reward == null else reward.icon() func can_interact(p : Player) -> bool: return reward and p.data.inventory.get_item() and p.data.inventory.get_item() is Seed func interact(p : Player) -> bool: if not can_interact(p): return false AudioManager.play_sfx("Harvest") p.data.inventory.remove_current_item() containing_seed += 1 if containing_seed >= reward.get_seed_needed(): containing_seed = 0 reward.reward(p) rewarded.emit(self) %AnimationPlayer.play("bump") filled.emit(self) return true func card_info() -> CardInfo: var info = CardInfo.new( pointer_text() ) if default_info_desc != "": var desc_section = CardSectionInfo.new( tr("DESCRIPTION"), default_info_desc ) desc_section.title_icon = DESC_ICON info.sections.append( desc_section ) var reward_section = CardSectionInfo.new( tr("WHEN_FILLED"), reward.desc() ) reward_section.title_icon = FILLED_ICON info.sections.append(reward_section) return info func product(_player : Player): pass