diff --git a/packages/frontend/assets/room/objects/pachira/pachira.blend b/packages/frontend/assets/room/objects/pachira/pachira.blend index ea20b803d9..54c3beb13a 100644 Binary files a/packages/frontend/assets/room/objects/pachira/pachira.blend and b/packages/frontend/assets/room/objects/pachira/pachira.blend differ diff --git a/packages/frontend/assets/room/objects/pachira/pachira.glb b/packages/frontend/assets/room/objects/pachira/pachira.glb index 56e1fcf8db..87f277da66 100644 Binary files a/packages/frontend/assets/room/objects/pachira/pachira.glb and b/packages/frontend/assets/room/objects/pachira/pachira.glb differ diff --git a/packages/frontend/src/world/room/objects/pachira.ts b/packages/frontend/src/world/room/objects/pachira.ts index be0c1a91eb..9f382db0d0 100644 --- a/packages/frontend/src/world/room/objects/pachira.ts +++ b/packages/frontend/src/world/room/objects/pachira.ts @@ -3,21 +3,43 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +import * as BABYLON from '@babylonjs/core'; import { defineObject } from '../object.js'; export const pachira = defineObject({ id: 'pachira', name: 'Pachira', options: { - schema: {}, - default: {}, + schema: { + potColor: { + type: 'color', + label: 'potColor', + }, + }, + default: { + potColor: [0.8, 0.8, 0.8], + }, }, placement: 'top', - hasCollisions: true, + hasCollisions: false, hasTexture: true, canPreMeshesMerging: true, - createInstance: () => { + createInstance: ({ options, model }) => { + const potMaterial = model.findMaterial('__X_POT__'); + + const applyPotColor = () => { + const [r, g, b] = options.potColor; + potMaterial.albedoColor = new BABYLON.Color3(r, g, b); + }; + + applyPotColor(); + return { + onOptionsUpdated: ([k, v]) => { + switch (k) { + case 'potColor': applyPotColor(); break; + } + }, interactions: {}, }; },