@willcgage/module-schematic 0.19.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +32 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +20 -3
- package/dist/index.d.ts +20 -3
- package/dist/index.js +32 -17
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -365,7 +365,8 @@ function stateToDoc(state, recordNumber) {
|
|
|
365
365
|
onTrack: t.onTrack,
|
|
366
366
|
divergeTrack: t.divergeTrack,
|
|
367
367
|
kind: t.kind,
|
|
368
|
-
name: t.name || void 0
|
|
368
|
+
name: t.name || void 0,
|
|
369
|
+
...t.size ? { size: t.size } : {}
|
|
369
370
|
})),
|
|
370
371
|
...state.crossings.length > 0 ? {
|
|
371
372
|
crossings: state.crossings.map((x) => ({
|
|
@@ -398,6 +399,7 @@ function stateToDoc(state, recordNumber) {
|
|
|
398
399
|
track: ind.track,
|
|
399
400
|
fromPos: ind.fromPos,
|
|
400
401
|
toPos: ind.toPos,
|
|
402
|
+
...ind.spots?.length ? { spots: ind.spots } : {},
|
|
401
403
|
side: ind.side,
|
|
402
404
|
...ind.labelMode && ind.labelMode !== "none" ? { labelMode: ind.labelMode } : {},
|
|
403
405
|
...ind.carTypes.length ? { carTypes: ind.carTypes } : {},
|
|
@@ -521,7 +523,8 @@ function docToState(doc, fallbackLength, moduleTracks = []) {
|
|
|
521
523
|
pos: sc(t.pos),
|
|
522
524
|
onTrack: t.onTrack,
|
|
523
525
|
divergeTrack: t.divergeTrack,
|
|
524
|
-
kind: t.kind ?? "right"
|
|
526
|
+
kind: t.kind ?? "right",
|
|
527
|
+
...t.size ? { size: t.size } : {}
|
|
525
528
|
})),
|
|
526
529
|
controlPoints: readControlPoints(d, sc),
|
|
527
530
|
industries: (d.industries ?? []).map((ind) => ({
|
|
@@ -531,6 +534,12 @@ function docToState(doc, fallbackLength, moduleTracks = []) {
|
|
|
531
534
|
track: ind.track,
|
|
532
535
|
fromPos: sc(ind.fromPos ?? 0),
|
|
533
536
|
toPos: ind.toPos != null ? sc(ind.toPos) : len,
|
|
537
|
+
spots: (ind.spots ?? []).map((s) => ({
|
|
538
|
+
track: s.track,
|
|
539
|
+
fromPos: sc(s.fromPos ?? 0),
|
|
540
|
+
toPos: s.toPos != null ? sc(s.toPos) : len,
|
|
541
|
+
...s.side ? { side: s.side } : {}
|
|
542
|
+
})),
|
|
534
543
|
side: ind.side ?? "above",
|
|
535
544
|
labelMode: ind.labelMode ?? "none",
|
|
536
545
|
carTypes: Array.isArray(ind.carTypes) ? ind.carTypes : [],
|
|
@@ -834,21 +843,27 @@ function moduleFeatures(doc) {
|
|
|
834
843
|
posFrac: clampFrac(e.at.pos),
|
|
835
844
|
side: e.at.side === "down" ? "down" : "up"
|
|
836
845
|
}));
|
|
837
|
-
const industries = (doc.industries ?? []).
|
|
838
|
-
const
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
846
|
+
const industries = (doc.industries ?? []).flatMap((ind) => {
|
|
847
|
+
const spots = [
|
|
848
|
+
{ track: ind.track, fromPos: ind.fromPos, toPos: ind.toPos, side: ind.side },
|
|
849
|
+
...ind.spots ?? []
|
|
850
|
+
];
|
|
851
|
+
return spots.map((sp, i) => {
|
|
852
|
+
const from = sp.fromPos ?? 0;
|
|
853
|
+
const to = sp.toPos ?? len;
|
|
854
|
+
return {
|
|
855
|
+
id: i === 0 ? ind.id : `${ind.id}-s${i}`,
|
|
856
|
+
name: ind.name ?? "",
|
|
857
|
+
type: ind.type ?? null,
|
|
858
|
+
fromFrac: clampFrac(Math.min(from, to)),
|
|
859
|
+
toFrac: clampFrac(Math.max(from, to)),
|
|
860
|
+
lane: trackLane.get(sp.track) ?? 0,
|
|
861
|
+
side: sp.side ?? "above",
|
|
862
|
+
labelMode: ind.labelMode ?? "none",
|
|
863
|
+
cars: carCapacity(from, to),
|
|
864
|
+
carTypes: Array.isArray(ind.carTypes) ? ind.carTypes : []
|
|
865
|
+
};
|
|
866
|
+
});
|
|
852
867
|
});
|
|
853
868
|
const allLanes = [
|
|
854
869
|
0,
|