# annoying you have to @tool to successfully extend the XR tool classes,
# which pollutes the the methods with editor only checks, oh well.
@tool
extends XRToolsSceneBase


func scene_loaded(user_data = null):
	super.scene_loaded(user_data)
	_reset_manipulators()

func _ready():
	# for editor testing when scene is directly loaded
	if !Engine.is_editor_hint():
		_reset_manipulators()

func _reset_manipulators():
	# reset the manipulators (the loaded scene has them in the final position)
	
	# Get all manipulators in the scene
	var manipulators = get_tree().get_nodes_in_group("manipulators")
	
	# Calculate spacing between manipulators
	var total_width = manipulators.size() - 1
	var start_x = -total_width / 2.0
	
	# Position each manipulator in a line
	for i in range(manipulators.size()):
		var manipulator = manipulators[i]
		var x_pos = start_x + i
		manipulator.transform.origin = Vector3(x_pos, 1.0, -1.0)
		manipulator.transform.basis = Basis.IDENTITY
		
		# Reset the attractor sphere radius
		var attractor = manipulator.get_node("VisualAttractorSphere")
		if attractor:
			attractor.radius = 0.5
