painted_galaxy_spawn_connected_system = {
	optimize_memory
	# set max_distance (for spawning systems) to 60 (halved later on)
	set_variable = {
		which = painted_galaxy_max_distance
		value = 60
	}
	# if any system neighbor is closer, decrease the max_distance
	every_system = {
		limit = { NOT = { is_same_value = prev } }
		export_trigger_value_to_variable = {
			variable = painted_galaxy_distance_to_origin
			trigger = distance
			parameters = {
				source = prev
				type = euclidean
			}
		}
		if = {
			limit = {
				check_variable = {
					which = painted_galaxy_distance_to_origin
					value < prev.painted_galaxy_max_distance
				}
			}
			prev = {
				set_variable = {
					which = painted_galaxy_max_distance
					value = prev.painted_galaxy_distance_to_origin
				}
			}
		}
		clear_variable = painted_galaxy_distance_to_origin
	}

	# halve, so the new system does not end up super close to a neighbor either
	divide_variable = { which = painted_galaxy_max_distance value = 2 }

	# spawn the systems
	# max_distance doesn't work with variables, so we need to check the variable outside of the spawn_system effect then pass it in
	if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 2 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 1 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 1 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 3 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 2 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 2 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 4 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 3 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 3 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 5 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 4 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 4 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 6 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 5 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 5 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 7 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 6 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 6 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 8 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 7 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 7 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 9 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 8 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 8 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 10 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 9 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 9 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 15 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 10 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 10 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 20 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 15 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 15 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 25 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 20 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 20 } ]
	} else_if = {
		limit = { check_variable = { which = painted_galaxy_max_distance value < 30 } }
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 25 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 25 } ]
	} else = {
		painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER$ DISTANCE = 30 }
		[[INITIALIZER2] painted_galaxy_spawn_system_at_distance = { INITIALIZER = $INITIALIZER2$ DISTANCE = 30 } ]
	}

	# cleanup
	clear_variable = painted_galaxy_max_distance
}

painted_galaxy_spawn_system_at_distance = {
	optimize_memory
	spawn_system = {
		initializer = $INITIALIZER$
		max_distance = $DISTANCE$
		min_distance = $DISTANCE$
		hyperlane = yes
		effect = {
			# connect to origin
			if = {
				limit = { NOT = { has_hyperlane_to = prev } }
				add_hyperlane = { from = this to = prev }
			}
		}
	}
}
