From d56f3c604f0075808cb267c7c361f3ca23e7db45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 7 Nov 2026 15:01:46 +0100 Subject: [PATCH] mesh import fit ignores far-off stray pieces (with hint), project load warnings with readable names, edit projects of imported levelbuild wads load again (header runs applied to original values), -0.0 kept in saved arrays; start cameras checked in game on the test world and a village 2 base --- docs/manual/07-meshes.md | 2 +- notes/editor-format.md | 8 +- notes/editor-tools-geometry.md | 5 +- .../img/editor/bootstart_testworld_camera.jpg | Bin 0 -> 27590 bytes notes/img/editor/geo_import_fit_stray.jpg | Bin 0 -> 77360 bytes .../village2_levelbuild_start_camera.jpg | Bin 0 -> 30717 bytes notes/levelbau.md | 4 +- notes/mod-boottolevel.md | 4 +- .../llamamod/editor/io/NodeCodec.java | 5 +- .../llamamod/editor/io/SceneDiff.java | 37 ++++++++-- .../tools/geometry/MeshImportDialog.java | 69 ++++++++++++++++-- .../editor/io/ProjectRoundTripTest.java | 19 +++++ .../editor/io/SceneDiffWarningsTest.java | 39 ++++++++++ .../tools/geometry/PaletteAndPreviewTest.java | 43 +++++++++++ 14 files changed, 215 insertions(+), 20 deletions(-) create mode 100644 notes/img/editor/bootstart_testworld_camera.jpg create mode 100644 notes/img/editor/geo_import_fit_stray.jpg create mode 100644 notes/img/editor/village2_levelbuild_start_camera.jpg create mode 100644 src/test/java/com/eliasmueller/llamamod/editor/io/SceneDiffWarningsTest.java diff --git a/docs/manual/07-meshes.md b/docs/manual/07-meshes.md index d8d56d8..2a8b823 100644 --- a/docs/manual/07-meshes.md +++ b/docs/manual/07-meshes.md @@ -40,7 +40,7 @@ cells. |---|---| | **Up axis** | **Y up (glTF, most OBJ)** or **Z up (some CAD exports)** | | **Unit scale (file units → cells)** | how many cells one unit of the file is | -| **Largest side** … **cells** + **Fit** | sets the unit scale so the largest side becomes this many cells (default 4) | +| **Largest side** … **cells** + **Fit** | sets the unit scale so the largest side of the main part becomes this many cells (default 4); far-off stray pieces are left out, and a hint below says so | | **Turn** | 0°, 90°, 180° or 270° about the vertical axis | | **Mirror (left ↔ right)** | mirrors the model | diff --git a/notes/editor-format.md b/notes/editor-format.md index f67d80d..6b8cb5f 100644 --- a/notes/editor-format.md +++ b/notes/editor-format.md @@ -55,10 +55,14 @@ deterministic; brushes use the stored `seed`). Node kinds, ids and properties: `notes/editor-api.md` (every persistent, settable `Prop`). Values by `PropType`: numbers (INT/FIXED/ANGLE/FLAGS/COLOR as integers, DOUBLE), booleans, strings, REF = node id (or `null`). Arrays: up to 64 elements as JSON lists, longer ones as -`{"i32": base64}` (int32 LE), `{"f64": base64}` (float64 LE) or `{"bytes": base64}`. A *changed* +`{"i32": base64}` (int32 LE), `{"f64": base64}` (float64 LE) or `{"bytes": base64}`; a short double +array containing -0.0 is written as `f64` too (JSON numbers drop the sign; since 2026-11-07). A *changed* array of unchanged length is stored as runs of the changed elements only: `{"runs": [[start, values], …]}` (values encoded as above) – e.g. editing a few vertices or -pixels of an original page stores just those values. +pixels of an original page stores just those values. Runs apply to the reference value read before any +property of the node is set (setting a model's vertices clears its header; until 2026-11-07 header runs +after a vertex change failed with "project file is damaged: NullPointerException", e.g. on +`llamamod --editor-import` of a levelbuild WAD). Loading: reference scene → removals → create all added nodes (all kinds, so references across kinds resolve) → set values of added/changed nodes and settings → apply `order`. Problems diff --git a/notes/editor-tools-geometry.md b/notes/editor-tools-geometry.md index 2e9d6ab..a8c1a13 100644 --- a/notes/editor-tools-geometry.md +++ b/notes/editor-tools-geometry.md @@ -91,7 +91,10 @@ Invisible collision volumes (Invisible wall/block, colliders) are drawn transluc ### Mesh import (File → Import mesh) File chooser, then a dialog: rotatable preview (mouse wheel zooms; framed on the main mass – `Preview.focusBounds`: per axis the vertices within 2.5 IQR of the middle half (Tukey fences), the full -bounds unless they are over 1.5× larger; `geo_import_focus.jpg`: house with a triangle 400 cells away, `geo_import_zoomed_out.jpg`) (shown as in game; flat shading with a small z-buffer at +bounds unless they are over 1.5× larger; since 2026-11-07 also minus the smaller vertex group beyond a gap +wider than half the extent and twice the kept side, holding under half the other side's vertices – a stray triangle on a +low-poly box is 3 of 11 vertices and passes the fences; **Fit** uses the same bounds, and a hint under +"Largest side" names the main part's size when pieces are ignored, `geo_import_fit_stray.jpg`; `geo_import_focus.jpg`: house with a triangle 400 cells away, `geo_import_zoomed_out.jpg`) (shown as in game; flat shading with a small z-buffer at twice the panel size, `PreviewRaster` – before 2026-11-07 the triangles were sorted by centroid and hidden faces showed as slivers) 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, diff --git a/notes/img/editor/bootstart_testworld_camera.jpg b/notes/img/editor/bootstart_testworld_camera.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b40075627db16a8ffcef02df9f3b2055a9ab898d GIT binary patch literal 27590 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 bX9QnFK`=uCZ8ev9 literal 0 HcmV?d00001 diff --git a/notes/img/editor/geo_import_fit_stray.jpg b/notes/img/editor/geo_import_fit_stray.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9f43ae1bdd11bac929e7e695a2ce7d449ca24618 GIT binary patch literal 77360 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

6yVIG;EC1mxb<9{`((~ zG>}*H1^KOO*t7{uNev5^R3>GuMeH$4e#H&YACR3YwL;!Y<2;o=P`;1gR)YI}Hd^{- z=}|Jj=2gCeowF{+15c&Gu^sln$byFuZb&-Dx7Gt~NFe049e^RqBb?syME5V9julih zB5~BnNvO7dxt0Pa$=I8FRgoH{_Y&01hP;SVCqa;Uf27C!+q&+|!tR3wVbGefyOMoS zP^2!)mX>W~b3;P)%r>Z_+Gb97o$NJnJ-X%kTNgL<;vV3$lJ_6npZRv~AQTX1RX?K5H zbN|nhCu_He-Chm3E&awkkWaW(l)oYCL!ezcT_Y~41{ONQ=DQ)3l@$S&DvR=!xco1) zJ3~yyKLEKOxx9n9mq(QvFO0=T)+krZpquoYQH6Bhz(0|Juud-zpts`rWSad7+a ztF@t!=?+F~J#O&{gYPXj6=SLJ+?7TUF@s)oU$445r4aoAT}O8hpI()EdDzT zme;}lU(X%_MUZOh8t~AC2>Y`)zHbHVEy<_R(K3J2M9J1 zhrcWLFQtiJFLF0R3i`jR`iFb3UHAJ0Maa)7UgN=0>rLrfJy)2)f$unHB7)XQ?aT3?nQu_R-EHkt#r#UWiE zDyhhr_qphkx>KtlbX!+|IESA68Q7(8=1Et@N%Wo34*0acjI(B@EA?hiI6NHPu`)5q zu9PdYD0+;Vq?is*QFuQGNTD^Uep0~WWTtZfD>Euit$k%gk%jST)Y$LR=jbV#WOE5U z-L)g?Ab{-wG;jEJ9nY*WS$fpoZ8kZ9tiB#lYpmNs=RXD~7i55eg_+yt+TTEH-ptjY z?pQEEcnHPC@%ndjUn>5`p6>rbkQmJTA}{;ZBylyPm84_QftU)B<`QH4{NpP=1~3ED z3Y}u0NuBfHIH(G%&MP0!kwo_{BYCH3d8&?U+2;aePxp;A%n?{fSXjl0kRxhFVJ6&e z2()84w5>E8{#9sO-pwx_+G@cxd6utvc=F_DQ|{ECi!-5x8bE3?P~q8YFa$2%(eaol zzO0#p9htw|f{yQls$kTHvlFj z^Hblh3nkIJ^mYa!CG*tpwh{zoO5I*?XBxFX8j&}rY=M~LS8QfuTW1mp5tUV%dw?E! zd~Gcli(>9N9F}Y@&qEVJ z_6SjZJ%wezT9#U_He)HZXnh$^LZLE+Su@R^6W-Esi7e@BWHIWXDNbbHu;QV3P8}mk zT}0z80H8CQ(2Qs*dRe)1m8KS7I<{LJ!+1kUEOXqgLd^wLNBgctRA5~WPgLM*=?>N} brjF%fEfUA-3}=}ch&JbUc#@9I-sE2aj&cJC literal 0 HcmV?d00001 diff --git a/notes/img/editor/village2_levelbuild_start_camera.jpg b/notes/img/editor/village2_levelbuild_start_camera.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e28a810cefa3140caf2d8d4af3de856b053dead9 GIT binary patch literal 30717 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 z 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 M;^ByZKmMBgKk>^dng9R* literal 0 HcmV?d00001 diff --git a/notes/levelbau.md b/notes/levelbau.md index 8d29ebe..2045b5c 100644 --- a/notes/levelbau.md +++ b/notes/levelbau.md @@ -138,7 +138,9 @@ stairs, platforms register as shadow casters (`solids`). 1.0 = texture colour rest on the llama): on village 2 bases (node 2 has unk2 ≠ 0) that put the camera into the llama's head. Waypoint lists take an optional 5th value unk2: `[(x,z,y,deg,unk2)]`. In game (test world, apptest 2026-11-07): the start camera is behind the llama at the default - distance (`notes/img/editor/testworld_start_camera.jpg`). + distance (`notes/img/editor/testworld_start_camera.jpg`). Village 2 base (levelbuild floor + player on + t1l1m002, `--editor-import` as an edit project, boot-to-level 1/2): camera behind the llama, not in its + head (`notes/img/editor/village2_levelbuild_start_camera.jpg`). * **LevelDoor** (exit) – solved, see section "Exit (LevelDoor)" below. * Sizes that work: TRAK 0.6–1.0 MB, up to 1100 models, 5200 tiles, WAD up to 6.9 MB (originals: TRAK ≤ 1 MB, ≤ 5800 tiles, WAD ≤ 6.85 MB). Test world: 628 models, diff --git a/notes/mod-boottolevel.md b/notes/mod-boottolevel.md index e09dfaf..ef5a926 100644 --- a/notes/mod-boottolevel.md +++ b/notes/mod-boottolevel.md @@ -24,7 +24,9 @@ The editor's play-test (`PlaytestRunner.install`) should write the bound form **Start camera along** (`StartOverride.apply`): the llama's chain moves and turns with the start when it is a levelbuild/editor start camera – one node within 2.5 cells (`PlayerStart`, levelbuild since 2026-11-07) or the older "node 8 behind + nodes on the llama" chain; original chains stay. Test: -`BootToLevelModTest.singleCameraNodeMovesWithTheStart`. +`BootToLevelModTest.singleCameraNodeMovesWithTheStart`. In game (apptest 2026-11-07, test world, +`start=21, 0.1, 15, 90`, i.e. moved and turned from the plaza start 18/14.6 yaw 0): camera behind the llama, +facing the stairs (`img/editor/bootstart_testworld_camera.jpg`). Patches: `jmp` at 0x549C50 (main-menu frame handler) → once: read slots (FUN_0041c0e0), load slot (FUN_0041cc70), set tribe/world/chapter/map 0x584EB4…, music shutdown, state 0x5846E4 = 3, diff --git a/src/main/java/com/eliasmueller/llamamod/editor/io/NodeCodec.java b/src/main/java/com/eliasmueller/llamamod/editor/io/NodeCodec.java index 5db539c..1ba87c6 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/io/NodeCodec.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/io/NodeCodec.java @@ -20,6 +20,7 @@ import java.util.Map; */ final class NodeCodec { static final int INLINE = 64; + private static final long NEG_ZERO = Double.doubleToRawLongBits(-0.0); private NodeCodec() {} @@ -54,7 +55,9 @@ final class NodeCodec { } private static Object doubles(double[] a) { - if (a.length <= INLINE) { + // JSON numbers lose the sign of -0.0 (imported models have it; it changes the built bytes) + if (a.length <= INLINE + && java.util.Arrays.stream(a).noneMatch(x -> Double.doubleToRawLongBits(x) == NEG_ZERO)) { List l = new ArrayList<>(a.length); for (double x : a) { l.add(x); diff --git a/src/main/java/com/eliasmueller/llamamod/editor/io/SceneDiff.java b/src/main/java/com/eliasmueller/llamamod/editor/io/SceneDiff.java index 09cb41a..e6133d5 100644 --- a/src/main/java/com/eliasmueller/llamamod/editor/io/SceneDiff.java +++ b/src/main/java/com/eliasmueller/llamamod/editor/io/SceneDiff.java @@ -7,6 +7,7 @@ import com.eliasmueller.llamamod.editor.model.NodeKind; import com.eliasmueller.llamamod.editor.model.NodeList; import com.eliasmueller.llamamod.editor.model.Prop; import com.eliasmueller.llamamod.editor.model.PropType; +import com.eliasmueller.llamamod.editor.model.ReadableNames; import com.eliasmueller.llamamod.editor.model.Scene; import com.eliasmueller.llamamod.editor.model.TexturePage; import com.eliasmueller.llamamod.editor.model.cmd.Values; @@ -15,6 +16,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; @@ -154,6 +156,8 @@ final class SceneDiff { Map nodes = (Map) json.getOrDefault("nodes", Map.of()); // 1. removals, 2. create added nodes (all kinds, so references resolve), 3. set values List>> fill = new ArrayList<>(); + // per-node problems, named once the level order is final (readable names are numbered by it) + List> nodeWarn = new ArrayList<>(); for (NodeKind k : Scene.LIST_KINDS) { Map d = (Map) nodes.get(k.prefix()); if (d == null) { @@ -162,7 +166,7 @@ final class SceneDiff { for (Object id : (List) d.getOrDefault("removed", List.of())) { Node n = s.node((String) id); if (n == null) { - warn.add("removed " + id + " does not exist in the base level"); + warn.add("The project removes " + aKind(k) + " that is not in the base level – ignored"); } else { s.remove(n); } @@ -171,7 +175,7 @@ final class SceneDiff { Map m = (Map) o; String id = (String) m.get("id"); if (s.node(id) != null) { - warn.add("added node " + id + " already exists – skipped"); + nodeWarn.add(Map.entry(s.node(id), "the project adds " + aKind(k) + " in its place – skipped")); continue; } BrushKind bk = k == NodeKind.BRUSH ? BrushKind.valueOf((String) m.get("brushKind")) : null; @@ -183,7 +187,7 @@ final class SceneDiff { for (Map.Entry e : ch.entrySet()) { Node n = s.node(e.getKey()); if (n == null) { - warn.add("changed " + e.getKey() + " does not exist in the base level"); + warn.add("The project changes " + aKind(k) + " that is not in the base level – skipped"); continue; } fill.add(Map.entry(n, (Map) e.getValue())); @@ -198,6 +202,12 @@ final class SceneDiff { for (Map.Entry> e : fill) { Node n = e.getKey(); Set known = new HashSet<>(List.of("id", "brushKind")); + // array runs are relative to the base value: read them all before a setter clears one + // (setting a model's vertices clears its header) + Map before = new HashMap<>(); + for (Prop p : n.props()) { + before.put(p.name(), p.get(n)); + } for (Prop p : n.props()) { known.add(p.name()); if (!e.getValue().containsKey(p.name()) || !editable(p)) { @@ -211,17 +221,17 @@ final class SceneDiff { && pm.containsKey("png")) { byte[] png = assets.get((String) pm.get("png")); if (png == null) { - warn.add(n.id() + ": page image " + pm.get("png") + " missing"); + nodeWarn.add(Map.entry(n, "page image " + pm.get("png") + " missing")); continue; } v = Images.pagePixels(png, pg.width(), pg.height()); } else { - v = NodeCodec.decode(p, j, s, p.get(n)); + v = NodeCodec.decode(p, j, s, before.get(p.name())); } try { p.setRaw(n, v); } catch (IllegalArgumentException ex) { - warn.add(n.id() + "." + p.name() + ": " + ex.getMessage()); + nodeWarn.add(Map.entry(n, propLabel(p) + ": " + ex.getMessage())); } } for (Map.Entry f : e.getValue().entrySet()) { @@ -254,5 +264,20 @@ final class SceneDiff { for (var st : s.strats()) { st.setTypeName(s.catalog().nameOf(st.code())); } + ReadableNames names = ReadableNames.of(s); + for (Map.Entry w : nodeWarn) { + Node n = w.getKey(); + warn.add((n.scene() == s ? names.nameOf(n) : ReadableNames.name(n)) + ": " + w.getValue()); + } + } + + /** "an object", "a tile model". */ + private static String aKind(NodeKind k) { + String l = k.label().toLowerCase(Locale.ROOT); + return ("aeiou".indexOf(l.charAt(0)) >= 0 ? "an " : "a ") + l; + } + + private static String propLabel(Prop p) { + return p.label() == null || p.label().isEmpty() ? p.name() : p.label(); } } 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 75c0886..4b579a2 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 @@ -52,6 +52,7 @@ final class MeshImportDialog extends JDialog { private final Preview preview = new Preview(); private final JLabel info = new JLabel(); private final JLabel warn = new JLabel(); + private final JLabel fitHint = GeoWidgets.hint(" "); private final JComboBox up = new JComboBox<>(new String[] {"Y up (glTF, most OBJ)", "Z up (some CAD exports)"}); private final JSpinner unit; @@ -100,6 +101,7 @@ final class MeshImportDialog extends JDialog { GeoWidgets.row(new JLabel("Up axis"), up), GeoWidgets.row(new JLabel("Unit scale (file units → cells)"), unit), GeoWidgets.row(new JLabel("Largest side"), fit, new JLabel("cells"), fitB), + fitHint, GeoWidgets.row(new JLabel("Turn"), turn, mirror), GeoWidgets.row(ground))); form.add(GeoWidgets.section( @@ -196,22 +198,50 @@ final class MeshImportDialog extends JDialog { if (m == null) { return; } - double[] b = m.bounds(); - double size = Math.max(b[3] - b[0], Math.max(b[4] - b[1], b[5] - b[2])); - if (size <= 0) { - return; + double us = fitScale(((Number) unit.getValue()).doubleValue(), m.positions(), cells); + if (us > 0) { + unit.setValue(us); } - double us = ((Number) unit.getValue()).doubleValue() * cells / size; - unit.setValue(us); + } + + /** + * Unit scale that makes the largest side of the mesh's main mass ({@link Preview#focusBounds}) {@code + * cells} long; 0 for an empty or flat-point mesh. {@code pos} is in cells at the current {@code unitScale}. + */ + static double fitScale(double unitScale, double[] pos, double cells) { + double size = largestSide(Preview.focusBounds(pos)); + return size > 0 ? unitScale * cells / size : 0; + } + + private static double largestSide(double[] b) { + return Math.max(b[3] - b[0], Math.max(b[4] - b[1], b[5] - b[2])); + } + + /** Hint shown under "Largest side" when far-off pieces are left out of Fit; empty otherwise. */ + static String fitHintText(MeshData m) { + double[] f = Preview.focusBounds(m.positions()); + double[] b = m.bounds(); + if (largestSide(f) >= largestSide(b) - 1e-9) { + return ""; + } + return String.format( + Locale.ROOT, + "Fit ignores far-off stray pieces: main part %.2f × %.2f × %.2f cells.", + f[3] - f[0], + f[4] - f[1], + f[5] - f[2]); } private void update() { MeshData m = asset.mesh(); if (m == null) { info.setText("(no mesh)"); + fitHint.setText(" "); return; } double[] b = m.bounds(); + String fh = fitHintText(m); + fitHint.setText(fh.isEmpty() ? " " : fh); int textured = 0; for (MeshData.Material mt : m.materialList()) { if (mt.image() != null) { @@ -444,7 +474,8 @@ final class MeshImportDialog extends JDialog { /** * Bounds {x0, y0, z0, x1, y1, z1} of the mesh's main mass: per axis the vertices within 2.5 - * interquartile ranges of the middle half (Tukey fences); the full bounds when they are not much + * interquartile ranges of the middle half (Tukey fences), minus a smaller vertex group beyond a wide + * gap (a stray triangle on a low-poly model); the full bounds when they are not much * larger (far-off pieces such as a stray triangle or a huge ground plane would otherwise shrink the * model to a dot). */ @@ -473,6 +504,30 @@ final class MeshImportDialog extends JDialog { while (v[hi] > q3 + fence) { hi--; } + // low-poly models: a stray piece can hold a quarter of the vertices and pass the fences – + // cut off the smaller side of a wide gap (fewer than half the vertices of the other side) + for (int pass = 0; pass < 8 && hi > lo; pass++) { + int at = lo; + for (int i = lo; i < hi; i++) { + if (v[i + 1] - v[i] > v[at + 1] - v[at]) { + at = i; + } + } + double gap = v[at + 1] - v[at]; + int left = at - lo + 1, right = hi - at; + double keep = left >= right ? v[at] - v[lo] : v[hi] - v[at + 1]; + if (gap <= 0.5 * (v[hi] - v[lo]) + || keep <= 0 + || gap <= 2 * keep + || 2 * Math.min(left, right) > Math.max(left, right)) { + break; + } + if (left >= right) { + hi = at; + } else { + lo = at + 1; + } + } robust[axis] = v[lo]; robust[axis + 3] = v[hi]; far |= v[n - 1] - v[0] > 1.5 * (robust[axis + 3] - robust[axis]) + 1e-9; diff --git a/src/test/java/com/eliasmueller/llamamod/editor/io/ProjectRoundTripTest.java b/src/test/java/com/eliasmueller/llamamod/editor/io/ProjectRoundTripTest.java index b0fc060..caae38c 100644 --- a/src/test/java/com/eliasmueller/llamamod/editor/io/ProjectRoundTripTest.java +++ b/src/test/java/com/eliasmueller/llamamod/editor/io/ProjectRoundTripTest.java @@ -150,4 +150,23 @@ class ProjectRoundTripTest { assertEquals(0, q.scene().tiles().size()); assertTrue(q.scene().listOf(NodeKind.STRAT).isEmpty()); } + + /** + * An imported levelbuild WAD as an edit project (llamamod --editor-import): model headers change by + * runs while the vertices change too – the vertex setter clears the header, the runs still apply. + */ + @Test + void importedLevelbuildWadLoadsBack() throws IOException { + Bases cd = cd(); + com.eliasmueller.llamamod.levelbuild.LevelBuilder lb = new com.eliasmueller.llamamod.levelbuild.LevelBuilder( + cd.wad("t1l1m002"), rel -> null, "Start", 1, Map.of()); + lb.floor(6, 6, 30, 30, 1.0, "grass"); + lb.player(16, 12, 0); + Project p = new Project( + Templates.original(cd, "t1l1m002"), WadImporter.importWad(lb.build(), "t1l1m002", cd::fileOrNull)); + byte[] wad = WadBuilder.build(p.scene()); + Project q = ProjectIO.read(ProjectIO.write(p, cd), cd); + assertTrue(q.warnings().isEmpty(), q.warnings().toString()); + assertArrayEquals(wad, WadBuilder.build(q.scene())); + } } diff --git a/src/test/java/com/eliasmueller/llamamod/editor/io/SceneDiffWarningsTest.java b/src/test/java/com/eliasmueller/llamamod/editor/io/SceneDiffWarningsTest.java new file mode 100644 index 0000000..165322c --- /dev/null +++ b/src/test/java/com/eliasmueller/llamamod/editor/io/SceneDiffWarningsTest.java @@ -0,0 +1,39 @@ +package com.eliasmueller.llamamod.editor.io; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; + +import com.eliasmueller.llamamod.editor.model.NodeKind; +import com.eliasmueller.llamamod.editor.model.Scene; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import org.junit.jupiter.api.Test; + +class SceneDiffWarningsTest { + @Test + void loadWarningsUseReadableNamesNotIds() { + Scene s = new Scene(); + s.add(Scene.createWithId(NodeKind.LIGHT, "light:1", null), -1); + s.add(Scene.createWithId(NodeKind.LIGHT, "light:2", null), -1); + Map json = Map.of( + "nodes", + Map.of( + "light", + Map.of( + "removed", List.of("light:99"), + "added", List.of(Map.of("id", "light:2")), + "changed", Map.of("light:77", Map.of())))); + List warn = new ArrayList<>(); + SceneDiff.apply(s, json, Map.of(), new SceneDiff.Unknown(), warn); + assertEquals( + List.of( + "The project removes a light that is not in the base level – ignored", + "The project changes a light that is not in the base level – skipped", + "Light 2: the project adds a light in its place – skipped"), + warn); + for (String w : warn) { + assertFalse(w.contains("light:"), w); + } + } +} diff --git a/src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/PaletteAndPreviewTest.java b/src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/PaletteAndPreviewTest.java index 2263f6f..387a21f 100644 --- a/src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/PaletteAndPreviewTest.java +++ b/src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/PaletteAndPreviewTest.java @@ -53,4 +53,47 @@ class PaletteAndPreviewTest { double[] g = MeshImportDialog.Preview.focusBounds(small); assertArrayEquals(new double[] {0, 0, 0, 2, 1, 2}, g, 1e-9); } + + @Test + void fitUsesTheMainMassAndHintsAtStrayPieces() { + // a 1-cell cube of 200 vertices plus one stray vertex 500 cells away + double[] pos = new double[3 * 201]; + for (int i = 0; i < 200; i++) { + pos[3 * i] = (i % 2); + pos[3 * i + 1] = (i / 2 % 2); + pos[3 * i + 2] = (i / 4 % 2); + } + pos[600] = 500; + // largest side of the main part is 1 cell: Fit to 4 cells scales by 4, not by 4/500 + assertEquals(4 * 0.5, MeshImportDialog.fitScale(0.5, pos, 4), 1e-9); + int[] tris = new int[] {0, 1, 2}; + var stray = new com.eliasmueller.llamamod.editor.model.MeshData( + pos, tris, new double[0], new int[1], new int[0], java.util.List.of()); + assertTrue(MeshImportDialog.fitHintText(stray).startsWith("Fit ignores far-off stray pieces")); + double[] cube = java.util.Arrays.copyOf(pos, 600); + assertEquals(2, MeshImportDialog.fitScale(1, cube, 2), 1e-9); + var clean = new com.eliasmueller.llamamod.editor.model.MeshData( + cube, tris, new double[0], new int[1], new int[0], java.util.List.of()); + assertEquals("", MeshImportDialog.fitHintText(clean)); + assertEquals(0, MeshImportDialog.fitScale(1, new double[0], 2)); + // low-poly: a 2×1×3 box (8 vertices) and a stray triangle 400 cells away (3 of 11 vertices) + double[] low = new double[3 * 11]; + for (int i = 0; i < 8; i++) { + low[3 * i] = i % 2 * 2; + low[3 * i + 1] = i / 2 % 2; + low[3 * i + 2] = i / 4 * 3; + } + low[24] = 400; + low[27] = 401; + low[30] = 400; + low[31] = 1; + assertArrayEquals(new double[] {0, 0, 0, 2, 1, 3}, MeshImportDialog.Preview.focusBounds(low), 1e-9); + assertEquals(4.0 / 3, MeshImportDialog.fitScale(1, low, 4), 1e-9); + // a wedge (6 vertices on x = 0, 2 on x = 1) is not cut + double[] wedge = {0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 2, 0, 0, 2, 1, 1, 0, 0, 1, 0, 1}; + assertArrayEquals(new double[] {0, 0, 0, 1, 2, 1}, MeshImportDialog.Preview.focusBounds(wedge), 1e-9); + // two equal towers far apart stay together + double[] towers = {0, 0, 0, 1, 5, 1, 0, 5, 0, 1, 0, 1, 20, 0, 0, 21, 5, 1, 20, 5, 0, 21, 0, 1}; + assertArrayEquals(new double[] {0, 0, 0, 21, 5, 1}, MeshImportDialog.Preview.focusBounds(towers), 1e-9); + } }