25 lines
757 B
GDScript
25 lines
757 B
GDScript
extends Interaction
|
|
class_name InteractionGather
|
|
|
|
var interaction_display
|
|
var _pos
|
|
|
|
func interact_at(pos: Vector2i, root: Node) -> Array[Interaction]:
|
|
_pos = pos
|
|
print("Gathering at: %s" % pos)
|
|
|
|
interaction_display = ProgressBar.new()
|
|
interaction_display.position = Grid.grid_to_world_center(_pos) - Vector2(30, 10)
|
|
interaction_display.size = Vector2(60, 20)
|
|
interaction_display.show_percentage = false
|
|
var tween = root.create_tween()
|
|
tween.tween_property(interaction_display, "value", 100, 3)
|
|
tween.tween_callback(_cleanup_gather)
|
|
root.add_child(interaction_display)
|
|
return []
|
|
|
|
func _cleanup_gather() -> void:
|
|
interaction_display.queue_free()
|
|
var res: GameResource = Grid.get_location_data(_pos).get_resource()
|
|
res.gained_resource.emit(res)
|