class_name WmoRenderBuildStepPlanner extends RefCounted ## Selects one value-only WMO render-group build operation without engine objects. const OPERATION_MESH: StringName = &"mesh" const OPERATION_MULTIMESH: StringName = &"multimesh" const OPERATION_COMPLETE: StringName = &"complete" ## Selects the next mesh-first build operation and returns its selected index ## plus the cursor values to adopt after that one operation. Counts and cursors ## are intentionally not clamped so the loader's historical comparisons remain ## exact for every integer input. func plan_step( mesh_count: int, mesh_index: int, multimesh_count: int, multimesh_index: int ) -> Dictionary: if mesh_index < mesh_count: return { "operation": OPERATION_MESH, "selected_index": mesh_index, "next_mesh_index": mesh_index + 1, "next_multimesh_index": multimesh_index, } if multimesh_index < multimesh_count: return { "operation": OPERATION_MULTIMESH, "selected_index": multimesh_index, "next_mesh_index": mesh_index, "next_multimesh_index": multimesh_index + 1, } return { "operation": OPERATION_COMPLETE, "selected_index": -1, "next_mesh_index": mesh_index, "next_multimesh_index": multimesh_index, }