This commit is contained in:
syuilo
2026-05-26 15:00:14 +09:00
parent f0375aa420
commit 2efd52f400
5 changed files with 44 additions and 32 deletions
@@ -229,13 +229,20 @@ let latestSavedRoomState = deepClone(props.room.def) as unknown as RoomState;
let initialRoomState = latestSavedRoomState;
// 後方互換性のため
for (const obj of latestSavedRoomState.installedObjects) {
for (const obj of initialRoomState.installedObjects) {
if (obj.options.customPicture != null) {
obj.options.image = {
type: null,
};
delete obj.options.customPicture;
}
if (obj.type === 'ironFrameShelf5') {
obj.type = 'ironFrameShelf';
} else if (obj.type === 'ironFrameShelf4') {
obj.type = 'ironFrameShelf';
} else if (obj.type === 'ironFrameShelf3') {
obj.type = 'ironFrameShelf';
}
}
let latestSavedAttachments = {
@@ -42,7 +42,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkSwitch :modelValue="options[k]" @update:modelValue="v => emit('update', k, v)"></MkSwitch>
</div>
<div v-else-if="s.type === 'enum'">
<MkSelect :items="s.enum.map(e => ({ label: e.label, value: e.value }))" :modelValue="options[k]" @update:modelValue="v => emit('update', k, v)"></MkSelect>
<MkSelect :items="s.enum.map(e => ({ label: OBJECT_UI_DEFS[schema.id].options[k].enum[e.value].label, value: e.value }))" :modelValue="options[k]" @update:modelValue="v => emit('update', k, v)"></MkSelect>
</div>
<div v-else-if="s.type === 'string'">
<MkInput type="text" :modelValue="options[k]" @update:modelValue="v => emit('update', k, v)"></MkInput>
@@ -51,7 +51,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkRange :continuousUpdate="true" :min="s.min" :max="s.max" :step="s.step" :modelValue="options[k]" @update:modelValue="v => emit('update', k, v)"></MkRange>
</div>
<div v-else-if="s.type === 'image'" class="_gaps_s">
<MkSelect :items="[{ label: i18n.ts.none, value: null }, { label: i18n.ts.custom, value: '_custom_' }, ...(s.presets.length > 0 ? [{ type: 'divider' } as const] : []), ...s.presets.map(e => ({ label: e.label, value: e.value }))]" :modelValue="options[k].type" @update:modelValue="v => changeImageType(k, v)"></MkSelect>
<MkSelect :items="[{ label: i18n.ts.none, value: null }, { label: i18n.ts.custom, value: '_custom_' }, ...(s.presets.length > 0 ? [{ type: 'divider' } as const] : []), ...s.presets.map(e => ({ label: OBJECT_UI_DEFS[schema.id].options[k].presets[e.value].label, value: e.value }))]" :modelValue="options[k].type" @update:modelValue="v => changeImageType(k, v)"></MkSelect>
<div v-if="options[k].type === '_custom_'" class="_buttons">
<MkButton primary inline @click="changeImage(k)"><i class="ti ti-cloud"></i> {{ i18n.ts.choose }}...</MkButton>
@@ -4,11 +4,11 @@
*/
import { defineObjectUi } from '../defineObjectUi.js';
import type { ironFrameShelf } from './ironFrameShelf.js';
import type { ironFrameShelf_schema } from 'misskey-world/src/room/objects/ironFrameShelf.schema.js';
import { i18n } from '@/i18n.js';
export const ironFrameShelf_ui = defineObjectUi<typeof ironFrameShelf>({
name: i18n.ts._miRoom._objects.ironFrameShelf5,
export const ironFrameShelf_ui = defineObjectUi<typeof ironFrameShelf_schema>({
name: i18n.ts._miRoom._objects.ironFrameShelf,
options: {
height: {
label: i18n.ts._miRoom._objects._ironFrameShelf.height,
+17 -13
View File
@@ -13533,7 +13533,7 @@ export interface Locale extends ILocale {
*/
"width": string;
/**
*
*
*/
"withBack": string;
};
@@ -13936,7 +13936,7 @@ export interface Locale extends ILocale {
"screenBrightness": string;
};
/**
*
*
*/
"largeMousepad": string;
"_largeMousepad": {
@@ -14081,7 +14081,7 @@ export interface Locale extends ILocale {
*/
"empty": string;
/**
*
*
*/
"variation": string;
/**
@@ -14093,11 +14093,11 @@ export interface Locale extends ILocale {
*/
"variation_mineralWater": string;
/**
*
*
*/
"withCap": string;
/**
*
*
*/
"withLabel": string;
};
@@ -14117,7 +14117,7 @@ export interface Locale extends ILocale {
"pictureFrame": string;
"_pictureFrame": {
/**
*
*
*/
"depth": string;
/**
@@ -14125,7 +14125,7 @@ export interface Locale extends ILocale {
*/
"frameMat": string;
/**
*
*
*/
"frameThickness": string;
/**
@@ -14205,7 +14205,7 @@ export interface Locale extends ILocale {
*/
"seed": string;
/**
*
*
*/
"stackVertically": string;
/**
@@ -14396,7 +14396,7 @@ export interface Locale extends ILocale {
"image": string;
};
/**
*
*
*/
"tabletopGlassPictureFrame": string;
"_tabletopGlassPictureFrame": {
@@ -14440,7 +14440,7 @@ export interface Locale extends ILocale {
"width": string;
};
/**
* LCDボタンコントローラー
* LCDボタン付き卓上コントローラー
*/
"tabletopLcdButtonsController": string;
"_tabletopLcdButtonsController": {
@@ -14458,12 +14458,12 @@ export interface Locale extends ILocale {
"screenBrightness": string;
};
/**
*
*
*/
"tabletopPictureFrame": string;
"_tabletopPictureFrame": {
/**
*
*
*/
"depth": string;
/**
@@ -14471,7 +14471,7 @@ export interface Locale extends ILocale {
*/
"frameMat": string;
/**
*
*
*/
"frameThickness": string;
/**
@@ -14701,6 +14701,10 @@ export interface Locale extends ILocale {
*
*/
"woodSoundAbsorbingPanel": string;
/**
*
*/
"ironFrameShelf": string;
"_ironFrameShelf": {
/**
*