class_name TerrainChunkLodPolicy
extends RefCounted

## Immutable snapshot of the streamer's chunk-terrain LOD configuration.

var is_enabled: bool:
	get:
		return _is_enabled

var lod0_radius_chunks: int:
	get:
		return _lod0_radius_chunks

var lod1_radius_chunks: int:
	get:
		return _lod1_radius_chunks

var lod2_radius_chunks: int:
	get:
		return _lod2_radius_chunks

var chunk_size_units: float:
	get:
		return _chunk_size_units

var _is_enabled: bool
var _lod0_radius_chunks: int
var _lod1_radius_chunks: int
var _lod2_radius_chunks: int
var _chunk_size_units: float


## Captures one renderer configuration snapshot for a deterministic plan.
func _init(
		is_enabled_value: bool,
		lod0_radius_chunks_value: int,
		lod1_radius_chunks_value: int,
		lod2_radius_chunks_value: int,
		chunk_size_units_value: float
) -> void:
	_is_enabled = is_enabled_value
	_lod0_radius_chunks = lod0_radius_chunks_value
	_lod1_radius_chunks = lod1_radius_chunks_value
	_lod2_radius_chunks = lod2_radius_chunks_value
	_chunk_size_units = chunk_size_units_value
