seeding-planets/entities/interactables/machines/compost/scripts/compost.gd

44 lines
1.1 KiB
GDScript

extends Machine
class_name Compost
@export var seed_needed : int = 2
@export var energy_production : int = 1
var containing_seed : int = 0
func _process(_delta):
%ProgressBar.value = lerp(%ProgressBar.value, float(containing_seed) / float(seed_needed) * 100, 0.5)
func pointer_text():
return "Compost"
func interact_text():
return "Put a seed ("+str(seed_needed - containing_seed)+" left)"
func inspector_info() -> Inspector.Info:
return Inspector.Info.new(
pointer_text(),
"The compost allow you to generate one energy for " + str(seed_needed) + " seeds."
)
func can_interact(p : Player) -> bool:
return p.inventory.get_item() and p.inventory.get_item() is Seed
func requirement_text() -> String:
return "You must have a seed in hand"
func interact(p : Player) -> bool:
if not can_interact(p):
return false
p.play_sfx("harvest")
p.delete_item(p.inventory.get_item())
containing_seed += 1
if containing_seed >= seed_needed:
$AnimationPlayer.play("empty")
containing_seed = 0
p.recharge(energy_production)
else:
$AnimationPlayer.play("fill")
return true