diff --git a/packages/frontend/assets/room/rooms/default/300.glb b/packages/frontend/assets/room/rooms/default/300.glb
index 4c3c3598fc..4bcd920323 100644
Binary files a/packages/frontend/assets/room/rooms/default/300.glb and b/packages/frontend/assets/room/rooms/default/300.glb differ
diff --git a/packages/frontend/assets/room/rooms/default/default.blend b/packages/frontend/assets/room/rooms/default/default.blend
index 7aee1bebf6..3183a329d9 100644
Binary files a/packages/frontend/assets/room/rooms/default/default.blend and b/packages/frontend/assets/room/rooms/default/default.blend differ
diff --git a/packages/frontend/assets/room/rooms/default/textures/flooring_disp.png b/packages/frontend/assets/room/rooms/default/textures/flooring_disp.png
deleted file mode 100644
index a4951a5f5a..0000000000
Binary files a/packages/frontend/assets/room/rooms/default/textures/flooring_disp.png and /dev/null differ
diff --git a/packages/frontend/assets/room/rooms/default/textures/flooring_gloss.png b/packages/frontend/assets/room/rooms/default/textures/flooring_gloss.png
deleted file mode 100644
index 19a9fc8714..0000000000
Binary files a/packages/frontend/assets/room/rooms/default/textures/flooring_gloss.png and /dev/null differ
diff --git a/packages/frontend/assets/room/rooms/default/textures/flooring_normal.png b/packages/frontend/assets/room/rooms/default/textures/flooring_normal.png
deleted file mode 100644
index 29c5974d34..0000000000
Binary files a/packages/frontend/assets/room/rooms/default/textures/flooring_normal.png and /dev/null differ
diff --git a/packages/frontend/assets/room/textures/ceiling-concrete.png b/packages/frontend/assets/room/textures/ceiling-concrete.png
new file mode 100644
index 0000000000..be1d537733
Binary files /dev/null and b/packages/frontend/assets/room/textures/ceiling-concrete.png differ
diff --git a/packages/frontend/assets/room/textures/flooring-concrete.png b/packages/frontend/assets/room/textures/flooring-concrete.png
new file mode 100644
index 0000000000..be1d537733
Binary files /dev/null and b/packages/frontend/assets/room/textures/flooring-concrete.png differ
diff --git a/packages/frontend/assets/room/rooms/default/textures/flooring_diffuse.png b/packages/frontend/assets/room/textures/flooring-wood.png
similarity index 100%
rename from packages/frontend/assets/room/rooms/default/textures/flooring_diffuse.png
rename to packages/frontend/assets/room/textures/flooring-wood.png
diff --git a/packages/frontend/assets/room/wall-textures/concrete.png b/packages/frontend/assets/room/textures/wall-concrete.png
similarity index 100%
rename from packages/frontend/assets/room/wall-textures/concrete.png
rename to packages/frontend/assets/room/textures/wall-concrete.png
diff --git a/packages/frontend/src/pages/room.default-heya-options.vue b/packages/frontend/src/pages/room.default-heya-options.vue
index ad662a0ead..a6d01ad26b 100644
--- a/packages/frontend/src/pages/room.default-heya-options.vue
+++ b/packages/frontend/src/pages/room.default-heya-options.vue
@@ -10,18 +10,22 @@ SPDX-License-Identifier: AGPL-3.0-only
Wall N
{ update({ walls: { ...options.walls, n: v } }); }">
+
Wall S
{ update({ walls: { ...options.walls, s: v } }); }">
+
Wall W
{ update({ walls: { ...options.walls, w: v } }); }">
+
Wall E
{ update({ walls: { ...options.walls, e: v } }); }">
+
Ceiling
color
+
+
+ Flooring
+ { update({ flooring: { ...options.flooring, material: v } }); }"
+ >
+ material
+
+ { const c = getRgb(v); if (c != null) update({ flooring: { ...options.flooring, color: c } }); }">
+ color
+
+
diff --git a/packages/frontend/src/world/room/heya.ts b/packages/frontend/src/world/room/heya.ts
index d6f306fbaf..fc05552716 100644
--- a/packages/frontend/src/world/room/heya.ts
+++ b/packages/frontend/src/world/room/heya.ts
@@ -80,6 +80,7 @@ export class SimpleHeyaManager extends HeyaManager {
e: BABYLON.PBRMaterial;
} | null = null;
private ceilingMaterial: BABYLON.PBRMaterial | null = null;
+ private floorMaterial: BABYLON.PBRMaterial | null = null;
constructor(onMeshUpdatedCallback?: ((meshes: BABYLON.AbstractMesh[]) => void) | null) {
super(onMeshUpdatedCallback);
@@ -146,6 +147,7 @@ export class SimpleHeyaManager extends HeyaManager {
}
this.ceilingMaterial = findMaterial(this.meshes[0], '__X_CEILING__');
+ this.floorMaterial = findMaterial(this.meshes[0], '__X_FLOOR__');
await this.applyOptions(options);
}
@@ -171,8 +173,8 @@ export class SimpleHeyaManager extends HeyaManager {
targetMaterial.unfreeze();
targetMaterial.albedoColor = new BABYLON.Color3(...wallOptions.color);
- const texPath = wallOptions.material === 'wood' ? '/client-assets/room/wall-textures/wood.png'
- : wallOptions.material === 'concrete' ? '/client-assets/room/wall-textures/concrete.png'
+ const texPath = wallOptions.material === 'wood' ? '/client-assets/room/textures/wall-wood.png'
+ : wallOptions.material === 'concrete' ? '/client-assets/room/textures/wall-concrete.png'
: null;
if (texPath != null) {
@@ -191,8 +193,8 @@ export class SimpleHeyaManager extends HeyaManager {
targetMaterial.unfreeze();
targetMaterial.albedoColor = new BABYLON.Color3(...wallOptions.hariColor);
- const texPath = wallOptions.hariMaterial === 'wood' ? '/client-assets/room/wall-textures/wood.png'
- : wallOptions.hariMaterial === 'concrete' ? '/client-assets/room/wall-textures/concrete.png'
+ const texPath = wallOptions.hariMaterial === 'wood' ? '/client-assets/room/textures/wall-wood.png'
+ : wallOptions.hariMaterial === 'concrete' ? '/client-assets/room/textures/wall-concrete.png'
: null;
if (texPath != null) {
@@ -210,8 +212,8 @@ export class SimpleHeyaManager extends HeyaManager {
this.ceilingMaterial.unfreeze();
this.ceilingMaterial.albedoColor = new BABYLON.Color3(...options.ceiling.color);
- const texPath = options.ceiling.material === 'wood' ? '/client-assets/room/wall-textures/wood.png'
- : options.ceiling.material === 'concrete' ? '/client-assets/room/wall-textures/concrete.png'
+ const texPath = options.ceiling.material === 'wood' ? '/client-assets/room/textures/ceiling-wood.png'
+ : options.ceiling.material === 'concrete' ? '/client-assets/room/textures/ceiling-concrete.png'
: null;
if (texPath != null) {
@@ -224,6 +226,24 @@ export class SimpleHeyaManager extends HeyaManager {
this.ceilingMaterial.freeze();
}
+ {
+ this.floorMaterial.unfreeze();
+ this.floorMaterial.albedoColor = new BABYLON.Color3(...options.flooring.color);
+
+ const texPath = options.flooring.material === 'wood' ? '/client-assets/room/textures/flooring-wood.png'
+ : options.flooring.material === 'concrete' ? '/client-assets/room/textures/flooring-concrete.png'
+ : null;
+
+ if (texPath != null) {
+ const tex = new BABYLON.Texture(texPath, this.meshes[0].getScene(), false, false);
+ this.floorMaterial.albedoTexture = tex;
+ } else {
+ this.floorMaterial.albedoTexture = null;
+ }
+
+ this.floorMaterial.freeze();
+ }
+
this.onMeshUpdatedCallback?.(this.meshes);
}