diff --git a/packages/frontend/assets/room/objects/cactus-s/cactus-s.blend b/packages/frontend/assets/room/objects/cactus-s/cactus-s.blend index 2dc6e90a3c..2a5735fd46 100644 Binary files a/packages/frontend/assets/room/objects/cactus-s/cactus-s.blend and b/packages/frontend/assets/room/objects/cactus-s/cactus-s.blend differ diff --git a/packages/frontend/assets/room/objects/cactus-s/cactus-s.glb b/packages/frontend/assets/room/objects/cactus-s/cactus-s.glb index 3abb9b97c3..8e0e1fcd74 100644 Binary files a/packages/frontend/assets/room/objects/cactus-s/cactus-s.glb and b/packages/frontend/assets/room/objects/cactus-s/cactus-s.glb differ diff --git a/packages/frontend/assets/room/objects/cactus-s/textures/soil.png b/packages/frontend/assets/room/objects/cactus-s/textures/soil.png new file mode 100644 index 0000000000..e79ccd240e Binary files /dev/null and b/packages/frontend/assets/room/objects/cactus-s/textures/soil.png differ diff --git a/packages/frontend/src/utility/room/objects/cactusS.ts b/packages/frontend/src/utility/room/objects/cactusS.ts index f46173f192..01cb009639 100644 --- a/packages/frontend/src/utility/room/objects/cactusS.ts +++ b/packages/frontend/src/utility/room/objects/cactusS.ts @@ -3,18 +3,39 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +import * as BABYLON from '@babylonjs/core'; import { defineObject } from '../engine.js'; export const cactusS = defineObject({ id: 'cactusS', name: 'Cactus S', options: { - schema: {}, - default: {}, + schema: { + potColor: { + type: 'color', + label: 'Pot color', + }, + }, + default: { + potColor: [0.45, 0.45, 0.45], + }, }, placement: 'top', - createInstance: () => { + createInstance: ({ options, root }) => { + const potMesh = root.getChildMeshes().find(m => m.name.includes('__X_POT__')) as BABYLON.Mesh; + const potMaterial = potMesh.material as BABYLON.PBRMaterial; + + const applyPotColor = () => { + const [r, g, b] = options.potColor; + potMaterial.albedoColor = new BABYLON.Color3(r, g, b); + }; + + applyPotColor(); + return { + onOptionsUpdated: ([k, v]) => { + applyPotColor(); + }, interactions: {}, }; },