Configuração do viewer
Todas as opções públicas do DiceResultViewer, seus defaults, callbacks e limites de atualização.
Este artigo documenta a V2 publicada. Para a prévia atual com física, veja o guia V3. V3 ↗ Licenças ↗
As opções são passadas a new DiceResultViewer(options) e, quando compatíveis, a await viewer.updateOptions(options). O tipo público é ViewerOptions. Os valores abaixo correspondem ao pacote 2.6.1.
Núcleo e temas
| Opção | Default | Uso |
|---|---|---|
id |
dice-canvas-${Date.now()} |
ID do canvas |
container |
null |
Seletor ou HTMLElement; elemento existente é obrigatório na prática |
assetPath |
/assets/dice-box/ |
Raiz pública dos assets |
origin |
origem da página | Origem para assets internos |
mode |
kinematic |
kinematic ou physics |
theme |
default |
Tema padrão |
preloadThemes |
[] |
Temas carregados por init() |
externalThemes |
{} |
Mapa de nome para URL base da pasta do tema |
themeColor |
#2e8555 |
Cor padrão da superfície |
maxDice |
120 |
Limite de corpos visuais; d100 conta como dois |
Cena e entrada
| Opção | Default | Uso |
|---|---|---|
enableShadows |
true |
Sombras |
shadowTransparency |
0.8 |
Intensidade/transparência do shadow map (0..1) |
shadowResolution |
1024 |
Resolução inteira positiva do shadow map |
lightIntensity |
1 |
Multiplicador da iluminação |
antialias |
true |
Antialias da engine |
scale |
5 |
Escala dos objetos |
duration |
1100 ms |
Duração cinemática base |
delay |
10 ms |
Intervalo de liberação por corpo |
wallPadding |
0.25 |
Recuo interno da área útil |
spawnSpacing |
1.72 |
Separação solicitada no portal |
spawnHeightStep |
0 |
Offset vertical opcional |
spawnOverscan |
0.15 |
Margem extra fora da projeção, em fração do raio |
duration efetivo tem mínimo de 250 ms, além dos atrasos de liberação. O packing pode criar novas ondas quando não há espaço na borda.
Física
| Opção | Default | Uso |
|---|---|---|
gravity |
1.3 |
Multiplicador de −9.81 |
mass |
1.08 |
Massa base |
startingHeight |
7.6 |
Plano de liberação; altura efetiva limitada internamente |
spinForce |
5.8 |
Escala do giro |
throwForce |
6.4 |
Intensidade do arremesso |
aggressiveThrowChance |
0.12 |
Chance por apresentação de energia maior (0..1) |
wallBounceChance |
alias obsoleto | Use aggressiveThrowChance; não garante colisão |
colliderScale |
1.02 |
Escala de collider dos poliedros |
friction |
0.54 |
Fricção do piso e dados |
restitution |
0.29 |
Elasticidade do piso e dados |
linearDamping |
0.10 |
Amortecimento linear inicial |
angularDamping |
0.08 |
Amortecimento angular após impacto |
settleTimeout |
4200 ms |
Janela de segurança; não escolhe o valor |
physicsWasmUrl |
'' |
URL explícita do WASM Havok |
Timeline
timeline.enabled começa em true, maxEvents em 500, maxDurationMs em 12000 e phaseGapMs em 180. Todos os efeitos começam ativos: explode, compound, penetrate, reroll, unique, keep, drop, success, failure, neutral, criticalSuccess e criticalFailure. Cada um aceita enabled, delayMs, durationMs, intensity (0..1) e color. Campos específicos e exemplos estão em Timeline semântica.
Callbacks
| Opção | Argumento | Momento |
|---|---|---|
onCollision |
{ action: 'collision', body0Id?, body1Id?, force } |
Contato no modo físico |
onThemeConfigLoaded |
ResolvedThemeConfig |
Configuração resolvida fora do cache |
onThemeLoaded |
ResolvedThemeConfig |
Tema usado na apresentação |
onTimelineProgress |
TimelineProgressEvent |
Snapshot de initial, phase ou complete |
Atualização e validação
updateOptions() mescla opções e faz merge profundo por efeito de timeline. Mudanças em container, id, antialias, shadowResolution, gravity, physicsWasmUrl ou na raiz/definição de assets já carregados exigem uma nova instância. preloadThemes só é consumido durante init().
Modos inválidos, números não finitos, limites incoerentes, callbacks que não são funções e estruturas mínimas inválidas de tema ou moeda são rejeitados. Uma atualização inválida mantém as opções válidas anteriores. Confira a API para métodos e contratos.