diff --git a/packages/frontend/assets/room/objects/wall-clock/wall-clock.blend b/packages/frontend/assets/room/objects/wall-clock/wall-clock.blend index 22b7b5a666..e9bfa353ac 100644 Binary files a/packages/frontend/assets/room/objects/wall-clock/wall-clock.blend and b/packages/frontend/assets/room/objects/wall-clock/wall-clock.blend differ diff --git a/packages/frontend/assets/room/objects/wall-clock/wall-clock.glb b/packages/frontend/assets/room/objects/wall-clock/wall-clock.glb index 24b3771088..86cde47778 100644 Binary files a/packages/frontend/assets/room/objects/wall-clock/wall-clock.glb and b/packages/frontend/assets/room/objects/wall-clock/wall-clock.glb differ diff --git a/packages/frontend/src/utility/room/objects/wallClock.ts b/packages/frontend/src/utility/room/objects/wallClock.ts index 0f8a7bbd18..f0f0473127 100644 --- a/packages/frontend/src/utility/room/objects/wallClock.ts +++ b/packages/frontend/src/utility/room/objects/wallClock.ts @@ -10,11 +10,27 @@ export const wallClock = defineObject({ id: 'wallClock', name: 'Wall Clock', options: { - schema: {}, - default: {}, + schema: { + frameColor: { + type: 'color', + label: 'Frame color', + }, + }, + default: { + frameColor: [0.71, 0.58, 0.39], + }, }, placement: 'side', - createInstance: ({ room, root }) => { + createInstance: ({ room, root, options, findMaterial }) => { + const frameMaterial = findMaterial('__X_FRAME__'); + + const applyFrameColor = () => { + const [r, g, b] = options.frameColor; + frameMaterial.albedoColor = new BABYLON.Color3(r, g, b); + }; + + applyFrameColor(); + return { onInited: () => { const hourHand = root.getChildMeshes().find(m => m.name === 'HandH') as BABYLON.Mesh; @@ -29,6 +45,9 @@ export const wallClock = defineObject({ minuteHand.rotation = new BABYLON.Vector3(0, 0, mAngle); }, 1000)); }, + onOptionsUpdated: ([k, v]) => { + applyFrameColor(); + }, interactions: {}, }; },