editor: game running badge and stop game button during play-tests, crosshair for play from camera position while shift is held, readable outliner names, plain error dialogs with details and no stuck loading status, inspector hints wrap with the dock
This commit is contained in:
1 parent
d9f1b8c2fe
commit
59531a60b8
26 files changed
+984
-67
No files matched your search
+6
-2
@@ -113,7 +113,9 @@ same id again replaces (panels, tools, actions, asset tabs, layers).
|
||||
| `LevelTemplate` | `fill(Scene)` adds nodes directly (no undo) before the editor shows the new level |
|
||||
| `LevelCheck` | adds `Problem.error/warning/info(msg, node)`; errors block Build/Play |
|
||||
| `Icons` | vector icons by name; `Icons.register(name, painter)` for your own (16×16 Java2D); `Icons.swatch(colour, w, h)` |
|
||||
| `Widgets`, `util.SwingListeners` | `Widgets.button(text, icon, tip, run)`, `Widgets.listCell(c, list, selected)`; `onTextChange`, `onMenuOpen` |
|
||||
| `Widgets`, `util.SwingListeners` | `Widgets.button(text, icon, tip, run)`, `Widgets.listCell(c, list, selected)`, `Widgets.wrappingLabel(html)` (help text that wraps at the dock width – use it instead of `<body style='width:…'>`); `onTextChange`, `onMenuOpen` |
|
||||
| `ErrorDialog` | `ctx.error(title, t)` uses it: plain sentence (`ErrorDialog.plain(t)`, no exception class names) + collapsible **Details** (stack trace) |
|
||||
| Game state | `ctx.setGameRunning(what, stop)` (default no-op): while a play-test game runs the status bar shows "Game running: what" and the toolbar Play button becomes **Stop game** (runs `stop`); `null` resets. `PlaytestRunner` sets it on launch and clears it when its watcher sees the game exit |
|
||||
| `AssetDrop` | `register(kind, handler)`; `dragSource(list, value → payload(kind, data))` makes a list draggable into the viewport |
|
||||
| `EditorPrefs` | `ctx.prefs()` JSON settings in `<data>/editor/settings.json`; prefix your keys |
|
||||
| `NodeCopy` | duplicate/snapshot nodes (fresh ids) |
|
||||
@@ -124,6 +126,7 @@ game space (`ToolEvent.toGame` / `toExport`). Drop/placement points: `ctx.ground
|
||||
|
||||
### Render additions used by tools (backwards compatible, `editor.render`)
|
||||
|
||||
`Viewport.setHudOverlay(pixels)` (second pixel overlay independent of the tool, e.g. the Shift+F5 crosshair),
|
||||
`Viewport.setInput(ViewportInput)` (tool hook: left-button press/drag/release not on the gizmo, moves,
|
||||
keys), `setToolOverlay(depthTested, onTop)`, `setScreenOverlay(pixels)` (marquee), `unproject(x, y,
|
||||
depth)` public, `isFlying()`, `canvas()`; `RenderScene.overlaysChanged()`; `LevelSceneAdapter.mesh/page/collision`
|
||||
@@ -157,7 +160,8 @@ public; invisible tile instances are no longer baked into chunks; `History.undoL
|
||||
3; backup first) unlocked up to the level if needed and map cursor on it → start the game.
|
||||
* **Boot to level** (phase 3, `editor.tools.playtest`, `notes/editor-playtest.md`): Play now also
|
||||
applies the exe mod `boot-to-level`, so the game loads the level directly (no menus) and Escape
|
||||
quits; Shift+F5 = play from the camera position. The old menu-based run is still available
|
||||
quits; Shift+F5 = play from the camera position (holding Shift or hovering the action shows a green/red
|
||||
crosshair at that point). While the game runs: "Game running" badge + **Stop game** button (see Game state). The old menu-based run is still available
|
||||
(Level → *Play boots straight into the level* off).
|
||||
`-Dllamamod.editor.noLaunch=true` skips the launch (tests start the game through apptest).
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 78 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 167 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 100 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 163 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 161 KiB |
@@ -59,10 +59,10 @@ Severity: **H** = blocks or seriously misleads; **M** = friction every session;
|
||||
| 20 | L | Open original level | The description was clipped (the dialog was packed before the text was set), and the selected row's id was grey on orange. | **Fixed** |
|
||||
| 21 | L | Status bar | The last-build label was cut ("Built 03:37:16 · 6158 KB · 2 w…"). | **Fixed**: "Built 03:37 · 6.0 MB · 2 warnings" |
|
||||
| 22 | M | New level | A new level keeps the base level's 13 zones and 30 lights. Their outlines float far from the 16×14 floor (pink boxes in the sky), which is confusing in an empty level. | **Fixed (0.2.0)**: new projects keep only the start zone and the directional lights; teleport zones, point lights, waypoints and region masks of the base are removed (stored as edits, old projects unchanged). Directional light markers are drawn above the player start |
|
||||
| 23 | M | Play-test | While the game runs, nothing in the editor says so: the status line falls back to "Ready" after 6 s. | Not fixed. It needs a sticky status or a "Playing…" state of the Play button (a shell API addition) |
|
||||
| 24 | L | Shift+F5 | There is no mark in the viewport showing which point "the middle of the view" is. | Not fixed. Suggestion: a small crosshair while Shift is held |
|
||||
| 25 | L | Outliner | Rows show technical ids (`brush:n19`, `strat:6`). Several brushes are all called "Floor". | Not fixed (cosmetic) |
|
||||
| 26 | L | Inspector hints | Help texts in tool sections use fixed 215–230 px HTML widths, so they don't use a wider dock. | Not fixed (cosmetic) |
|
||||
| 23 | M | Play-test | While the game runs, nothing in the editor says so: the status line falls back to "Ready" after 6 s. | Fixed (edui): `EditorContext.setGameRunning(what, stop)`; while the play-test game runs the status bar shows a green "Game running: <level>" badge and the toolbar Play button becomes **Stop game**; both reset when the watcher sees the game exit (`img/editor/ui_playtest_running.jpg`) |
|
||||
| 24 | L | Shift+F5 | There is no mark in the viewport showing which point "the middle of the view" is. | Fixed (edui): crosshair in the middle of the viewport while Shift is held (300 ms delay, hidden while a mouse button is down) or while *Play from camera position* is hovered; green = valid start, red = not (status bar says why) – `tools.playtest.PlayHereMarker`, `Viewport.setHudOverlay` |
|
||||
| 25 | L | Outliner | Rows show technical ids (`brush:n19`, `strat:6`). Several brushes are all called "Floor". | Fixed (edui): rows read "Coin 3", "Floor 2", "Waypoint 4", "Chain 1 – Llama", "Light 2", "Model 12 (…)", position/height in the grey column; the id is the row tooltip (filter still matches ids) |
|
||||
| 26 | L | Inspector hints | Help texts in tool sections use fixed 215–230 px HTML widths, so they don't use a wider dock. | Fixed (edui): `Widgets.wrappingLabel(html)` wraps at the container/viewport width (Inspector hints, `GeoWidgets.hint`, environment `Ui.Form.note`, `ParamsSection.note`) |
|
||||
| 27 | L | Problems panel | It shows "No problems." before any check has run. | Not fixed |
|
||||
| 28 | L | Duplicates | Objects can be placed from both the Objects panel (left) and Assets → Objects (bottom). | Kept: both are documented, and drag & drop needs the grid |
|
||||
| 29 | L | Menus | Key names come from AWT ("Ctrl+Open Bracket"), while the manual writes "Ctrl+[". | Not fixed (would need a custom accelerator renderer) |
|
||||
|
||||
Reference in new issue
Block a user