diff --git a/packages/frontend/src/utility/room/objects/allInOnePc.ts b/packages/frontend/src/utility/room/objects/allInOnePc.ts index 3927d959f4..084633d424 100644 --- a/packages/frontend/src/utility/room/objects/allInOnePc.ts +++ b/packages/frontend/src/utility/room/objects/allInOnePc.ts @@ -4,7 +4,7 @@ */ import * as BABYLON from '@babylonjs/core'; -import { defineObject } from '../engine.js'; +import { defineObject, WORLD_SCALE } from '../engine.js'; import { createPlaneUvMapper } from '../utility.js'; export const allInOnePc = defineObject({ @@ -46,7 +46,13 @@ export const allInOnePc = defineObject({ }, }, placement: 'top', - createInstance: async ({ scene, options, model }) => { + createInstance: async ({ room, scene, options, model }) => { + const light = new BABYLON.SpotLight('', new BABYLON.Vector3(0/*cm*/, 30/*cm*/ / WORLD_SCALE, 0), new BABYLON.Vector3(0, 0, 1), Math.PI / 1, 2, scene, room?.lightContainer != null); + light.parent = model.root; + light.diffuse = new BABYLON.Color3(1.0, 1.0, 1.0); + light.range = 999/*cm*/; + if (room?.lightContainer != null) room.lightContainer.addLight(light); + const screenMesh = model.findMesh('__X_SCREEN__'); const bodyMaterial = model.findMaterial('__X_BODY__'); @@ -96,6 +102,7 @@ export const allInOnePc = defineObject({ const applyScreenBrightness = () => { const b = options.screenBrightness; screenMaterial.emissiveColor = new BABYLON.Color3(b, b, b); + light.intensity = 50000 * b; }; applyScreenBrightness(); diff --git a/packages/frontend/src/utility/room/objects/beamLamp.ts b/packages/frontend/src/utility/room/objects/beamLamp.ts index 172cb37388..a464c9aa41 100644 --- a/packages/frontend/src/utility/room/objects/beamLamp.ts +++ b/packages/frontend/src/utility/room/objects/beamLamp.ts @@ -21,7 +21,7 @@ export const beamLamp = defineObject({ light.parent = root; light.diffuse = new BABYLON.Color3(1.0, 0.5, 0.2); light.intensity = 300; - light.range = 100/*cm*/; + light.range = 999/*cm*/; if (room?.lightContainer != null) room.lightContainer.addLight(light); }, interactions: {}, diff --git a/packages/frontend/src/utility/room/objects/laptopPc.ts b/packages/frontend/src/utility/room/objects/laptopPc.ts index 77a8720a1b..68cfadf6bc 100644 --- a/packages/frontend/src/utility/room/objects/laptopPc.ts +++ b/packages/frontend/src/utility/room/objects/laptopPc.ts @@ -4,7 +4,7 @@ */ import * as BABYLON from '@babylonjs/core'; -import { defineObject } from '../engine.js'; +import { defineObject, WORLD_SCALE } from '../engine.js'; import { createPlaneUvMapper } from '../utility.js'; export const laptopPc = defineObject({ @@ -54,10 +54,16 @@ export const laptopPc = defineObject({ }, }, placement: 'top', - createInstance: async ({ scene, options, model }) => { + createInstance: async ({ room, scene, options, model }) => { const screenMesh = model.findMesh('__X_SCREEN__'); const hutaNode = model.findTransformNode('__X_HUTA__'); + const light = new BABYLON.SpotLight('', new BABYLON.Vector3(0/*cm*/, 10/*cm*/ / WORLD_SCALE, 0), new BABYLON.Vector3(0, 0, 1), Math.PI / 1, 2, scene, room?.lightContainer != null); + light.parent = hutaNode; + light.diffuse = new BABYLON.Color3(1.0, 1.0, 1.0); + light.range = 999/*cm*/; + if (room?.lightContainer != null) room.lightContainer.addLight(light); + const bodyMaterial = model.findMaterial('__X_BODY__'); const bezelMaterial = model.findMaterial('__X_BEZEL__'); const screenMaterial = model.findMaterial('__X_SCREEN__'); @@ -105,6 +111,7 @@ export const laptopPc = defineObject({ const applyScreenBrightness = () => { const b = options.screenBrightness; screenMaterial.emissiveColor = new BABYLON.Color3(b, b, b); + light.intensity = 20000 * b; }; applyScreenBrightness(); diff --git a/packages/frontend/src/utility/room/objects/lavaLamp.ts b/packages/frontend/src/utility/room/objects/lavaLamp.ts index 72cfd5857a..2c8db37616 100644 --- a/packages/frontend/src/utility/room/objects/lavaLamp.ts +++ b/packages/frontend/src/utility/room/objects/lavaLamp.ts @@ -20,7 +20,7 @@ export const lavaLamp = defineObject({ light.parent = root; light.diffuse = new BABYLON.Color3(1.0, 0.5, 0.2); light.intensity = 300; - light.range = 100/*cm*/; + light.range = 999/*cm*/; if (room?.lightContainer != null) room.lightContainer.addLight(light); const sphere = BABYLON.MeshBuilder.CreateSphere('lavaLampLightSphere', { diameter: 4/*cm*/ }, scene); diff --git a/packages/frontend/src/utility/room/objects/woodRingFloorLamp.ts b/packages/frontend/src/utility/room/objects/woodRingFloorLamp.ts index b9761ff13f..f7f87f9d15 100644 --- a/packages/frontend/src/utility/room/objects/woodRingFloorLamp.ts +++ b/packages/frontend/src/utility/room/objects/woodRingFloorLamp.ts @@ -51,7 +51,7 @@ export const woodRingFloorLamp = defineObject({ light.parent = lamp; light.diffuse = new BABYLON.Color3(1.0, 0.5, 0.2); light.intensity = 5000; - light.range = 150/*cm*/; + light.range = 999/*cm*/; if (room?.lightContainer != null) room.lightContainer.addLight(light); }