mudlet-map-renderer 0.38.0-konva → 0.40.0-konva

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.
@@ -47,6 +47,8 @@ export declare class InteractionHandler {
47
47
  private lastPinchDistance?;
48
48
  private readonly cleanupFns;
49
49
  private destroyed;
50
+ /** Skip cursor changes when an external consumer (e.g. the editor) owns cursor management. */
51
+ private setCursor;
50
52
  constructor(container: HTMLDivElement, viewport: Viewport, state: MapState, settings: Settings, hitTest: HitTestCallbacks, events: TypedEventEmitter<RendererEventMap>);
51
53
  destroy(): void;
52
54
  private listen;
@@ -37,10 +37,49 @@ export type AreaExitHitZone = {
37
37
  /** Stroke colour of the rendered arrow — used to colour area-exit labels. */
38
38
  arrowColor?: string;
39
39
  };
40
+ /**
41
+ * One drawn two-way or one-way inter-room exit, with stable identity and the
42
+ * exact geometry ExitRenderer produced. Consumers (e.g. an editor's
43
+ * hit-testing layer) can run segment distance checks against
44
+ * `data.lines[].points` / `data.arrows[].points` to match exactly what the
45
+ * user sees — including dash patterns and the renderer's suppression rules
46
+ * (e.g. both-sides-customLine two-ways, one-ways overridden by customLine).
47
+ */
48
+ export type DrawnExitEntry = {
49
+ readonly a: number;
50
+ readonly b: number;
51
+ readonly aDir?: MapData.direction;
52
+ readonly bDir?: MapData.direction;
53
+ readonly kind: "exit" | "specialExit";
54
+ readonly zIndex: number[];
55
+ readonly data: ExitDrawData;
56
+ };
57
+ /**
58
+ * One drawn custom-line (special exit) polyline, as it was rendered for
59
+ * this scene. `points` is the flat [x,y,x,y,...] polyline with the source
60
+ * room's centre prepended (mirroring what the renderer actually drew), in
61
+ * render-space coordinates.
62
+ */
63
+ export type DrawnSpecialExitEntry = {
64
+ readonly roomId: number;
65
+ readonly exitName: string;
66
+ readonly points: number[];
67
+ readonly stroke: string;
68
+ readonly strokeWidth: number;
69
+ readonly dash?: number[];
70
+ readonly hasArrow: boolean;
71
+ readonly arrowTip?: {
72
+ x: number;
73
+ y: number;
74
+ };
75
+ readonly bounds: Bounds;
76
+ };
40
77
  export type SceneBuildResult = {
41
78
  roomNodes: Map<number, RoomNodeEntry>;
42
79
  standaloneExitNodes: StandaloneExitEntry[];
43
80
  areaExitHitZones: AreaExitHitZone[];
81
+ drawnExits: DrawnExitEntry[];
82
+ drawnSpecialExits: DrawnSpecialExitEntry[];
44
83
  };
45
84
  /**
46
85
  * Backend-agnostic scene composition pipeline.
@@ -59,10 +98,12 @@ export declare class ScenePipeline {
59
98
  private readonly gridLayer;
60
99
  private readonly linkLayer;
61
100
  private readonly roomLayer;
101
+ private readonly topLabelLayer;
62
102
  constructor(mapReader: MapReader, settings: Settings, backend: DrawingBackend, layers: {
63
103
  gridLayer: LayerNode;
64
104
  linkLayer: LayerNode;
65
105
  roomLayer: LayerNode;
106
+ topLabelLayer?: LayerNode;
66
107
  });
67
108
  /**
68
109
  * Build the full scene for an area/plane.
@@ -81,6 +122,7 @@ export declare class ScenePipeline {
81
122
  /** Render ExitDrawData through the DrawingBackend. */
82
123
  renderExitData(data: ExitDrawData): GroupNode;
83
124
  private renderArrow;
125
+ private targetLabelLayer;
84
126
  private renderLabels;
85
127
  private renderAreaExitLabels;
86
128
  private renderAreaName;
@@ -69,6 +69,7 @@ export declare class RecordingGroupNode implements GroupNode {
69
69
  x: number;
70
70
  y: number;
71
71
  _visible: boolean;
72
+ noScaling: boolean;
72
73
  readonly commands: DrawCommand[];
73
74
  /** Lazily created when this group is materialized for a KonvaLayerNode. */
74
75
  _konvaGroup?: Konva.Group;
@@ -18,6 +18,8 @@ export interface GroupNode {
18
18
  y: number;
19
19
  };
20
20
  moveToTop(): void;
21
+ /** When true, this group renders at a fixed pixel size regardless of zoom level. */
22
+ noScaling?: boolean;
21
23
  }
22
24
  export interface LayerNode {
23
25
  addNode(node: GroupNode): void;
package/dist/index.d.ts CHANGED
@@ -3,6 +3,8 @@ export type { Settings, ViewportBounds, RendererEventMap, PerfSnapshot, CullingM
3
3
  export { darkenColor, colorLightness, hexToRgba } from './utils/color';
4
4
  export { MapRenderer } from './rendering/MapRenderer';
5
5
  export type { InteractiveBackend } from './rendering/MapRenderer';
6
+ export type { DrawnExitEntry, DrawnSpecialExitEntry } from './ScenePipeline';
7
+ export type { ExitDrawData, ExitDrawLine, ExitDrawArrow, ExitDrawDoor } from './ExitRenderer';
6
8
  export { MapState } from './MapState';
7
9
  export type { MapStateEventMap, HighlightEntry, PathEntry } from './MapState';
8
10
  export { KonvaRenderBackend } from './rendering/KonvaRenderBackend';