Add/expand persona auto selection from char / chat

- Persona selection on chat based on three levels:
  1. Chat Locking
  2. Char connected personas
  3. Default persona
- Add popup if multiple personas are connected to char
- Add utility function to print persona avatar lists
This commit is contained in:
Wolfsblvt
2025-01-15 01:18:31 +01:00
parent 255e75c6cf
commit 08a4cee48f
2 changed files with 114 additions and 19 deletions

View File

@ -6383,7 +6383,7 @@ export function buildAvatarList(block, entities, { templateId = 'inline_avatar_t
}
avatarTemplate.attr('data-type', entity.type);
avatarTemplate.attr({ 'chid': id, 'id': `CharID${id}` });
avatarTemplate.attr('data-chid', id);
avatarTemplate.find('img').attr('src', this_avatar).attr('alt', entity.item.name);
avatarTemplate.attr('title', `[Character] ${entity.item.name}\nFile: ${entity.item.avatar}`);
if (highlightFavs) {
@ -6398,8 +6398,14 @@ export function buildAvatarList(block, entities, { templateId = 'inline_avatar_t
avatarTemplate.addClass(grpTemplate.attr('class'));
avatarTemplate.empty();
avatarTemplate.append(grpTemplate.children());
avatarTemplate.attr({ 'data-grid': id, 'data-chid': null });
avatarTemplate.attr('title', `[Group] ${entity.item.name}`);
}
else if (entity.type === 'persona') {
avatarTemplate.attr({ 'data-pid': id, 'data-chid': null });
avatarTemplate.find('img').attr('src', getUserAvatar(entity.item.avatar));
avatarTemplate.attr('title', `[Persona] ${entity.item.name}\nFile: ${entity.item.avatar}`);
}
if (interactable) {
avatarTemplate.addClass(INTERACTABLE_CONTROL_CLASS);