From 22a61246fc1763ecad1f9a5ef95cc72f7f33cfd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 7 Nov 2026 12:48:43 +0100 Subject: [PATCH] editor: readable names in inspector, status hover, asset browser and outliner filter, waypoint buttons and long inspector labels wrap, library keeps no collision, autosave no longer hides fresher messages, old menu play-test path removed, task runner always finishes (no stuck loading), play-test starts bound to their level --- docs/manual/03-editor-window.md | 10 +- docs/manual/07-meshes.md | 17 +- notes/editor-tools-geometry.md | 65 ++++-- notes/editor-ui.md | 16 +- notes/img/editor/ui_inspector_label_wrap.jpg | Bin 0 -> 51766 bytes notes/img/editor/ui_readable_names.jpg | Bin 0 -> 113237 bytes .../img/editor/ui_waypoint_buttons_narrow.jpg | Bin 0 -> 123469 bytes .../editor/tools/geometry/MeshLibrary.java | 31 ++- .../tools/objects/ObjectsEditorPlugin.java | 3 +- .../editor/tools/objects/ParamsSection.java | 6 +- .../editor/tools/playtest/PlaytestRunner.java | 5 +- .../editor/ui/BuiltinEditorPlugin.java | 8 +- .../llamamod/editor/ui/EditorWindow.java | 69 +++---- .../llamamod/editor/ui/NodeNames.java | 188 ++++++++++++++++++ .../llamamod/editor/ui/PlayTest.java | 114 +---------- .../llamamod/editor/ui/ProjectController.java | 2 +- .../llamamod/editor/ui/StatusBar.java | 26 ++- .../llamamod/editor/ui/TaskRunner.java | 90 +++++++++ .../llamamod/editor/ui/WrapLayout.java | 4 +- .../editor/ui/panels/AssetBrowserPanel.java | 5 +- .../editor/ui/panels/InspectorPanel.java | 62 +++++- .../editor/ui/panels/OutlinerPanel.java | 108 ++++------ .../tools/geometry/GeometryChecksTest.java | 34 ++++ .../llamamod/editor/ui/EditorStress.java | 36 +++- .../editor/ui/OutlinerAndErrorsTest.java | 42 ++++ .../llamamod/editor/ui/TaskRunnerTest.java | 134 +++++++++++++ 26 files changed, 804 insertions(+), 271 deletions(-) create mode 100644 notes/img/editor/ui_inspector_label_wrap.jpg create mode 100644 notes/img/editor/ui_readable_names.jpg create mode 100644 notes/img/editor/ui_waypoint_buttons_narrow.jpg create mode 100644 src/main/java/com/eliasmueller/llamamod/editor/ui/NodeNames.java create mode 100644 src/main/java/com/eliasmueller/llamamod/editor/ui/TaskRunner.java create mode 100644 src/test/java/com/eliasmueller/llamamod/editor/ui/TaskRunnerTest.java diff --git a/docs/manual/03-editor-window.md b/docs/manual/03-editor-window.md index 79a2f40..dd4270c 100644 --- a/docs/manual/03-editor-window.md +++ b/docs/manual/03-editor-window.md @@ -66,11 +66,14 @@ The Outliner lists everything in the level as a tree: **Level** (level settings, visibility regions), **Tiles** (grouped **by model** or **by cell** – choose in the box at the top), **Objects** (by category and type), **Waypoint chains**, **Zones**, **Lights**, **Brushes** and **Assets** (tile models, imported meshes, texture pages). The filter field finds -items by name, type or id. +items by the name shown in the tree (*Floor 2*, *Waypoint 4*, *Cell 12, 30* – a number at the +end matches whole numbers, so *Floor 2* does not find *Floor 20*), type or id. Several items of the same kind are numbered in level order – *Coin 1*, *Coin 2*, *Floor 1*, *Floor 2* – and the grey column on the right shows where they are (position in cells, for tiles -the height). Hover a row to see its internal id (e.g. `brush:n19`), which problem messages use. +the height). The numbers are not fixed: deleting *Coin 1* makes the old *Coin 2* the new *Coin 1*. +The Inspector header and the status bar use the same names. Hover a row (or the Inspector title) +to see the internal id (e.g. `brush:n19`), which problem messages use. * Click selects, **Shift+click** and **Ctrl+click** add to the selection, double-click frames the item in the viewport. @@ -158,7 +161,8 @@ Navigation → Viewport preferences…** ([Viewport preferences](04-navigation.m picture in the game. * **File → Open recent** lists the last ten projects. * Autosave keeps unsaved changes in the data folder. If the editor or the computer crashes, the - next start offers **Recover**, **Discard** or **Later**. + next start offers **Recover**, **Discard** or **Later**. Its "Autosaved" note waits until the + status bar has shown your last message (for example an export result) for a few seconds. * **File → Close level** (**Ctrl+W**) and **Close editor** (**Ctrl+Q**) ask before throwing away changes. diff --git a/docs/manual/07-meshes.md b/docs/manual/07-meshes.md index 7ad1ca4..400d364 100644 --- a/docs/manual/07-meshes.md +++ b/docs/manual/07-meshes.md @@ -40,6 +40,9 @@ cells. | **Largest side** … **cells** + **Fit** | sets the unit scale so the largest side becomes this many cells (default 4) | | **Turn** | 0°, 90°, 180° or 270° about the vertical axis | | **Mirror (left ↔ right)** | mirrors the model | + +The model appears in the game exactly as in Blender (or any other 3D program): its front stays +its front, and text or an "F" reads the right way round. The preview shows it as the game will. | **Stand on the ground (bottom at the click point)** | puts the lowest point of the model on the surface you click | ### Textures @@ -78,6 +81,10 @@ and how many triangles land in the densest cell. It warns in red when The status bar then says "Placed … – move/turn/scale it with the gizmo tools". +> **Meshes from older projects:** meshes imported with LlamaMod 0.2.0 or earlier were read mirrored. They +> stay as they are, so your levels don't change. To show such a mesh the way it looks in Blender, +> select it in the **Imported** tab and set **Handedness** to **right** in the Inspector. + ## The engine's texture rules > **Engine limit:** the engine has no free texture coordinates. Every triangle always shows one @@ -142,6 +149,8 @@ every base level – a village house in a jungle level, a set of platforms you b The asset is written to `/library/.llamamesh` (the LlamaMod data folder). It contains the tile models with their collision and vertex colours and every texture used, as pictures. Brushes and meshes are stored in their built form (tiles). Death-plane tiles are left out. +Tiles marked **No collision** keep that mark: inserted again, they are still walk-through +(the model itself keeps its collision, so you can turn the mark off later). ### Inserting from the library @@ -172,8 +181,8 @@ OBJ for Blender: * with **Also write the collision polygons (…_collision.obj)** a second OBJ with the collision polygons, grouped by material. -The coordinates use the importer's convention, so the file can be imported again unchanged: edit -it in Blender, then **File → Import mesh** it back (round trip). +Blender shows the geometry the same way round as the game, and the file can be imported again +unchanged: edit it in Blender, then **File → Import mesh** it back (round trip). 1 unit is 1 cell. > **Note:** The exported textures are game data – fine for your own editing, please don't share > them. @@ -192,9 +201,9 @@ it in Blender, then **File → Import mesh** it back (round trip). |---|---| | **Object models** | also the models of placed objects (coins, characters …) as the viewport shows them | | **Leave out hidden items** | items hidden in the editor (**H**) are not exported | -| **Game orientation** | mirrors the level so that Blender and viewers show it the same way round as the game. Off: the same axes as the OBJ export and **Import mesh**, so the file can be imported again unchanged | -Tiles with **Exclude from build** are left out. 1 unit is 1 cell. +Tiles with **Exclude from build** are left out. 1 unit is 1 cell. Viewers show the level the same +way round as the game, and **Import mesh** reads the file back unchanged. ![glTF export dialog and the exported village read back by Import mesh](img/geo_gltf_export.jpg) diff --git a/notes/editor-tools-geometry.md b/notes/editor-tools-geometry.md index dbf1060..2b8b409 100644 --- a/notes/editor-tools-geometry.md +++ b/notes/editor-tools-geometry.md @@ -88,7 +88,7 @@ Invisible collision volumes (Invisible wall/block, colliders) are drawn transluc "Invisible collision volumes"). ### Mesh import (File → Import mesh) -File chooser, then a dialog: rotatable preview with a 1-cell grid and a llama-sized marker, source +File chooser, then a dialog: rotatable preview (shown as in game) with a 1-cell grid and a llama-sized marker, source info, up axis, unit scale and "fit largest side to n cells", turn, mirror, stand on the ground, texture size and UV precision, double-sided, lit, collision **from the mesh / simplified invisible box / none** + material, warnings (densest cell vs. the 8000-vertex limit, larger than the grid). @@ -102,12 +102,14 @@ and keeps the placement. → `/library/.llamamesh`: a zip with `library.json` (models: vertices, faces, planes, three collision groups; tiles: offsets from the anchor cell, rotation, vertex colours) and one PNG per used texture (pixels embedded – owner decision: game data may be embedded). Death-plane tiles - are skipped. + are skipped. Tiles with **No collision** store `"noCollision": true` (the model keeps its collision, so + the inserted tile shares/dedups the model and the flag can be switched off again); insert sets the + flag (`GeometryChecksTest.libraryKeepsNoCollision`). Brush-compiled tiles have no such flag. * **Insert**: drag an entry from the Library tab into the viewport (anchor = cell under the drop point) or double-click / Insert (view centre). Textures with identical pixels in the target level are reused (same base: nothing new), the others are packed onto new texture pages (blend mode kept); identical tile models are reused. Works on any base level. -* **File → Export selection as OBJ…**: OBJ (export space = the importer's convention) + MTL + one +* **File → Export selection as OBJ…**: OBJ (game space = file space, the importer's convention) + MTL + one PNG per texture, UVs per triangle (the engine's texture-rectangle halves), vertex colours as `v x y z r g b` (0x80 = 1.0), optionally `…_collision.obj` (polygons grouped by material). The dialog notes that the textures are game data (personal use). The importer reads it back @@ -115,7 +117,7 @@ and keeps the placement. library tiles, left the re-imported OBJ as a mesh brush). ### glTF export (File → Export level as glTF…, `editor.tools.gltf`) -* `GltfExport.collect(scene, Options(objects, gameView), skip)` runs a private `SceneRenderer` on the +* `GltfExport.collect(scene, Options(objects), skip)` runs a private `SceneRenderer` on the scene and takes exactly what the viewport draws: tile instances (scene tiles + compiled brushes and meshes), optionally object models; `excluded` tiles and (option) hidden nodes are skipped. Vertices are baked to world (export) space, deduplicated per primitive; one primitive per @@ -127,9 +129,9 @@ and keeps the placement. with cut-out pixels, `BLEND` for alpha/additive classes (glTF has no additive), `doubleSided`, `KHR_materials_unlit` (optional extension). u16 indices up to 65535 vertices, else u32. * `.glb` (JSON + BIN chunk) or `.gltf` (one file, buffer as base64 data URI). -* Axes: export space (y up, z = −game z) like the OBJ export and the mesh importer, so a round trip - through **Import mesh** is exact. **Game orientation** mirrors z (and winding) for viewers – see - the open handedness question below. +* Axes: game space (right-handed, y up, z = −export z, winding reversed) like the OBJ export and + the mesh importer, so viewers show the level as the game does and a round trip through **Import + mesh** is exact (see "Handedness of files"; the former "Game orientation" option is gone). * Verified: `GltfExportTest` (structural validation as the Khronos validator would: GLB header and chunk padding, view/accessor bounds, equal attribute counts, exact POSITION min/max, unit normals, UV range, index range, PNGs decode; .gltf data URI; round trip through `MeshImport` with the same @@ -141,6 +143,47 @@ and keeps the placement. (26 403 triangles, 16 materials, 15 textured, `img/editor/geo_gltf_export.jpg`). Village: 36 087 triangles with objects, 2.9 MB .glb; without objects 2.1 MB. +### Handedness of files (fix 2026-11-07) +* **Problem (verified)**: the importer and both exports used export space as file space. The game + (and the editor view) shows export space left-handed, Blender and glTF are right-handed, so + everything crossing a file was mirrored: an "F" modelled in Blender (red front, blue +x end, as + OBJ with Blender's default *Forward −Z, Up Y* and as .glb) showed as "ꟻ" on its red side in game, + and the old glTF export of that level rendered in Blender (same camera) was the game picture + flipped left-right (`img/editor/handed_before.jpg`: Blender front view | game | Blender render + of the exported level). Editor round trips were exact (mirrored twice). +* **Convention now**: file space = **game space** (right-handed, y up; 1 unit = 1 cell): file + (x, y, z) = game (x, y, z) = export (x, y, −z); z-up files: game (x, z, −y). The conversion + mirrors, so triangle corners 1 and 2 swap (`MeshImport.Builder.tri`; exports write (0, 2, 1)). + Same in `MeshLibrary.exportObj` (also `_collision.obj`), `GltfExport` (positions, normals, + winding; option "Game orientation" removed – it is now always so) and the Python tools + (`geomlib.to_file/file_order`; `geom_export`/`geom_import --export-space` = old convention, + `geom_demo` writes file space, `vorschau/render_level.py` reads it). +* **Saved projects don't flip**: projects store the source file and re-parse it on load, so + `MeshAsset` got a property **`handedness`** ("right" | "left", Inspector "Handedness"). The field + default is "left" (old reading) – projects saved before have no such key and load as before; + `MeshImport.importFile` sets "right" on every new import; Re-import keeps the old asset's value. + Switching an old asset to "right" un-mirrors it. No format-version bump (older editors keep the + unknown key and show the mesh mirrored). +* Import dialog preview: screen x is now −x (game space is right-handed), so it shows the model + as the game does (before it showed the mirror image of the game); it starts at yaw 215°, pitch + −25°, i.e. from above at the model's front (before it looked from below – positive pitch tilted + the view up). Drag left/right is inverted to keep the orbit direction. `PreviewShot` (test + sources) paints it to a PNG. The manual's export screenshot had its "Game orientation" row + painted out. +* Python round trip unchanged: `geom_export` → `geom_import` of the village gives a WAD + byte-identical to the old tools (also `geom_demo` → `geom_import`); `--export-space` writes the + old files byte-identically. +* Tests: `MeshHandednessTest` (asymmetric triangle: y-up and z-up OBJ and glTF keep coordinates + and face +z; mirroring glTF node; "left" stays mirrored; new imports are "right"; a project whose + JSON lacks the key loads as "left"), `ObjExportRoundTripTest` (box brush → OBJ (+collision) → + Import mesh: same size, game z, every face outward), `GltfExportTest` (game-space bounds, box + round trip at game z 10..13 with outward faces), `MeshImportTest` updated. +* **Verified after the fix** (apptest :23, `HandednessDemo`: TestLevel 7, four F meshes at game + z 13 – OBJ and .glb as imported, then both turned 180° – llama at (16, 0, 4) facing +z): the + unturned Fs now show their grey back reading "ꟻ" (correct from behind), the turned ones their red + front reading "F"; the new glTF export of the level rendered in Blender from the game camera + matches the game picture (`img/editor/handed_after.jpg`). + ### Checks (Level → Check, Build) Tiles outside the grid; tile models (also compiled brush/mesh tiles) over **8000 vertices**; **overlapping** identical tiles; **no floor collision under the player start** (cell-based like the @@ -203,10 +246,6 @@ between neighbouring floors at the same height; brush compiler warnings. * Library insert keeps tiles cell-aligned (anchor = whole cells); objects are not part of the library (see the objects agent's prefabs / object catalogue). * glTF export: whole level only (no "selection" variant), no collision export (the OBJ export has it), - no texture animations, additive surfaces become plain alpha blending. **Handedness**: the editor - view is left-handed like the game (editor-render.md), but the mesh importer and the OBJ/glTF - exports treat file coordinates as export space – so a right-handed tool (Blender) shows exported - levels mirrored relative to the game, and an asymmetric model imported from Blender probably - appears mirrored in game. Not verified in game; "Game orientation" in the glTF export is the - workaround for viewing. + no texture animations, additive surfaces become plain alpha blending. (Handedness: fixed, see + "Handedness of files" above.) * `TextureImport` packs imported textures at one size per insert (largest texture, ≤ 256). diff --git a/notes/editor-ui.md b/notes/editor-ui.md index 97f3059..566dbb9 100644 --- a/notes/editor-ui.md +++ b/notes/editor-ui.md @@ -33,6 +33,16 @@ Ctrl+Z/Y/Shift+Z, Ctrl+X/C/V, Ctrl+A, Ctrl+B build, F5 play, F1 help. Single key text field has the focus; while the GL canvas has the focus a `KeyEventDispatcher` maps keys to actions (AWT canvases do not get Swing key bindings). +* Status messages: `ctx.status(msg)` shows a message for ~6 s; the autosave note uses + `backgroundStatus`, which waits until a fresher user message has expired (it no longer replaces e.g. + the glTF export result). +* Inspector property labels have a fixed 118 px column; longer labels wrap onto more lines + (`InspectorPanel.fitLabel`) instead of being cut ("Exclude from build"). +* Readable names everywhere (`img/editor/ui_readable_names.jpg`: outliner filter "coin 3", inspector + "Coin 3", status bar hover "Coin 3"/"Tile 41, 66 · Model 87", asset tab "Model 0"); inspector button + rows wrap without clipping in a narrow dock (`ui_waypoint_buttons_narrow.jpg`); long property labels + wrap (`ui_inspector_label_wrap.jpg`). + ## Architecture | Class | Role | @@ -44,7 +54,9 @@ actions (AWT canvases do not get Swing key bindings). | `Document` | `Project` + `History` + file + autosave state; `dirty()` | | `Selection` | ordered node set, primary = last, listeners get the source (avoid echo loops), auto-pruned | | `ProjectController` | new/open/save/save as/recent, autosave + recovery, thumbnail, import/export | -| `PlayTest` | check, background build, play-test | +| `PlayTest` | check, background build, install/mod-selection/save-slot helpers for the play-test plugin (the old menu-based `play()` is gone; `level.play` is a disabled placeholder that `PlaytestEditorPlugin` replaces) | +| `TaskRunner` | `runTask`: one background task on its own daemon thread; progress and completion are posted with `invokeLater` from that thread, so the completion always runs after the last progress update, also when the task or the done callback throws (replaced `SwingWorker`, whose `done()` goes through a Swing timer) | +| `NodeNames` | readable names shared by outliner, inspector header, status-bar hover, reference buttons and the Tile models asset tab ("Floor 2", "Coin 3", "Waypoint 4 (chain 2)", "Tile 3, 4 · Model 12", "Model 12"); numbers follow the level order | | `view.SceneRenderer` | scene model → `RenderScene`, live, stable pick ids | | `view.Thumbnails` | software rasteriser for asset thumbnails | | `tools.SelectTool`, `TransformSupport`, `Transformers`, `EditOps` | selection/transform tools and edit operations | @@ -113,6 +125,8 @@ 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)` | +| `NodeNames` | `NodeNames.name(node)` (one node) or `NodeNames.of(scene)` (index for many: `nameOf`, `objectName`, `waypointName`, `chainStarts`) – use it instead of `Node.label()` in UI texts; tooltips may show `node.id()` | +| `WrapLayout` | public `FlowLayout` that grows to more rows in a narrow container (inspector button rows: `ParamsSection.compact` switches a FlowLayout bar to it) | | `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 ``); `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 | diff --git a/notes/img/editor/ui_inspector_label_wrap.jpg b/notes/img/editor/ui_inspector_label_wrap.jpg new file mode 100644 index 0000000000000000000000000000000000000000..344dccaab29cf15910354651d9d7d7a3fd51d72c GIT binary patch literal 51766 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

ZrJ$JE?bn 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

xynz?w4(1K(bM_yg>dx1hr{t*ZQo3?_erv| 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 Q`tQN(zfzf&{dM~P016R=0{{R3 literal 0 HcmV?d00001 diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/MeshLibrary.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/MeshLibrary.java index 5cbaa8b..b98be4a 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/MeshLibrary.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/MeshLibrary.java @@ -49,8 +49,12 @@ final class MeshLibrary { static final String EXT = ".llamamesh"; - /** A tile in world space (export coordinates) with the texture tables it refers to. */ - record Placed(TileModel model, double x, double y, double z, int rot, int[] colors) {} + /** A tile in world space (export coordinates); noCollision = the tile's "No collision" flag. */ + record Placed(TileModel model, double x, double y, double z, int rot, int[] colors, boolean noCollision) { + Placed(TileModel model, double x, double y, double z, int rot, int[] colors) { + this(model, x, y, z, rot, colors, false); + } + } /** Texture tables including what the brushes generated (indices ≥ scene size). */ record Tables(List entries, List pages) {} @@ -62,7 +66,7 @@ final class MeshLibrary { List tp = new ArrayList<>(s.pages()); for (Node n : sel) { if (n instanceof Tile t && t.model() != null && !GeometryActions.isKillModel(t.model())) { - out.add(new Placed(t.model(), t.x(), t.y(), t.z(), t.rot(), firstFrame(t))); + out.add(new Placed(t.model(), t.x(), t.y(), t.z(), t.rot(), firstFrame(t), t.noCollision())); } } List brushes = new ArrayList<>(); @@ -172,6 +176,9 @@ final class MeshLibrary { t.put("z", -p.z() - az); t.put("rot", p.rot()); t.put("colors", b64(p.colors())); + if (p.noCollision()) { + t.put("noCollision", true); + } tiles.add(t); } Map files = new LinkedHashMap<>(); @@ -403,6 +410,7 @@ final class MeshLibrary { t.setRaw("model", md); int[] col = ints((String) m.get("colors")); t.setRaw("colors", col.length == md.vertexCount() ? col : grey(md.vertexCount())); + t.setRaw("noCollision", Boolean.TRUE.equals(m.get("noCollision"))); cmds.add(new AddNode(t)); out.add(t); } @@ -469,6 +477,13 @@ final class MeshLibrary { * z) relative to the anchor cell, with UVs per texture, vertex colours ("v x y z r g b", 0x80 = * 1.0 → 0.5), an MTL and one PNG per texture; collision optionally as a separate OBJ. */ + /** Corner order in the file: game space is right-handed, so the export-space winding reverses. */ + private static final int[] FILE_ORDER = {0, 2, 1}; + + /** + * OBJ in game space (x, y, z_game = −export z; right-handed, y up – what Import mesh and Blender + * expect), relative to the anchor cell. + */ static List exportObj(List placed, Tables tables, Path obj, boolean collision) throws IOException { double[] anchor = anchor(placed); double ax = anchor[0], ay = anchor[1], az = -anchor[2]; @@ -491,7 +506,7 @@ final class MeshLibrary { "v %.5f %.5f %.5f %.4f %.4f %.4f%n", w[0], w[1], - w[2], + -w[2], Math.min(1, (c & 0xff) / 128.0), Math.min(1, (c >> 8 & 0xff) / 128.0), Math.min(1, (c >> 16 & 0xff) / 128.0))); @@ -502,7 +517,7 @@ final class MeshLibrary { double[] uv = faceUv(tables, tex, m.faceFlags(f)); StringBuilder sb = byTex.computeIfAbsent(tex, k -> new StringBuilder()); sb.append("f"); - for (int k = 0; k < 3; k++) { + for (int k : FILE_ORDER) { vt.append(String.format(Locale.ROOT, "vt %.5f %.5f%n", uv[2 * k], 1 - uv[2 * k + 1])); nt++; sb.append(' ') @@ -551,8 +566,10 @@ final class MeshLibrary { for (TileModel.PlacedPolygon poly : p.model().collisionPolygons(xf)) { StringBuilder sb = byMat.computeIfAbsent(poly.material(), x -> new StringBuilder()); sb.append('f'); - for (double[] w : poly.corners()) { - cv.append(String.format(Locale.ROOT, "v %.5f %.5f %.5f%n", w[0], w[1], w[2])); + double[][] cs = poly.corners(); + for (int k = 0; k < cs.length; k++) { + double[] w = cs[k == 0 ? 0 : cs.length - k]; + cv.append(String.format(Locale.ROOT, "v %.5f %.5f %.5f%n", w[0], w[1], -w[2])); sb.append(' ').append(++n); } sb.append('\n'); diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/objects/ObjectsEditorPlugin.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/objects/ObjectsEditorPlugin.java index bd47227..6fb4c37 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/objects/ObjectsEditorPlugin.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/objects/ObjectsEditorPlugin.java @@ -14,6 +14,7 @@ import com.eliasmueller.llamamod.editor.ui.EditorWindow; import com.eliasmueller.llamamod.editor.ui.Icons; import com.eliasmueller.llamamod.editor.ui.InspectorSection; import com.eliasmueller.llamamod.editor.ui.LayerSpec; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.PanelSpec; import com.eliasmueller.llamamod.editor.ui.ToolEvent; import com.eliasmueller.llamamod.editor.ui.tools.EditOps; @@ -258,7 +259,7 @@ public final class ObjectsEditorPlugin implements EditorPlugin { ? "not used by an object" : "used by " + owners.stream() - .map(o -> o.type() + " (" + o.id() + ")") + .map(NodeNames::name) .reduce((a, b) -> a + ", " + b) .get() + " · " + Roles.of(owners.getFirst()).label; diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/objects/ParamsSection.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/objects/ParamsSection.java index eb9dd09..dad477d 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/objects/ParamsSection.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/objects/ParamsSection.java @@ -16,6 +16,7 @@ import com.eliasmueller.llamamod.editor.ui.EditorContext; import com.eliasmueller.llamamod.editor.ui.Icons; import com.eliasmueller.llamamod.editor.ui.InspectorSection; import com.eliasmueller.llamamod.editor.ui.Widgets; +import com.eliasmueller.llamamod.editor.ui.WrapLayout; import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; @@ -420,8 +421,11 @@ final class ParamsSection implements InspectorSection { } } - /** Small unfocusable buttons for an inspector button row. */ + /** Small unfocusable buttons for an inspector button row that wraps into more rows in a narrow dock. */ static void compact(JComponent bar) { + if (bar.getLayout() instanceof java.awt.FlowLayout f && !(f instanceof WrapLayout)) { + bar.setLayout(new WrapLayout(f.getAlignment(), f.getHgap(), 2)); + } for (java.awt.Component c : bar.getComponents()) { c.setFocusable(false); ((JComponent) c).setFont(((JComponent) c).getFont().deriveFont(11.5f)); diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/playtest/PlaytestRunner.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/playtest/PlaytestRunner.java index 0f179bd..6584c26 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/playtest/PlaytestRunner.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/playtest/PlaytestRunner.java @@ -227,7 +227,10 @@ public final class PlaytestRunner { cfg, bootMod, "start", - start == null ? "" : BootToLevelMod.formatStart(start[0], start[1], start[2], start[3])); + start == null + ? "" + : BootToLevelMod.formatStart( + tgt[0], tgt[1], start[0], start[1], start[2], start[3])); List withBoot = new ArrayList<>(mods); withBoot.removeIf(m -> m.id().equals(BootToLevelMod.ID)); withBoot.add(bootMod); diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/BuiltinEditorPlugin.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/BuiltinEditorPlugin.java index 64106cd..9c7baa0 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/ui/BuiltinEditorPlugin.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/BuiltinEditorPlugin.java @@ -263,10 +263,10 @@ final class BuiltinEditorPlugin implements EditorPlugin { .build()) .enabledWhen(c -> c.document() != null && !w(c).busy()) .tip("Validate the level and build its WAD (in the background)")); - x.action(ActionSpec.of("level.play", "Level", 20, 30, "Play", "play", "F5", c -> w(c).playTest - .play()) - .enabledWhen(c -> c.document() != null && !w(c).busy()) - .tip("Build, install as a mod and start the game with this level selected")); + // placeholder: the play-test plugin (editor.tools.playtest) registers the real action under this id + x.action(ActionSpec.of("level.play", "Level", 20, 30, "Play", "play", "F5", c -> {}) + .enabledWhen(c -> false) + .tip("Play-test is not available (the play-test plugin did not load)")); // Help x.action(ActionSpec.of( diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/EditorWindow.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/EditorWindow.java index 5b8ec6d..9d3b452 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/ui/EditorWindow.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/EditorWindow.java @@ -15,7 +15,6 @@ import com.eliasmueller.llamamod.editor.render.Viewport; import com.eliasmueller.llamamod.editor.render.ViewportInput; import com.eliasmueller.llamamod.editor.render.ViewportListener; import com.eliasmueller.llamamod.editor.ui.view.SceneRenderer; -import com.eliasmueller.llamamod.platform.Progress; import com.eliasmueller.llamamod.util.SwingListeners; import java.awt.BorderLayout; import java.awt.CardLayout; @@ -49,9 +48,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.concurrent.CancellationException; import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.ExecutionException; import java.util.function.BooleanSupplier; import java.util.function.Consumer; import java.util.function.Predicate; @@ -76,7 +73,6 @@ import javax.swing.JToggleButton; import javax.swing.JToolBar; import javax.swing.KeyStroke; import javax.swing.SwingUtilities; -import javax.swing.SwingWorker; import javax.swing.ToolTipManager; import javax.swing.UIManager; import javax.swing.text.JTextComponent; @@ -117,7 +113,28 @@ public final class EditorWindow extends JFrame implements EditorContext { private boolean flushQueued; private final SceneListener sceneHook = this::onSceneEvent; private KeyEventDispatcher keyDispatcher; - private SwingWorker task; + private final TaskRunner tasks = new TaskRunner(new TaskRunner.Ui() { + @Override + public void progress(String text, double fraction) { + status.progress(text, fraction); + } + + @Override + public void progressDone() { + status.progressDone(); + } + + @Override + public void failed(String title, Throwable t) { + status.message(title + " failed"); + error(title, t); + } + + @Override + public void finished() { + refreshActions(); + } + }); private final Overlay toolOverlay = new Overlay(); private final Overlay toolTop = new Overlay(); private JButton playButton; @@ -1224,47 +1241,23 @@ public final class EditorWindow extends JFrame implements EditorContext { } } + /** Status message of a background job (autosave) that does not replace a fresher user message. */ + void backgroundStatus(String message) { + if (status != null) { + status.backgroundMessage(message); + } + } + @Override public void runTask(String title, Task t, Consumer done) { - if (task != null && !task.isDone()) { + if (!tasks.start(title, t, done)) { JOptionPane.showMessageDialog( this, "Please wait: another task is running.", title, JOptionPane.INFORMATION_MESSAGE); - return; } - status.progress(title, 0); - Progress p = - (f, m) -> SwingUtilities.invokeLater(() -> status.progress(m == null || m.isBlank() ? title : m, f)); - task = new SwingWorker<>() { - @Override - protected Object doInBackground() throws Exception { - return t.run(p); - } - - @Override - protected void done() { - status.progressDone(); - try { - Object r = get(); - if (done != null) { - done.accept(r); - } - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } catch (ExecutionException e) { - Throwable c = e.getCause(); - if (!(c instanceof CancellationException)) { - status.message(title + " failed"); - error(title, c); - } - } - refreshActions(); - } - }; - task.execute(); } public boolean busy() { - return task != null && !task.isDone(); + return tasks.busy(); } @Override diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/NodeNames.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/NodeNames.java new file mode 100644 index 0000000..d9653ac --- /dev/null +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/NodeNames.java @@ -0,0 +1,188 @@ +package com.eliasmueller.llamamod.editor.ui; + +import com.eliasmueller.llamamod.editor.model.Brush; +import com.eliasmueller.llamamod.editor.model.EnvZone; +import com.eliasmueller.llamamod.editor.model.LevelSettings; +import com.eliasmueller.llamamod.editor.model.Light; +import com.eliasmueller.llamamod.editor.model.MeshAsset; +import com.eliasmueller.llamamod.editor.model.Node; +import com.eliasmueller.llamamod.editor.model.PathNode; +import com.eliasmueller.llamamod.editor.model.Regions; +import com.eliasmueller.llamamod.editor.model.Scene; +import com.eliasmueller.llamamod.editor.model.Strat; +import com.eliasmueller.llamamod.editor.model.TexturePage; +import com.eliasmueller.llamamod.editor.model.Tile; +import com.eliasmueller.llamamod.editor.model.TileModel; +import java.util.ArrayList; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; + +/** + * Readable names for scene nodes ("Floor 2", "Coin 3", "Waypoint 4 (chain 2)", "Model 12") as used by the + * outliner, inspector header, status bar and asset browser. Numbers follow the level order (they shift when + * an earlier item of the same kind is deleted). One instance indexes a scene lazily; create a new one after + * edits. + */ +public final class NodeNames { + private final Scene scene; + private Map numbered; + private List starts; + private Map waypoints; + + private NodeNames(Scene scene) { + this.scene = scene; + } + + public static NodeNames of(Scene scene) { + return new NodeNames(scene); + } + + /** Readable name of a node in its own scene (falls back to {@link Node#label()} when detached). */ + public static String name(Node n) { + return n == null ? "" : n.scene() == null ? fallback(n) : of(n.scene()).nameOf(n); + } + + /** Readable standalone name of a node of this scene. */ + public String nameOf(Node n) { + return switch (n) { + case Strat st -> objectName(st); + case Brush b -> numbered(b); + case Light l -> numbered(l); + case PathNode p -> waypointName(p, true); + case Tile t -> "Tile " + t.cellX() + ", " + t.cellZ() + + (t.model() == null ? "" : " · " + modelName(t.model())); + default -> fallback(n); + }; + } + + /** Object name: its type, numbered when the level has several of that type ("Coin 3"). */ + public String objectName(Strat st) { + return numbered(st); + } + + /** "Waypoint 4" (position in its chain), with "(chain 2)" when {@code withChain}. */ + public String waypointName(PathNode p, boolean withChain) { + int[] v = waypointIndex(p); + return v == null ? "Waypoint" : "Waypoint " + v[0] + (withChain ? " (chain " + v[1] + ")" : ""); + } + + /** Chain number (1-based, outliner order) of a waypoint, or 0. */ + public int chainNumber(PathNode p) { + int[] v = waypointIndex(p); + return v == null ? 0 : v[1]; + } + + private int[] waypointIndex(PathNode p) { + if (waypoints == null) { + waypoints = new IdentityHashMap<>(); + int nr = 0; + for (PathNode start : chainStarts()) { + nr++; + List ch = scene.chain(start); + for (int i = 0; i < ch.size(); i++) { + waypoints.putIfAbsent(ch.get(i), new int[] {i + 1, nr}); + } + } + } + return waypoints.get(p); + } + + /** + * First waypoint of every chain in level order (waypoints without a predecessor, then one node per loop + * that has no start). The outliner numbers chains in this order. + */ + public List chainStarts() { + if (starts != null) { + return starts; + } + Set hasPrev = Collections.newSetFromMap(new IdentityHashMap<>()); + for (PathNode p : scene.pathNodes()) { + if (p.next() != null) { + hasPrev.add(p.next()); + } + } + starts = new ArrayList<>(); + for (PathNode p : scene.pathNodes()) { + if (!hasPrev.contains(p)) { + starts.add(p); + } + } + Set reached = Collections.newSetFromMap(new IdentityHashMap<>()); + for (PathNode st : starts) { + reached.addAll(scene.chain(st)); + } + for (PathNode p : scene.pathNodes()) { + if (!reached.contains(p)) { + starts.add(p); + reached.addAll(scene.chain(p)); + } + } + return starts; + } + + private String numbered(Node n) { + if (numbered == null) { + numbered = new IdentityHashMap<>(); + number(scene.strats(), NodeNames::typeName); + number(scene.brushes(), NodeNames::brushName); + int nr = 0; + for (Light l : scene.lights()) { + numbered.put(l, "Light " + ++nr); + } + } + String s = numbered.get(n); + return s != null ? s : fallback(n); + } + + private void number(List nodes, java.util.function.Function base) { + Map count = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + for (T n : nodes) { + count.merge(base.apply(n), 1, Integer::sum); + } + Map nr = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + for (T n : nodes) { + String b = base.apply(n); + numbered.put(n, count.get(b) > 1 ? b + " " + nr.merge(b, 1, Integer::sum) : b); + } + } + + /** Object type or "?" (the outliner's type group key). */ + public static String typeName(Strat st) { + return st.type().isEmpty() ? "?" : st.type(); + } + + public static String brushName(Brush b) { + return b.name().isEmpty() ? b.brushKind().label() : b.name(); + } + + /** Tile model name, or "Model 12" for unnamed models. */ + public static String modelName(TileModel m) { + return m.name().isEmpty() ? "Model " + number(m.id()) : m.name(); + } + + /** The number part of an id ("model:12" → "12", "page:n3" → "n3"). */ + public static String number(String id) { + return id.substring(id.indexOf(':') + 1); + } + + private static String fallback(Node n) { + return switch (n) { + case LevelSettings s -> "Level settings"; + case Regions r -> "Visibility regions"; + case EnvZone z -> z.isDefault() ? "Default zone (fog, sky, music)" : "Zone " + z.cellX() + ", " + z.cellZ(); + case TileModel m -> modelName(m); + case TexturePage p -> p.name().isEmpty() ? "Page " + number(p.id()) : p.name(); + case MeshAsset m -> m.name().isEmpty() ? m.file() : m.name(); + case Strat st -> typeName(st); + case Brush b -> brushName(b); + case PathNode p -> "Waypoint"; + case Light l -> "Light"; + case Tile t -> "Tile " + t.cellX() + ", " + t.cellZ(); + default -> n.label(); + }; + } +} diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/PlayTest.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/PlayTest.java index c8cda68..81aaa46 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/ui/PlayTest.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/PlayTest.java @@ -12,7 +12,6 @@ import com.eliasmueller.llamamod.mods.ModRegistry; import com.eliasmueller.llamamod.mods.levels.LevelProjectMod; import com.eliasmueller.llamamod.mods.levels.LevelProjects; import com.eliasmueller.llamamod.platform.Config; -import com.eliasmueller.llamamod.platform.GameLauncher; import com.eliasmueller.llamamod.save.Ksv; import com.eliasmueller.llamamod.save.SaveStore; import com.eliasmueller.llamamod.save.Worlds; @@ -27,12 +26,11 @@ import java.util.Locale; import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.swing.JOptionPane; /** - * Build (validate + WAD in the background) and Play-test: the current state is written to {@code - * /levels/}, enabled as a level mod next to the active mods, applied, the play-test save slot - * is unlocked with the map cursor on the level, and the game is started. + * Check and Build (validate + WAD in the background), plus the helpers the play-test plugin + * ({@code editor.tools.playtest.PlaytestRunner}) uses to install the level as a mod, pick the mod + * selection and prepare the save slot. */ public final class PlayTest { /** Result of a background build. */ @@ -178,18 +176,6 @@ public final class PlayTest { return l.stream().filter(p -> p.severity() == s).count(); } - /** World/chapter on the world map for a project: TestLevel chapter, or the original's place. */ - static int[] target(Document d) { - if (d.isNewLevel()) { - return new int[] {9, Math.max(1, d.scene().settings().targetChapter())}; - } - Matcher m = Pattern.compile("t1l(\\d)m(\\d{3})").matcher(d.base().toLowerCase(Locale.ROOT)); - if (m.matches()) { - return new int[] {Integer.parseInt(m.group(1)), Integer.parseInt(m.group(2))}; - } - return null; - } - /** * Where a play-test installs the project in the levels folder: {@code .llamalevel}, unless * that file is a different project (other kind, base or name) – then {@code -2…}, so a @@ -217,42 +203,6 @@ public final class PlayTest { } } - public void play() { - Document d = w.document(); - if (d == null) { - return; - } - EditorEnv env = w.env(); - if (!env.config().installed()) { - JOptionPane.showMessageDialog( - w, - "The game is not installed. Set it up in LlamaMod first.", - "Play-test", - JOptionPane.WARNING_MESSAGE); - return; - } - int[] tgt = target(d); - if (tgt == null || tgt[0] < 9 && tgt[1] > Worlds.chapters(tgt[0])) { - JOptionPane.showMessageDialog( - w, - "This level (" + d.base() + ") is not reachable from the world map, so it" - + " cannot be play-tested directly.", - "Play-test", - JOptionPane.INFORMATION_MESSAGE); - return; - } - GameLauncher gl = new GameLauncher(env.paths(), env.config()); - if (gl.isRunning()) { - JOptionPane.showMessageDialog( - w, - "The game is still running. Quit it first (the level files cannot be replaced while it runs).", - "Play-test", - JOptionPane.INFORMATION_MESSAGE); - return; - } - build(r -> install(d, tgt)); - } - /** * The active mods plus the level's own mod (its TestLevel chapter set to tgt). Mods writing the * same level file are left out and named in disabled. @@ -370,62 +320,4 @@ public final class PlayTest { public static String levelName(int[] tgt) { return tgt[0] == 9 ? "TestLevel – chapter " + tgt[1] : Worlds.name(tgt[0]) + " – Chapter " + tgt[1]; } - - private void install(Document d, int[] tgt) { - EditorEnv env = w.env(); - Install inst = install(w, d); - if (inst == null) { - return; - } - Path target = inst.target(); - int slot = slot(w.prefs()); - String levelName = levelName(tgt); - w.runTask( - "Play-test " + d.title(), - p -> { - p.update(0.05, "Installing the level as a mod"); - inst.write(); - Config cfg = env.config(); - List disabled = new ArrayList<>(); - ModRegistry reg = new ModRegistry(); - List mods = selectionWith(cfg, reg, levelMod(reg, cfg, target, tgt), tgt, disabled, null); - cfg.enabledMods = new ArrayList<>(mods.stream().map(Mod::id).toList()); - p.update(0.15, "Applying mods"); - env.modManager().apply(mods, p.sub(0.15, 0.85)); - env.saveConfig(); - p.update(0.86, "Preparing save slot " + slot); - prepareSaveSlot(env, slot, tgt); - p.update(0.9, "Starting the game"); - // tests start the game through their own harness (private display and sound) - Process proc = Boolean.getBoolean("llamamod.editor.noLaunch") - ? null - : new GameLauncher(env.paths(), cfg).launch(p.sub(0.9, 1)); - return new Object[] {proc, disabled}; - }, - res -> { - Object[] o = (Object[]) res; - @SuppressWarnings("unchecked") - List disabled = (List) o[1]; - if (inst.ownFile()) { - d.history().markSaved(); - } - env.modsChanged(); - w.status("Game started – " + levelName + " is selected on the map of save slot " + slot); - String extra = disabled.isEmpty() - ? "" - : "

Turned off (same level file): " + String.join(", ", disabled); - JOptionPane.showMessageDialog( - w, - "The game is starting.

" - + "In the main menu choose Spiel starten and save slot " + slot - + " – the map cursor" - + " is already on " + ProjectController.esc(levelName) - + "; press Enter to play.

" - + "The level stays installed as the mod \"" + ProjectController.esc(d.title()) - + "\" in LlamaMod" - + " (Mods → Levels)." + extra + "", - "Play-test", - JOptionPane.INFORMATION_MESSAGE); - }); - } } diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/ProjectController.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/ProjectController.java index dcdc662..c737fec 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/ui/ProjectController.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/ProjectController.java @@ -419,7 +419,7 @@ public final class ProjectController { meta.put("time", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"))); Files.writeString(meta(d.autosave), Json.write(meta)); d.autosaveCurrent = true; - w.status("Autosaved"); + w.backgroundStatus("Autosaved"); } catch (IOException | RuntimeException e) { System.err.println("editor: autosave failed: " + e); } diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/StatusBar.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/StatusBar.java index 1aec696..2c44c6f 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/ui/StatusBar.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/StatusBar.java @@ -38,6 +38,7 @@ final class StatusBar extends JPanel { private final Timer probe; private final Timer clear; private long messageTime; + private String pending; StatusBar(EditorWindow w) { super(new BorderLayout(8, 0)); @@ -83,6 +84,12 @@ final class StatusBar extends JPanel { probe.setRepeats(false); clear = new Timer(6000, e -> { if (System.currentTimeMillis() - messageTime >= 5900) { + if (pending != null) { + String m = pending; + pending = null; + message(m); + return; + } message.setText(w.document() == null ? "Open a level or create a new one" : "Ready"); message.setIcon(Icons.get("info", 14)); } @@ -106,12 +113,28 @@ final class StatusBar extends JPanel { } void message(String m) { + pending = null; message.setText(m); message.setIcon(Icons.get(m.startsWith("Build failed") ? "error" : "info", 14)); messageTime = System.currentTimeMillis(); clear.restart(); } + /** + * A message nobody asked for (autosave): shown right away only when no other message is still visible, + * otherwise once that one has expired. + */ + void backgroundMessage(String m) { + if (!progress.isVisible() && System.currentTimeMillis() - messageTime >= 5900) { + message(m); + return; + } + pending = m; + if (!clear.isRunning() && !progress.isVisible()) { + clear.restart(); + } + } + /** Sticky "game running" state (null = none). */ void game(String what) { game.setText(what == null ? "" : "Game running: " + what); @@ -129,7 +152,8 @@ final class StatusBar extends JPanel { } void hover(Node n) { - hover.setText(n == null ? " " : n.label() + (w.viewport().hoverBackFace() ? " (back side)" : "")); + hover.setText(n == null ? " " : NodeNames.name(n) + (w.viewport().hoverBackFace() ? " (back side)" : "")); + hover.setToolTipText(n == null ? null : n.id()); hover.setIcon(n == null ? null : NodeIcons.icon(n, 13)); } diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/TaskRunner.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/TaskRunner.java new file mode 100644 index 0000000..57348fe --- /dev/null +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/TaskRunner.java @@ -0,0 +1,90 @@ +package com.eliasmueller.llamamod.editor.ui; + +import com.eliasmueller.llamamod.platform.Progress; +import java.util.concurrent.CancellationException; +import java.util.function.Consumer; +import javax.swing.SwingUtilities; + +/** + * One background task at a time (the window's {@link EditorContext#runTask}). The task runs on its own + * daemon thread; progress updates and the completion are posted with {@code invokeLater} from that thread, + * so the completion always comes after the last progress update and always runs – also when the task or + * the done callback throws an exception or an {@link Error}. + */ +final class TaskRunner { + /** What the runner shows; all calls on the EDT. */ + interface Ui { + void progress(String text, double fraction); + + void progressDone(); + + void failed(String title, Throwable t); + + void finished(); + } + + private final Ui ui; + private volatile boolean running; + + TaskRunner(Ui ui) { + this.ui = ui; + } + + boolean busy() { + return running; + } + + /** Starts the task (call on the EDT); false when another task is still running. */ + boolean start(String title, EditorContext.Task task, Consumer done) { + if (running) { + return false; + } + running = true; + ui.progress(title, 0); + Progress p = (f, m) -> SwingUtilities.invokeLater(() -> { + if (running) { + ui.progress(m == null || m.isBlank() ? title : m, f); + } + }); + Thread t = new Thread( + () -> { + Object result = null; + Throwable failure = null; + try { + result = task.run(p); + } catch (Throwable e) { + failure = e; + } + Object r = result; + Throwable f = failure; + SwingUtilities.invokeLater(() -> complete(title, r, f, done)); + }, + "editor-task: " + title); + t.setDaemon(true); + try { + t.start(); + } catch (Throwable e) { + complete(title, null, e, done); + } + return true; + } + + private void complete(String title, Object result, Throwable failure, Consumer done) { + // not busy any more before the callback: it may start the next task (build → play) + running = false; + try { + ui.progressDone(); + if (failure == null) { + if (done != null) { + done.accept(result); + } + } else if (!(failure instanceof CancellationException || failure instanceof InterruptedException)) { + ui.failed(title, failure); + } + } catch (Throwable e) { + ui.failed(title, e); + } finally { + ui.finished(); + } + } +} diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/WrapLayout.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/WrapLayout.java index 62571a5..b5a0070 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/ui/WrapLayout.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/WrapLayout.java @@ -8,10 +8,10 @@ import java.awt.Insets; import javax.swing.SwingUtilities; /** FlowLayout whose preferred size grows to several rows when the container is too narrow. */ -final class WrapLayout extends FlowLayout { +public final class WrapLayout extends FlowLayout { private int lastHeight = -1; - WrapLayout(int align, int hgap, int vgap) { + public WrapLayout(int align, int hgap, int vgap) { super(align, hgap, vgap); } diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/AssetBrowserPanel.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/AssetBrowserPanel.java index a081204..62a2798 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/AssetBrowserPanel.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/AssetBrowserPanel.java @@ -17,6 +17,7 @@ import com.eliasmueller.llamamod.editor.ui.EditorContext; import com.eliasmueller.llamamod.editor.ui.EditorWindow; import com.eliasmueller.llamamod.editor.ui.Icons; import com.eliasmueller.llamamod.editor.ui.NodeIcons; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.Widgets; import com.eliasmueller.llamamod.editor.ui.tools.EditOps; import com.eliasmueller.llamamod.editor.ui.view.SceneRenderer; @@ -189,7 +190,7 @@ public final class AssetBrowserPanel extends JPanel { for (TileModel m : s.tileModels()) { out.add(new Item( "model:" + m.id(), - m.id(), + NodeNames.modelName(m), m.faceCount() + " faces · " + uses.getOrDefault(m, 0) + "×", m, "tilemodel", @@ -444,7 +445,7 @@ public final class AssetBrowserPanel extends JPanel { sel ? UIManager.getColor("List.selectionForeground") : UIManager.getColor("Label.disabledForeground")); - setToolTipText(v.title + " – " + v.subtitle); + setToolTipText(v.title + " – " + v.subtitle + (v.data instanceof Node n ? " (" + n.id() + ")" : "")); return this; } diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/InspectorPanel.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/InspectorPanel.java index 8f45677..35e630b 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/InspectorPanel.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/InspectorPanel.java @@ -2,6 +2,7 @@ package com.eliasmueller.llamamod.editor.ui.panels; import com.eliasmueller.llamamod.editor.model.Node; import com.eliasmueller.llamamod.editor.model.NodeKind; +import com.eliasmueller.llamamod.editor.model.PathNode; import com.eliasmueller.llamamod.editor.model.Prop; import com.eliasmueller.llamamod.editor.model.PropType; import com.eliasmueller.llamamod.editor.model.Scene; @@ -18,6 +19,7 @@ import com.eliasmueller.llamamod.editor.ui.HelpTopics; import com.eliasmueller.llamamod.editor.ui.Icons; import com.eliasmueller.llamamod.editor.ui.InspectorSection; import com.eliasmueller.llamamod.editor.ui.NodeIcons; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.Tool; import com.eliasmueller.llamamod.editor.ui.Widgets; import com.eliasmueller.llamamod.util.SwingListeners; @@ -38,6 +40,7 @@ import java.awt.event.FocusEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; +import java.util.IdentityHashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; @@ -179,8 +182,14 @@ public final class InspectorPanel extends JPanel { String title; String sub; if (nodes.size() == 1) { - title = p instanceof Strat st && !st.type().isEmpty() ? st.type() : p.label(); - sub = p.kind().label() + " · " + p.id(); + title = NodeNames.name(p); + sub = p.kind().label(); + if (p instanceof PathNode pn && p.scene() != null) { + // "Waypoint 4" with the chain in the subtitle: the title stays short in a narrow dock + NodeNames nn = NodeNames.of(p.scene()); + title = nn.waypointName(pn, false); + sub += nn.chainNumber(pn) > 0 ? " · chain " + nn.chainNumber(pn) : ""; + } if (p instanceof Strat st) { sub += " · " + NodeIcons.categoryLabel(StratCatalog.category(st.type())); } @@ -196,6 +205,10 @@ public final class InspectorPanel extends JPanel { txt.setOpaque(false); JLabel t = new JLabel(title); t.setFont(t.getFont().deriveFont(Font.BOLD, 15f)); + if (nodes.size() == 1) { + t.setToolTipText(p.id()); + h.setToolTipText(p.id()); + } JLabel st = new JLabel(sub); st.setFont(st.getFont().deriveFont(11.5f)); st.setForeground(UIManager.getColor("Label.disabledForeground")); @@ -351,14 +364,10 @@ public final class InspectorPanel extends JPanel { c.anchor = GridBagConstraints.WEST; c.insets = new Insets(2, 12, 2, 8); JLabel l = label != null ? label : new JLabel(text); - boolean cut = l.getPreferredSize().width > 118; - l.setPreferredSize(new Dimension(118, l.getPreferredSize().height)); - l.setMinimumSize(new Dimension(118, l.getPreferredSize().height)); + fitLabel(l, LABEL_W); l.setForeground(UIManager.getColor("Label.foreground")); if (tip != null && !tip.isEmpty()) { - l.setToolTipText(cut ? l.getText() + " – " + tip : tip); - } else if (cut) { - l.setToolTipText(l.getText()); + l.setToolTipText(tip); } grid.add(l, c); c.gridx = 1; @@ -369,6 +378,29 @@ public final class InspectorPanel extends JPanel { return row + 1; } + private static final int LABEL_W = 118; + + /** + * Gives a property label the fixed column width; a longer text wraps onto more lines instead of being cut. + * Returns true when it did not fit on one line. + */ + static boolean fitLabel(JLabel l, int width) { + String text = l.getText(); + int h = l.getPreferredSize().height; + boolean wraps = l.getPreferredSize().width > width && text != null && !text.startsWith(""); + if (wraps) { + l.setText("" + text.replace("&", "&").replace("<", "<") + ""); + if (l.getClientProperty(javax.swing.plaf.basic.BasicHTML.propertyKey) instanceof javax.swing.text.View v) { + java.awt.Insets in = l.getInsets(); + v.setSize(width - in.left - in.right, 0); + h = (int) Math.ceil(v.getPreferredSpan(javax.swing.text.View.Y_AXIS)) + in.top + in.bottom; + } + } + l.setPreferredSize(new Dimension(width, h)); + l.setMinimumSize(new Dimension(width, h)); + return wraps; + } + private JComponent section(String title, JComponent content, boolean open, String key) { // the height follows the content (wrapped text, rows added later) instead of a fixed maximum JPanel p = new JPanel(new BorderLayout()) { @@ -794,7 +826,8 @@ public final class InspectorPanel extends JPanel { Binding b = () -> { Object v = value(p.name()); if (v instanceof Node n) { - go.setText(n.label()); + go.setText(NodeNames.name(n)); + go.setToolTipText("Select the referenced item (" + n.id() + ")"); go.setIcon(NodeIcons.icon(n, 14)); } else { go.setText(v == MIXED ? "—" : "(none)"); @@ -834,12 +867,17 @@ public final class InspectorPanel extends JPanel { filter.putClientProperty("JTextField.placeholderText", "Filter…"); DefaultListModel model = new DefaultListModel<>(); items.forEach(model::addElement); + Map names = new IdentityHashMap<>(); + NodeNames nn = ctx.scene() == null ? null : NodeNames.of(ctx.scene()); + for (Object o : items) { + names.put(o, o instanceof Node n && nn != null ? nn.nameOf(n) : o.toString()); + } JList list = new JList<>(model); SwingListeners.onTextChange(filter, () -> { String q = filter.getText().toLowerCase(Locale.ROOT); model.clear(); for (Object o : items) { - String l = o instanceof Node n ? n.label() : o.toString(); + String l = names.get(o) + (o instanceof Node n ? " " + n.label() : ""); if (l.toLowerCase(Locale.ROOT).contains(q)) { model.addElement(o); } @@ -848,8 +886,10 @@ public final class InspectorPanel extends JPanel { list.setCellRenderer(new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent(JList l, Object v, int i, boolean s, boolean f) { - JLabel c = (JLabel) super.getListCellRendererComponent(l, v instanceof Node n ? n.label() : v, i, s, f); + JLabel c = (JLabel) + super.getListCellRendererComponent(l, names.getOrDefault(v, String.valueOf(v)), i, s, f); c.setIcon(v instanceof Node n ? NodeIcons.icon(n, 14) : null); + c.setToolTipText(v instanceof Node n ? n.id() : null); return c; } }); diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/OutlinerPanel.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/OutlinerPanel.java index 39ef0c0..401dc45 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/OutlinerPanel.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/panels/OutlinerPanel.java @@ -18,6 +18,7 @@ import com.eliasmueller.llamamod.editor.ui.EditorContext; import com.eliasmueller.llamamod.editor.ui.EditorWindow; import com.eliasmueller.llamamod.editor.ui.Icons; import com.eliasmueller.llamamod.editor.ui.NodeIcons; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.Selection; import com.eliasmueller.llamamod.editor.ui.tools.EditOps; import com.eliasmueller.llamamod.util.SwingListeners; @@ -31,9 +32,7 @@ import java.awt.Rectangle; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; -import java.util.Collections; import java.util.Enumeration; -import java.util.HashMap; import java.util.HashSet; import java.util.IdentityHashMap; import java.util.LinkedHashMap; @@ -98,6 +97,7 @@ public final class OutlinerPanel extends JPanel { private final Map byNode = new IdentityHashMap<>(); private final Timer rebuildTimer; private boolean syncing; + private NodeNames names; public OutlinerPanel(EditorContext ctx) { super(new BorderLayout()); @@ -264,6 +264,7 @@ public final class OutlinerPanel extends JPanel { Scene s = ctx.scene(); String q = filter.getText().trim().toLowerCase(Locale.ROOT); if (s != null) { + names = NodeNames.of(s); build(root, s, q); } syncing = true; @@ -292,12 +293,31 @@ public final class OutlinerPanel extends JPanel { return true; } String l = n.label().toLowerCase(Locale.ROOT); - if (l.contains(q) || n.id().contains(q)) { + if (l.contains(q) || n.id().contains(q) || nameMatches(names.nameOf(n), q)) { + return true; + } + if (n instanceof Tile t && ("cell " + t.cellX() + ", " + t.cellZ()).contains(q)) { return true; } return n instanceof Strat st && StratCatalog.category(st.type()).contains(q); } + /** + * Case-insensitive substring match of a readable name; a query ending in a number matches whole numbers + * only ("floor 1" finds "Floor 1", not "Floor 12"). + */ + static boolean nameMatches(String name, String q) { + String n = name.toLowerCase(Locale.ROOT); + boolean num = !q.isEmpty() && Character.isDigit(q.charAt(q.length() - 1)); + for (int i = n.indexOf(q); i >= 0; i = n.indexOf(q, i + 1)) { + int end = i + q.length(); + if (!num || end >= n.length() || !Character.isDigit(n.charAt(end))) { + return true; + } + } + return false; + } + private DefaultMutableTreeNode group(DefaultMutableTreeNode parent, String key, String label, Icon icon) { Row r = new Row(key, label, "", icon, null); DefaultMutableTreeNode t = new DefaultMutableTreeNode(r); @@ -408,7 +428,7 @@ public final class OutlinerPanel extends JPanel { if (match(st, q)) { String c = StratCatalog.category(st.type()); cats.computeIfAbsent(c, k -> new TreeMap<>()) - .computeIfAbsent(st.type().isEmpty() ? "?" : st.type(), k -> new ArrayList<>()) + .computeIfAbsent(NodeNames.typeName(st), k -> new ArrayList<>()) .add(st); } } @@ -423,10 +443,8 @@ public final class OutlinerPanel extends JPanel { if (t.getValue().size() > 1) { parent = group(cg, "type:" + t.getKey(), t.getKey(), NodeIcons.category(c.getKey(), 14)); } - int nr = 0; for (Strat st : t.getValue()) { - String name = t.getValue().size() > 1 ? t.getKey() + " " + ++nr : t.getKey(); - leaf(parent, st, name, pos(st.gx(), st.gy(), st.gz())); + leaf(parent, st, names.objectName(st), pos(st.gx(), st.gy(), st.gz())); } } } @@ -435,56 +453,32 @@ public final class OutlinerPanel extends JPanel { private void buildChains(DefaultMutableTreeNode root, Scene s, String q) { DefaultMutableTreeNode chains = group(root, "chains", "Waypoint chains", NodeIcons.kind(NodeKind.PATH_NODE, 16)); - Set hasPrev = Collections.newSetFromMap(new IdentityHashMap<>()); - for (PathNode p : s.pathNodes()) { - if (p.next() != null) { - hasPrev.add(p.next()); - } - } Map users = new IdentityHashMap<>(); for (Strat st : s.strats()) { if (st.waypoint() != null) { users.merge(st.waypoint(), st.type(), (a, b) -> a.contains(b) ? a : a + ", " + b); } } - Set done = Collections.newSetFromMap(new IdentityHashMap<>()); - List starts = new ArrayList<>(); - for (PathNode p : s.pathNodes()) { - if (!hasPrev.contains(p)) { - starts.add(p); - } - } - for (PathNode p : s.pathNodes()) { - if (!starts.contains(p) && !done.contains(p)) { - // loops without a start - if (starts.stream().noneMatch(st -> s.chain(st).contains(p))) { - starts.add(p); - done.addAll(s.chain(p)); - } - } - } int chainNr = 0; - for (PathNode start : starts) { + for (PathNode start : names.chainStarts()) { chainNr++; List ch = s.chain(start); + String user = users.get(start); + String label = "Chain " + chainNr + (user != null ? " – " + user : ""); List m = new ArrayList<>(); - for (PathNode p : ch) { - if (match(p, q)) { - m.add(p); + for (int i = 0; i < ch.size(); i++) { + if (match(ch.get(i), q) || nameMatches("waypoint " + (i + 1), q)) { + m.add(ch.get(i)); } } - String user = users.get(start); - if (m.isEmpty() && !(user != null && user.toLowerCase(Locale.ROOT).contains(q))) { + if (m.isEmpty() && !nameMatches(label, q)) { continue; } if (m.isEmpty()) { m = ch; } - DefaultMutableTreeNode g = group( - chains, - "chain:" + start.id(), - "Chain " + chainNr + (user != null ? " – " + user : ""), - NodeIcons.kind(NodeKind.PATH_NODE, 16)); + DefaultMutableTreeNode g = + group(chains, "chain:" + start.id(), label, NodeIcons.kind(NodeKind.PATH_NODE, 16)); for (PathNode p : m) { leaf(g, p, "Waypoint " + (ch.indexOf(p) + 1), pos(p.gx(), p.gy(), p.gz())); } @@ -496,34 +490,19 @@ public final class OutlinerPanel extends JPanel { DefaultMutableTreeNode zones = group(root, "zones", "Zones", NodeIcons.kind(NodeKind.ENV_ZONE, 16)); for (EnvZone z : s.zones()) { if (match(z, q)) { - leaf( - zones, - z, - z.isDefault() - ? "Default zone (fog, sky, music)" - : "Z" + z.label().substring(1), - z.isDefault() ? "" : "cell " + z.cellX() + ", " + z.cellZ()); + leaf(zones, z, names.nameOf(z), z.isDefault() ? "" : "cell " + z.cellX() + ", " + z.cellZ()); } } DefaultMutableTreeNode lights = group(root, "lights", "Lights", NodeIcons.kind(NodeKind.LIGHT, 16)); - int lightNr = 0; for (Light l : s.lights()) { - lightNr++; if (match(l, q)) { - leaf(lights, l, "Light " + lightNr, l.type() == Light.DIRECTIONAL ? "directional" : "point"); + leaf(lights, l, names.nameOf(l), l.type() == Light.DIRECTIONAL ? "directional" : "point"); } } DefaultMutableTreeNode brushes = group(root, "brushes", "Brushes", NodeIcons.kind(NodeKind.BRUSH, 16)); - Map sameName = new HashMap<>(); for (Brush b : s.brushes()) { - sameName.merge(brushName(b), 1, Integer::sum); - } - Map brushNr = new HashMap<>(); - for (Brush b : s.brushes()) { - String name = brushName(b); - int nr = brushNr.merge(name, 1, Integer::sum); if (match(b, q)) { - leaf(brushes, b, sameName.get(name) > 1 ? name + " " + nr : name, brushPlace(b)); + leaf(brushes, b, names.nameOf(b), brushPlace(b)); } } DefaultMutableTreeNode assets = group(root, "assets", "Assets", Icons.get("assets", 16)); @@ -547,7 +526,7 @@ public final class OutlinerPanel extends JPanel { leaf( pages, p, - p.label().replace("page " + p.id(), "Page " + number(p.id())), + p.label().replace("page " + p.id(), "Page " + NodeNames.number(p.id())), p.width() + "×" + p.height()); } } @@ -555,16 +534,7 @@ public final class OutlinerPanel extends JPanel { /** "model:12 (…)" → "Model 12 (…)" for unnamed tile models. */ private static String modelName(TileModel m) { - return m.label().replace(m.id(), "Model " + number(m.id())); - } - - /** The number part of an id ("model:12" → "12", "page:n3" → "n3"). */ - private static String number(String id) { - return id.substring(id.indexOf(':') + 1); - } - - private static String brushName(Brush b) { - return b.name().isEmpty() ? b.brushKind().label() : b.name(); + return m.label().replace(m.id(), "Model " + NodeNames.number(m.id())); } /** Centre of a brush (game cells) for the detail column. */ diff --git a/src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryChecksTest.java b/src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryChecksTest.java index b4fa6f2..b49cdfc 100644 --- a/src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryChecksTest.java +++ b/src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryChecksTest.java @@ -115,4 +115,38 @@ class GeometryChecksTest { assertTrue(r.textures().size() > rt); assertTrue(com.eliasmueller.llamamod.editor.io.WadBuilder.build(r).length > 0); } + + @Test + void libraryKeepsNoCollision() throws Exception { + Scene v = Project.create(cd(), "edit", "t1l1m001").scene(); + List sel = new ArrayList<>(); + for (Tile o : v.tiles()) { + if (o.model() != null + && !GeometryActions.isKillModel(o.model()) + && o.model().faceCount() > 0) { + sel.add(o); + if (sel.size() == 3) { + break; + } + } + } + ((Tile) sel.get(1)).setRaw("noCollision", true); + MeshLibrary.Tables[] tb = new MeshLibrary.Tables[1]; + var placed = MeshLibrary.collect(v, sel, tb); + assertEquals( + List.of(false, true, false), + placed.stream().map(MeshLibrary.Placed::noCollision).toList()); + MeshLibrary.Asset a = MeshLibrary.load(MeshLibrary.save("piece", "t1l1m001", placed, tb[0])); + Scene r = Project.create(cd(), "new", "t1l4m001").scene(); + List out = new ArrayList<>(); + new Batch("insert", MeshLibrary.insert(r, a, 10, 10, 0, out)).apply(r); + assertEquals( + List.of(false, true, false), + out.stream().map(n -> ((Tile) n).noCollision()).toList()); + // the model keeps its collision; only the flagged tile is built without it + assertEquals( + ((Tile) sel.get(1)).model().collisionCount(), + ((Tile) out.get(1)).model().collisionCount()); + assertTrue(((Tile) out.get(1)).worldCollisionPolygons().isEmpty()); + } } diff --git a/src/test/java/com/eliasmueller/llamamod/editor/ui/EditorStress.java b/src/test/java/com/eliasmueller/llamamod/editor/ui/EditorStress.java index 9151cef..dd88805 100644 --- a/src/test/java/com/eliasmueller/llamamod/editor/ui/EditorStress.java +++ b/src/test/java/com/eliasmueller/llamamod/editor/ui/EditorStress.java @@ -65,6 +65,7 @@ public final class EditorStress { case "nocd" -> noCd(); case "crash" -> crash(); case "recover" -> recover(); + case "status" -> statusMessages(); default -> System.out.println("unknown step " + s); } } @@ -164,7 +165,14 @@ public final class EditorStress { System.out.println("open " + f.getFileName() + " -> doc=" + doc + " dialogs=" + dialogs.subList(before, dialogs.size()) + " status=" + st + " " + (System.currentTimeMillis() - t0) + " ms"); - if (st.startsWith("Loading")) { + if (st.startsWith("Loading") || st.equals("Opening " + f.getFileName())) { + // keep the evidence of a stuck task (which thread waits where) + Thread.getAllStackTraces().forEach((t, trace) -> { + System.out.println("thread " + t.getName() + " " + t.getState()); + for (StackTraceElement e : trace) { + System.out.println(" at " + e); + } + }); throw new AssertionError("status still says " + st + " after a failed open"); } } @@ -368,6 +376,32 @@ public final class EditorStress { })); } + /** An autosave note does not replace a fresh message from a user action (e.g. an export result). */ + static void statusMessages() throws Exception { + String st = EditorTour.edt(() -> { + EditorTour.w.status("Exported level.glb"); + EditorTour.w.backgroundStatus("Autosaved"); + return EditorTour.w.statusTexts()[0]; + }); + if (!st.equals("Exported level.glb")) { + throw new AssertionError("user message replaced: " + st); + } + EditorTour.sleep(6600); + st = EditorTour.edt(() -> EditorTour.w.statusTexts()[0]); + if (!st.equals("Autosaved")) { + throw new AssertionError("autosave note not shown afterwards: " + st); + } + EditorTour.sleep(6600); + String idle = EditorTour.edt(() -> { + EditorTour.w.backgroundStatus("Autosaved again"); + return EditorTour.w.statusTexts()[0]; + }); + if (!idle.equals("Autosaved again")) { + throw new AssertionError("autosave note not shown on an idle status bar: " + idle); + } + System.out.println("status messages ok"); + } + static void noCd() throws Exception { int before = dialogs.size(); EditorTour.edt(() -> { diff --git a/src/test/java/com/eliasmueller/llamamod/editor/ui/OutlinerAndErrorsTest.java b/src/test/java/com/eliasmueller/llamamod/editor/ui/OutlinerAndErrorsTest.java index 0744764..ad65fd0 100644 --- a/src/test/java/com/eliasmueller/llamamod/editor/ui/OutlinerAndErrorsTest.java +++ b/src/test/java/com/eliasmueller/llamamod/editor/ui/OutlinerAndErrorsTest.java @@ -48,6 +48,48 @@ class OutlinerAndErrorsTest { assertTrue(rows.stream().anyMatch(r -> r.matches("[A-Za-z]+ 2")), rows.toString()); } + @Test + void readableNamesAreSharedAndFilterable() throws Exception { + Project p = Project.create(EditorShellTest.cd(), "edit", "t1l1m001"); + Scene s = p.scene(); + BuiltinEditorPlugin.brush(s, BrushKind.FLOOR, Map.of("x0", 2.0, "z0", 2.0, "x1", 10.0, "z1", 10.0)); + BuiltinEditorPlugin.brush(s, BrushKind.FLOOR, Map.of("x0", 20.0, "z0", 2.0, "x1", 30.0, "z1", 10.0)); + var second = s.brushes().getLast(); + assertEquals("Floor 2", NodeNames.name(second)); + var tile = s.tiles().getFirst(); + assertTrue(NodeNames.name(tile).startsWith("Tile " + tile.cellX() + ", " + tile.cellZ()), NodeNames.name(tile)); + assertFalse(NodeNames.name(tile).contains("model:"), NodeNames.name(tile)); + NodeNames names = NodeNames.of(s); + var chain = s.chain(names.chainStarts().getFirst()); + assertTrue(chain.size() >= 2); + assertEquals("Waypoint 2 (chain 1)", names.nameOf(chain.get(1))); + for (var n : List.of( + s.strats().getFirst(), + second, + tile, + chain.get(1), + s.lights().getFirst(), + s.tileModels().getFirst())) { + assertFalse( + names.nameOf(n).matches(".*\\b(strat|brush|tile|path|light|model|wp):n?\\d+.*"), names.nameOf(n)); + } + OutlinerPanel o = new OutlinerPanel(new EditorShellTest.Ctx(p)); + javax.swing.JTextField filter = find(o, javax.swing.JTextField.class); + JTree tree = find(o, JTree.class); + assertEquals(List.of("Floor 2"), filtered(filter, tree, "Floor 2")); + List wps = filtered(filter, tree, "waypoint 2"); + assertTrue(!wps.isEmpty() && wps.stream().allMatch(r -> r.equals("Waypoint 2")), wps.toString()); + String obj = names.objectName(s.strats().getFirst()); + assertTrue(filtered(filter, tree, obj).contains(obj), obj); + } + + private static List filtered(javax.swing.JTextField f, JTree t, String q) throws Exception { + javax.swing.SwingUtilities.invokeAndWait(() -> f.setText(q)); + Thread.sleep(500); + javax.swing.SwingUtilities.invokeAndWait(() -> {}); + return rows(t); + } + @Test void errorMessagesArePlain() throws Exception { List files = new ArrayList<>(); diff --git a/src/test/java/com/eliasmueller/llamamod/editor/ui/TaskRunnerTest.java b/src/test/java/com/eliasmueller/llamamod/editor/ui/TaskRunnerTest.java new file mode 100644 index 0000000..44f8898 --- /dev/null +++ b/src/test/java/com/eliasmueller/llamamod/editor/ui/TaskRunnerTest.java @@ -0,0 +1,134 @@ +package com.eliasmueller.llamamod.editor.ui; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import javax.swing.SwingUtilities; +import org.junit.jupiter.api.Test; + +/** The completion of a background task always runs and always comes after its progress updates. */ +class TaskRunnerTest { + private final List log = new CopyOnWriteArrayList<>(); + private CountDownLatch finished; + + private final TaskRunner runner = new TaskRunner(new TaskRunner.Ui() { + @Override + public void progress(String text, double fraction) { + log.add("progress " + text); + } + + @Override + public void progressDone() { + log.add("done"); + } + + @Override + public void failed(String title, Throwable t) { + log.add("failed " + t.getClass().getSimpleName()); + } + + @Override + public void finished() { + log.add("finished"); + finished.countDown(); + } + }); + + private List run(EditorContext.Task task, java.util.function.Consumer done) throws Exception { + log.clear(); + finished = new CountDownLatch(1); + AtomicBoolean started = new AtomicBoolean(); + SwingUtilities.invokeAndWait(() -> started.set(runner.start("Task", task, done))); + assertTrue(started.get()); + assertTrue(finished.await(10, TimeUnit.SECONDS), "completion did not run: " + log); + SwingUtilities.invokeAndWait(() -> {}); + assertFalse(runner.busy()); + return List.copyOf(log); + } + + @Test + void completionAlwaysRuns() throws Exception { + List ok = run( + p -> { + p.update(0.5, "Loading x"); + return 42; + }, + r -> log.add("result " + r)); + assertEquals(List.of("progress Task", "progress Loading x", "done", "result 42", "finished"), ok); + assertEquals( + List.of("progress Task", "progress Loading x", "done", "failed IOException", "finished"), + run( + p -> { + p.update(0.2, "Loading x"); + throw new IOException("not a zip"); + }, + r -> log.add("unexpected"))); + assertTrue(run( + p -> { + throw new StackOverflowError(); + }, + null) + .contains("failed StackOverflowError")); + assertTrue(run( + p -> { + throw new NoClassDefFoundError("x"); + }, + null) + .contains("failed NoClassDefFoundError")); + // the done callback fails: reported, and the runner is free again + assertEquals(List.of("progress Task", "done", "failed IllegalStateException", "finished"), run(p -> 1, r -> { + throw new IllegalStateException("setDocument failed"); + })); + } + + @Test + void oneTaskAtATimeAndChaining() throws Exception { + CountDownLatch release = new CountDownLatch(1); + finished = new CountDownLatch(2); + AtomicBoolean second = new AtomicBoolean(true); + AtomicBoolean chained = new AtomicBoolean(); + SwingUtilities.invokeAndWait(() -> { + runner.start( + "Build", + p -> { + release.await(); + return null; + }, + // a done callback may start the next task (build → play) + r -> chained.set(runner.start("Play", p -> null, null))); + second.set(runner.start("Other", p -> null, null)); + }); + assertFalse(second.get()); + assertTrue(runner.busy()); + release.countDown(); + assertTrue(finished.await(10, TimeUnit.SECONDS), log.toString()); + assertTrue(chained.get()); + SwingUtilities.invokeAndWait(() -> {}); + assertFalse(runner.busy()); + } + + @Test + void stress() throws Exception { + for (int i = 0; i < 200; i++) { + int k = i; + List l = run( + p -> { + p.update(0.1, "step"); + if (k % 2 == 0) { + throw new IOException("bad"); + } + return k; + }, + r -> {}); + assertEquals("finished", l.getLast()); + assertEquals("done", l.get(l.size() - (k % 2 == 0 ? 3 : 2))); + } + } +}

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 literal 0 HcmV?d00001 diff --git a/notes/img/editor/ui_waypoint_buttons_narrow.jpg b/notes/img/editor/ui_waypoint_buttons_narrow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2cd2345b7068f32909362b20665817b6862297f3 GIT binary patch literal 123469 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