- Metin2Model stores gr2::dump_materials() and can resolve surface textures
via tri_groups[0].material_index -> material.diffuse_texture basename,
gated behind use_gr2_materials (default off): the mapping is unverified and
currently regresses warrior (body surfaces pick the face texture), so the
filename-convention + dir-scan path stays the default.
- Property + setter for use_gr2_materials so it can be A/B'd once a Granny
oracle exists. Logged: "gr2 materials: N (M with diffuse name)".
warrior/assassin/shaman render unchanged from the heuristic path.
docs/GODOT-POC-PLAN.md §M2.5 T2.5.6 gap list already covers the open item.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WaHYEY9rwLWt21PULiYjeJ