42 lines
964 B
GDScript
42 lines
964 B
GDScript
extends Machine
|
|
class_name Compost
|
|
|
|
var containing_seed : int = 0
|
|
|
|
func get_seed_needed(l : int = level) -> int:
|
|
match l:
|
|
1: return 3
|
|
2: return 2
|
|
3: return 2
|
|
_: return 1
|
|
|
|
func get_energy_production(l : int = level) -> int:
|
|
match l:
|
|
1: return 1
|
|
2: return 1
|
|
_: return 2
|
|
|
|
func _process(_delta):
|
|
%ProgressBar.value = lerp(%ProgressBar.value, float(containing_seed) / float(get_seed_needed()) * 100, 0.5)
|
|
|
|
func interact_text():
|
|
return "Put a seed ("+str(get_seed_needed() - containing_seed)+" left)"
|
|
|
|
func can_interact(p : Player) -> bool:
|
|
return p.inventory.get_item() and p.inventory.get_item() is Seed
|
|
|
|
func interact(p : Player) -> bool:
|
|
if not can_interact(p):
|
|
return false
|
|
|
|
p.play_sfx("harvest")
|
|
p.inventory.remove_current_item()
|
|
containing_seed += 1
|
|
if containing_seed >= get_seed_needed():
|
|
$AnimationPlayer.play("empty")
|
|
containing_seed = 0
|
|
p.recharge(get_energy_production())
|
|
else:
|
|
$AnimationPlayer.play("fill")
|
|
return true
|