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,