refactor(M03): extract terrain chunk LOD planner

This commit is contained in:
2026-07-16 09:44:11 +04:00
parent aa21aafdfa
commit eb94cfc646
11 changed files with 436 additions and 28 deletions
@@ -0,0 +1,45 @@
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