@tool

extends Node3D

@export var planet_data : Resource = PlanetData.new():
	get:
		return planet_data
	set(value):
		planet_data = value
		on_data_changed()
		if planet_data != null and not planet_data.is_connected("changed", on_data_changed):
			planet_data.connect("changed", on_data_changed)

func _ready():
	planet_data = PlanetData.new()
	planet_data.noise_map = FastNoiseLite.new()
	planet_data.noise_map.set_noise_type(FastNoiseLite.NoiseType.TYPE_SIMPLEX)
	planet_data.noise_map.frequency = 1
	on_data_changed()

func on_data_changed():
	for child in get_children():
		var face := child as PlantetMeshFace
		face.regenerate_mesh(planet_data)
