From 01208aa36f41c6e0107d7f26b7b18f40f79237c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 7 Nov 2026 13:39:54 +0100 Subject: [PATCH] editor: readable names in tool status and problem texts, waypoint reference buttons shorten to fit, x/y/z fields stack in a narrow inspector, whole-number outliner filter for tiles, z-buffered mesh import preview, gltf export of the selection only and of collision as a separate mesh --- docs/manual/07-meshes.md | 11 +- docs/manual/19-shortcuts.md | 2 +- docs/manual/img/geo_gltf_export.jpg | Bin 113688 -> 106047 bytes notes/editor-tools-geometry.md | 24 +++- notes/editor-ui.md | 8 ++ notes/img/editor/geo_gltf_export.jpg | Bin 113688 -> 106047 bytes notes/img/editor/ui_inspector_narrow.jpg | Bin 0 -> 63188 bytes .../editor/tools/environment/EnvChecks.java | 11 +- .../editor/tools/environment/EnvOverlays.java | 3 +- .../editor/tools/geometry/BrushTool.java | 3 +- .../editor/tools/geometry/CollisionTool.java | 12 +- .../tools/geometry/GeometryActions.java | 3 +- .../editor/tools/geometry/GeometryChecks.java | 13 +- .../tools/geometry/GeometrySections.java | 7 +- .../tools/geometry/MeshImportDialog.java | 48 +++---- .../editor/tools/geometry/PreviewRaster.java | 91 ++++++++++++ .../editor/tools/geometry/TilePaintTool.java | 22 +-- .../editor/tools/gltf/GltfEditorPlugin.java | 53 +++++-- .../editor/tools/gltf/GltfExport.java | 135 +++++++++++++++++- .../editor/tools/textures/PaintTool.java | 17 ++- .../llamamod/editor/ui/AxisLayout.java | 92 ++++++++++++ .../editor/ui/BuiltinEditorPlugin.java | 2 +- .../editor/ui/panels/InspectorPanel.java | 120 ++++++++++++++-- .../editor/ui/panels/OutlinerPanel.java | 5 +- .../llamamod/editor/ui/tools/EditOps.java | 5 +- .../tools/geometry/GeometryChecksTest.java | 5 + .../tools/geometry/PreviewRasterTest.java | 50 +++++++ .../editor/tools/gltf/GltfExportTest.java | 129 +++++++++++++++++ .../editor/ui/OutlinerAndErrorsTest.java | 11 ++ .../editor/ui/panels/InspectorNarrowTest.java | 58 ++++++++ 30 files changed, 840 insertions(+), 100 deletions(-) create mode 100644 notes/img/editor/ui_inspector_narrow.jpg create mode 100644 src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/PreviewRaster.java create mode 100644 src/main/java/com/eliasmueller/llamamod/editor/ui/AxisLayout.java create mode 100644 src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/PreviewRasterTest.java create mode 100644 src/test/java/com/eliasmueller/llamamod/editor/ui/panels/InspectorNarrowTest.java diff --git a/docs/manual/07-meshes.md b/docs/manual/07-meshes.md index 400d364..b204c67 100644 --- a/docs/manual/07-meshes.md +++ b/docs/manual/07-meshes.md @@ -7,7 +7,8 @@ collision and lit vertex colours, and its textures are packed onto texture pages The **library** works the other way round: it saves geometry from any level (original tiles, brushes and meshes, with their textures) so you can insert it into other levels. And **Export -selection as OBJ** takes level geometry to Blender, **Export level as glTF** the whole level. +selection as OBJ** takes level geometry to Blender, **Export level as glTF** the whole level (or +the selection). ## Supported files @@ -189,8 +190,8 @@ unchanged: edit it in Blender, then **File → Import mesh** it back (round trip ## Export the level as glTF -**File → Export level as glTF…** writes the whole level – tiles, brushes and meshes – as one glTF -2.0 file for Blender or any 3D viewer: +**File → Export level as glTF…** writes the whole level (or only the selection) – tiles, brushes and +meshes – as one glTF 2.0 file for Blender or any 3D viewer: * **.glb** (binary) or **.gltf** (text, everything in one file), chosen by the file type, * the level's texture pages as PNG pictures inside the file, the game's vertex colours @@ -199,13 +200,15 @@ unchanged: edit it in Blender, then **File → Import mesh** it back (round trip | Option | Meaning | |---|---| +| **Selection only** | only the selected tiles, brushes, meshes (and objects, with **Object models**) | | **Object models** | also the models of placed objects (coins, characters …) as the viewport shows them | +| **Collision as separate mesh** | the collision polygons as an extra node **collision**, untextured, one colour per collision material (grey 0 normal, green 16 exit floor, red 30 no floor / death) – handy to check in Blender where the llama can walk | | **Leave out hidden items** | items hidden in the editor (**H**) are not exported | 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) +![glTF export dialog and the exported village (with the collision node, death floor in red) read back by Import mesh](img/geo_gltf_export.jpg) > **Note:** The exported textures are game data – fine for your own use, please don't share them. diff --git a/docs/manual/19-shortcuts.md b/docs/manual/19-shortcuts.md index ced0d32..1a5a514 100644 --- a/docs/manual/19-shortcuts.md +++ b/docs/manual/19-shortcuts.md @@ -157,7 +157,7 @@ Every menu command with its shortcut and a short description. | Import texture… | | Import PNG/JPG images as textures (colour reduction, blend class, packing) | | Export level WAD… | | Build the level and save the game file (.wad) somewhere | | Export selection as OBJ… | | Mesh, UVs, vertex colours, textures (PNG) and collision for Blender | -| Export level as glTF… | | The whole level with textures and vertex colours as .glb / .gltf (Blender, viewers) | +| Export level as glTF… | | The level (or the selection) with textures and vertex colours as .glb / .gltf (Blender, viewers) | | Close editor | **Ctrl+Q** | Close the editor | ### Edit menu diff --git a/docs/manual/img/geo_gltf_export.jpg b/docs/manual/img/geo_gltf_export.jpg index 634637a62cc7d66901e224e415de8578529e5200..21a12fbc1cbf5f3a9cf1fe0369c2223a15cbb534 100644 GIT binary patch literal 106047 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%0D;H^{vU~>CN`Ks1WBURl!zo;(m>~pMYG|J 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

-=jWf#F!s&^YCoad)pGhf??pIM78DK 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 Aod5s; literal 0 HcmV?d00001 diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/environment/EnvChecks.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/environment/EnvChecks.java index 62e1c77..5e64f97 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/environment/EnvChecks.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/environment/EnvChecks.java @@ -8,6 +8,7 @@ import com.eliasmueller.llamamod.editor.model.Strat; import com.eliasmueller.llamamod.editor.model.Tile; import com.eliasmueller.llamamod.editor.model.TileModel; import com.eliasmueller.llamamod.editor.ui.LevelCheck; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.Problem; import java.util.List; import java.util.Locale; @@ -224,18 +225,20 @@ final class EnvChecks implements LevelCheck { } static void lights(Scene s, List out) { + NodeNames names = NodeNames.of(s); for (Light l : s.lights()) { + String name = names.nameOf(l); if (l.type() == Light.POINT || l.type() == Light.POINT_BRIGHT) { if (l.rangeB() <= 0) { - out.add(Problem.warning(l.label() + ": falloff radius 0, the light has no effect", l)); + out.add(Problem.warning(name + ": falloff radius 0, the light has no effect", l)); } else if (l.rangeB() < l.a()) { - out.add(Problem.info(l.label() + ": falloff radius smaller than the full radius", l)); + out.add(Problem.info(name + ": falloff radius smaller than the full radius", l)); } } else if (l.type() != Light.DIRECTIONAL) { - out.add(Problem.info(l.label() + ": type " + l.type() + " is ignored by the engine", l)); + out.add(Problem.info(name + ": type " + l.type() + " is ignored by the engine", l)); } if (l.r() == 0 && l.g() == 0 && l.b() == 0) { - out.add(Problem.info(l.label() + ": colour is black (no effect)", l)); + out.add(Problem.info(name + ": colour is black (no effect)", l)); } } } diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/environment/EnvOverlays.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/environment/EnvOverlays.java index 6be82e8..5fca9f4 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/environment/EnvOverlays.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/environment/EnvOverlays.java @@ -8,6 +8,7 @@ import com.eliasmueller.llamamod.editor.model.Tile; import com.eliasmueller.llamamod.editor.render.Marker; import com.eliasmueller.llamamod.editor.render.Overlay; import com.eliasmueller.llamamod.editor.ui.EditorContext; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.RenderContributor; import java.awt.Color; @@ -151,7 +152,7 @@ final class EnvOverlays { Marker m = b.marker(z, (float) tx, (float) ty + 0.1f, (float) tz, rgba(TARGET, 255)); m.shape = Marker.Shape.DIAMOND; m.size = 0.09f; - m.label = "target of " + z.label(); + m.label = "target of " + NodeNames.name(z); } } }; diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/BrushTool.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/BrushTool.java index 7148d67..75c55e2 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/BrushTool.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/BrushTool.java @@ -13,6 +13,7 @@ import com.eliasmueller.llamamod.editor.ui.EditorPrefs; import com.eliasmueller.llamamod.editor.ui.EditorWindow; import com.eliasmueller.llamamod.editor.ui.Icons; import com.eliasmueller.llamamod.editor.ui.NodeCopy; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.Tool; import com.eliasmueller.llamamod.editor.ui.ToolEvent; import com.eliasmueller.llamamod.editor.ui.tools.TransformSupport; @@ -574,7 +575,7 @@ final class BrushTool implements Tool { Brush target = BrushMath.apply(hSnap, BrushMath.drag(hSnap, hHandle.id(), amount)); Map d = BrushMath.diff(hBrush, target); if (!d.isEmpty()) { - ctx.execute(Edits.set("Resize " + hBrush.label(), Map.of(hBrush, d), mergeKey)); + ctx.execute(Edits.set("Resize " + NodeNames.name(hBrush), Map.of(hBrush, d), mergeKey)); } double[] bb = hBrush.localBounds(); ctx.status(hHandle.tip() + ": " + fmt(bb[3] - bb[0]) + " × " + fmt(bb[5] - bb[2]) + " × " + fmt(bb[4] - bb[1])); diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/CollisionTool.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/CollisionTool.java index 036750d..9c95462 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/CollisionTool.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/CollisionTool.java @@ -16,6 +16,7 @@ import com.eliasmueller.llamamod.editor.render.Overlay; import com.eliasmueller.llamamod.editor.ui.EditorContext; import com.eliasmueller.llamamod.editor.ui.Icons; import com.eliasmueller.llamamod.editor.ui.NodeCopy; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.Tool; import com.eliasmueller.llamamod.editor.ui.ToolEvent; import java.awt.BorderLayout; @@ -163,7 +164,7 @@ final class CollisionTool implements Tool { String mat = "material " + GeoWidgets.materialName(p.material()); if (owner instanceof Brush b) { String face = b.brushKind().transformable() ? ", " + FACE_NAMES[faceOf(b, p.normal())] + " face" : ""; - return b.label() + face + " – " + mat; + return NodeNames.name(b) + face + " – " + mat; } Tile t = p.tile(); int shared = 0; @@ -172,7 +173,7 @@ final class CollisionTool implements Tool { shared++; } } - return t.label() + " polygon " + p.index() + " – " + mat + return NodeNames.name(t) + ", polygon " + p.index() + " – " + mat + (shared > 1 ? " (model shared by " + shared + " tiles)" : ""); } @@ -249,7 +250,8 @@ final class CollisionTool implements Tool { char c = BrushKind.FACES.charAt(k); String n = cf.indexOf(c) >= 0 ? cf.replace(String.valueOf(c), "") : BrushMath.mapFaces(cf + c, "", ""); ctx.execute(new Stroke("Toggle collision", SetProp.of(b, "collFaces", n), stroke)); - ctx.status(b.label() + ": " + FACE_NAMES[k] + " face collision " + (cf.indexOf(c) >= 0 ? "off" : "on")); + ctx.status(NodeNames.name(b) + ": " + FACE_NAMES[k] + " face collision " + + (cf.indexOf(c) >= 0 ? "off" : "on")); return; } int[] fm = b.get("faceMats") instanceof int[] a && a.length == 6 @@ -262,7 +264,7 @@ final class CollisionTool implements Tool { } fm[k] = want; ctx.execute(new Stroke("Paint collision " + material, SetProp.of(b, "faceMats", fm), stroke)); - ctx.status(b.label() + ": " + FACE_NAMES[k] + " face → " + GeoWidgets.materialName(material)); + ctx.status(NodeNames.name(b) + ": " + FACE_NAMES[k] + " face → " + GeoWidgets.materialName(material)); return; } if (p.generated()) { @@ -301,7 +303,7 @@ final class CollisionTool implements Tool { TileModel.collisionProp(p.group()), target.withCollisionMaterial(p.group(), p.index(), material))); ctx.execute(new Stroke("Paint collision " + material, new Batch("Paint collision " + material, cmds), stroke)); - ctx.status(t.label() + " polygon " + p.index() + " → " + GeoWidgets.materialName(material) + ctx.status(NodeNames.name(t) + ", polygon " + p.index() + " → " + GeoWidgets.materialName(material) + (shared > 1 && !copyShared ? " (all " + shared + " tiles of this model)" : "")); } diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryActions.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryActions.java index bfbd810..e0b0a19 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryActions.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryActions.java @@ -14,6 +14,7 @@ import com.eliasmueller.llamamod.editor.model.cmd.Edits; import com.eliasmueller.llamamod.editor.model.cmd.RemoveNode; import com.eliasmueller.llamamod.editor.model.cmd.SetProp; import com.eliasmueller.llamamod.editor.ui.EditorContext; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.NodeTransformer; import com.eliasmueller.llamamod.editor.ui.Snapping; import com.eliasmueller.llamamod.editor.ui.tools.EditOps; @@ -138,7 +139,7 @@ final class GeometryActions { if (!cmds.isEmpty()) { ctx.execute(new Batch("Align " + AXES[axis], cmds)); } - ctx.status("Aligned " + (l.size() - 1) + " item(s) on " + AXES[axis] + " to " + ref.label()); + ctx.status("Aligned " + (l.size() - 1) + " item(s) on " + AXES[axis] + " to " + NodeNames.name(ref)); } static double value(double[] b, int axis, int mode) { diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryChecks.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryChecks.java index 1bc522a..d43c4ab 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryChecks.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometryChecks.java @@ -8,6 +8,7 @@ import com.eliasmueller.llamamod.editor.model.StratCatalog; import com.eliasmueller.llamamod.editor.model.Tile; import com.eliasmueller.llamamod.editor.model.TileModel; import com.eliasmueller.llamamod.editor.ui.LevelCheck; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.Problem; import java.util.ArrayList; import java.util.HashMap; @@ -27,12 +28,13 @@ final class GeometryChecks implements LevelCheck { @Override public void check(Scene s, List out) { int w = s.settings().width(), h = s.settings().height(); + NodeNames names = NodeNames.of(s); // tiles outside the grid int n = 0; for (Tile t : s.tiles()) { if (t.cellX() < 0 || t.cellZ() < 0 || t.cellX() >= w || t.cellZ() >= h) { if (n++ < MAX_EACH) { - out.add(Problem.error(t.label() + " lies outside the " + w + "×" + h + " grid", t)); + out.add(Problem.error(names.nameOf(t) + " lies outside the " + w + "×" + h + " grid", t)); } } } @@ -47,8 +49,8 @@ final class GeometryChecks implements LevelCheck { for (TileModel m : s.tileModels()) { if (m.vertexCount() > MAX_VERTICES) { out.add(Problem.error( - m.label() + " has " + m.vertexCount() + " vertices – the engine allows at most " + MAX_VERTICES - + " per tile model", + NodeNames.modelName(m) + " has " + m.vertexCount() + " vertices – the engine allows at most " + + MAX_VERTICES + " per tile model", firstUse.getOrDefault(m, null))); } } @@ -80,7 +82,7 @@ final class GeometryChecks implements LevelCheck { Tile o = seen.putIfAbsent(key, t); if (o != null && n++ < MAX_EACH) { out.add(Problem.warning( - t.label() + " overlaps " + o.id() + " exactly (same model, cell, height and" + names.nameOf(t) + " overlaps another tile exactly (same model, cell, height and" + " rotation) – z-fighting and double collision", t)); } @@ -170,6 +172,7 @@ final class GeometryChecks implements LevelCheck { /** Neighbouring floors at the same height with a narrow gap between them (the llama trips into it). */ static void gaps(Scene s, List out) { + NodeNames names = NodeNames.of(s); List l = new ArrayList<>(); List tops = new ArrayList<>(); for (Brush b : s.brushes()) { @@ -197,7 +200,7 @@ final class GeometryChecks implements LevelCheck { if (gap > 0 && n++ < MAX_EACH) { out.add(Problem.warning( "Gap of " + BrushTool.fmt(gap) + " between " - + l.get(i).label() + " and " + l.get(k).label() + + names.nameOf(l.get(i)) + " and " + names.nameOf(l.get(k)) + " – close it (drag a handle) or make it a real jump", l.get(k))); } diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometrySections.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometrySections.java index ecfbc73..b36990f 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometrySections.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/GeometrySections.java @@ -14,6 +14,7 @@ import com.eliasmueller.llamamod.editor.render.Legend; import com.eliasmueller.llamamod.editor.render.Overlay; import com.eliasmueller.llamamod.editor.ui.EditorContext; import com.eliasmueller.llamamod.editor.ui.InspectorSection; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.RenderContributor; import com.eliasmueller.llamamod.editor.ui.Widgets; import java.awt.GridBagConstraints; @@ -96,13 +97,13 @@ final class GeometrySections { Brush c = BrushMath.apply(b, Map.of("rotation", nr)); var p1 = BrushTransformer.pos(c); BrushMath.translate(c, p0.x - p1.x, p0.y - p1.y, p0.z - p1.z); - ctx.execute(Edits.set("Rotate " + b.label(), Map.of(b, BrushMath.diff(b, c)), null)); + ctx.execute(Edits.set("Rotate " + NodeNames.name(b), Map.of(b, BrushMath.diff(b, c)), null)); } }; for (JSpinner s : List.of(rx, ry, rz)) { s.addChangeListener(e -> apply.run()); } - JPanel rp = new JPanel(new java.awt.GridLayout(1, 3, 4, 0)); + JPanel rp = new JPanel(new com.eliasmueller.llamamod.editor.ui.AxisLayout(72)); rp.setOpaque(false); rp.add(rx); rp.add(ry); @@ -344,7 +345,7 @@ final class GeometrySections { } private static String id(TileModel m) { - return m == null ? "–" : m.id(); + return m == null ? "–" : NodeNames.modelName(m); } } diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/MeshImportDialog.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/MeshImportDialog.java index c5a031f..20ff4bd 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/MeshImportDialog.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/MeshImportDialog.java @@ -13,7 +13,6 @@ import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.Graphics2D; -import java.awt.Polygon; import java.awt.RenderingHints; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -287,7 +286,7 @@ final class MeshImportDialog extends JDialog { // ------------------------------------------------------------------ preview - /** Software preview: flat-shaded triangles, painter's algorithm, orbit by dragging. */ + /** Software preview: flat-shaded triangles with a z-buffer ({@link PreviewRaster}), orbit by dragging. */ static final class Preview extends JPanel { private MeshData mesh; /** Starts looking down at the model's front (+z, as Blender's front view shows it). */ @@ -392,17 +391,12 @@ final class MeshImportDialog extends JDialog { line(g, -n, gy, i, n, gy, i, ct, st, cyw, syw, cp, sp, sc, w2, h2, false); } int nt = mesh.triangleCount(); - Integer[] order = new Integer[nt]; - double[] depth = new double[nt]; int[] tri = mesh.triangles(); - for (int t = 0; t < nt; t++) { - order[t] = t; - depth[t] = sd[tri[3 * t]] + sd[tri[3 * t + 1]] + sd[tri[3 * t + 2]]; - } - java.util.Arrays.sort(order, (a, c) -> Double.compare(depth[c], depth[a])); - int limit = Math.min(nt, 60000); - for (int i = nt - limit; i < nt; i++) { - int t = order[i]; + // z-buffer at twice the panel size, scaled down smoothly (a little anti-aliasing) + int ss = 2; + PreviewRaster zb = new PreviewRaster(getWidth() * ss, getHeight() * ss); + boolean edges = nt < 3000; + for (int t = 0; t < Math.min(nt, 200000); t++) { int a = tri[3 * t], bb = tri[3 * t + 1], c = tri[3 * t + 2]; double[] u = Lin3.sub(cam[bb], cam[a]), v = Lin3.sub(cam[c], cam[a]); double[] nn = {u[1] * v[2] - u[2] * v[1], u[2] * v[0] - u[0] * v[2], u[0] * v[1] - u[1] * v[0]}; @@ -410,20 +404,24 @@ final class MeshImportDialog extends JDialog { double shade = ln < 1e-12 ? 0.6 : 0.35 + 0.65 * Math.abs((nn[0] * 0.3 + nn[1] * 0.8 - nn[2] * 0.5) / ln / 1.0); Color base = colour(mesh.materials()[t]); - Color col = new Color( - (int) Math.min(255, base.getRed() * shade), (int) Math.min(255, base.getGreen() * shade), (int) - Math.min(255, base.getBlue() * shade)); - Polygon p = new Polygon( - new int[] {(int) sx[a], (int) sx[bb], (int) sx[c]}, - new int[] {(int) sy[a], (int) sy[bb], (int) sy[c]}, - 3); - g.setColor(col); - g.fillPolygon(p); - if (nt < 3000) { - g.setColor(new Color(0, 0, 0, 40)); - g.drawPolygon(p); - } + int rgb = (int) Math.min(255, base.getRed() * shade) << 16 + | (int) Math.min(255, base.getGreen() * shade) << 8 + | (int) Math.min(255, base.getBlue() * shade); + zb.triangle( + sx[a] * ss, + sy[a] * ss, + sd[a], + sx[bb] * ss, + sy[bb] * ss, + sd[bb], + sx[c] * ss, + sy[c] * ss, + sd[c], + rgb, + edges); } + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(zb.image(), 0, 0, getWidth(), getHeight(), null); // llama for scale: 0.6 cells tall g.setStroke(new BasicStroke(2f)); g.setColor(new Color(255, 170, 60, 200)); diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/PreviewRaster.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/PreviewRaster.java new file mode 100644 index 0000000..b4e1329 --- /dev/null +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/PreviewRaster.java @@ -0,0 +1,91 @@ +package com.eliasmueller.llamamod.editor.tools.geometry; + +import java.awt.image.BufferedImage; +import java.util.Arrays; + +/** + * Tiny z-buffer for the mesh import preview: flat triangles in screen space (smaller depth = nearer), optional + * darkened edges. Unlike sorting by centroid it never shows hidden faces in front of nearer ones. + */ +final class PreviewRaster { + private final int w, h; + private final float[] depth; + private final BufferedImage img; + private final int[] px; + + PreviewRaster(int w, int h) { + this.w = Math.max(1, w); + this.h = Math.max(1, h); + depth = new float[this.w * this.h]; + Arrays.fill(depth, Float.POSITIVE_INFINITY); + img = new BufferedImage(this.w, this.h, BufferedImage.TYPE_INT_ARGB); + px = ((java.awt.image.DataBufferInt) img.getRaster().getDataBuffer()).getData(); + } + + BufferedImage image() { + return img; + } + + /** Depth at a pixel (infinity = empty). */ + float depthAt(int x, int y) { + return depth[y * w + x]; + } + + int rgbAt(int x, int y) { + return px[y * w + x]; + } + + /** Fills a triangle (pixel centres inside, either winding); edge = darken pixels within one pixel of an edge. */ + void triangle( + double x0, + double y0, + double z0, + double x1, + double y1, + double z1, + double x2, + double y2, + double z2, + int rgb, + boolean edge) { + double area = (x1 - x0) * (y2 - y0) - (x2 - x0) * (y1 - y0); + if (Math.abs(area) < 1e-9) { + return; + } + int minX = Math.max(0, (int) Math.floor(Math.min(x0, Math.min(x1, x2)))); + int maxX = Math.min(w - 1, (int) Math.ceil(Math.max(x0, Math.max(x1, x2)))); + int minY = Math.max(0, (int) Math.floor(Math.min(y0, Math.min(y1, y2)))); + int maxY = Math.min(h - 1, (int) Math.ceil(Math.max(y0, Math.max(y1, y2)))); + double inv = 1 / area; + double l0 = Math.hypot(x2 - x1, y2 - y1), l1 = Math.hypot(x0 - x2, y0 - y2), l2 = Math.hypot(x1 - x0, y1 - y0); + int dark = 0xff000000 + | (int) ((rgb >> 16 & 0xff) * 0.8) << 16 + | (int) ((rgb >> 8 & 0xff) * 0.8) << 8 + | (int) ((rgb & 0xff) * 0.8); + int full = 0xff000000 | rgb; + for (int y = minY; y <= maxY; y++) { + double py = y + 0.5; + for (int x = minX; x <= maxX; x++) { + double pxc = x + 0.5; + // barycentric weights (scaled by the signed area, so the winding does not matter) + double w0 = ((x2 - x1) * (py - y1) - (y2 - y1) * (pxc - x1)) * inv; + double w1 = ((x0 - x2) * (py - y2) - (y0 - y2) * (pxc - x2)) * inv; + double w2 = 1 - w0 - w1; + if (w0 < 0 || w1 < 0 || w2 < 0) { + continue; + } + float z = (float) (w0 * z0 + w1 * z1 + w2 * z2); + int i = y * w + x; + if (z >= depth[i]) { + continue; + } + depth[i] = z; + boolean onEdge = edge + && (w0 * Math.abs(area) / l0 < 1 + || w1 * Math.abs(area) / l1 < 1 + || w2 * Math.abs(area) / l2 < 1); + px[i] = onEdge ? dark : full; + } + } + } +} diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/TilePaintTool.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/TilePaintTool.java index bab5df7..9a0c076 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/TilePaintTool.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/geometry/TilePaintTool.java @@ -16,6 +16,7 @@ import com.eliasmueller.llamamod.editor.render.Overlay; 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.NodeNames; import com.eliasmueller.llamamod.editor.ui.Tool; import com.eliasmueller.llamamod.editor.ui.ToolEvent; import com.eliasmueller.llamamod.editor.ui.view.Thumbnails; @@ -178,13 +179,14 @@ final class TilePaintTool implements Tool { hoverY = t.y(); rot = Math.floorMod(Math.round(t.rot() / 1024f), 4); syncUi(); - ctx.status("Picked " + (model == null ? "?" : model.id()) + " at height " + BrushTool.fmt(height) + ", " - + rot * 90 + "°"); + ctx.status("Picked " + (model == null ? "?" : NodeNames.modelName(model)) + " at height " + + BrushTool.fmt(height) + ", " + rot * 90 + "°"); } private void syncUi() { if (current != null) { - current.setText(model == null ? "No model – pick one below or Shift+click a tile" : model.label()); + current.setText( + model == null ? "No model – pick one below or Shift+click a tile" : NodeNames.modelName(model)); current.setIcon(model == null ? null : thumb(model, 48)); } if (heightField != null) { @@ -247,7 +249,7 @@ final class TilePaintTool implements Tool { t.setRaw("model", model); t.setRaw("colors", colours(s, model)); ctx.execute(new Stroke("Paint tiles", new AddNode(t), stroke)); - ctx.status("Painted " + model.id() + " in cell " + key); + ctx.status("Painted " + NodeNames.modelName(model) + " in cell " + key); } // ------------------------------------------------------------------ mouse @@ -284,7 +286,7 @@ final class TilePaintTool implements Tool { painted.add(t.id()); ctx.execute(new Stroke("Erase tiles", Edits.delete(ctx.scene(), List.of(t)), stroke)); ctx.status( - "Erased " + t.label() + "Erased " + NodeNames.name(t) + (t.id().contains(":n") ? "" : " (an original tile: strat scripts" @@ -309,7 +311,7 @@ final class TilePaintTool implements Tool { cmds.add(SetProp.of(t, "model", model)); cmds.add(SetProp.of(t, "colors", colours(ctx.scene(), model))); ctx.execute(new Stroke("Swap tile model", new Batch("Swap tile model", cmds), stroke)); - ctx.status(t.label() + " now uses " + model.id()); + ctx.status("Tile " + t.cellX() + ", " + t.cellZ() + " now uses " + NodeNames.modelName(model)); } } default -> {} @@ -344,7 +346,7 @@ final class TilePaintTool implements Tool { hoverTile = tileAt(e); hoverCell = null; if (hoverTile != null) { - ctx.status(hoverTile.label() + ", height " + BrushTool.fmt(hoverTile.y()) + ", " + ctx.status(NodeNames.name(hoverTile) + ", height " + BrushTool.fmt(hoverTile.y()) + ", " + Math.round(hoverTile.rot() * 360.0 / 4096) + "°"); } } @@ -522,8 +524,8 @@ final class TilePaintTool implements Tool { break; } JToggleButton b = new JToggleButton(thumb(m, 48), m == model); - b.setToolTipText( - m.label() + " – " + m.vertexCount() + " vertices, " + uses.getOrDefault(m, 0) + " tile(s)"); + b.setToolTipText(NodeNames.modelName(m) + " – " + m.vertexCount() + " vertices, " + + uses.getOrDefault(m, 0) + " tile(s)"); b.setPreferredSize(new Dimension(56, 56)); b.setFocusable(false); b.addActionListener(e -> { @@ -532,7 +534,7 @@ final class TilePaintTool implements Tool { if (mode != Mode.SWAP) { mode = Mode.PAINT; } - ctx.status("Palette: " + m.label()); + ctx.status("Palette: " + NodeNames.modelName(m)); }); grid.add(b); } diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfEditorPlugin.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfEditorPlugin.java index 70c7667..bd8c527 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfEditorPlugin.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfEditorPlugin.java @@ -1,5 +1,6 @@ package com.eliasmueller.llamamod.editor.tools.gltf; +import com.eliasmueller.llamamod.editor.model.Node; import com.eliasmueller.llamamod.editor.ui.ActionSpec; import com.eliasmueller.llamamod.editor.ui.EditorContext; import com.eliasmueller.llamamod.editor.ui.EditorExtensions; @@ -8,6 +9,7 @@ import java.awt.BorderLayout; import java.io.File; import java.nio.file.Files; import java.nio.file.Path; +import java.util.List; import java.util.Locale; import javax.swing.BorderFactory; import javax.swing.BoxLayout; @@ -17,21 +19,23 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.filechooser.FileNameExtensionFilter; -/** File → Export level as glTF… (whole level: tiles, brushes, meshes, optionally objects). */ +/** File → Export level as glTF… (level or selection: tiles, brushes, meshes, optionally objects and collision). */ public final class GltfEditorPlugin implements EditorPlugin { @Override public void install(EditorExtensions x) { - x.action(ActionSpec.of( - "file.exportGltf", - "File", - 30, - 45, - "Export level as glTF…", - "export", - null, - GltfEditorPlugin::export) - .enabledWhen(c -> c.document() != null) - .tip("The whole level with textures and vertex colours as .glb / .gltf (Blender, viewers)")); + x.action( + ActionSpec.of( + "file.exportGltf", + "File", + 30, + 45, + "Export level as glTF…", + "export", + null, + GltfEditorPlugin::export) + .enabledWhen(c -> c.document() != null) + .tip( + "The level (or the selection) with textures and vertex colours as .glb / .gltf (Blender, viewers)")); } static void export(EditorContext ctx) { @@ -49,9 +53,20 @@ public final class GltfEditorPlugin implements EditorPlugin { fc.setSelectedFile(new File((stem.isBlank() ? "level" : stem) + ".glb")); JCheckBox objects = new JCheckBox("Object models", ctx.prefs().getBool("gltf.objects", false)); JCheckBox hidden = new JCheckBox("Leave out hidden items", ctx.prefs().getBool("gltf.skipHidden", true)); + List sel = List.copyOf(ctx.selection().nodes()); + JCheckBox selection = new JCheckBox("Selection only"); + selection.setEnabled(!sel.isEmpty()); + selection.setSelected(!sel.isEmpty() && ctx.prefs().getBool("gltf.selectionOnly", false)); + selection.setToolTipText(sel.isEmpty() ? "Nothing selected" : "Only the selected tiles, brushes and objects"); + JCheckBox collision = + new JCheckBox("Collision as separate mesh", ctx.prefs().getBool("gltf.collision", false)); + collision.setToolTipText( + "Collision polygons in their own node \"collision\", untextured, coloured by material"); JPanel boxes = new JPanel(); boxes.setLayout(new BoxLayout(boxes, BoxLayout.Y_AXIS)); + boxes.add(selection); boxes.add(objects); + boxes.add(collision); boxes.add(hidden); JPanel acc = new JPanel(new BorderLayout(0, 6)); acc.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0)); @@ -73,16 +88,28 @@ public final class GltfEditorPlugin implements EditorPlugin { ctx.prefs().put("gltf.exportDir", f.getParent().toString()); ctx.prefs().put("gltf.objects", objects.isSelected()); ctx.prefs().put("gltf.skipHidden", hidden.isSelected()); + ctx.prefs().put("gltf.collision", collision.isSelected()); + if (selection.isEnabled()) { + ctx.prefs().put("gltf.selectionOnly", selection.isSelected()); + } GltfExport.Geometry g; try { g = GltfExport.collect( ctx.scene(), - new GltfExport.Options(objects.isSelected()), + new GltfExport.Options( + objects.isSelected(), collision.isSelected(), selection.isSelected() ? sel : null), n -> hidden.isSelected() && ctx.isHidden(n)); } catch (RuntimeException e) { ctx.error("Export glTF", e); return; } + if (g.triangles() == 0) { + ctx.status( + selection.isSelected() + ? "Nothing to export: the selection has no tiles, brushes or (with Object models) objects" + : "Nothing to export"); + return; + } Path out = f; ctx.runTask( "Exporting " + f.getFileName(), diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfExport.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfExport.java index b88d0d5..9cdf1be 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfExport.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfExport.java @@ -17,10 +17,14 @@ import java.nio.ByteOrder; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Base64; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; +import java.util.IdentityHashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.function.Predicate; import org.joml.Matrix3f; import org.joml.Vector3f; @@ -40,8 +44,16 @@ import org.joml.Vector3f; public final class GltfExport { private GltfExport() {} - /** objects: also the models of placed objects (strats) as the viewport shows them. */ - public record Options(boolean objects) {} + /** + * objects: also the models of placed objects (strats) as the viewport shows them; collision: the collision + * polygons as a separate untextured mesh/node "collision" (one material per collision material); only: export + * just these nodes (tiles, brushes, objects; null = the whole level). + */ + public record Options(boolean objects, boolean collision, Collection only) { + public Options(boolean objects) { + this(objects, false, null); + } + } /** One glTF primitive: unique vertices + triangle indices. */ static final class Prim { @@ -49,6 +61,9 @@ public final class GltfExport { final int blend; final boolean doubleSided; final String group; + /** Collision material of a "collision" primitive, else -1. */ + int collisionMat = -1; + final List verts = new ArrayList<>(); final List cols = new ArrayList<>(); final Map index = new HashMap<>(); @@ -144,7 +159,7 @@ public final class GltfExport { Map matOf = new LinkedHashMap<>(); Map> meshPrims = new LinkedHashMap<>(); for (Prim p : prims) { - String mk = p.page + "/" + p.blend + "/" + p.doubleSided; + String mk = p.page + "/" + p.blend + "/" + p.doubleSided + "/" + p.collisionMat; Integer mi = matOf.get(mk); if (mi == null) { mi = materials.size(); @@ -237,6 +252,23 @@ public final class GltfExport { private static Map material(Prim p, Map imageOf, List pages) { Map pbr = new LinkedHashMap<>(); + if (p.collisionMat >= 0) { + int c = collisionColour(p.collisionMat); + pbr.put( + "baseColorFactor", + List.of((c >> 16 & 0xff) / 255.0, (c >> 8 & 0xff) / 255.0, (c & 0xff) / 255.0, 1)); + pbr.put("metallicFactor", 0); + pbr.put("roughnessFactor", 1); + return map( + "name", + "collision_" + p.collisionMat, + "pbrMetallicRoughness", + pbr, + "doubleSided", + true, + "extensions", + map("KHR_materials_unlit", Map.of())); + } pbr.put("baseColorFactor", List.of(1, 1, 1, 1)); if (p.page >= 0) { pbr.put("baseColorTexture", map("index", imageOf.get(p.page))); @@ -260,6 +292,16 @@ public final class GltfExport { return m; } + /** Colour of a collision material: 16 exit green, 30 death red, 0 grey, others spread over the hues. */ + static int collisionColour(int mat) { + return switch (mat) { + case 0 -> 0x9a9a9a; + case 16 -> 0x3cc85a; + case 30 -> 0xe04040; + default -> java.awt.Color.HSBtoRGB((mat * 0.137f) % 1f, 0.6f, 0.9f) & 0xffffff; + }; + } + private static boolean hasCutout(TexturePage p) { for (int c : p.rgba()) { if ((c & 0xff) < 128) { @@ -359,13 +401,20 @@ public final class GltfExport { int[] rgba = new int[3]; Vector3f e1 = new Vector3f(); Vector3f e2 = new Vector3f(); + Set only = null; + if (o.only() != null) { + only = Collections.newSetFromMap(new IdentityHashMap<>()); + only.addAll(o.only()); + } + Set onlyF = only; + Predicate leaveOut = x -> onlyF != null && (x == null || !onlyF.contains(x)) || x != null && skip.test(x); for (RenderInstance ri : rs.instances) { boolean object = ri.kind == RenderInstance.Kind.OBJECT; if (ri.kind != RenderInstance.Kind.TILE && !(object && o.objects())) { continue; } Node owner = sr.nodeOf(ri.id); - if (owner instanceof Tile t && t.excluded() || owner != null && skip.test(owner)) { + if (owner instanceof Tile t && t.excluded() || leaveOut.test(owner)) { continue; } RenderMesh m = ri.mesh; @@ -430,6 +479,9 @@ public final class GltfExport { } } } + if (o.collision()) { + collision(s, sr, rs, leaveOut, prims); + } List l = new ArrayList<>(); for (Prim pr : prims.values()) { if (!pr.tris.isEmpty()) { @@ -440,6 +492,81 @@ public final class GltfExport { return new Geometry(name == null || name.isBlank() ? "level" : name, l, List.copyOf(rs.pages)); } + /** + * Collision polygons of scene tiles and of the tiles compiled from brushes (fan triangles, game space), + * one primitive per material in the group "collision". Tiles with "No collision" have none. + */ + private static void collision( + Scene s, SceneRenderer sr, RenderScene rs, Predicate leaveOut, Map prims) { + List tiles = new ArrayList<>(); + List owners = new ArrayList<>(); + for (Tile t : s.tiles()) { + if (!t.excluded() && !leaveOut.test(t)) { + tiles.add(t); + owners.add(t); + } + } + // compiled brush tiles: the renderer adds one instance per tile with a model, in output order + List compiled = new ArrayList<>(); + if (sr.brushOutput() != null) { + for (Tile t : sr.brushOutput().tiles()) { + if (t.model() != null) { + compiled.add(t); + } + } + } + List brushOwners = new ArrayList<>(); + for (RenderInstance ri : rs.instances) { + Node n = sr.nodeOf(ri.id); + if (ri.kind == RenderInstance.Kind.TILE && !(n instanceof Tile)) { + brushOwners.add(n); + } + } + for (int i = 0; i < compiled.size(); i++) { + Node owner = brushOwners.size() == compiled.size() ? brushOwners.get(i) : null; + if (!leaveOut.test(owner)) { + tiles.add(compiled.get(i)); + owners.add(owner); + } + } + Vector3f e1 = new Vector3f(); + Vector3f e2 = new Vector3f(); + for (Tile t : tiles) { + for (var poly : t.worldCollisionPolygons()) { + double[][] c = poly.corners(); + int mat = poly.material(); + Prim pr = prims.computeIfAbsent("collision/" + mat, k -> { + Prim np = new Prim("collision", -1, RenderMesh.BLEND_OPAQUE, true); + np.collisionMat = mat; + return np; + }); + for (int k = 1; k + 1 < c.length; k++) { + // export → game space: z negated, winding reversed + double[][] tri = {c[0], c[k + 1], c[k]}; + e1.set((float) (tri[1][0] - tri[0][0]), (float) (tri[1][1] - tri[0][1]), (float) + (tri[0][2] - tri[1][2])); + e2.set((float) (tri[2][0] - tri[0][0]), (float) (tri[2][1] - tri[0][1]), (float) + (tri[0][2] - tri[2][2])); + e1.cross(e2); + if (!(e1.lengthSquared() > 1e-14f)) { + continue; + } + e1.normalize(); + double[] pn = poly.normal(); + if (pn != null && e1.x * pn[0] + e1.y * pn[1] - e1.z * pn[2] < 0) { + // follow the polygon's own normal (floors face up) + tri = new double[][] {tri[0], tri[2], tri[1]}; + e1.negate(); + } + for (double[] q : tri) { + float[] v = {(float) q[0], (float) q[1], (float) -q[2], e1.x, e1.y, e1.z, 0, 0}; + pr.tris.add(pr.vertex(v, 0xffffffff)); + } + } + } + } + } + /** Game vertex colour (0xRRGGBBAA, 0x80 = 1.0) doubled with clamp, as the viewport does. */ static int doubled(int rgba) { int r = Math.min(255, ((rgba >>> 24) & 0xff) * 2); diff --git a/src/main/java/com/eliasmueller/llamamod/editor/tools/textures/PaintTool.java b/src/main/java/com/eliasmueller/llamamod/editor/tools/textures/PaintTool.java index 9689073..7435c65 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/tools/textures/PaintTool.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/tools/textures/PaintTool.java @@ -15,6 +15,7 @@ import com.eliasmueller.llamamod.editor.render.Overlay; import com.eliasmueller.llamamod.editor.ui.EditorContext; import com.eliasmueller.llamamod.editor.ui.Icons; import com.eliasmueller.llamamod.editor.ui.NodeCopy; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.Tool; import com.eliasmueller.llamamod.editor.ui.ToolEvent; import com.eliasmueller.llamamod.format.Geometry; @@ -160,7 +161,7 @@ public final class PaintTool implements Tool { ctx.status(String.format( Locale.ROOT, "%s · face %d · texture %s · flags 0x%x%s", - h.model().label(), + NodeNames.modelName(h.model()), h.face(), te == null ? "#" + t : te.label(), h.model().faceFlags(h.face()), @@ -316,7 +317,7 @@ public final class PaintTool implements Tool { String param = brushParam(b, n); lastParam = param; if (param == null) { - ctx.status(b.label() + " has no texture parameter"); + ctx.status(NodeNames.name(b) + " has no texture parameter"); return; } if (eyedropper || e.shift()) { @@ -329,7 +330,7 @@ public final class PaintTool implements Tool { // name } } - ctx.status(b.label() + " · " + param + " = " + v); + ctx.status(NodeNames.name(b) + " · " + paramName(b, param) + " = " + v); setEyedropper(false); return; } @@ -339,7 +340,15 @@ public final class PaintTool implements Tool { return; } ctx.execute(SetProp.of(b, param, "#" + t)); - ctx.status(b.label() + ": " + param + " = #" + t); + ctx.status(NodeNames.name(b) + ": " + paramName(b, param) + " = #" + t); + } + + private static String paramName(Brush b, String param) { + try { + return b.brushKind().param(param).label(); + } catch (IllegalArgumentException e) { + return param; + } } private void rotateBrush() { diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/AxisLayout.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/AxisLayout.java new file mode 100644 index 0000000..7ea94b6 --- /dev/null +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/AxisLayout.java @@ -0,0 +1,92 @@ +package com.eliasmueller.llamamod.editor.ui; + +import java.awt.Component; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Insets; +import java.awt.LayoutManager; +import javax.swing.SwingUtilities; + +/** + * X/Y/Z cells in one row while each gets at least the minimum cell width, else stacked (one per row), so + * the fields stay readable in a very narrow dock. + */ +public final class AxisLayout implements LayoutManager { + /** Default minimum cell width (axis letter + number field). */ + public static final int CELL_MIN = 66; + + static final int GAP = 4; + private final int cellMin; + private int lastRows = 1; + + /** @param cellMin narrowest width of one cell before the cells are stacked */ + public AxisLayout(int cellMin) { + this.cellMin = cellMin; + } + + boolean stacked(int width, int n) { + return width > 0 && width < n * cellMin + (n - 1) * GAP; + } + + @Override + public void addLayoutComponent(String name, Component comp) {} + + @Override + public void removeLayoutComponent(Component comp) {} + + private Dimension size(Container target, boolean preferred) { + Component[] cs = target.getComponents(); + int n = cs.length; + int ch = 0; + for (Component c : cs) { + ch = Math.max(ch, c.getPreferredSize().height); + } + Insets in = target.getInsets(); + int rows = stacked(target.getWidth() - in.left - in.right, n) ? n : 1; + int w = preferred ? n * cellMin + (n - 1) * GAP : cellMin; + return new Dimension(w + in.left + in.right, rows * ch + (rows - 1) * GAP + in.top + in.bottom); + } + + @Override + public Dimension preferredLayoutSize(Container target) { + return size(target, true); + } + + @Override + public Dimension minimumLayoutSize(Container target) { + return size(target, false); + } + + @Override + public void layoutContainer(Container target) { + Component[] cs = target.getComponents(); + int n = cs.length; + if (n == 0) { + return; + } + Insets in = target.getInsets(); + int w = target.getWidth() - in.left - in.right; + int h = target.getHeight() - in.top - in.bottom; + boolean st = stacked(w, n); + if (st) { + int ch = (h - (n - 1) * GAP) / n; + for (int i = 0; i < n; i++) { + cs[i].setBounds(in.left, in.top + i * (ch + GAP), w, ch); + } + } else { + int cw = (w - (n - 1) * GAP) / n; + for (int i = 0; i < n; i++) { + cs[i].setBounds(in.left + i * (cw + GAP), in.top, i == n - 1 ? w - i * (cw + GAP) : cw, h); + } + } + int rows = st ? n : 1; + if (rows != lastRows) { + lastRows = rows; + // the parent asked for our height before we knew our width: let it ask again + SwingUtilities.invokeLater(() -> { + Container p = target.getParent(); + (p != null ? p : target).revalidate(); + }); + } + } +} 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 9c7baa0..2918d99 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/ui/BuiltinEditorPlugin.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/BuiltinEditorPlugin.java @@ -394,7 +394,7 @@ final class BuiltinEditorPlugin implements EditorPlugin { || bb[3] > s.settings().width() || bb[5] > s.settings().height())) { out.add(Problem.warning( - b.id() + " (" + b.brushKind().label() + ") reaches outside the " + NodeNames.name(b) + " reaches outside the " + s.settings().width() + "×" + s.settings().height() + " grid", b)); } 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 35e630b..7eb156c 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 @@ -13,6 +13,7 @@ import com.eliasmueller.llamamod.editor.model.cmd.Batch; import com.eliasmueller.llamamod.editor.model.cmd.Command; import com.eliasmueller.llamamod.editor.model.cmd.SetProp; import com.eliasmueller.llamamod.editor.model.cmd.Values; +import com.eliasmueller.llamamod.editor.ui.AxisLayout; import com.eliasmueller.llamamod.editor.ui.EditorContext; import com.eliasmueller.llamamod.editor.ui.EditorWindow; import com.eliasmueller.llamamod.editor.ui.HelpTopics; @@ -95,6 +96,16 @@ public final class InspectorPanel extends JPanel { JScrollPane sp = new JScrollPane(body); sp.setBorder(BorderFactory.createEmptyBorder()); sp.getVerticalScrollBar().setUnitIncrement(16); + sp.getViewport().addComponentListener(new java.awt.event.ComponentAdapter() { + @Override + public void componentResized(java.awt.event.ComponentEvent e) { + int w = sp.getViewport().getWidth(); + if (w > 0 && (w < NARROW) != narrow) { + narrow = w < NARROW; + rebuild(); + } + } + }); add(sp, BorderLayout.CENTER); ctx.selection().addListener(c -> rebuild()); ctx.addDocumentListener(d -> rebuild()); @@ -364,7 +375,7 @@ 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); - fitLabel(l, LABEL_W); + fitLabel(l, labelWidth()); l.setForeground(UIManager.getColor("Label.foreground")); if (tip != null && !tip.isEmpty()) { l.setToolTipText(tip); @@ -379,6 +390,15 @@ public final class InspectorPanel extends JPanel { } private static final int LABEL_W = 118; + private static final int LABEL_W_NARROW = 80; + /** Below this inspector width the label column is narrower (labels wrap) so the editors stay usable. */ + static final int NARROW = 300; + + private boolean narrow; + + private int labelWidth() { + return narrow ? LABEL_W_NARROW : LABEL_W; + } /** * Gives a property label the fixed column width; a longer text wraps onto more lines instead of being cut. @@ -682,7 +702,7 @@ public final class InspectorPanel extends JPanel { } private JComponent vector(List ps) { - JPanel p = new JPanel(new GridLayout(1, 3, 4, 0)); + JPanel p = new JPanel(new AxisLayout(AxisLayout.CELL_MIN)); p.setOpaque(false); Color[] cols = {new Color(0xD9, 0x3F, 0x3F), new Color(0x3F, 0xA3, 0x4D), new Color(0x3C, 0x82, 0xE6)}; String[] ax = {"X", "Y", "Z"}; @@ -817,7 +837,7 @@ public final class InspectorPanel extends JPanel { private JComponent ref(Prop p, boolean ro) { JPanel panel = new JPanel(new BorderLayout(4, 0)); panel.setOpaque(false); - JButton go = new JButton(); + RefButton go = new RefButton(); go.setHorizontalAlignment(SwingConstants.LEFT); go.setToolTipText("Select the referenced item"); JButton pick = new JButton("…"); @@ -826,12 +846,11 @@ public final class InspectorPanel extends JPanel { Binding b = () -> { Object v = value(p.name()); if (v instanceof Node n) { - go.setText(NodeNames.name(n)); - go.setToolTipText("Select the referenced item (" + n.id() + ")"); - go.setIcon(NodeIcons.icon(n, 14)); + go.setTexts(NodeIcons.icon(n, 14), refNames(n)); + go.setToolTipText("Select " + go.texts[0] + " (" + n.id() + ")"); } else { - go.setText(v == MIXED ? "—" : "(none)"); - go.setIcon(null); + go.setTexts(null, v == MIXED ? "—" : "(none)"); + go.setToolTipText("Select the referenced item"); } go.setEnabled(v instanceof Node); }; @@ -1074,6 +1093,91 @@ public final class InspectorPanel extends JPanel { return cb; } + /** Full name first, then shorter forms for a narrow dock ("Waypoint 5 (chain 3)", "Waypoint 5", "5"). */ + static String[] refNames(Node n) { + if (n instanceof PathNode p && p.scene() != null) { + NodeNames nn = NodeNames.of(p.scene()); + String shortName = nn.waypointName(p, false); + return new String[] {nn.nameOf(p), shortName, shortName.replace("Waypoint ", "#")}; + } + String full = NodeNames.name(n); + int i = full.lastIndexOf(" ("); + return i > 0 && full.endsWith(")") ? new String[] {full, full.substring(0, i)} : new String[] {full}; + } + + /** + * Button that shows the longest of its texts that fits its width (the last one is cut with "…" by Swing). + * Its preferred width is that of the full text and does not change with the shown text. + */ + static final class RefButton extends JButton { + String[] texts = {""}; + private javax.swing.Icon nodeIcon; + + /** The icon is dropped when not even the shortest text fits next to it. */ + void setTexts(javax.swing.Icon icon, String... t) { + nodeIcon = icon; + texts = t; + setIcon(icon); + setText(t[0]); + fit(); + } + + private int extra(boolean icon) { + Insets in = getInsets(); + return in.left + in.right + (icon && nodeIcon != null ? nodeIcon.getIconWidth() + getIconTextGap() : 0) + 2; + } + + private int textWidth(String t) { + return getFontMetrics(getFont()).stringWidth(t); + } + + @Override + public Dimension getPreferredSize() { + Dimension d = super.getPreferredSize(); + d.width = textWidth(texts[0]) + extra(true); + return d; + } + + @Override + public Dimension getMinimumSize() { + Dimension d = super.getMinimumSize(); + d.width = Math.min(getPreferredSize().width, extra(false) + 20); + return d; + } + + @Override + public void setBounds(int x, int y, int w, int h) { + super.setBounds(x, y, w, h); + fit(); + } + + private void fit() { + int w = getWidth(); + if (w <= 0) { + return; + } + String pick = null; + for (String t : texts) { + if (textWidth(t) + extra(true) <= w) { + pick = t; + break; + } + } + boolean icon = pick != null || textWidth(texts[texts.length - 1]) + extra(true) <= w + 1; + if (pick == null) { + pick = texts[texts.length - 1]; + icon = false; + } + if (!pick.equals(getText())) { + setText(pick); + } + javax.swing.Icon want = icon ? nodeIcon : null; + if (getIcon() != want) { + setIcon(want); + } + } + } + /** Body that tracks the viewport width (no horizontal scrolling). */ private static final class ScrollPanel extends JPanel implements Scrollable { @Override 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 401dc45..cb25ef1 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 @@ -292,11 +292,10 @@ public final class OutlinerPanel extends JPanel { if (q.isEmpty()) { return true; } - String l = n.label().toLowerCase(Locale.ROOT); - if (l.contains(q) || n.id().contains(q) || nameMatches(names.nameOf(n), q)) { + if (nameMatches(n.label(), q) || nameMatches(n.id(), q) || nameMatches(names.nameOf(n), q)) { return true; } - if (n instanceof Tile t && ("cell " + t.cellX() + ", " + t.cellZ()).contains(q)) { + if (n instanceof Tile t && nameMatches("cell " + t.cellX() + ", " + t.cellZ(), q)) { return true; } return n instanceof Strat st && StratCatalog.category(st.type()).contains(q); diff --git a/src/main/java/com/eliasmueller/llamamod/editor/ui/tools/EditOps.java b/src/main/java/com/eliasmueller/llamamod/editor/ui/tools/EditOps.java index f8c4a16..650c83f 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/ui/tools/EditOps.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/ui/tools/EditOps.java @@ -16,6 +16,7 @@ import com.eliasmueller.llamamod.editor.model.cmd.Edits; import com.eliasmueller.llamamod.editor.ui.EditorContext; import com.eliasmueller.llamamod.editor.ui.EditorWindow; import com.eliasmueller.llamamod.editor.ui.NodeCopy; +import com.eliasmueller.llamamod.editor.ui.NodeNames; import com.eliasmueller.llamamod.editor.ui.NodeTransformer; import java.util.ArrayList; import java.util.Arrays; @@ -245,9 +246,9 @@ public final class EditOps { int[] col = new int[nv]; Arrays.fill(col, Tile.GREY); t.setRaw("colors", col); - ctx.execute(new Batch("Place tile " + m.id(), List.of(new AddNode(t)))); + ctx.execute(new Batch("Place tile", List.of(new AddNode(t)))); ctx.selection().set(t, ctx); - ctx.status("Placed " + m.label() + " in cell " + (int) x + ", " + (int) -z); + ctx.status("Placed " + NodeNames.modelName(m) + " in cell " + (int) x + ", " + (int) -z); } /** Places an object of a catalog type at the drop point. */ 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 b49cdfc..36c76c6 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 @@ -45,6 +45,11 @@ class GeometryChecksTest { Edits.placeStrat(s, "LevelDoor", 0, 12.5, 0, 12.5, 0.0).apply(s); List p = check(s); assertTrue(p.stream().anyMatch(m -> m.startsWith("Gap of 0.08")), p.toString()); + String brushA = + com.eliasmueller.llamamod.editor.ui.NodeNames.name(s.brushes().get(0)); + assertTrue( + p.stream().anyMatch(m -> m.startsWith("Gap of") && m.contains(brushA) && !m.contains("brush:")), + p.toString()); assertTrue(p.stream().anyMatch(m -> m.startsWith("No floor collision under the player start")), p.toString()); assertTrue(p.stream().anyMatch(m -> m.startsWith("No exit floor")), p.toString()); // close the gap, paint the exit floor, move the start onto the floor diff --git a/src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/PreviewRasterTest.java b/src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/PreviewRasterTest.java new file mode 100644 index 0000000..02fb6ef --- /dev/null +++ b/src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/PreviewRasterTest.java @@ -0,0 +1,50 @@ +package com.eliasmueller.llamamod.editor.tools.geometry; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +/** The mesh import preview's z-buffer: per-pixel depth instead of sorting triangles by their centroid. */ +class PreviewRasterTest { + private static final int A = 0xff0000, B = 0x0000ff; + + /** A long sloped triangle (centroid depth 33) in front of a small flat one (depth 30) near its near end. */ + private static PreviewRaster draw(boolean aFirst) { + PreviewRaster r = new PreviewRaster(120, 20); + Runnable a = () -> r.triangle(0, 0, 0, 100, 0, 0, 0, 10, 100, A, false); + Runnable b = () -> r.triangle(0, 0, 30, 20, 0, 30, 0, 10, 30, B, false); + if (aFirst) { + a.run(); + b.run(); + } else { + b.run(); + a.run(); + } + return r; + } + + @Test + void nearerPixelWinsInAnyOrder() { + for (boolean aFirst : new boolean[] {true, false}) { + PreviewRaster r = draw(aFirst); + // near the bottom edge the sloped triangle is nearer (depth ~10) although its centroid is farther + assertEquals(0xff000000 | A, r.rgbAt(5, 1), "order " + aFirst); + // high up it is far behind (depth ~80): the flat triangle shows + assertEquals(0xff000000 | B, r.rgbAt(1, 8), "order " + aFirst); + assertEquals(30f, r.depthAt(1, 8), 1e-3); + // outside both: empty + assertEquals(0, r.rgbAt(110, 15)); + assertTrue(Float.isInfinite(r.depthAt(110, 15))); + } + } + + @Test + void windingDoesNotMatterAndEdgesDarken() { + PreviewRaster r = new PreviewRaster(40, 40); + r.triangle(0, 0, 1, 0, 30, 1, 30, 0, 1, 0x808080, true); // clockwise on screen + assertEquals(0xff808080, r.rgbAt(8, 8)); + int edge = r.rgbAt(10, 0); + assertTrue((edge & 0xff) < 0x80, Integer.toHexString(edge)); + } +} diff --git a/src/test/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfExportTest.java b/src/test/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfExportTest.java index 40a27ed..8fb6769 100644 --- a/src/test/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfExportTest.java +++ b/src/test/java/com/eliasmueller/llamamod/editor/tools/gltf/GltfExportTest.java @@ -288,4 +288,133 @@ class GltfExportTest { GltfExport.collect(s, new GltfExport.Options(false), n -> false).triangles(); assertTrue(less < all && less >= all - t.model().faceCount(), all + " → " + less); } + + /** Triangles of the named mesh, and the POSITION bounds of its primitives (lo xyz, hi xyz). */ + static int meshTriangles(Map j, String name, double[] bounds) { + int n = 0; + java.util.Arrays.fill(bounds, 0, 3, 1e9); + java.util.Arrays.fill(bounds, 3, 6, -1e9); + for (Object mo : list(j, "meshes")) { + if (!name.equals(((Map) mo).get("name"))) { + continue; + } + for (Object po : list((Map) mo, "primitives")) { + Map prim = (Map) po; + n += num(((Map) list(j, "accessors").get(num(prim.get("indices")))).get("count")) / 3; + Map pos = + (Map) list(j, "accessors").get(num(((Map) prim.get("attributes")).get("POSITION"))); + for (int k = 0; k < 3; k++) { + bounds[k] = Math.min(bounds[k], ((Number) ((List) pos.get("min")).get(k)).doubleValue()); + bounds[3 + k] = Math.max(bounds[3 + k], ((Number) ((List) pos.get("max")).get(k)).doubleValue()); + } + } + } + return n; + } + + @Test + void selectionOnlyAndCollisionMesh() throws Exception { + Scene s = Project.create(cd(), "edit", "t1l1m001").scene(); + Edits.addBrush(s, BrushKind.BOX, Map.of("x0", 10.0, "z0", 10.0, "x1", 12.0, "z1", 13.0, "y0", 0.0, "y1", 1.0)) + .apply(s); + var box = s.brushes().getLast(); + // selection only: just the box, game space x 10..12, y 0..1, z 10..13 + GltfExport.Geometry g = GltfExport.collect(s, new GltfExport.Options(false, true, List.of(box)), n -> false); + Parsed p = parseGlb(g.glb()); + assertEquals(g.triangles(), validate(p)); + double[] vb = new double[6]; + double[] cb = new double[6]; + int visual = meshTriangles(p.json(), "level", vb); + int coll = meshTriangles(p.json(), "collision", cb); + assertTrue(visual >= 10 && coll >= 10, visual + " / " + coll); + assertEquals(g.triangles(), visual + coll); + double[] want = {10, 0, 10, 12, 1, 13}; + for (int k = 0; k < 6; k++) { + assertEquals(want[k], vb[k], 1e-3, "visual bounds " + k); + assertEquals(want[k], cb[k], 1e-3, "collision bounds " + k); + } + // separate node, untextured materials named by collision material + List nodes = list(p.json(), "nodes"); + assertTrue(nodes.stream().anyMatch(n -> "collision".equals(((Map) n).get("name"))), nodes.toString()); + for (Object mo : list(p.json(), "meshes")) { + if ("collision".equals(((Map) mo).get("name"))) { + for (Object po : list((Map) mo, "primitives")) { + Map prim = (Map) po; + assertTrue(!((Map) prim.get("attributes")).containsKey("TEXCOORD_0")); + Map m = (Map) list(p.json(), "materials").get(num(prim.get("material"))); + assertTrue(((String) m.get("name")).startsWith("collision_"), m.toString()); + assertTrue(!((Map) m.get("pbrMetallicRoughness")).containsKey("baseColorTexture")); + } + } + } + // round trip: the importer reads both nodes, the box collision is a closed box facing outwards + MeshData md = MeshImport.parse("c.glb", g.glb(), f -> null, "y", 1); + assertEquals(g.triangles(), md.triangleCount()); + GltfExport.Geometry collOnly = + GltfExport.collect(s, new GltfExport.Options(false, true, List.of(box)), n -> false); + assertEquals(g.triangles(), collOnly.triangles(), "deterministic"); + + // a single original tile: its drawn triangles and exactly its collision polygons + Tile t = s.tiles().stream() + .filter(x -> x.model() != null + && x.model().faceCount() > 4 + && x.worldCollisionPolygons().size() > 1) + .findFirst() + .orElseThrow(); + GltfExport.Geometry one = GltfExport.collect(s, new GltfExport.Options(false, true, List.of(t)), n -> false); + Parsed op = parseGlb(one.glb()); + assertEquals(one.triangles(), validate(op)); + int fan = t.worldCollisionPolygons().stream() + .mapToInt(q -> q.corners().length - 2) + .sum(); + int oc = meshTriangles(op.json(), "collision", cb); + assertTrue(oc > 0 && oc <= fan, oc + " of " + fan); + int ov = meshTriangles(op.json(), "level", vb); + assertTrue( + ov > 0 && ov <= t.model().faceCount() * 2, + ov + " for " + t.model().faceCount() + " faces"); + assertTrue(vb[0] >= t.x() - 3 && vb[3] <= t.x() + 3, "tile x " + t.x() + ": " + vb[0] + ".." + vb[3]); + assertTrue(MeshImport.parse("t.glb", one.glb(), f -> null, "y", 1).triangleCount() == one.triangles()); + + // whole level: collision mesh covers the original tiles too; without the option no collision node + GltfExport.Geometry all = GltfExport.collect(s, new GltfExport.Options(false, true, null), n -> false); + Parsed ap = parseGlb(all.glb()); + assertEquals(all.triangles(), validate(ap)); + assertTrue(meshTriangles(ap.json(), "collision", cb) > 1000); + Parsed plain = parseGlb( + GltfExport.collect(s, new GltfExport.Options(false), n -> false).glb()); + assertTrue( + list(plain.json(), "nodes").stream().noneMatch(n -> "collision".equals(((Map) n).get("name")))); + // nothing selected that has geometry → empty + assertEquals( + 0, + GltfExport.collect( + s, + new GltfExport.Options( + false, true, List.of(s.lights().getFirst())), + n -> false) + .triangles()); + } + + @Test + void collisionFloorsFaceUp() throws Exception { + Scene s = Project.create(cd(), "new", "t1l1m001").scene(); + Edits.addBrush(s, BrushKind.BOX, Map.of("x0", 4.0, "z0", 4.0, "x1", 6.0, "z1", 6.0, "y0", 0.0, "y1", 1.0)) + .apply(s); + GltfExport.Geometry g = GltfExport.collect(s, new GltfExport.Options(false, true, null), n -> false); + int up = 0; + for (GltfExport.Prim pr : g.prims) { + if (pr.collisionMat < 0) { + continue; + } + for (float[] v : pr.verts) { + if (Math.abs(v[1] - 1) < 1e-4 && v[4] > 0.99f) { + up++; + } + } + } + assertTrue(up >= 3, "top of the box faces up: " + up); + MeshData md = MeshImport.parse("f.glb", g.glb(), f -> null, "y", 1); + com.eliasmueller.llamamod.editor.tools.geometry.ObjExportRoundTripTest.assertOutward(md, md.bounds()); + } } 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 ad65fd0..560fb23 100644 --- a/src/test/java/com/eliasmueller/llamamod/editor/ui/OutlinerAndErrorsTest.java +++ b/src/test/java/com/eliasmueller/llamamod/editor/ui/OutlinerAndErrorsTest.java @@ -81,6 +81,17 @@ class OutlinerAndErrorsTest { 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); + // whole numbers also for tiles: "tile 3" must not find tiles at x = 30..39 through the old label + int d = java.util.stream.IntStream.range(1, 10) + .filter(k -> s.tiles().stream().anyMatch(t -> t.cellX() / 10 == k)) + .findFirst() + .orElseThrow(); + List td = filtered(filter, tree, "tile " + d); + boolean exact = s.tiles().stream().anyMatch(t -> t.cellX() == d); + assertEquals(exact, td.stream().anyMatch(r -> r.startsWith("Cell " + d + ",")), td.toString()); + assertTrue( + td.stream().filter(r -> r.startsWith("Cell ")).allMatch(r -> r.startsWith("Cell " + d + ",")), + td.toString()); } private static List filtered(javax.swing.JTextField f, JTree t, String q) throws Exception { diff --git a/src/test/java/com/eliasmueller/llamamod/editor/ui/panels/InspectorNarrowTest.java b/src/test/java/com/eliasmueller/llamamod/editor/ui/panels/InspectorNarrowTest.java new file mode 100644 index 0000000..c75b2b6 --- /dev/null +++ b/src/test/java/com/eliasmueller/llamamod/editor/ui/panels/InspectorNarrowTest.java @@ -0,0 +1,58 @@ +package com.eliasmueller.llamamod.editor.ui.panels; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import com.eliasmueller.llamamod.editor.ui.AxisLayout; +import com.eliasmueller.llamamod.editor.ui.Icons; +import java.awt.Dimension; +import javax.swing.JPanel; +import javax.swing.JTextField; +import org.junit.jupiter.api.Test; + +/** Narrow inspector: reference buttons shorten their text, X/Y/Z fields stack instead of shrinking. */ +class InspectorNarrowTest { + @Test + void refButtonPicksTheLongestTextThatFits() { + InspectorPanel.RefButton b = new InspectorPanel.RefButton(); + b.setTexts(Icons.get("waypoint", 14), "Waypoint 5 (chain 3)", "Waypoint 5", "#5"); + int full = b.getPreferredSize().width; + b.setBounds(0, 0, full, 24); + assertEquals("Waypoint 5 (chain 3)", b.getText()); + assertNotNull(b.getIcon()); + b.setBounds(0, 0, full - 20, 24); + assertEquals("Waypoint 5", b.getText()); + int shortW = b.getFontMetrics(b.getFont()).stringWidth("#5"); + b.setBounds(0, 0, shortW + 40, 24); + assertEquals("#5", b.getText()); + b.setBounds(0, 0, shortW + 12, 24); + assertEquals("#5", b.getText()); + assertNull(b.getIcon(), "icon dropped when only the text fits"); + assertEquals(full, b.getPreferredSize().width, "preferred width independent of the shown text"); + b.setBounds(0, 0, full, 24); + assertEquals("Waypoint 5 (chain 3)", b.getText()); + assertNotNull(b.getIcon()); + } + + @Test + void axisCellsStackWhenNarrow() { + JPanel p = new JPanel(new AxisLayout(AxisLayout.CELL_MIN)); + JTextField[] f = {new JTextField("29.406"), new JTextField("7.25"), new JTextField("64.625")}; + for (JTextField t : f) { + p.add(t); + } + int h = f[0].getPreferredSize().height; + p.setSize(300, 100); + p.doLayout(); + assertEquals(f[0].getY(), f[2].getY(), "one row when wide"); + assertTrue(f[0].getWidth() >= AxisLayout.CELL_MIN); + assertEquals(h, p.getPreferredSize().height); + p.setSize(120, 3 * h + 8); + p.doLayout(); + assertTrue(f[1].getY() > f[0].getY() && f[2].getY() > f[1].getY(), "stacked when narrow"); + assertEquals(120, f[0].getWidth(), "each field gets the full width"); + assertEquals(new Dimension(AxisLayout.CELL_MIN, 3 * h + 8), p.getMinimumSize()); + } +}