summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-01-07 17:06:47 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-01-07 17:06:47 +0900
commitfaef125b74cd5ae32c69f2d997b5fc9c179ca475 (patch)
tree930889532668ca402f4b986ae45a2892148b52b8 /packages
parentremove unused components (diff)
downloadsharkey-faef125b74cd5ae32c69f2d997b5fc9c179ca475.tar.gz
sharkey-faef125b74cd5ae32c69f2d997b5fc9c179ca475.tar.bz2
sharkey-faef125b74cd5ae32c69f2d997b5fc9c179ca475.zip
bye room
Diffstat (limited to 'packages')
-rw-r--r--packages/backend/src/models/entities/user-profile.ts1
-rw-r--r--packages/backend/src/server/api/endpoints/room/show.ts160
-rw-r--r--packages/backend/src/server/api/endpoints/room/update.ts52
-rw-r--r--packages/client/assets/room/furnitures/banknote/banknote.blendbin716076 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/banknote/banknote.glbbin48988 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/banknote/tex.pngbin43794 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/bed/bed.blendbin573584 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/bed/bed.glbbin8944 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/bin/bin.blendbin695512 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/bin/bin.glbbin22140 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/book/book.blendbin511864 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/book/book.glbbin4304 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/book2/barcode.pngbin3505 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/book2/book2.blendbin521456 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/book2/book2.glbbin82920 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/book2/texture.afdesignbin875434 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/book2/texture.pngbin61019 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/book2/uv.pngbin8611 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cardboard-box/cardboard-box.blendbin515036 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cardboard-box/cardboard-box.glbbin4568 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blendbin545788 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glbbin24084 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cardboard-box2/texture.pngbin16879 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cardboard-box2/uv.pngbin4630 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blendbin547868 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glbbin23668 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cardboard-box3/texture.pngbin16204 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cardboard-box3/texture.xcfbin242066 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cardboard-box3/uv.pngbin3598 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blendbin481784 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glbbin4956 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/chair/chair.blendbin500696 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/chair/chair.glbbin4252 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/chair2/chair2.blendbin523036 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/chair2/chair2.glbbin6140 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/color-box/color-box.blendbin631168 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/color-box/color-box.glbbin7492 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/corkboard/corkboard.blendbin565404 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/corkboard/corkboard.glbbin7180 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cube/cube.blendbin646184 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cube/cube.glbbin188392 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cup-noodle/cup-noodle.blendbin855164 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cup-noodle/cup-noodle.glbbin318332 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/cup-noodle/noodle.pngbin297154 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/desk/desk.blendbin541980 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/desk/desk.glbbin10184 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/doll-ai/doll-ai.blendbin1155028 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/doll-ai/doll-ai.glbbin112160 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/doll-ai/doll_ai_tex.pngbin10712 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/energy-drink/energy-drink.blendbin724764 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/energy-drink/energy-drink.glbbin145836 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/energy-drink/texture.afdesignbin824566 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/energy-drink/texture.pngbin127510 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/energy-drink/uv.pngbin22142 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/eraser/cover.pngbin8336 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/eraser/cover.psdbin219123 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/eraser/eraser-uv.pngbin11164 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/eraser/eraser.blendbin527996 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/eraser/eraser.glbbin15748 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.pngbin4470 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/facial-tissue/facial-tissue.blendbin533220 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/facial-tissue/facial-tissue.glbbin8332 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/facial-tissue/facial-tissue.pngbin688 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/facial-tissue/facial-tissue.psdbin111968 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/fan/fan.blendbin772732 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/fan/fan.glbbin51612 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/holo-display/holo-display.blendbin788456 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/holo-display/holo-display.glbbin148928 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/holo-display/ray-uv.pngbin20901 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/holo-display/ray.pngbin104293 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/keyboard/keyboard.blendbin1005588 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/keyboard/keyboard.glbbin132360 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/low-table/low-table.blendbin497336 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/low-table/low-table.glbbin2364 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/mat/mat.blendbin489304 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/mat/mat.glbbin1700 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/milk/milk-uv.pngbin16577 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/milk/milk.blendbin539836 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/milk/milk.glbbin8456 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/milk/milk.pngbin658 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/milk/milk.psdbin125415 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/monitor/monitor.blendbin586820 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/monitor/monitor.glbbin35300 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/monitor/monitor.psdbin3692204 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/monitor/screen-uv.pngbin1495 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/monitor/screen.jpgbin24842 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/moon/moon.blendbin725536 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/moon/moon.glbbin122112 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/moon/moon.jpgbin87151 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/mousepad/mousepad.blendbin495008 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/mousepad/mousepad.glbbin4360 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/pc/motherboard-uv.pngbin2920 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/pc/motherboard-uv.psdbin7131432 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/pc/motherboard.jpgbin64600 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/pc/pc.blendbin818152 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/pc/pc.glbbin103620 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/pencil/pencil.blendbin683032 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/pencil/pencil.glbbin7788 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/photoframe/photo-uv.pngbin2639 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/photoframe/photo.jpgbin30500 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/photoframe/photoframe.blendbin551416 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/photoframe/photoframe.glbbin37612 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/piano/piano.blendbin713228 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/piano/piano.glbbin73320 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/pinguin/pinguin.blendbin778976 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/pinguin/pinguin.glbbin60172 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/plant/plant-soil-uv.pngbin4509 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/plant/plant-soil.pngbin10852 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/plant/plant-soil.psdbin390188 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/plant/plant.blendbin604488 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/plant/plant.glbbin27664 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/plant2/plant2.blendbin1060816 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/plant2/plant2.glbbin133212 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/plant2/soil.pngbin10852 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/poster-h/poster-h.blendbin667604 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/poster-h/poster-h.glbbin1280 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/poster-h/uv.pngbin3786 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/poster-v/poster-v.blendbin650740 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/poster-v/poster-v.glbbin1280 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/poster-v/uv.pngbin3795 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/pudding/pudding.blendbin694784 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/pudding/pudding.glbbin10612 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/rubik-cube/rubik-cube.blendbin745960 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/rubik-cube/rubik-cube.glbbin67688 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/server/rack-uv.pngbin6705 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/server/rack.pngbin7046 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/server/server.blendbin684372 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/server/server.glbbin149480 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/server/server.pngbin116866 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/server/uv.pngbin4012 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/sofa/sofa.blendbin711488 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/sofa/sofa.glbbin37656 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/spiral/spiral.blendbin1241416 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/spiral/spiral.glbbin251788 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/tv/screen-uv.pngbin3792 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/tv/tv.blendbin587640 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/tv/tv.glbbin8580 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/wall-clock/wall-clock.blendbin574128 -> 0 bytes
-rw-r--r--packages/client/assets/room/furnitures/wall-clock/wall-clock.glbbin47848 -> 0 bytes
-rw-r--r--packages/client/assets/room/rooms/default/default.blendbin618364 -> 0 bytes
-rw-r--r--packages/client/assets/room/rooms/default/default.glbbin12280 -> 0 bytes
-rw-r--r--packages/client/assets/room/rooms/washitsu/husuma-uv.pngbin4037 -> 0 bytes
-rw-r--r--packages/client/assets/room/rooms/washitsu/husuma.pngbin2539 -> 0 bytes
-rw-r--r--packages/client/assets/room/rooms/washitsu/tatami-single1600.pngbin1173343 -> 0 bytes
-rw-r--r--packages/client/assets/room/rooms/washitsu/tatami-uv.pngbin4075 -> 0 bytes
-rw-r--r--packages/client/assets/room/rooms/washitsu/tatami.afdesignbin2501804 -> 0 bytes
-rw-r--r--packages/client/assets/room/rooms/washitsu/tatami.pngbin313722 -> 0 bytes
-rw-r--r--packages/client/assets/room/rooms/washitsu/washitsu.blendbin664000 -> 0 bytes
-rw-r--r--packages/client/assets/room/rooms/washitsu/washitsu.glbbin415180 -> 0 bytes
-rw-r--r--packages/client/src/menu.ts6
-rw-r--r--packages/client/src/pages/room/preview.vue107
-rw-r--r--packages/client/src/pages/room/room.vue279
-rw-r--r--packages/client/src/router.ts1
-rw-r--r--packages/client/src/scripts/room/furniture.ts21
-rw-r--r--packages/client/src/scripts/room/furnitures.json5407
-rw-r--r--packages/client/src/scripts/room/room.ts775
-rw-r--r--packages/client/src/store.ts2
157 files changed, 1 insertions, 1810 deletions
diff --git a/packages/backend/src/models/entities/user-profile.ts b/packages/backend/src/models/entities/user-profile.ts
index eb8cdadd19..d8317de8d3 100644
--- a/packages/backend/src/models/entities/user-profile.ts
+++ b/packages/backend/src/models/entities/user-profile.ts
@@ -124,6 +124,7 @@ export class UserProfile {
})
public clientData: Record<string, any>;
+ // TODO: そのうち消す
@Column('jsonb', {
default: {},
comment: 'The room data of the User.',
diff --git a/packages/backend/src/server/api/endpoints/room/show.ts b/packages/backend/src/server/api/endpoints/room/show.ts
deleted file mode 100644
index a7193372ff..0000000000
--- a/packages/backend/src/server/api/endpoints/room/show.ts
+++ /dev/null
@@ -1,160 +0,0 @@
-import $ from 'cafy';
-import define from '../../define';
-import { ApiError } from '../../error';
-import { Users, UserProfiles } from '@/models/index';
-import { ID } from '@/misc/cafy-id';
-import { toPunyNullable } from '@/misc/convert-host';
-
-export const meta = {
- tags: ['room'],
-
- requireCredential: false as const,
-
- params: {
- userId: {
- validator: $.optional.type(ID),
- },
-
- username: {
- validator: $.optional.str,
- },
-
- host: {
- validator: $.optional.nullable.str,
- },
- },
-
- errors: {
- noSuchUser: {
- message: 'No such user.',
- code: 'NO_SUCH_USER',
- id: '7ad3fa3e-5e12-42f0-b23a-f3d13f10ee4b',
- },
- },
-
- res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
- properties: {
- roomType: {
- type: 'string' as const,
- optional: false as const, nullable: false as const,
- enum: ['default', 'washitsu'],
- },
- furnitures: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
- items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
- properties: {
- id: {
- type: 'string' as const,
- optional: false as const, nullable: false as const,
- },
- type: {
- type: 'string' as const,
- optional: false as const, nullable: false as const,
- },
- props: {
- type: 'object' as const,
- optional: true as const, nullable: false as const,
- },
- position: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
- properties: {
- x: {
- type: 'number' as const,
- optional: false as const, nullable: false as const,
- },
- y: {
- type: 'number' as const,
- optional: false as const, nullable: false as const,
- },
- z: {
- type: 'number' as const,
- optional: false as const, nullable: false as const,
- },
- },
- },
- rotation: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
- properties: {
- x: {
- type: 'number' as const,
- optional: false as const, nullable: false as const,
- },
- y: {
- type: 'number' as const,
- optional: false as const, nullable: false as const,
- },
- z: {
- type: 'number' as const,
- optional: false as const, nullable: false as const,
- },
- },
- },
- },
- },
- },
- carpetColor: {
- type: 'string' as const,
- optional: false as const, nullable: false as const,
- format: 'hex',
- example: '#85CAF0',
- },
- },
- },
-};
-
-// eslint-disable-next-line import/no-default-export
-export default define(meta, async (ps, me) => {
- const user = await Users.findOne(ps.userId != null
- ? { id: ps.userId }
- : { usernameLower: ps.username!.toLowerCase(), host: toPunyNullable(ps.host) });
-
- if (user == null) {
- throw new ApiError(meta.errors.noSuchUser);
- }
-
- const profile = await UserProfiles.findOneOrFail(user.id);
-
- if (profile.room.furnitures == null) {
- await UserProfiles.update(user.id, {
- room: {
- furnitures: [],
- ...profile.room,
- },
- });
-
- profile.room.furnitures = [];
- }
-
- if (profile.room.roomType == null) {
- const initialType = 'default';
- await UserProfiles.update(user.id, {
- room: {
- roomType: initialType as any,
- ...profile.room,
- },
- });
-
- profile.room.roomType = initialType;
- }
-
- if (profile.room.carpetColor == null) {
- const initialColor = '#85CAF0';
- await UserProfiles.update(user.id, {
- room: {
- carpetColor: initialColor as any,
- ...profile.room,
- },
- });
-
- profile.room.carpetColor = initialColor;
- }
-
- return profile.room;
-});
diff --git a/packages/backend/src/server/api/endpoints/room/update.ts b/packages/backend/src/server/api/endpoints/room/update.ts
deleted file mode 100644
index e2b18a8ab9..0000000000
--- a/packages/backend/src/server/api/endpoints/room/update.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import $ from 'cafy';
-import { publishMainStream } from '@/services/stream';
-import define from '../../define';
-import { Users, UserProfiles } from '@/models/index';
-
-export const meta = {
- tags: ['room'],
-
- requireCredential: true as const,
-
- params: {
- room: {
- validator: $.obj({
- furnitures: $.arr($.obj({
- id: $.str,
- type: $.str,
- position: $.obj({
- x: $.num,
- y: $.num,
- z: $.num,
- }),
- rotation: $.obj({
- x: $.num,
- y: $.num,
- z: $.num,
- }),
- props: $.optional.nullable.obj(),
- })),
- roomType: $.str,
- carpetColor: $.str,
- }),
- },
- },
-};
-
-// eslint-disable-next-line import/no-default-export
-export default define(meta, async (ps, user) => {
- await UserProfiles.update(user.id, {
- room: ps.room as any,
- });
-
- const iObj = await Users.pack(user.id, user, {
- detail: true,
- includeSecrets: true,
- });
-
- // Publish meUpdated event
- publishMainStream(user.id, 'meUpdated', iObj);
-
- // TODO: レスポンスがおかしいと思う by YuzuRyo61
- return iObj;
-});
diff --git a/packages/client/assets/room/furnitures/banknote/banknote.blend b/packages/client/assets/room/furnitures/banknote/banknote.blend
deleted file mode 100644
index 60b1968a29..0000000000
--- a/packages/client/assets/room/furnitures/banknote/banknote.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/banknote/banknote.glb b/packages/client/assets/room/furnitures/banknote/banknote.glb
deleted file mode 100644
index f4ef0b91e7..0000000000
--- a/packages/client/assets/room/furnitures/banknote/banknote.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/banknote/tex.png b/packages/client/assets/room/furnitures/banknote/tex.png
deleted file mode 100644
index 9106dc1457..0000000000
--- a/packages/client/assets/room/furnitures/banknote/tex.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/bed/bed.blend b/packages/client/assets/room/furnitures/bed/bed.blend
deleted file mode 100644
index 731df76d0c..0000000000
--- a/packages/client/assets/room/furnitures/bed/bed.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/bed/bed.glb b/packages/client/assets/room/furnitures/bed/bed.glb
deleted file mode 100644
index f35ecb9ef4..0000000000
--- a/packages/client/assets/room/furnitures/bed/bed.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/bin/bin.blend b/packages/client/assets/room/furnitures/bin/bin.blend
deleted file mode 100644
index 8d459a0869..0000000000
--- a/packages/client/assets/room/furnitures/bin/bin.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/bin/bin.glb b/packages/client/assets/room/furnitures/bin/bin.glb
deleted file mode 100644
index b45f203802..0000000000
--- a/packages/client/assets/room/furnitures/bin/bin.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/book/book.blend b/packages/client/assets/room/furnitures/book/book.blend
deleted file mode 100644
index 0d4899d4ae..0000000000
--- a/packages/client/assets/room/furnitures/book/book.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/book/book.glb b/packages/client/assets/room/furnitures/book/book.glb
deleted file mode 100644
index 546893da06..0000000000
--- a/packages/client/assets/room/furnitures/book/book.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/book2/barcode.png b/packages/client/assets/room/furnitures/book2/barcode.png
deleted file mode 100644
index 37cfe5add3..0000000000
--- a/packages/client/assets/room/furnitures/book2/barcode.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/book2/book2.blend b/packages/client/assets/room/furnitures/book2/book2.blend
deleted file mode 100644
index e0fdb48101..0000000000
--- a/packages/client/assets/room/furnitures/book2/book2.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/book2/book2.glb b/packages/client/assets/room/furnitures/book2/book2.glb
deleted file mode 100644
index 2b26402f8c..0000000000
--- a/packages/client/assets/room/furnitures/book2/book2.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/book2/texture.afdesign b/packages/client/assets/room/furnitures/book2/texture.afdesign
deleted file mode 100644
index b63771607a..0000000000
--- a/packages/client/assets/room/furnitures/book2/texture.afdesign
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/book2/texture.png b/packages/client/assets/room/furnitures/book2/texture.png
deleted file mode 100644
index 5aa84f0340..0000000000
--- a/packages/client/assets/room/furnitures/book2/texture.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/book2/uv.png b/packages/client/assets/room/furnitures/book2/uv.png
deleted file mode 100644
index 61c4fb0400..0000000000
--- a/packages/client/assets/room/furnitures/book2/uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.blend b/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.blend
deleted file mode 100644
index 3a528de32a..0000000000
--- a/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.glb b/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.glb
deleted file mode 100644
index bed372e94f..0000000000
--- a/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend b/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend
deleted file mode 100644
index 5f146267ac..0000000000
--- a/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb b/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb
deleted file mode 100644
index 85fcb5c0b6..0000000000
--- a/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cardboard-box2/texture.png b/packages/client/assets/room/furnitures/cardboard-box2/texture.png
deleted file mode 100644
index e498d8f65b..0000000000
--- a/packages/client/assets/room/furnitures/cardboard-box2/texture.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cardboard-box2/uv.png b/packages/client/assets/room/furnitures/cardboard-box2/uv.png
deleted file mode 100644
index d547843ee0..0000000000
--- a/packages/client/assets/room/furnitures/cardboard-box2/uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend b/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend
deleted file mode 100644
index 00681a3cfd..0000000000
--- a/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb b/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb
deleted file mode 100644
index 1ef0427689..0000000000
--- a/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cardboard-box3/texture.png b/packages/client/assets/room/furnitures/cardboard-box3/texture.png
deleted file mode 100644
index 56c914cb9d..0000000000
--- a/packages/client/assets/room/furnitures/cardboard-box3/texture.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cardboard-box3/texture.xcf b/packages/client/assets/room/furnitures/cardboard-box3/texture.xcf
deleted file mode 100644
index 7ffb3e3439..0000000000
--- a/packages/client/assets/room/furnitures/cardboard-box3/texture.xcf
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cardboard-box3/uv.png b/packages/client/assets/room/furnitures/cardboard-box3/uv.png
deleted file mode 100644
index 797ac509db..0000000000
--- a/packages/client/assets/room/furnitures/cardboard-box3/uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend b/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend
deleted file mode 100644
index 750343d4f0..0000000000
--- a/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb b/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb
deleted file mode 100644
index 3066a69e35..0000000000
--- a/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/chair/chair.blend b/packages/client/assets/room/furnitures/chair/chair.blend
deleted file mode 100644
index 79c29a8401..0000000000
--- a/packages/client/assets/room/furnitures/chair/chair.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/chair/chair.glb b/packages/client/assets/room/furnitures/chair/chair.glb
deleted file mode 100644
index 08ee1a0bb0..0000000000
--- a/packages/client/assets/room/furnitures/chair/chair.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/chair2/chair2.blend b/packages/client/assets/room/furnitures/chair2/chair2.blend
deleted file mode 100644
index c6a1acd96f..0000000000
--- a/packages/client/assets/room/furnitures/chair2/chair2.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/chair2/chair2.glb b/packages/client/assets/room/furnitures/chair2/chair2.glb
deleted file mode 100644
index 5ea2f3518b..0000000000
--- a/packages/client/assets/room/furnitures/chair2/chair2.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/color-box/color-box.blend b/packages/client/assets/room/furnitures/color-box/color-box.blend
deleted file mode 100644
index f96a4ff766..0000000000
--- a/packages/client/assets/room/furnitures/color-box/color-box.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/color-box/color-box.glb b/packages/client/assets/room/furnitures/color-box/color-box.glb
deleted file mode 100644
index 43f2abcae8..0000000000
--- a/packages/client/assets/room/furnitures/color-box/color-box.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/corkboard/corkboard.blend b/packages/client/assets/room/furnitures/corkboard/corkboard.blend
deleted file mode 100644
index 9a7e1878cd..0000000000
--- a/packages/client/assets/room/furnitures/corkboard/corkboard.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/corkboard/corkboard.glb b/packages/client/assets/room/furnitures/corkboard/corkboard.glb
deleted file mode 100644
index fee108fb91..0000000000
--- a/packages/client/assets/room/furnitures/corkboard/corkboard.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cube/cube.blend b/packages/client/assets/room/furnitures/cube/cube.blend
deleted file mode 100644
index 1af5bf40a9..0000000000
--- a/packages/client/assets/room/furnitures/cube/cube.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cube/cube.glb b/packages/client/assets/room/furnitures/cube/cube.glb
deleted file mode 100644
index 4ac8b6036d..0000000000
--- a/packages/client/assets/room/furnitures/cube/cube.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.blend b/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.blend
deleted file mode 100644
index 37ca8868c7..0000000000
--- a/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.glb b/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.glb
deleted file mode 100644
index 58efb1b3b4..0000000000
--- a/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/cup-noodle/noodle.png b/packages/client/assets/room/furnitures/cup-noodle/noodle.png
deleted file mode 100644
index 1d74e0bbe7..0000000000
--- a/packages/client/assets/room/furnitures/cup-noodle/noodle.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/desk/desk.blend b/packages/client/assets/room/furnitures/desk/desk.blend
deleted file mode 100644
index c88d01f0b2..0000000000
--- a/packages/client/assets/room/furnitures/desk/desk.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/desk/desk.glb b/packages/client/assets/room/furnitures/desk/desk.glb
deleted file mode 100644
index 4a58513095..0000000000
--- a/packages/client/assets/room/furnitures/desk/desk.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/doll-ai/doll-ai.blend b/packages/client/assets/room/furnitures/doll-ai/doll-ai.blend
deleted file mode 100644
index a912231ecb..0000000000
--- a/packages/client/assets/room/furnitures/doll-ai/doll-ai.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/doll-ai/doll-ai.glb b/packages/client/assets/room/furnitures/doll-ai/doll-ai.glb
deleted file mode 100644
index ec55a7bd7b..0000000000
--- a/packages/client/assets/room/furnitures/doll-ai/doll-ai.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/doll-ai/doll_ai_tex.png b/packages/client/assets/room/furnitures/doll-ai/doll_ai_tex.png
deleted file mode 100644
index 370ca5f75b..0000000000
--- a/packages/client/assets/room/furnitures/doll-ai/doll_ai_tex.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/energy-drink/energy-drink.blend b/packages/client/assets/room/furnitures/energy-drink/energy-drink.blend
deleted file mode 100644
index 65fc41273e..0000000000
--- a/packages/client/assets/room/furnitures/energy-drink/energy-drink.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/energy-drink/energy-drink.glb b/packages/client/assets/room/furnitures/energy-drink/energy-drink.glb
deleted file mode 100644
index 7fb1c27836..0000000000
--- a/packages/client/assets/room/furnitures/energy-drink/energy-drink.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/energy-drink/texture.afdesign b/packages/client/assets/room/furnitures/energy-drink/texture.afdesign
deleted file mode 100644
index 8c117a49b1..0000000000
--- a/packages/client/assets/room/furnitures/energy-drink/texture.afdesign
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/energy-drink/texture.png b/packages/client/assets/room/furnitures/energy-drink/texture.png
deleted file mode 100644
index 484ca0f96f..0000000000
--- a/packages/client/assets/room/furnitures/energy-drink/texture.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/energy-drink/uv.png b/packages/client/assets/room/furnitures/energy-drink/uv.png
deleted file mode 100644
index 2a3f20c999..0000000000
--- a/packages/client/assets/room/furnitures/energy-drink/uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/eraser/cover.png b/packages/client/assets/room/furnitures/eraser/cover.png
deleted file mode 100644
index 932a3fc62e..0000000000
--- a/packages/client/assets/room/furnitures/eraser/cover.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/eraser/cover.psd b/packages/client/assets/room/furnitures/eraser/cover.psd
deleted file mode 100644
index c393337833..0000000000
--- a/packages/client/assets/room/furnitures/eraser/cover.psd
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/eraser/eraser-uv.png b/packages/client/assets/room/furnitures/eraser/eraser-uv.png
deleted file mode 100644
index 89e4ea4c45..0000000000
--- a/packages/client/assets/room/furnitures/eraser/eraser-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/eraser/eraser.blend b/packages/client/assets/room/furnitures/eraser/eraser.blend
deleted file mode 100644
index 103c54fbae..0000000000
--- a/packages/client/assets/room/furnitures/eraser/eraser.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/eraser/eraser.glb b/packages/client/assets/room/furnitures/eraser/eraser.glb
deleted file mode 100644
index 016b60df20..0000000000
--- a/packages/client/assets/room/furnitures/eraser/eraser.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png
deleted file mode 100644
index e3865ad15e..0000000000
--- a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.blend b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.blend
deleted file mode 100644
index d59f87c1ee..0000000000
--- a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.glb b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.glb
deleted file mode 100644
index 48b36ef347..0000000000
--- a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.png b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.png
deleted file mode 100644
index 7cee4b1859..0000000000
--- a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.psd b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.psd
deleted file mode 100644
index cd59fc007b..0000000000
--- a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.psd
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/fan/fan.blend b/packages/client/assets/room/furnitures/fan/fan.blend
deleted file mode 100644
index 8c8106e5fe..0000000000
--- a/packages/client/assets/room/furnitures/fan/fan.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/fan/fan.glb b/packages/client/assets/room/furnitures/fan/fan.glb
deleted file mode 100644
index d9367f3534..0000000000
--- a/packages/client/assets/room/furnitures/fan/fan.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/holo-display/holo-display.blend b/packages/client/assets/room/furnitures/holo-display/holo-display.blend
deleted file mode 100644
index 56d2e1f819..0000000000
--- a/packages/client/assets/room/furnitures/holo-display/holo-display.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/holo-display/holo-display.glb b/packages/client/assets/room/furnitures/holo-display/holo-display.glb
deleted file mode 100644
index 4d042a59b3..0000000000
--- a/packages/client/assets/room/furnitures/holo-display/holo-display.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/holo-display/ray-uv.png b/packages/client/assets/room/furnitures/holo-display/ray-uv.png
deleted file mode 100644
index aa7e817e0f..0000000000
--- a/packages/client/assets/room/furnitures/holo-display/ray-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/holo-display/ray.png b/packages/client/assets/room/furnitures/holo-display/ray.png
deleted file mode 100644
index 6a5d24e143..0000000000
--- a/packages/client/assets/room/furnitures/holo-display/ray.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/keyboard/keyboard.blend b/packages/client/assets/room/furnitures/keyboard/keyboard.blend
deleted file mode 100644
index ab33d134b3..0000000000
--- a/packages/client/assets/room/furnitures/keyboard/keyboard.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/keyboard/keyboard.glb b/packages/client/assets/room/furnitures/keyboard/keyboard.glb
deleted file mode 100644
index 15dc69f47a..0000000000
--- a/packages/client/assets/room/furnitures/keyboard/keyboard.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/low-table/low-table.blend b/packages/client/assets/room/furnitures/low-table/low-table.blend
deleted file mode 100644
index e1592174d9..0000000000
--- a/packages/client/assets/room/furnitures/low-table/low-table.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/low-table/low-table.glb b/packages/client/assets/room/furnitures/low-table/low-table.glb
deleted file mode 100644
index c69bf35d7b..0000000000
--- a/packages/client/assets/room/furnitures/low-table/low-table.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/mat/mat.blend b/packages/client/assets/room/furnitures/mat/mat.blend
deleted file mode 100644
index a1e1a68c55..0000000000
--- a/packages/client/assets/room/furnitures/mat/mat.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/mat/mat.glb b/packages/client/assets/room/furnitures/mat/mat.glb
deleted file mode 100644
index 87ccd44e1a..0000000000
--- a/packages/client/assets/room/furnitures/mat/mat.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/milk/milk-uv.png b/packages/client/assets/room/furnitures/milk/milk-uv.png
deleted file mode 100644
index 258fd54638..0000000000
--- a/packages/client/assets/room/furnitures/milk/milk-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/milk/milk.blend b/packages/client/assets/room/furnitures/milk/milk.blend
deleted file mode 100644
index 2df508d5b9..0000000000
--- a/packages/client/assets/room/furnitures/milk/milk.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/milk/milk.glb b/packages/client/assets/room/furnitures/milk/milk.glb
deleted file mode 100644
index b335fe3d02..0000000000
--- a/packages/client/assets/room/furnitures/milk/milk.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/milk/milk.png b/packages/client/assets/room/furnitures/milk/milk.png
deleted file mode 100644
index 35181c8c8c..0000000000
--- a/packages/client/assets/room/furnitures/milk/milk.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/milk/milk.psd b/packages/client/assets/room/furnitures/milk/milk.psd
deleted file mode 100644
index f31e439277..0000000000
--- a/packages/client/assets/room/furnitures/milk/milk.psd
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/monitor/monitor.blend b/packages/client/assets/room/furnitures/monitor/monitor.blend
deleted file mode 100644
index 6c042ccdd8..0000000000
--- a/packages/client/assets/room/furnitures/monitor/monitor.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/monitor/monitor.glb b/packages/client/assets/room/furnitures/monitor/monitor.glb
deleted file mode 100644
index fc33286a15..0000000000
--- a/packages/client/assets/room/furnitures/monitor/monitor.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/monitor/monitor.psd b/packages/client/assets/room/furnitures/monitor/monitor.psd
deleted file mode 100644
index 57afff9cd9..0000000000
--- a/packages/client/assets/room/furnitures/monitor/monitor.psd
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/monitor/screen-uv.png b/packages/client/assets/room/furnitures/monitor/screen-uv.png
deleted file mode 100644
index 35f74de8aa..0000000000
--- a/packages/client/assets/room/furnitures/monitor/screen-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/monitor/screen.jpg b/packages/client/assets/room/furnitures/monitor/screen.jpg
deleted file mode 100644
index 4004a1ede9..0000000000
--- a/packages/client/assets/room/furnitures/monitor/screen.jpg
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/moon/moon.blend b/packages/client/assets/room/furnitures/moon/moon.blend
deleted file mode 100644
index 4ff3deab8e..0000000000
--- a/packages/client/assets/room/furnitures/moon/moon.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/moon/moon.glb b/packages/client/assets/room/furnitures/moon/moon.glb
deleted file mode 100644
index 07fa7e4c02..0000000000
--- a/packages/client/assets/room/furnitures/moon/moon.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/moon/moon.jpg b/packages/client/assets/room/furnitures/moon/moon.jpg
deleted file mode 100644
index 8988ac64b9..0000000000
--- a/packages/client/assets/room/furnitures/moon/moon.jpg
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/mousepad/mousepad.blend b/packages/client/assets/room/furnitures/mousepad/mousepad.blend
deleted file mode 100644
index 14bd139c94..0000000000
--- a/packages/client/assets/room/furnitures/mousepad/mousepad.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/mousepad/mousepad.glb b/packages/client/assets/room/furnitures/mousepad/mousepad.glb
deleted file mode 100644
index 681ada49cd..0000000000
--- a/packages/client/assets/room/furnitures/mousepad/mousepad.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/pc/motherboard-uv.png b/packages/client/assets/room/furnitures/pc/motherboard-uv.png
deleted file mode 100644
index 355009fe7c..0000000000
--- a/packages/client/assets/room/furnitures/pc/motherboard-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/pc/motherboard-uv.psd b/packages/client/assets/room/furnitures/pc/motherboard-uv.psd
deleted file mode 100644
index 971f33f79e..0000000000
--- a/packages/client/assets/room/furnitures/pc/motherboard-uv.psd
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/pc/motherboard.jpg b/packages/client/assets/room/furnitures/pc/motherboard.jpg
deleted file mode 100644
index d894e4efcf..0000000000
--- a/packages/client/assets/room/furnitures/pc/motherboard.jpg
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/pc/pc.blend b/packages/client/assets/room/furnitures/pc/pc.blend
deleted file mode 100644
index 13dfec6ccc..0000000000
--- a/packages/client/assets/room/furnitures/pc/pc.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/pc/pc.glb b/packages/client/assets/room/furnitures/pc/pc.glb
deleted file mode 100644
index 44a48b18ae..0000000000
--- a/packages/client/assets/room/furnitures/pc/pc.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/pencil/pencil.blend b/packages/client/assets/room/furnitures/pencil/pencil.blend
deleted file mode 100644
index 0fc6bdd776..0000000000
--- a/packages/client/assets/room/furnitures/pencil/pencil.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/pencil/pencil.glb b/packages/client/assets/room/furnitures/pencil/pencil.glb
deleted file mode 100644
index a938b5cdcc..0000000000
--- a/packages/client/assets/room/furnitures/pencil/pencil.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/photoframe/photo-uv.png b/packages/client/assets/room/furnitures/photoframe/photo-uv.png
deleted file mode 100644
index 9b94906413..0000000000
--- a/packages/client/assets/room/furnitures/photoframe/photo-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/photoframe/photo.jpg b/packages/client/assets/room/furnitures/photoframe/photo.jpg
deleted file mode 100644
index af14f0f36a..0000000000
--- a/packages/client/assets/room/furnitures/photoframe/photo.jpg
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/photoframe/photoframe.blend b/packages/client/assets/room/furnitures/photoframe/photoframe.blend
deleted file mode 100644
index 4224cde45b..0000000000
--- a/packages/client/assets/room/furnitures/photoframe/photoframe.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/photoframe/photoframe.glb b/packages/client/assets/room/furnitures/photoframe/photoframe.glb
deleted file mode 100644
index 4255a77de6..0000000000
--- a/packages/client/assets/room/furnitures/photoframe/photoframe.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/piano/piano.blend b/packages/client/assets/room/furnitures/piano/piano.blend
deleted file mode 100644
index 7653cdf672..0000000000
--- a/packages/client/assets/room/furnitures/piano/piano.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/piano/piano.glb b/packages/client/assets/room/furnitures/piano/piano.glb
deleted file mode 100644
index 7242e78ceb..0000000000
--- a/packages/client/assets/room/furnitures/piano/piano.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/pinguin/pinguin.blend b/packages/client/assets/room/furnitures/pinguin/pinguin.blend
deleted file mode 100644
index 514c713e4c..0000000000
--- a/packages/client/assets/room/furnitures/pinguin/pinguin.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/pinguin/pinguin.glb b/packages/client/assets/room/furnitures/pinguin/pinguin.glb
deleted file mode 100644
index 6df34c06e9..0000000000
--- a/packages/client/assets/room/furnitures/pinguin/pinguin.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/plant/plant-soil-uv.png b/packages/client/assets/room/furnitures/plant/plant-soil-uv.png
deleted file mode 100644
index d4971a896c..0000000000
--- a/packages/client/assets/room/furnitures/plant/plant-soil-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/plant/plant-soil.png b/packages/client/assets/room/furnitures/plant/plant-soil.png
deleted file mode 100644
index e79ccd240e..0000000000
--- a/packages/client/assets/room/furnitures/plant/plant-soil.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/plant/plant-soil.psd b/packages/client/assets/room/furnitures/plant/plant-soil.psd
deleted file mode 100644
index 1457b7ea5b..0000000000
--- a/packages/client/assets/room/furnitures/plant/plant-soil.psd
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/plant/plant.blend b/packages/client/assets/room/furnitures/plant/plant.blend
deleted file mode 100644
index aa38c7b54e..0000000000
--- a/packages/client/assets/room/furnitures/plant/plant.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/plant/plant.glb b/packages/client/assets/room/furnitures/plant/plant.glb
deleted file mode 100644
index 38422b4a9b..0000000000
--- a/packages/client/assets/room/furnitures/plant/plant.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/plant2/plant2.blend b/packages/client/assets/room/furnitures/plant2/plant2.blend
deleted file mode 100644
index 6592c5d98d..0000000000
--- a/packages/client/assets/room/furnitures/plant2/plant2.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/plant2/plant2.glb b/packages/client/assets/room/furnitures/plant2/plant2.glb
deleted file mode 100644
index 223e6f5834..0000000000
--- a/packages/client/assets/room/furnitures/plant2/plant2.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/plant2/soil.png b/packages/client/assets/room/furnitures/plant2/soil.png
deleted file mode 100644
index e79ccd240e..0000000000
--- a/packages/client/assets/room/furnitures/plant2/soil.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/poster-h/poster-h.blend b/packages/client/assets/room/furnitures/poster-h/poster-h.blend
deleted file mode 100644
index 40f944f3c1..0000000000
--- a/packages/client/assets/room/furnitures/poster-h/poster-h.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/poster-h/poster-h.glb b/packages/client/assets/room/furnitures/poster-h/poster-h.glb
deleted file mode 100644
index c6032c1009..0000000000
--- a/packages/client/assets/room/furnitures/poster-h/poster-h.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/poster-h/uv.png b/packages/client/assets/room/furnitures/poster-h/uv.png
deleted file mode 100644
index f854231e0b..0000000000
--- a/packages/client/assets/room/furnitures/poster-h/uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/poster-v/poster-v.blend b/packages/client/assets/room/furnitures/poster-v/poster-v.blend
deleted file mode 100644
index 07fe971634..0000000000
--- a/packages/client/assets/room/furnitures/poster-v/poster-v.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/poster-v/poster-v.glb b/packages/client/assets/room/furnitures/poster-v/poster-v.glb
deleted file mode 100644
index 6e3782f193..0000000000
--- a/packages/client/assets/room/furnitures/poster-v/poster-v.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/poster-v/uv.png b/packages/client/assets/room/furnitures/poster-v/uv.png
deleted file mode 100644
index 7bb2bf809e..0000000000
--- a/packages/client/assets/room/furnitures/poster-v/uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/pudding/pudding.blend b/packages/client/assets/room/furnitures/pudding/pudding.blend
deleted file mode 100644
index bba40ce161..0000000000
--- a/packages/client/assets/room/furnitures/pudding/pudding.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/pudding/pudding.glb b/packages/client/assets/room/furnitures/pudding/pudding.glb
deleted file mode 100644
index 06c9ed80cc..0000000000
--- a/packages/client/assets/room/furnitures/pudding/pudding.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.blend b/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.blend
deleted file mode 100644
index 6c09067e78..0000000000
--- a/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.glb b/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.glb
deleted file mode 100644
index d640df9b06..0000000000
--- a/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/server/rack-uv.png b/packages/client/assets/room/furnitures/server/rack-uv.png
deleted file mode 100644
index 65bdb0ffd9..0000000000
--- a/packages/client/assets/room/furnitures/server/rack-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/server/rack.png b/packages/client/assets/room/furnitures/server/rack.png
deleted file mode 100644
index b851295cfa..0000000000
--- a/packages/client/assets/room/furnitures/server/rack.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/server/server.blend b/packages/client/assets/room/furnitures/server/server.blend
deleted file mode 100644
index 6675dfbdc2..0000000000
--- a/packages/client/assets/room/furnitures/server/server.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/server/server.glb b/packages/client/assets/room/furnitures/server/server.glb
deleted file mode 100644
index a8b530a2d2..0000000000
--- a/packages/client/assets/room/furnitures/server/server.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/server/server.png b/packages/client/assets/room/furnitures/server/server.png
deleted file mode 100644
index 8e9a0d716c..0000000000
--- a/packages/client/assets/room/furnitures/server/server.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/server/uv.png b/packages/client/assets/room/furnitures/server/uv.png
deleted file mode 100644
index ca2e747d16..0000000000
--- a/packages/client/assets/room/furnitures/server/uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/sofa/sofa.blend b/packages/client/assets/room/furnitures/sofa/sofa.blend
deleted file mode 100644
index fb5aa51a2c..0000000000
--- a/packages/client/assets/room/furnitures/sofa/sofa.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/sofa/sofa.glb b/packages/client/assets/room/furnitures/sofa/sofa.glb
deleted file mode 100644
index 6ce77d94ac..0000000000
--- a/packages/client/assets/room/furnitures/sofa/sofa.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/spiral/spiral.blend b/packages/client/assets/room/furnitures/spiral/spiral.blend
deleted file mode 100644
index 9d3be77bce..0000000000
--- a/packages/client/assets/room/furnitures/spiral/spiral.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/spiral/spiral.glb b/packages/client/assets/room/furnitures/spiral/spiral.glb
deleted file mode 100644
index ee8e3c23b1..0000000000
--- a/packages/client/assets/room/furnitures/spiral/spiral.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/tv/screen-uv.png b/packages/client/assets/room/furnitures/tv/screen-uv.png
deleted file mode 100644
index 4bb74f031f..0000000000
--- a/packages/client/assets/room/furnitures/tv/screen-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/tv/tv.blend b/packages/client/assets/room/furnitures/tv/tv.blend
deleted file mode 100644
index 490e298e7b..0000000000
--- a/packages/client/assets/room/furnitures/tv/tv.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/tv/tv.glb b/packages/client/assets/room/furnitures/tv/tv.glb
deleted file mode 100644
index b9bd23896b..0000000000
--- a/packages/client/assets/room/furnitures/tv/tv.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/wall-clock/wall-clock.blend b/packages/client/assets/room/furnitures/wall-clock/wall-clock.blend
deleted file mode 100644
index 0a61c8f01e..0000000000
--- a/packages/client/assets/room/furnitures/wall-clock/wall-clock.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/furnitures/wall-clock/wall-clock.glb b/packages/client/assets/room/furnitures/wall-clock/wall-clock.glb
deleted file mode 100644
index b9f0093a8d..0000000000
--- a/packages/client/assets/room/furnitures/wall-clock/wall-clock.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/rooms/default/default.blend b/packages/client/assets/room/rooms/default/default.blend
deleted file mode 100644
index 661154724a..0000000000
--- a/packages/client/assets/room/rooms/default/default.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/rooms/default/default.glb b/packages/client/assets/room/rooms/default/default.glb
deleted file mode 100644
index 3d378deee2..0000000000
--- a/packages/client/assets/room/rooms/default/default.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/rooms/washitsu/husuma-uv.png b/packages/client/assets/room/rooms/washitsu/husuma-uv.png
deleted file mode 100644
index ae2fca3911..0000000000
--- a/packages/client/assets/room/rooms/washitsu/husuma-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/rooms/washitsu/husuma.png b/packages/client/assets/room/rooms/washitsu/husuma.png
deleted file mode 100644
index 084cbed67c..0000000000
--- a/packages/client/assets/room/rooms/washitsu/husuma.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/rooms/washitsu/tatami-single1600.png b/packages/client/assets/room/rooms/washitsu/tatami-single1600.png
deleted file mode 100644
index c0e684d743..0000000000
--- a/packages/client/assets/room/rooms/washitsu/tatami-single1600.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/rooms/washitsu/tatami-uv.png b/packages/client/assets/room/rooms/washitsu/tatami-uv.png
deleted file mode 100644
index 5b16c66091..0000000000
--- a/packages/client/assets/room/rooms/washitsu/tatami-uv.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/rooms/washitsu/tatami.afdesign b/packages/client/assets/room/rooms/washitsu/tatami.afdesign
deleted file mode 100644
index 9300a26950..0000000000
--- a/packages/client/assets/room/rooms/washitsu/tatami.afdesign
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/rooms/washitsu/tatami.png b/packages/client/assets/room/rooms/washitsu/tatami.png
deleted file mode 100644
index 8894d040ae..0000000000
--- a/packages/client/assets/room/rooms/washitsu/tatami.png
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/rooms/washitsu/washitsu.blend b/packages/client/assets/room/rooms/washitsu/washitsu.blend
deleted file mode 100644
index 84dc11374d..0000000000
--- a/packages/client/assets/room/rooms/washitsu/washitsu.blend
+++ /dev/null
Binary files differ
diff --git a/packages/client/assets/room/rooms/washitsu/washitsu.glb b/packages/client/assets/room/rooms/washitsu/washitsu.glb
deleted file mode 100644
index 5b4767bc73..0000000000
--- a/packages/client/assets/room/rooms/washitsu/washitsu.glb
+++ /dev/null
Binary files differ
diff --git a/packages/client/src/menu.ts b/packages/client/src/menu.ts
index bd155ba16d..ea6f801fec 100644
--- a/packages/client/src/menu.ts
+++ b/packages/client/src/menu.ts
@@ -173,12 +173,6 @@ export const menuDef = reactive({
icon: 'fas fa-terminal',
to: '/scratchpad',
},
- rooms: {
- title: 'rooms',
- icon: 'fas fa-door-closed',
- show: computed(() => $i != null),
- to: computed(() => `/@${$i.username}/room`),
- },
ui: {
title: 'switchUi',
icon: 'fas fa-columns',
diff --git a/packages/client/src/pages/room/preview.vue b/packages/client/src/pages/room/preview.vue
deleted file mode 100644
index b0e600d4fb..0000000000
--- a/packages/client/src/pages/room/preview.vue
+++ /dev/null
@@ -1,107 +0,0 @@
-<template>
-<canvas width="224" height="128"></canvas>
-</template>
-
-<script lang="ts">
-import { defineComponent } from 'vue';
-import * as THREE from 'three';
-import * as os from '@/os';
-
-export default defineComponent({
- data() {
- return {
- selected: null,
- objectHeight: 0,
- orbitRadius: 5
- };
- },
-
- mounted() {
- const canvas = this.$el;
-
- const width = canvas.width;
- const height = canvas.height;
-
- const scene = new THREE.Scene();
-
- const renderer = new THREE.WebGLRenderer({
- canvas: canvas,
- antialias: true,
- alpha: false
- });
- renderer.setPixelRatio(window.devicePixelRatio);
- renderer.setSize(width, height);
- renderer.setClearColor(0x000000);
- renderer.autoClear = false;
- renderer.shadowMap.enabled = true;
- renderer.shadowMap.cullFace = THREE.CullFaceBack;
-
- const camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 100);
- camera.zoom = 10;
- camera.position.x = 0;
- camera.position.y = 2;
- camera.position.z = 0;
- camera.updateProjectionMatrix();
- scene.add(camera);
-
- const ambientLight = new THREE.AmbientLight(0xffffff, 1);
- ambientLight.castShadow = false;
- scene.add(ambientLight);
-
- const light = new THREE.PointLight(0xffffff, 1, 100);
- light.position.set(3, 3, 3);
- scene.add(light);
-
- const grid = new THREE.GridHelper(5, 16, 0x444444, 0x222222);
- scene.add(grid);
-
- const render = () => {
- const timer = Date.now() * 0.0004;
- requestAnimationFrame(render);
-
- camera.position.y = Math.sin(Math.PI / 6) * this.orbitRadius; // Math.PI / 6 => 30deg
- camera.position.z = Math.cos(timer) * this.orbitRadius;
- camera.position.x = Math.sin(timer) * this.orbitRadius;
- camera.lookAt(new THREE.Vector3(0, this.objectHeight / 2, 0));
- renderer.render(scene, camera);
- };
-
- this.selected = selected => {
- const obj = selected.clone();
-
- // Remove current object
- const current = scene.getObjectByName('obj');
- if (current != null) {
- scene.remove(current);
- }
-
- // Add new object
- obj.name = 'obj';
- obj.position.x = 0;
- obj.position.y = 0;
- obj.position.z = 0;
- obj.rotation.x = 0;
- obj.rotation.y = 0;
- obj.rotation.z = 0;
- obj.traverse(child => {
- if (child instanceof THREE.Mesh) {
- child.material = child.material.clone();
- return child.material.emissive.setHex(0x000000);
- }
- });
- const objectBoundingBox = new THREE.Box3().setFromObject(obj);
- this.objectHeight = objectBoundingBox.max.y - objectBoundingBox.min.y;
-
- const objectWidth = objectBoundingBox.max.x - objectBoundingBox.min.x;
- const objectDepth = objectBoundingBox.max.z - objectBoundingBox.min.z;
-
- const horizontal = Math.hypot(objectWidth, objectDepth) / camera.aspect;
- this.orbitRadius = Math.max(horizontal, this.objectHeight) * camera.zoom * 0.625 / Math.tan(camera.fov * 0.5 * (Math.PI / 180));
-
- scene.add(obj);
- };
-
- render();
- },
-});
-</script>
diff --git a/packages/client/src/pages/room/room.vue b/packages/client/src/pages/room/room.vue
deleted file mode 100644
index eb85d39dc4..0000000000
--- a/packages/client/src/pages/room/room.vue
+++ /dev/null
@@ -1,279 +0,0 @@
-<template>
-<div class="hveuntkp">
- <div v-if="objectSelected" class="controller _section">
- <div class="_content">
- <p class="name">{{ selectedFurnitureName }}</p>
- <XPreview ref="preview"/>
- <template v-if="selectedFurnitureInfo.props">
- <div v-for="k in Object.keys(selectedFurnitureInfo.props)" :key="k">
- <p>{{ k }}</p>
- <template v-if="selectedFurnitureInfo.props[k] === 'image'">
- <MkButton @click="chooseImage(k, $event)">{{ $ts._rooms.chooseImage }}</MkButton>
- </template>
- <template v-else-if="selectedFurnitureInfo.props[k] === 'color'">
- <input type="color" :value="selectedFurnitureProps ? selectedFurnitureProps[k] : null" @change="updateColor(k, $event)"/>
- </template>
- </div>
- </template>
- </div>
- <div class="_content">
- <MkButton inline :primary="isTranslateMode" @click="translate()"><i class="fas fa-arrows-alt"></i> {{ $ts._rooms.translate }}</MkButton>
- <MkButton inline :primary="isRotateMode" @click="rotate()"><i class="fas fa-undo"></i> {{ $ts._rooms.rotate }}</MkButton>
- <MkButton v-if="isTranslateMode || isRotateMode" inline @click="exit()"><i class="fas fa-ban"></i> {{ $ts._rooms.exit }}</MkButton>
- </div>
- <div class="_content">
- <MkButton @click="remove()"><i class="fas fa-trash-alt"></i> {{ $ts._rooms.remove }}</MkButton>
- </div>
- </div>
-
- <div v-if="isMyRoom" class="menu _section">
- <div class="_content">
- <MkButton @click="add()"><i class="fas fa-box-open"></i> {{ $ts._rooms.addFurniture }}</MkButton>
- </div>
- <div class="_content">
- <MkSelect :model-value="roomType" @update:modelValue="updateRoomType($event)">
- <template #label>{{ $ts._rooms.roomType }}</template>
- <option value="default">{{ $ts._rooms._roomType.default }}</option>
- <option value="washitsu">{{ $ts._rooms._roomType.washitsu }}</option>
- </MkSelect>
- <label v-if="roomType === 'default'">
- <span>{{ $ts._rooms.carpetColor }}</span>
- <input type="color" :value="carpetColor" @change="updateCarpetColor($event)"/>
- </label>
- </div>
- <div class="_content">
- <MkButton inline :disabled="!changed" primary @click="save()"><i class="fas fa-save"></i> {{ $ts.save }}</MkButton>
- <MkButton inline @click="clear()"><i class="fas fa-broom"></i> {{ $ts._rooms.clear }}</MkButton>
- </div>
- </div>
-</div>
-</template>
-
-<script lang="ts">
-import { computed, defineComponent } from 'vue';
-import { Room } from '@/scripts/room/room';
-import * as Acct from 'misskey-js/built/acct';
-import XPreview from './preview.vue';
-const storeItems = require('@/scripts/room/furnitures.json5');
-import { query as urlQuery } from '@/scripts/url';
-import MkButton from '@/components/ui/button.vue';
-import MkSelect from '@/components/form/select.vue';
-import { selectFile } from '@/scripts/select-file';
-import * as os from '@/os';
-import { ColdDeviceStorage } from '@/store';
-import * as symbols from '@/symbols';
-
-let room: Room;
-
-export default defineComponent({
- components: {
- XPreview,
- MkButton,
- MkSelect,
- },
-
- beforeRouteLeave(to, from, next) {
- if (this.changed) {
- os.confirm({
- type: 'warning',
- text: this.$ts.leaveConfirm,
- }).then(({ canceled }) => {
- if (canceled) {
- next(false);
- } else {
- next();
- }
- });
- } else {
- next();
- }
- },
-
- props: {
- acct: {
- type: String,
- required: true
- },
- },
-
- data() {
- return {
- [symbols.PAGE_INFO]: computed(() => this.user ? {
- title: this.$ts.room,
- avatar: this.user,
- } : null),
- user: null,
- objectSelected: false,
- selectedFurnitureName: null,
- selectedFurnitureInfo: null,
- selectedFurnitureProps: null,
- roomType: null,
- carpetColor: null,
- isTranslateMode: false,
- isRotateMode: false,
- isMyRoom: false,
- changed: false,
- };
- },
-
- async mounted() {
- window.addEventListener('beforeunload', this.beforeunload);
-
- this.user = await os.api('users/show', {
- ...Acct.parse(this.acct)
- });
-
- this.isMyRoom = this.$i && (this.$i.id === this.user.id);
-
- const roomInfo = await os.api('room/show', {
- userId: this.user.id
- });
-
- this.roomType = roomInfo.roomType;
- this.carpetColor = roomInfo.carpetColor;
-
- room = new Room(this.user, this.isMyRoom, roomInfo, this.$el, {
- graphicsQuality: ColdDeviceStorage.get('roomGraphicsQuality'),
- onChangeSelect: obj => {
- this.objectSelected = obj != null;
- if (obj) {
- const f = room.findFurnitureById(obj.name);
- this.selectedFurnitureName = this.$t('_rooms._furnitures.' + f.type);
- this.selectedFurnitureInfo = storeItems.find(x => x.id === f.type);
- this.selectedFurnitureProps = f.props
- ? JSON.parse(JSON.stringify(f.props)) // Disable reactivity
- : null;
- this.$nextTick(() => {
- this.$refs.preview.selected(obj);
- });
- }
- },
- useOrthographicCamera: ColdDeviceStorage.get('roomUseOrthographicCamera'),
- });
- },
-
- beforeUnmount() {
- room.destroy();
- window.removeEventListener('beforeunload', this.beforeunload);
- },
-
- methods: {
- beforeunload(e: BeforeUnloadEvent) {
- if (this.changed) {
- e.preventDefault();
- e.returnValue = '';
- }
- },
-
- async add() {
- const { canceled, result: id } = await os.select({
- title: this.$ts._rooms.addFurniture,
- items: storeItems.map(item => ({
- value: item.id, text: this.$t('_rooms._furnitures.' + item.id)
- }))
- });
- if (canceled) return;
- room.addFurniture(id);
- this.changed = true;
- },
-
- remove() {
- this.isTranslateMode = false;
- this.isRotateMode = false;
- room.removeFurniture();
- this.changed = true;
- },
-
- save() {
- os.api('room/update', {
- room: room.getRoomInfo()
- }).then(() => {
- this.changed = false;
- os.success();
- }).catch((e: any) => {
- os.alert({
- type: 'error',
- text: e.message
- });
- });
- },
-
- clear() {
- os.confirm({
- type: 'warning',
- text: this.$ts._rooms.clearConfirm,
- }).then(({ canceled }) => {
- if (canceled) return;
- room.removeAllFurnitures();
- this.changed = true;
- });
- },
-
- chooseImage(key, e) {
- selectFile(e.currentTarget || e.target, null).then(file => {
- room.updateProp(key, `/proxy/?${urlQuery({ url: file.thumbnailUrl })}`);
- this.$refs.preview.selected(room.getSelectedObject());
- this.changed = true;
- });
- },
-
- updateColor(key, ev) {
- room.updateProp(key, ev.target.value);
- this.$refs.preview.selected(room.getSelectedObject());
- this.changed = true;
- },
-
- updateCarpetColor(ev) {
- room.updateCarpetColor(ev.target.value);
- this.carpetColor = ev.target.value;
- this.changed = true;
- },
-
- updateRoomType(type) {
- room.changeRoomType(type);
- this.roomType = type;
- this.changed = true;
- },
-
- translate() {
- if (this.isTranslateMode) {
- this.exit();
- } else {
- this.isRotateMode = false;
- this.isTranslateMode = true;
- room.enterTransformMode('translate');
- }
- this.changed = true;
- },
-
- rotate() {
- if (this.isRotateMode) {
- this.exit();
- } else {
- this.isTranslateMode = false;
- this.isRotateMode = true;
- room.enterTransformMode('rotate');
- }
- this.changed = true;
- },
-
- exit() {
- this.isTranslateMode = false;
- this.isRotateMode = false;
- room.exitTransformMode();
- this.changed = true;
- }
- }
-});
-</script>
-
-<style lang="scss" scoped>
-.hveuntkp {
- position: relative;
- min-height: 500px;
-
- > ::v-deep(canvas) {
- display: block;
- }
-}
-</style>
diff --git a/packages/client/src/router.ts b/packages/client/src/router.ts
index 2a07ff37cd..a5ae1177e8 100644
--- a/packages/client/src/router.ts
+++ b/packages/client/src/router.ts
@@ -20,7 +20,6 @@ const defaultRoutes = [
{ path: '/@:acct/:page?', name: 'user', component: page('user/index'), props: route => ({ acct: route.params.acct, page: route.params.page || 'index' }) },
{ path: '/@:user/pages/:page', component: page('page'), props: route => ({ pageName: route.params.page, username: route.params.user }) },
{ path: '/@:user/pages/:pageName/view-source', component: page('page-editor/page-editor'), props: route => ({ initUser: route.params.user, initPageName: route.params.pageName }) },
- { path: '/@:acct/room', props: true, component: page('room/room') },
{ path: '/settings/:page(.*)?', name: 'settings', component: page('settings/index'), props: route => ({ initialPage: route.params.page || null }) },
{ path: '/reset-password/:token?', component: page('reset-password'), props: route => ({ token: route.params.token }) },
{ path: '/signup-complete/:code', component: page('signup-complete'), props: route => ({ code: route.params.code }) },
diff --git a/packages/client/src/scripts/room/furniture.ts b/packages/client/src/scripts/room/furniture.ts
deleted file mode 100644
index 7734e32668..0000000000
--- a/packages/client/src/scripts/room/furniture.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-export type RoomInfo = {
- roomType: string;
- carpetColor: string;
- furnitures: Furniture[];
-};
-
-export type Furniture = {
- id: string; // 同じ家具が複数ある場合にそれぞれを識別するためのIDであり、家具IDではない
- type: string; // こっちが家具ID(chairとか)
- position: {
- x: number;
- y: number;
- z: number;
- };
- rotation: {
- x: number;
- y: number;
- z: number;
- };
- props?: Record<string, any>;
-};
diff --git a/packages/client/src/scripts/room/furnitures.json5 b/packages/client/src/scripts/room/furnitures.json5
deleted file mode 100644
index 4a40994107..0000000000
--- a/packages/client/src/scripts/room/furnitures.json5
+++ /dev/null
@@ -1,407 +0,0 @@
-// 家具メタデータ
-
-// 家具IDはglbファイル及びそのディレクトリ名と一致する必要があります
-
-// 家具にはユーザーが設定できるプロパティを設定可能です:
-//
-// props: {
-// <propname>: <proptype>
-// }
-//
-// proptype一覧:
-// * image ... 画像選択ダイアログを出し、その画像のURLが格納されます
-// * color ... 色選択コントロールを出し、選択された色が格納されます
-
-// 家具にカスタムテクスチャを適用できるようにするには、textureプロパティに以下の追加の情報を含めます:
-// 便宜上そのUVのどの部分にカスタムテクスチャを貼り合わせるかのエリアをテクスチャエリアと呼びます。
-// UVは1024*1024だと仮定します。
-//
-// <key>: {
-// prop: <プロパティ名>,
-// uv: {
-// x: <テクスチャエリアX座標>,
-// y: <テクスチャエリアY座標>,
-// width: <テクスチャエリアの幅>,
-// height: <テクスチャエリアの高さ>,
-// },
-// }
-//
-// <key>には、カスタムテクスチャを適用したいメッシュ名を指定します
-// <プロパティ名>には、カスタムテクスチャとして使用する画像を格納するプロパティ(前述)名を指定します
-
-// 家具にカスタムカラーを適用できるようにするには、colorプロパティに以下の追加の情報を含めます:
-//
-// <key>: <プロパティ名>
-//
-// <key>には、カスタムカラーを適用したいマテリアル名を指定します
-// <プロパティ名>には、カスタムカラーとして使用する色を格納するプロパティ(前述)名を指定します
-
-[
- {
- id: "milk",
- place: "floor"
- },
- {
- id: "bed",
- place: "floor"
- },
- {
- id: "low-table",
- place: "floor",
- props: {
- color: 'color'
- },
- color: {
- Table: 'color'
- }
- },
- {
- id: "desk",
- place: "floor",
- props: {
- color: 'color'
- },
- color: {
- Board: 'color'
- }
- },
- {
- id: "chair",
- place: "floor",
- props: {
- color: 'color'
- },
- color: {
- Chair: 'color'
- }
- },
- {
- id: "chair2",
- place: "floor",
- props: {
- color1: 'color',
- color2: 'color'
- },
- color: {
- Cushion: 'color1',
- Leg: 'color2'
- }
- },
- {
- id: "fan",
- place: "wall"
- },
- {
- id: "pc",
- place: "floor"
- },
- {
- id: "plant",
- place: "floor"
- },
- {
- id: "plant2",
- place: "floor"
- },
- {
- id: "eraser",
- place: "floor"
- },
- {
- id: "pencil",
- place: "floor"
- },
- {
- id: "pudding",
- place: "floor"
- },
- {
- id: "cardboard-box",
- place: "floor"
- },
- {
- id: "cardboard-box2",
- place: "floor"
- },
- {
- id: "cardboard-box3",
- place: "floor"
- },
- {
- id: "book",
- place: "floor",
- props: {
- color: 'color'
- },
- color: {
- Cover: 'color'
- }
- },
- {
- id: "book2",
- place: "floor"
- },
- {
- id: "piano",
- place: "floor"
- },
- {
- id: "facial-tissue",
- place: "floor"
- },
- {
- id: "server",
- place: "floor"
- },
- {
- id: "moon",
- place: "floor"
- },
- {
- id: "corkboard",
- place: "wall"
- },
- {
- id: "mousepad",
- place: "floor",
- props: {
- color: 'color'
- },
- color: {
- Pad: 'color'
- }
- },
- {
- id: "monitor",
- place: "floor",
- props: {
- screen: 'image'
- },
- texture: {
- Screen: {
- prop: 'screen',
- uv: {
- x: 0,
- y: 434,
- width: 1024,
- height: 588,
- },
- },
- },
- },
- {
- id: "tv",
- place: "floor",
- props: {
- screen: 'image'
- },
- texture: {
- Screen: {
- prop: 'screen',
- uv: {
- x: 0,
- y: 434,
- width: 1024,
- height: 588,
- },
- },
- },
- },
- {
- id: "keyboard",
- place: "floor"
- },
- {
- id: "carpet-stripe",
- place: "floor",
- props: {
- color1: 'color',
- color2: 'color'
- },
- color: {
- CarpetAreaA: 'color1',
- CarpetAreaB: 'color2'
- },
- },
- {
- id: "mat",
- place: "floor",
- props: {
- color: 'color'
- },
- color: {
- Mat: 'color'
- }
- },
- {
- id: "color-box",
- place: "floor",
- props: {
- color: 'color'
- },
- color: {
- main: 'color'
- }
- },
- {
- id: "wall-clock",
- place: "wall"
- },
- {
- id: "cube",
- place: "floor",
- props: {
- color: 'color'
- },
- color: {
- Cube: 'color'
- }
- },
- {
- id: "photoframe",
- place: "wall",
- props: {
- photo: 'image',
- color: 'color'
- },
- texture: {
- Photo: {
- prop: 'photo',
- uv: {
- x: 0,
- y: 342,
- width: 1024,
- height: 683,
- },
- },
- },
- color: {
- Frame: 'color'
- }
- },
- {
- id: "pinguin",
- place: "floor",
- props: {
- body: 'color',
- belly: 'color'
- },
- color: {
- Body: 'body',
- Belly: 'belly',
- }
- },
- {
- id: "rubik-cube",
- place: "floor",
- },
- {
- id: "poster-h",
- place: "wall",
- props: {
- picture: 'image'
- },
- texture: {
- Poster: {
- prop: 'picture',
- uv: {
- x: 0,
- y: 277,
- width: 1024,
- height: 745,
- },
- },
- },
- },
- {
- id: "poster-v",
- place: "wall",
- props: {
- picture: 'image'
- },
- texture: {
- Poster: {
- prop: 'picture',
- uv: {
- x: 0,
- y: 0,
- width: 745,
- height: 1024,
- },
- },
- },
- },
- {
- id: "sofa",
- place: "floor",
- props: {
- color: 'color'
- },
- color: {
- Sofa: 'color'
- }
- },
- {
- id: "spiral",
- place: "floor",
- props: {
- color: 'color'
- },
- color: {
- Step: 'color'
- }
- },
- {
- id: "bin",
- place: "floor",
- props: {
- color: 'color'
- },
- color: {
- Bin: 'color'
- }
- },
- {
- id: "cup-noodle",
- place: "floor"
- },
- {
- id: "holo-display",
- place: "floor",
- props: {
- image: 'image'
- },
- texture: {
- Image_Front: {
- prop: 'image',
- uv: {
- x: 0,
- y: 0,
- width: 1024,
- height: 1024,
- },
- },
- Image_Back: {
- prop: 'image',
- uv: {
- x: 0,
- y: 0,
- width: 1024,
- height: 1024,
- },
- },
- },
- },
- {
- id: 'energy-drink',
- place: "floor",
- },
- {
- id: 'doll-ai',
- place: "floor",
- },
- {
- id: 'banknote',
- place: "floor",
- },
-]
diff --git a/packages/client/src/scripts/room/room.ts b/packages/client/src/scripts/room/room.ts
deleted file mode 100644
index 7e04bec646..0000000000
--- a/packages/client/src/scripts/room/room.ts
+++ /dev/null
@@ -1,775 +0,0 @@
-import autobind from 'autobind-decorator';
-import { v4 as uuid } from 'uuid';
-import * as THREE from 'three';
-import { GLTFLoader, GLTF } from 'three/examples/jsm/loaders/GLTFLoader';
-import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
-import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';
-import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js';
-import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js';
-import { BloomPass } from 'three/examples/jsm/postprocessing/BloomPass.js';
-import { FXAAShader } from 'three/examples/jsm/shaders/FXAAShader.js';
-import { TransformControls } from 'three/examples/jsm/controls/TransformControls.js';
-import { Furniture, RoomInfo } from './furniture';
-import { query as urlQuery } from '@/scripts/url';
-const furnitureDefs = require('./furnitures.json5');
-
-THREE.ImageUtils.crossOrigin = '';
-
-type Options = {
- graphicsQuality: Room['graphicsQuality'];
- onChangeSelect: Room['onChangeSelect'];
- useOrthographicCamera: boolean;
-};
-
-/**
- * MisskeyRoom Core Engine
- */
-export class Room {
- private clock: THREE.Clock;
- private scene: THREE.Scene;
- private renderer: THREE.WebGLRenderer;
- private camera: THREE.PerspectiveCamera | THREE.OrthographicCamera;
- private controls: OrbitControls;
- private composer: EffectComposer;
- private mixers: THREE.AnimationMixer[] = [];
- private furnitureControl: TransformControls;
- private roomInfo: RoomInfo;
- private graphicsQuality: 'cheep' | 'low' | 'medium' | 'high' | 'ultra';
- private roomObj: THREE.Object3D;
- private objects: THREE.Object3D[] = [];
- private selectedObject: THREE.Object3D = null;
- private onChangeSelect: Function;
- private isTransformMode = false;
- private renderFrameRequestId: number;
-
- private get canvas(): HTMLCanvasElement {
- return this.renderer.domElement;
- }
-
- private get furnitures(): Furniture[] {
- return this.roomInfo.furnitures;
- }
-
- private set furnitures(furnitures: Furniture[]) {
- this.roomInfo.furnitures = furnitures;
- }
-
- private get enableShadow() {
- return this.graphicsQuality != 'cheep';
- }
-
- private get usePostFXs() {
- return this.graphicsQuality !== 'cheep' && this.graphicsQuality !== 'low';
- }
-
- private get shadowQuality() {
- return (
- this.graphicsQuality === 'ultra' ? 16384 :
- this.graphicsQuality === 'high' ? 8192 :
- this.graphicsQuality === 'medium' ? 4096 :
- this.graphicsQuality === 'low' ? 1024 :
- 0); // cheep
- }
-
- constructor(user, isMyRoom, roomInfo: RoomInfo, container: Element, options: Options) {
- this.roomInfo = roomInfo;
- this.graphicsQuality = options.graphicsQuality;
- this.onChangeSelect = options.onChangeSelect;
-
- this.clock = new THREE.Clock(true);
-
- //#region Init a scene
- this.scene = new THREE.Scene();
-
- const width = container.clientWidth;
- const height = container.clientHeight;
-
- //#region Init a renderer
- this.renderer = new THREE.WebGLRenderer({
- antialias: false,
- stencil: false,
- alpha: false,
- powerPreference:
- this.graphicsQuality === 'ultra' ? 'high-performance' :
- this.graphicsQuality === 'high' ? 'high-performance' :
- this.graphicsQuality === 'medium' ? 'default' :
- this.graphicsQuality === 'low' ? 'low-power' :
- 'low-power' // cheep
- });
-
- this.renderer.setPixelRatio(window.devicePixelRatio);
- this.renderer.setSize(width, height);
- this.renderer.autoClear = false;
- this.renderer.setClearColor(new THREE.Color(0x051f2d));
- this.renderer.shadowMap.enabled = this.enableShadow;
- this.renderer.shadowMap.type =
- this.graphicsQuality === 'ultra' ? THREE.PCFSoftShadowMap :
- this.graphicsQuality === 'high' ? THREE.PCFSoftShadowMap :
- this.graphicsQuality === 'medium' ? THREE.PCFShadowMap :
- this.graphicsQuality === 'low' ? THREE.BasicShadowMap :
- THREE.BasicShadowMap; // cheep
-
- container.insertBefore(this.canvas, container.firstChild);
- //#endregion
-
- //#region Init a camera
- this.camera = options.useOrthographicCamera
- ? new THREE.OrthographicCamera(
- width / - 2, width / 2, height / 2, height / - 2, -10, 10)
- : new THREE.PerspectiveCamera(45, width / height);
-
- if (options.useOrthographicCamera) {
- this.camera.position.x = 2;
- this.camera.position.y = 2;
- this.camera.position.z = 2;
- this.camera.zoom = 100;
- this.camera.updateProjectionMatrix();
- } else {
- this.camera.position.x = 5;
- this.camera.position.y = 2;
- this.camera.position.z = 5;
- }
-
- this.scene.add(this.camera);
- //#endregion
-
- //#region AmbientLight
- const ambientLight = new THREE.AmbientLight(0xffffff, 1);
- this.scene.add(ambientLight);
- //#endregion
-
- if (this.graphicsQuality !== 'cheep') {
- //#region Room light
- const roomLight = new THREE.SpotLight(0xffffff, 0.1);
-
- roomLight.position.set(0, 8, 0);
- roomLight.castShadow = this.enableShadow;
- roomLight.shadow.bias = -0.0001;
- roomLight.shadow.mapSize.width = this.shadowQuality;
- roomLight.shadow.mapSize.height = this.shadowQuality;
- roomLight.shadow.camera.near = 0.1;
- roomLight.shadow.camera.far = 9;
- roomLight.shadow.camera.fov = 45;
-
- this.scene.add(roomLight);
- //#endregion
- }
-
- //#region Out light
- const outLight1 = new THREE.SpotLight(0xffffff, 0.4);
- outLight1.position.set(9, 3, -2);
- outLight1.castShadow = this.enableShadow;
- outLight1.shadow.bias = -0.001; // アクネ、アーチファクト対策 その代わりピーターパンが発生する可能性がある
- outLight1.shadow.mapSize.width = this.shadowQuality;
- outLight1.shadow.mapSize.height = this.shadowQuality;
- outLight1.shadow.camera.near = 6;
- outLight1.shadow.camera.far = 15;
- outLight1.shadow.camera.fov = 45;
- this.scene.add(outLight1);
-
- const outLight2 = new THREE.SpotLight(0xffffff, 0.2);
- outLight2.position.set(-2, 3, 9);
- outLight2.castShadow = false;
- outLight2.shadow.bias = -0.001; // アクネ、アーチファクト対策 その代わりピーターパンが発生する可能性がある
- outLight2.shadow.camera.near = 6;
- outLight2.shadow.camera.far = 15;
- outLight2.shadow.camera.fov = 45;
- this.scene.add(outLight2);
- //#endregion
-
- //#region Init a controller
- this.controls = new OrbitControls(this.camera, this.canvas);
-
- this.controls.target.set(0, 1, 0);
- this.controls.enableZoom = true;
- this.controls.enablePan = isMyRoom;
- this.controls.minPolarAngle = 0;
- this.controls.maxPolarAngle = Math.PI / 2;
- this.controls.minAzimuthAngle = 0;
- this.controls.maxAzimuthAngle = Math.PI / 2;
- this.controls.enableDamping = true;
- this.controls.dampingFactor = 0.2;
- //#endregion
-
- //#region POST FXs
- if (!this.usePostFXs) {
- this.composer = null;
- } else {
- const renderTarget = new THREE.WebGLRenderTarget(width, height, {
- minFilter: THREE.LinearFilter,
- magFilter: THREE.LinearFilter,
- format: THREE.RGBFormat,
- stencilBuffer: false,
- });
-
- const fxaa = new ShaderPass(FXAAShader);
- fxaa.uniforms['resolution'].value = new THREE.Vector2(1 / width, 1 / height);
- fxaa.renderToScreen = true;
-
- this.composer = new EffectComposer(this.renderer, renderTarget);
- this.composer.addPass(new RenderPass(this.scene, this.camera));
- if (this.graphicsQuality === 'ultra') {
- this.composer.addPass(new BloomPass(0.25, 30, 128.0, 512));
- }
- this.composer.addPass(fxaa);
- }
- //#endregion
- //#endregion
-
- //#region Label
- //#region Avatar
- const avatarUrl = `/proxy/?${urlQuery({ url: user.avatarUrl })}`;
-
- const textureLoader = new THREE.TextureLoader();
- textureLoader.crossOrigin = 'anonymous';
-
- const iconTexture = textureLoader.load(avatarUrl);
- iconTexture.wrapS = THREE.RepeatWrapping;
- iconTexture.wrapT = THREE.RepeatWrapping;
- iconTexture.anisotropy = 16;
-
- const avatarMaterial = new THREE.MeshBasicMaterial({
- map: iconTexture,
- side: THREE.DoubleSide,
- alphaTest: 0.5
- });
-
- const iconGeometry = new THREE.PlaneGeometry(1, 1);
-
- const avatarObject = new THREE.Mesh(iconGeometry, avatarMaterial);
- avatarObject.position.set(-3, 2.5, 2);
- avatarObject.rotation.y = Math.PI / 2;
- avatarObject.castShadow = false;
-
- this.scene.add(avatarObject);
- //#endregion
-
- //#region Username
- const name = user.username;
-
- new THREE.FontLoader().load('/assets/fonts/helvetiker_regular.typeface.json', font => {
- const nameGeometry = new THREE.TextGeometry(name, {
- size: 0.5,
- height: 0,
- curveSegments: 8,
- font: font,
- bevelThickness: 0,
- bevelSize: 0,
- bevelEnabled: false
- });
-
- const nameMaterial = new THREE.MeshLambertMaterial({
- color: 0xffffff
- });
-
- const nameObject = new THREE.Mesh(nameGeometry, nameMaterial);
- nameObject.position.set(-3, 2.25, 1.25);
- nameObject.rotation.y = Math.PI / 2;
- nameObject.castShadow = false;
-
- this.scene.add(nameObject);
- });
- //#endregion
- //#endregion
-
- //#region Interaction
- if (isMyRoom) {
- this.furnitureControl = new TransformControls(this.camera, this.canvas);
- this.scene.add(this.furnitureControl);
-
- // Hover highlight
- this.canvas.onmousemove = this.onmousemove;
-
- // Click
- this.canvas.onmousedown = this.onmousedown;
- }
- //#endregion
-
- //#region Init room
- this.loadRoom();
- //#endregion
-
- //#region Load furnitures
- for (const furniture of this.furnitures) {
- this.loadFurniture(furniture).then(obj => {
- this.scene.add(obj.scene);
- this.objects.push(obj.scene);
- });
- }
- //#endregion
-
- // Start render
- if (this.usePostFXs) {
- this.renderWithPostFXs();
- } else {
- this.renderWithoutPostFXs();
- }
- }
-
- @autobind
- private renderWithoutPostFXs() {
- this.renderFrameRequestId =
- window.requestAnimationFrame(this.renderWithoutPostFXs);
-
- // Update animations
- const clock = this.clock.getDelta();
- for (const mixer of this.mixers) {
- mixer.update(clock);
- }
-
- this.controls.update();
- this.renderer.render(this.scene, this.camera);
- }
-
- @autobind
- private renderWithPostFXs() {
- this.renderFrameRequestId =
- window.requestAnimationFrame(this.renderWithPostFXs);
-
- // Update animations
- const clock = this.clock.getDelta();
- for (const mixer of this.mixers) {
- mixer.update(clock);
- }
-
- this.controls.update();
- this.renderer.clear();
- this.composer.render();
- }
-
- @autobind
- private loadRoom() {
- const type = this.roomInfo.roomType;
- new GLTFLoader().load(`/client-assets/room/rooms/${type}/${type}.glb`, gltf => {
- gltf.scene.traverse(child => {
- if (!(child instanceof THREE.Mesh)) return;
-
- child.receiveShadow = this.enableShadow;
-
- child.material = new THREE.MeshLambertMaterial({
- color: (child.material as THREE.MeshStandardMaterial).color,
- map: (child.material as THREE.MeshStandardMaterial).map,
- name: (child.material as THREE.MeshStandardMaterial).name,
- });
-
- // 異方性フィルタリング
- if ((child.material as THREE.MeshLambertMaterial).map && this.graphicsQuality !== 'cheep') {
- (child.material as THREE.MeshLambertMaterial).map.minFilter = THREE.LinearMipMapLinearFilter;
- (child.material as THREE.MeshLambertMaterial).map.magFilter = THREE.LinearMipMapLinearFilter;
- (child.material as THREE.MeshLambertMaterial).map.anisotropy = 8;
- }
- });
-
- gltf.scene.position.set(0, 0, 0);
-
- this.scene.add(gltf.scene);
- this.roomObj = gltf.scene;
- if (this.roomInfo.roomType === 'default') {
- this.applyCarpetColor();
- }
- });
- }
-
- @autobind
- private loadFurniture(furniture: Furniture) {
- const def = furnitureDefs.find(d => d.id === furniture.type);
- return new Promise<GLTF>((res, rej) => {
- const loader = new GLTFLoader();
- loader.load(`/client-assets/room/furnitures/${furniture.type}/${furniture.type}.glb`, gltf => {
- const model = gltf.scene;
-
- // Load animation
- if (gltf.animations.length > 0) {
- const mixer = new THREE.AnimationMixer(model);
- this.mixers.push(mixer);
- for (const clip of gltf.animations) {
- mixer.clipAction(clip).play();
- }
- }
-
- model.name = furniture.id;
- model.position.x = furniture.position.x;
- model.position.y = furniture.position.y;
- model.position.z = furniture.position.z;
- model.rotation.x = furniture.rotation.x;
- model.rotation.y = furniture.rotation.y;
- model.rotation.z = furniture.rotation.z;
-
- model.traverse(child => {
- if (!(child instanceof THREE.Mesh)) return;
- child.castShadow = this.enableShadow;
- child.receiveShadow = this.enableShadow;
- (child.material as THREE.MeshStandardMaterial).metalness = 0;
-
- // 異方性フィルタリング
- if ((child.material as THREE.MeshStandardMaterial).map && this.graphicsQuality !== 'cheep') {
- (child.material as THREE.MeshStandardMaterial).map.minFilter = THREE.LinearMipMapLinearFilter;
- (child.material as THREE.MeshStandardMaterial).map.magFilter = THREE.LinearMipMapLinearFilter;
- (child.material as THREE.MeshStandardMaterial).map.anisotropy = 8;
- }
- });
-
- if (def.color) { // カスタムカラー
- this.applyCustomColor(model);
- }
-
- if (def.texture) { // カスタムテクスチャ
- this.applyCustomTexture(model);
- }
-
- res(gltf);
- }, null, rej);
- });
- }
-
- @autobind
- private applyCarpetColor() {
- this.roomObj.traverse(child => {
- if (!(child instanceof THREE.Mesh)) return;
- if (child.material &&
- (child.material as THREE.MeshStandardMaterial).name &&
- (child.material as THREE.MeshStandardMaterial).name === 'Carpet'
- ) {
- const colorHex = parseInt(this.roomInfo.carpetColor.substr(1), 16);
- (child.material as THREE.MeshStandardMaterial).color.setHex(colorHex);
- }
- });
- }
-
- @autobind
- private applyCustomColor(model: THREE.Object3D) {
- const furniture = this.furnitures.find(furniture => furniture.id === model.name);
- const def = furnitureDefs.find(d => d.id === furniture.type);
- if (def.color == null) return;
- model.traverse(child => {
- if (!(child instanceof THREE.Mesh)) return;
- for (const t of Object.keys(def.color)) {
- if (!child.material ||
- !(child.material as THREE.MeshStandardMaterial).name ||
- (child.material as THREE.MeshStandardMaterial).name !== t
- ) continue;
-
- const prop = def.color[t];
- const val = furniture.props ? furniture.props[prop] : undefined;
-
- if (val == null) continue;
-
- const colorHex = parseInt(val.substr(1), 16);
- (child.material as THREE.MeshStandardMaterial).color.setHex(colorHex);
- }
- });
- }
-
- @autobind
- private applyCustomTexture(model: THREE.Object3D) {
- const furniture = this.furnitures.find(furniture => furniture.id === model.name);
- const def = furnitureDefs.find(d => d.id === furniture.type);
- if (def.texture == null) return;
-
- model.traverse(child => {
- if (!(child instanceof THREE.Mesh)) return;
- for (const t of Object.keys(def.texture)) {
- if (child.name !== t) continue;
-
- const prop = def.texture[t].prop;
- const val = furniture.props ? furniture.props[prop] : undefined;
-
- if (val == null) continue;
-
- const canvas = document.createElement('canvas');
- canvas.height = 1024;
- canvas.width = 1024;
-
- child.material = new THREE.MeshLambertMaterial({
- emissive: 0x111111,
- side: THREE.DoubleSide,
- alphaTest: 0.5,
- });
-
- const img = new Image();
- img.crossOrigin = 'anonymous';
- img.onload = () => {
- const uvInfo = def.texture[t].uv;
-
- const ctx = canvas.getContext('2d');
- ctx.drawImage(img,
- 0, 0, img.width, img.height,
- uvInfo.x, uvInfo.y, uvInfo.width, uvInfo.height);
-
- const texture = new THREE.Texture(canvas);
- texture.wrapS = THREE.RepeatWrapping;
- texture.wrapT = THREE.RepeatWrapping;
- texture.anisotropy = 16;
- texture.flipY = false;
-
- (child.material as THREE.MeshLambertMaterial).map = texture;
- (child.material as THREE.MeshLambertMaterial).needsUpdate = true;
- (child.material as THREE.MeshLambertMaterial).map.needsUpdate = true;
- };
- img.src = val;
- }
- });
- }
-
- @autobind
- private onmousemove(ev: MouseEvent) {
- if (this.isTransformMode) return;
-
- const rect = (ev.target as HTMLElement).getBoundingClientRect();
- const x = ((ev.clientX - rect.left) / rect.width) * 2 - 1;
- const y = -((ev.clientY - rect.top) / rect.height) * 2 + 1;
- const pos = new THREE.Vector2(x, y);
-
- this.camera.updateMatrixWorld();
-
- const raycaster = new THREE.Raycaster();
- raycaster.setFromCamera(pos, this.camera);
-
- const intersects = raycaster.intersectObjects(this.objects, true);
-
- for (const object of this.objects) {
- if (this.isSelectedObject(object)) continue;
- object.traverse(child => {
- if (child instanceof THREE.Mesh) {
- (child.material as THREE.MeshStandardMaterial).emissive.setHex(0x000000);
- }
- });
- }
-
- if (intersects.length > 0) {
- const intersected = this.getRoot(intersects[0].object);
- if (this.isSelectedObject(intersected)) return;
- intersected.traverse(child => {
- if (child instanceof THREE.Mesh) {
- (child.material as THREE.MeshStandardMaterial).emissive.setHex(0x191919);
- }
- });
- }
- }
-
- @autobind
- private onmousedown(ev: MouseEvent) {
- if (this.isTransformMode) return;
- if (ev.target !== this.canvas || ev.button !== 0) return;
-
- const rect = (ev.target as HTMLElement).getBoundingClientRect();
- const x = ((ev.clientX - rect.left) / rect.width) * 2 - 1;
- const y = -((ev.clientY - rect.top) / rect.height) * 2 + 1;
- const pos = new THREE.Vector2(x, y);
-
- this.camera.updateMatrixWorld();
-
- const raycaster = new THREE.Raycaster();
- raycaster.setFromCamera(pos, this.camera);
-
- const intersects = raycaster.intersectObjects(this.objects, true);
-
- for (const object of this.objects) {
- object.traverse(child => {
- if (child instanceof THREE.Mesh) {
- (child.material as THREE.MeshStandardMaterial).emissive.setHex(0x000000);
- }
- });
- }
-
- if (intersects.length > 0) {
- const selectedObj = this.getRoot(intersects[0].object);
- this.selectFurniture(selectedObj);
- } else {
- this.selectedObject = null;
- this.onChangeSelect(null);
- }
- }
-
- @autobind
- private getRoot(obj: THREE.Object3D): THREE.Object3D {
- let found = false;
- let x = obj.parent;
- while (!found) {
- if (x.parent.parent == null) {
- found = true;
- } else {
- x = x.parent;
- }
- }
- return x;
- }
-
- @autobind
- private isSelectedObject(obj: THREE.Object3D): boolean {
- if (this.selectedObject == null) {
- return false;
- } else {
- return obj.name === this.selectedObject.name;
- }
- }
-
- @autobind
- private selectFurniture(obj: THREE.Object3D) {
- this.selectedObject = obj;
- this.onChangeSelect(obj);
- obj.traverse(child => {
- if (child instanceof THREE.Mesh) {
- (child.material as THREE.MeshStandardMaterial).emissive.setHex(0xff0000);
- }
- });
- }
-
- /**
- * 家具の移動/回転モードにします
- * @param type 移動か回転か
- */
- @autobind
- public enterTransformMode(type: 'translate' | 'rotate') {
- this.isTransformMode = true;
- this.furnitureControl.setMode(type);
- this.furnitureControl.attach(this.selectedObject);
- this.controls.enableRotate = false;
- }
-
- /**
- * 家具の移動/回転モードを終了します
- */
- @autobind
- public exitTransformMode() {
- this.isTransformMode = false;
- this.furnitureControl.detach();
- this.controls.enableRotate = true;
- }
-
- /**
- * 家具プロパティを更新します
- * @param key プロパティ名
- * @param value 値
- */
- @autobind
- public updateProp(key: string, value: any) {
- const furniture = this.furnitures.find(furniture => furniture.id === this.selectedObject.name);
- if (furniture.props == null) furniture.props = {};
- furniture.props[key] = value;
- this.applyCustomColor(this.selectedObject);
- this.applyCustomTexture(this.selectedObject);
- }
-
- /**
- * 部屋に家具を追加します
- * @param type 家具の種類
- */
- @autobind
- public addFurniture(type: string) {
- const furniture = {
- id: uuid(),
- type: type,
- position: {
- x: 0,
- y: 0,
- z: 0,
- },
- rotation: {
- x: 0,
- y: 0,
- z: 0,
- },
- };
-
- this.furnitures.push(furniture);
-
- this.loadFurniture(furniture).then(obj => {
- this.scene.add(obj.scene);
- this.objects.push(obj.scene);
- });
- }
-
- /**
- * 現在選択されている家具を部屋から削除します
- */
- @autobind
- public removeFurniture() {
- this.exitTransformMode();
- const obj = this.selectedObject;
- this.scene.remove(obj);
- this.objects = this.objects.filter(object => object.name !== obj.name);
- this.furnitures = this.furnitures.filter(furniture => furniture.id !== obj.name);
- this.selectedObject = null;
- this.onChangeSelect(null);
- }
-
- /**
- * 全ての家具を部屋から削除します
- */
- @autobind
- public removeAllFurnitures() {
- this.exitTransformMode();
- for (const obj of this.objects) {
- this.scene.remove(obj);
- }
- this.objects = [];
- this.furnitures = [];
- this.selectedObject = null;
- this.onChangeSelect(null);
- }
-
- /**
- * 部屋の床の色を変更します
- * @param color 色
- */
- @autobind
- public updateCarpetColor(color: string) {
- this.roomInfo.carpetColor = color;
- this.applyCarpetColor();
- }
-
- /**
- * 部屋の種類を変更します
- * @param type 種類
- */
- @autobind
- public changeRoomType(type: string) {
- this.roomInfo.roomType = type;
- this.scene.remove(this.roomObj);
- this.loadRoom();
- }
-
- /**
- * 部屋データを取得します
- */
- @autobind
- public getRoomInfo() {
- for (const obj of this.objects) {
- const furniture = this.furnitures.find(f => f.id === obj.name);
- furniture.position.x = obj.position.x;
- furniture.position.y = obj.position.y;
- furniture.position.z = obj.position.z;
- furniture.rotation.x = obj.rotation.x;
- furniture.rotation.y = obj.rotation.y;
- furniture.rotation.z = obj.rotation.z;
- }
-
- return this.roomInfo;
- }
-
- /**
- * 選択されている家具を取得します
- */
- @autobind
- public getSelectedObject() {
- return this.selectedObject;
- }
-
- @autobind
- public findFurnitureById(id: string) {
- return this.furnitures.find(furniture => furniture.id === id);
- }
-
- /**
- * レンダリングを終了します
- */
- @autobind
- public destroy() {
- // Stop render loop
- window.cancelAnimationFrame(this.renderFrameRequestId);
-
- this.controls.dispose();
- this.scene.dispose();
- }
-}
diff --git a/packages/client/src/store.ts b/packages/client/src/store.ts
index dc9c3b7b9e..f2732c57d3 100644
--- a/packages/client/src/store.ts
+++ b/packages/client/src/store.ts
@@ -257,8 +257,6 @@ export class ColdDeviceStorage {
sound_channel: { type: 'syuilo/square-pico', volume: 1 },
sound_reversiPutBlack: { type: 'syuilo/kick', volume: 0.3 },
sound_reversiPutWhite: { type: 'syuilo/snare', volume: 0.3 },
- roomGraphicsQuality: 'medium' as 'cheep' | 'low' | 'medium' | 'high' | 'ultra',
- roomUseOrthographicCamera: true,
};
public static watchers = [];