Implement Crystal Sanctuary combination lock
- Add CrystalSanctuaryLock and CrystalSanctuaryLockBtn classes for the combination lock puzzle.
- Check for combination 3 and 7 on the lock rings to trigger opening the door.
- Update player shelter logic to only grant shelter if the sanctuary door is open.
- Remove automatic door opening from the guardian’s death trigger.
- Replace static lock meshes in gameplay.json with the new CrystalSanctuaryLock node.
- Register CrystalSanctuaryLock node type in assets.cpp.
- Add btn-ico.xcf texture asset for the interaction button.
- Expose isOpen member in CrystalSanctuaryBaseDoor to check door status.