bigger
This commit is contained in:
@@ -15,7 +15,7 @@ Layout and editing UI. No optimizer yet.
|
||||
|
||||
**Editing (Phase 2)**
|
||||
- Click an item to select it (blue outline); click empty floor to deselect (Escape/Done too). Dragging still moves. Selecting opens the item panel in the sidebar (replaces tiles / type menu).
|
||||
- Item panel (chairs have no rotation controls; every other type does): Rotate 90 button + a circular angle dial (`AngleDial`: drag the knob around the ring, Shift snaps to 15°, arrows/scroll nudge 1°); Lock/Unlock; Delete (also Delete/Backspace key, ignored while typing in an input); "Seats at this table" wheel for tables (per-item override, "Reset to default" link when overridden); Size wheels (0.3-6 m, 0.1 steps; screens show only Length).
|
||||
- Item panel (chairs have no rotation controls; every other type does): a circular angle dial (`AngleDial`: drag the knob around the ring, Shift snaps to 15°, arrows/scroll nudge 1°, hover + type an angle); Lock/Unlock; Delete (also Delete/Backspace key, ignored while typing in an input); "Seats at this table" wheel for tables (per-item override, "Reset to default" link when overridden); Size wheels (0.3-6 m, 0.1 steps; screens show only Length).
|
||||
- Rotation turns around the item's center and collision/wall clamping use the rotated bounding box (`boundsOf`). A rotate/size change is pushed back inside the walls, then rejected if it would overlap (`tryUpdate`).
|
||||
- Locked items can't be dragged or rotated and show a padlock. (Size, seats and delete are still allowed on locked items.)
|
||||
- Delete frees inventory automatically (remaining is derived from `items`).
|
||||
|
||||
Vendored
+41
File diff suppressed because one or more lines are too long
Vendored
-41
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>FurnOp</title>
|
||||
<script type="module" crossorigin src="/assets/index-DDOav9ki.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-CikQ7moU.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
@@ -51,13 +51,6 @@ export function ItemPanel({ item, config, onPatch, onDelete, onClose }: Props) {
|
||||
<div>
|
||||
<div style={label}>Rotation</div>
|
||||
<AngleDial value={item.rotation} disabled={item.locked} onChange={(v) => patch({ rotation: v })} />
|
||||
<button
|
||||
style={{ ...btn, marginTop: 8, width: "100%", opacity: item.locked ? 0.45 : 1 }}
|
||||
disabled={item.locked}
|
||||
onClick={() => patch({ rotation: (item.rotation + 90) % 360 })}
|
||||
>
|
||||
Rotate 90°
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user