Im Prinzip kannst du das direkt in deinem A* einbauen. Du musst lediglich den approx_value anders berechnen.
Code:
approx_distance = (1.0/0.0) # = infinity
for rohstoffquelle in rohstoffquellen
  distance = luftlinie(current_node, rohstoffquelle)
  approx_distance = distance if approx_distance > distance
end
approx_value = approx_distance * MINIMALE_WEGKOSTEN
Und die Abbruchsbedingung prüft jetzt nicht mehr, ob du auf dem Zielfeld angekommen bist, sondern ob du auf irgendeiner Rohstoffquelle angekommen bist.

Ansonsten ist das zu 100% derselbe Algorithmus wie dein Pathfinding.

Ob eine zusätzliche Heuristik notwendig ist, hängt wohl von der Anzahl der Rohstoffquellen ab.