1 Commits

Author SHA1 Message Date
05f5f0d28e changes to dice-box-threejs
All checks were successful
CI / deploy (push) Successful in 5m33s
2025-02-16 16:28:40 +01:00
7 changed files with 18 additions and 28 deletions

View File

@@ -16,7 +16,6 @@
<p align="center">
<img src=".github/media/preview.gif" />
</p>
---
## Key Features
@@ -28,7 +27,6 @@
* Watch roll results (also available as Browser Source in OBS)
---
## Start Container
You can start dice-tower with docker compose

View File

@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>de.arindy</groupId>
<artifactId>dice-tower</artifactId>
<version>1.2.1</version>
<version>1.2.0-SNAPSHOT</version>
<properties>
<compiler-plugin.version>3.13.0</compiler-plugin.version>

View File

@@ -24,7 +24,7 @@ class ChatOverlayResource {
@QueryParam("cmd") cmd: String? = "roll",
@QueryParam("theme") theme: String? = "default",
@QueryParam("faceColor") faceColor: String? = "#ff0202",
@QueryParam("numberColor") numberColor: String? = "#ffffff",
@QueryParam("faceColor") numberColor: String? = "#ffffff",
@QueryParam("clearAfter") clearAfter: Long? = -1,
@QueryParam("timeout") timeout: Long? = -1
): TemplateInstance {

View File

@@ -219,3 +219,6 @@ document.addEventListener("DOMContentLoaded", async () => {
configurePopover();
})
if (!localStorage.getItem("userId")) {
localStorage.setItem("userId", self.crypto.randomUUID());
}

View File

@@ -12,20 +12,15 @@
<div popover id="results" class="tooltip">
</div>
<script type="module">
import DiceBox from "/vendor/dice-box/dice-box-threejs.es.js";
import DiceBox from "/vendor/dice-box/dice-box.es.js";
const diceBox = new DiceBox("#dice-box", {
assetPath: "/vendor/dice-box/",
light_intensity: 2,
gravity_multiplier: 600,
baseScale: {scale} * 10,
strength: Math.floor(Math.random() * 4),
theme_customColorset: {
texture: '{theme}',
background: '{faceColor}',
foreground: '{numberColor}'
}
assetPath: "/vendor/assets/",
theme: '{theme}',
faceColor: '{faceColor}',
scale: {scale}
});
diceBox.initialize();
diceBox.init()
ComfyJS.Init('{channel}');
//maxDice
@@ -38,16 +33,16 @@
toggleWait(true);
diceBox.onRollComplete = (rollResult) => {
rollResult.sets.forEach(result => {
rollResult.forEach(result => {
let values = []
result.rolls.forEach(roll => {
values.push(roll.value);
})
document.getElementById('results').innerHTML = '<strong>' + user + '</strong> rolls <strong>' + message + '</strong>:<br/> [' + values.map(value => value === 1 ? '<strong style="text-shadow: 2px 2px 10px red">' + value + '</strong>' : value === result.sides ? '<strong style="text-shadow: 2px 2px 10px green">' + value + '</strong>' : value).join(' + ') + '] = <strong>' + result.total + '</strong> '
document.getElementById('results').innerHTML = '<strong>' + user + '</strong> rolls <strong>' + message + '</strong>:<br/> [' + values.map(value => value === 1 ? '<strong style="text-shadow: 2px 2px 10px red">' + value + '</strong>' : value === result.sides ? '<strong style="text-shadow: 2px 2px 10px green">' + value + '</strong>' : value).join(' + ') + (result.modifier > 0 ? ' <a style="text-decoration: underline">+' + result.modifier + '</a>' : result.modifier < 0 ? ' <a style="text-decoration: underline">' + result.modifier + '</a>' : '') + '] = <strong>' + result.value + '</strong> '
})
document.getElementById('results').showPopover()
setTimeout(() => {
diceBox.clearDice();
diceBox.clear();
document.getElementById('results').hidePopover()
}, {clearAfter} * 1000)
}

View File

@@ -23,7 +23,7 @@
<div class="w3-panel w3-theme-l4 w3-card w3-display-container"
style="padding: 25px; text-align: center; margin-bottom: auto;">
<label for="theme">Theme </label>
<select name="theme" id="theme" style="margin: 0 25px"></select>
<select name="theme" id="theme" style="margin: 25px"></select>
<div style="display: flex; flex-direction: row; justify-content: space-between; align-items: baseline">
<div style="flex-grow: 1; padding: 0 10px">

View File

@@ -29,11 +29,6 @@
<meta property="twitter:domain" content="{http:request.authority}">
</head>
<body class="w3-theme-l1">
<script>
if (!localStorage.getItem("userId")) {
localStorage.setItem("userId", self.crypto.randomUUID());
}
</script>
<div class="w3-container w3-content"
style="height: 95vh; display: flex; flex-direction: column; justify-content: space-between; padding: 25px">
<h1 style="text-align: center"><i class="fa-solid fa-dice-d20"></i> Dice-Tower <i class="fa-solid fa-dice-d20"></i>
@@ -78,7 +73,6 @@
<button style="border: transparent; border-radius: 100%; font-size: large; font-weight: bold; height: 50px; width: 50px"
onclick="addDice()">+
</button>
<button style="font-size: large; font-weight: bold;" onclick="rollEasy('d2')">D2</button>
<button style="font-size: large; font-weight: bold;" onclick="rollEasy('d4')">D4</button>
<button style="font-size: large; font-weight: bold;" onclick="rollEasy('d6')">D6</button>
<button style="font-size: large; font-weight: bold;" onclick="rollEasy('d8')">D8</button>
@@ -139,10 +133,10 @@
</div>
<div style="display: flex; flex-direction: row; justify-content: space-between; align-items: baseline">
<div style="flex-grow: 1; padding: 0 10px">
<color-picker id="faceColor" name="Face" value="#8d8981"></color-picker>
<color-picker id="faceColor" name="Face"></color-picker>
</div>
<div style="flex-grow: 1; padding: 10px 0">
<color-picker id="numberColor" name="Numbers" value="black"></color-picker>
<color-picker id="numberColor" name="Numbers"></color-picker>
</div>
</div>
<div id="dice-box">