migration v14: - remplace CONFIG.Dice.rollModes → CONFIG.ChatMessage.modes - canvas optionnel (?.tokens) dans ~27 fichiers - async/await migrations, waitForRoll, effet draconique - supprime _warnedAppV1, data-message-id→data-document-id - corrige sheet registration Items.registerSheet tmr: - bouton Lancer un Sort visible en mode visu - _ensureTMRButtons() en fallback JS - await d'animation avant render - corrigé doublon carteTMR.js css: - scrollbar (.item-sheet-scrollable-body) sur les 44 fiches item - normalisation multiligne de tous les less/item/*.less - style du dialogue description aléatoire (app-personnage-aleatoire) - hr-sorts et sort réserves en flex-row dialogue description: - type=button sur les boutons (évite submit form → crash) - randomControl passe this.actor au lieu de this.current - DEFINITION_HEURES : ajout propriété manquante heure d意: - supprime 6 fichiers debug (phase*.txt/png, sheets-*.txt/png) - system.json nom anglais→français - token-hud : guard token undefined - item-sort.js : guard sort?.system dans helpers Handlebars
44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
/**
|
|
* class providing the actor and token, and choosing the name and image from the token if available.
|
|
*/
|
|
export class TokenActor {
|
|
static fromTokenActor(token, actor){
|
|
return token ? TokenActor.fromToken(token) : TokenActor.fromActor(actor)
|
|
}
|
|
|
|
static fromActorId(actorId, onError = () => undefined) {
|
|
const controlled = canvas?.tokens?.controlled
|
|
actorId = actorId ?? (controlled?.length > 0
|
|
? controlled[0]?.actor?.id
|
|
: undefined)
|
|
const actor = actorId ? game.actors.get(actorId) : undefined
|
|
if (actor) {
|
|
return this.fromActor(actor)
|
|
}
|
|
return onError()
|
|
}
|
|
|
|
static fromActor(actor) {
|
|
const token = actor.isToken ? actor.token : actor.prototypeToken
|
|
return TokenActor.fromToken(token)
|
|
}
|
|
|
|
static fromTokenId(tokenId, sceneId = undefined) {
|
|
const tokensList = sceneId ? game.scenes.get(sceneId)?.tokens : canvas?.tokens?.placeables
|
|
const token = tokensList.get(tokenId)
|
|
return TokenActor.fromToken(token)
|
|
}
|
|
|
|
static fromToken(token) {
|
|
return new TokenActor(token)
|
|
}
|
|
|
|
constructor(token) {
|
|
this.name = token.name ?? token.actor.name
|
|
this.img = token.actor.isToken && token.texture.src ? token.texture.src : token.actor.img
|
|
this.actor = token.actor
|
|
this.id = token.actor?.id
|
|
this.token = token
|
|
this.tokenId = token?.id
|
|
}
|
|
} |