From 6a2498ef045dd29c058ee118fd44cdfbfbda2134 Mon Sep 17 00:00:00 2001 From: Dejvino Date: Thu, 20 Nov 2025 10:04:00 +0100 Subject: [PATCH] Feature: Cauldron handles --- magic-mirror/src/scene/cauldron.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/magic-mirror/src/scene/cauldron.js b/magic-mirror/src/scene/cauldron.js index 702a922..8776510 100644 --- a/magic-mirror/src/scene/cauldron.js +++ b/magic-mirror/src/scene/cauldron.js @@ -21,6 +21,28 @@ export function createCauldron(x, y, z) { cauldronMesh.rotation.z = Math.PI; cauldronGroup.add(cauldronMesh); + // 1.5. Cauldron Handles + const handleRadius = 0.08; + const handleTube = 0.01; + const handleMaterial = new THREE.MeshPhongMaterial({ color: 0x333333, shininess: 50 }); + + const handleGeo = new THREE.TorusGeometry(handleRadius, handleTube, 8, 32); + + const handleShiftX = 0.07; + const handleShiftY = 0.12; + + const leftHandle = new THREE.Mesh(handleGeo, handleMaterial); + leftHandle.rotation.y = Math.PI / 2; + leftHandle.position.set(-cauldronRadius - handleRadius * 0.5 + handleShiftX, cauldronHeight * 0.5 - handleShiftY, 0); + leftHandle.castShadow = true; + cauldronGroup.add(leftHandle); + + const rightHandle = new THREE.Mesh(handleGeo, handleMaterial); + rightHandle.rotation.y = -Math.PI / 2; + rightHandle.position.set(cauldronRadius + handleRadius * 0.5 - handleShiftX, cauldronHeight * 0.5 - handleShiftY, 0); + rightHandle.castShadow = true; + cauldronGroup.add(rightHandle); + // 2. Glowing Liquid Surface const liquidColor = 0x00ff00; // Bright green const liquidMaterial = new THREE.MeshPhongMaterial({