rnd(M03): extract streaming target planner

Work-Package: M03-RND-STREAMING-PLANNER-001
Agent: sindo-main-codex
Tests: planner/facade/focus/coordinate/manifest/shutdown contracts, seven-checkpoint dry-run, repository gates
Fidelity: preserves wanted/retained radii, boundary prefetch, editor preview, queue priority and cache/render behavior
This commit is contained in:
2026-07-16 00:08:02 +04:00
parent 0c24f96ae1
commit e887c3bad5
16 changed files with 793 additions and 84 deletions
@@ -0,0 +1,37 @@
class_name StreamingTargetPlan
extends RefCounted
## Immutable result of one runtime or editor target-planning operation.
## Tile-key sets use the streamer's existing `<tile_x>_<tile_y>` representation.
var focus_tile: AdtTileCoordinate:
get:
return _focus_tile
var _focus_tile: AdtTileCoordinate
var _wanted_tile_keys: Dictionary
var _retained_tile_keys: Dictionary
## Takes ownership of planner-created sets and freezes them. The planner creates
## these dictionaries independently from its catalog input, so no copy is needed.
func _init(
focus_tile_value: AdtTileCoordinate,
wanted_tile_keys_value: Dictionary,
retained_tile_keys_value: Dictionary
) -> void:
_focus_tile = focus_tile_value
_wanted_tile_keys = wanted_tile_keys_value
_retained_tile_keys = retained_tile_keys_value
_wanted_tile_keys.make_read_only()
_retained_tile_keys.make_read_only()
## Returns the immutable wanted tile-key set.
func wanted_tile_keys() -> Dictionary:
return _wanted_tile_keys
## Returns the immutable retained tile-key set.
func retained_tile_keys() -> Dictionary:
return _retained_tile_keys