diff --git a/packages/frontend/assets/room/objects/ceiling-fan-light/ceiling-fan-light.blend b/packages/frontend/assets/room/objects/ceiling-fan-light/ceiling-fan-light.blend index 7e5837c3b6..ee8342bfd9 100644 Binary files a/packages/frontend/assets/room/objects/ceiling-fan-light/ceiling-fan-light.blend and b/packages/frontend/assets/room/objects/ceiling-fan-light/ceiling-fan-light.blend differ diff --git a/packages/frontend/assets/room/objects/ceiling-fan-light/ceiling-fan-light.glb b/packages/frontend/assets/room/objects/ceiling-fan-light/ceiling-fan-light.glb index b7aee8fe8f..bf44715b39 100644 Binary files a/packages/frontend/assets/room/objects/ceiling-fan-light/ceiling-fan-light.glb and b/packages/frontend/assets/room/objects/ceiling-fan-light/ceiling-fan-light.glb differ diff --git a/packages/frontend/assets/room/objects/handheld-game-console/handheld-game-console.blend b/packages/frontend/assets/room/objects/handheld-game-console/handheld-game-console.blend index fed9c9bf29..5ed9614a4c 100644 Binary files a/packages/frontend/assets/room/objects/handheld-game-console/handheld-game-console.blend and b/packages/frontend/assets/room/objects/handheld-game-console/handheld-game-console.blend differ diff --git a/packages/frontend/assets/room/objects/handheld-game-console/handheld-game-console.glb b/packages/frontend/assets/room/objects/handheld-game-console/handheld-game-console.glb index 1ffcaa06f5..8b9129d152 100644 Binary files a/packages/frontend/assets/room/objects/handheld-game-console/handheld-game-console.glb and b/packages/frontend/assets/room/objects/handheld-game-console/handheld-game-console.glb differ diff --git a/packages/frontend/src/world/room/objects/ceilingFanLight.ts b/packages/frontend/src/world/room/objects/ceilingFanLight.ts index 032fdfae30..266e4ca995 100644 --- a/packages/frontend/src/world/room/objects/ceilingFanLight.ts +++ b/packages/frontend/src/world/room/objects/ceilingFanLight.ts @@ -10,14 +10,30 @@ export const ceilingFanLight = defineObject({ id: 'ceilingFanLight', name: 'Ceiling Fan Light', options: { - schema: {}, - default: {}, + schema: { + shadeColor: { + type: 'color', + label: 'Shade color', + }, + }, + default: { + shadeColor: [0.8, 0.19, 0], + }, }, placement: 'ceiling', hasCollisions: false, receiveShadows: false, castShadows: false, - createInstance: ({ room, scene, model }) => { + createInstance: ({ options, room, scene, model }) => { + const shadeMaterial = model.findMaterial('__X_SHADE__'); + + const applyShadeColor = () => { + const [r, g, b] = options.shadeColor; + shadeMaterial.albedoColor = new BABYLON.Color3(r, g, b); + }; + + applyShadeColor(); + const rotor = model.findMesh('Rotor'); model.bakeExcludeMeshes = [rotor, ...rotor.getChildMeshes()]; @@ -37,6 +53,11 @@ export const ceilingFanLight = defineObject({ }); scene.beginAnimation(rotor, 0, 100, true); }, + onOptionsUpdated: ([k, v]) => { + switch (k) { + case 'shadeColor': applyShadeColor(); break; + } + }, interactions: {}, dispose: () => { if (animationObserver != null) {