44 lines
1.1 KiB
GDScript
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
|