Settings refactor / add birb

This commit is contained in:
2026-05-13 12:30:45 -05:00
parent e728ddac2c
commit 82f47093a7
13 changed files with 192 additions and 74 deletions

View File

@@ -2,7 +2,7 @@
<!-- Based on https://codepen.io/tommyho/pen/JjgoZLK -->
{# This include replaces the page background with a crazy rainbow animated shader #}
<canvas id="shaderCanvas"></canvas>
<canvas class="hidden" id="shaderCanvas"></canvas>
<script src="/js/three.min.js"></script>
<script>
let scene, camera, renderer, uniforms, material, mesh;
@@ -171,52 +171,31 @@
uniforms.time.value = timestamp * 0.001;
renderer.render(scene, camera);
}
</script>
<script>
const wooCanvas = document.getElementById("shaderCanvas");
const wooToggle = document.getElementById("wooToggle");
const wooPreference = localStorage.getItem("wooMode");
let forcedWoo = false;
// Initial preference check on page load
if ({% if metadata.wooModeOnByDefault == false %}!wooPreference || {% endif %}wooPreference == 0) {
forcedWoo ? null : wooCanvas.classList.add("hidden");
wooToggle.checked = false;
} else {
// Function for when wooMode is toggled on
const deployWoo = () => {
let wooAudio = new Audio("/audio/30995__unclesigmund__woo-2.mp3");
wooAudio.volume = 0.4;
wooAudio.play();
wooCanvas.classList.remove("hidden");
wooToggle.checked = true;
initWoo();
animate(0);
};
}
// Handle setting toggle
wooToggle.addEventListener('change', function() {
if (this.checked) {
localStorage.setItem("wooMode", 1);
let wooAudio = new Audio("/audio/30995__unclesigmund__woo-2.mp3");
wooAudio.volume = 0.4;
wooAudio.play();
wooCanvas.classList.remove("hidden");
initWoo();
animate(0);
} else {
localStorage.setItem("wooMode", 0);
forcedWoo ? null : wooCanvas.classList.add("hidden");
};
});
{% if forcedWoo %}
// Handle forced woo
forcedWoo = true;
console.log("Forcing woo mode: woo!");
wooCanvas.classList.remove("hidden");
initWoo();
animate(0);
{% endif %}
// Function for when wooMode is enabled by default
const wooSensibleDefault = () => {
wooCanvas.classList.remove("hidden");
initWoo();
animate(0);
}
// Function for when wooMode is toggled off
const withdrawWoo = () => {
wooCanvas.classList.add("hidden");
}
</script>
<!-- /weather -->
<!-- /Woo Mode -->