@thegraid/hexlib 1.1.0 → 1.1.4
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/README.md +3 -0
- package/dist/game-play.d.ts +8 -15
- package/dist/game-play.d.ts.map +1 -1
- package/dist/game-play.js +9 -16
- package/dist/game-play.js.map +1 -1
- package/dist/game-setup.d.ts +43 -18
- package/dist/game-setup.d.ts.map +1 -1
- package/dist/game-setup.js +59 -27
- package/dist/game-setup.js.map +1 -1
- package/dist/hex-intfs.d.ts +2 -1
- package/dist/hex-intfs.d.ts.map +1 -1
- package/dist/hex-intfs.js +14 -13
- package/dist/hex-intfs.js.map +1 -1
- package/dist/hex.d.ts +111 -45
- package/dist/hex.d.ts.map +1 -1
- package/dist/hex.js +92 -37
- package/dist/hex.js.map +1 -1
- package/dist/meeple.d.ts +10 -8
- package/dist/meeple.d.ts.map +1 -1
- package/dist/meeple.js +12 -20
- package/dist/meeple.js.map +1 -1
- package/dist/plan-proxy.js +4 -4
- package/dist/scenario-parser.d.ts +1 -0
- package/dist/scenario-parser.d.ts.map +1 -1
- package/dist/scenario-parser.js +2 -2
- package/dist/scenario-parser.js.map +1 -1
- package/dist/shapes.js +2 -2
- package/dist/stream-writer.js +3 -3
- package/dist/table-params.d.ts.map +1 -1
- package/dist/table-params.js +1 -1
- package/dist/table-params.js.map +1 -1
- package/dist/table.d.ts +125 -99
- package/dist/table.d.ts.map +1 -1
- package/dist/table.js +50 -29
- package/dist/table.js.map +1 -1
- package/dist/tile.d.ts +61 -16
- package/dist/tile.d.ts.map +1 -1
- package/dist/tile.js +75 -22
- package/dist/tile.js.map +1 -1
- package/package.json +3 -2
package/dist/hex.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="easeljs" />
|
|
2
2
|
/// <reference types="@thegraid/easeljs-lib/dist/createjs-functions" />
|
|
3
|
-
import { XY } from '@thegraid/common-lib';
|
|
3
|
+
import { XY, XYWH } from '@thegraid/common-lib';
|
|
4
4
|
import { Constructor, RC } from "@thegraid/easeljs-lib";
|
|
5
5
|
import { Container, DisplayObject, Point, Text } from "@thegraid/easeljs-module";
|
|
6
6
|
import { EwDir, HexDir, NsDir } from "./hex-intfs";
|
|
@@ -103,20 +103,20 @@ export declare class Hex {
|
|
|
103
103
|
rcspString(): string;
|
|
104
104
|
/** convert LINKS object to Array of Hex */
|
|
105
105
|
get linkHexes(): (this | undefined)[];
|
|
106
|
-
forEachLinkHex(func: (hex:
|
|
106
|
+
forEachLinkHex(func: (hex: this | undefined, dir: HexDir | undefined, hex0: this) => unknown, inclCenter?: boolean): void;
|
|
107
107
|
/** return HexDir to the first linked hex that satisfies predicate. */
|
|
108
108
|
findLinkHex(pred: (hex: this | undefined, dir: HexDir, hex0: this) => boolean): HexDir | undefined;
|
|
109
109
|
/** continue in HexDir until pred is satisfied. */
|
|
110
|
-
findInDir(dir: HexDir, pred: (hex:
|
|
110
|
+
findInDir(dir: HexDir, pred: (hex: this, dir: HexDir, hex0: this) => boolean): this | undefined;
|
|
111
111
|
/** array of all hexes in line from dir. */
|
|
112
112
|
hexesInDir(dir: HexDir, rv?: this[]): this[];
|
|
113
113
|
/** for each Hex in each Dir: func(hex, dir, this) */
|
|
114
114
|
forEachHexDir(func: (hex: this, dir: HexDir, hex0: this) => unknown): void;
|
|
115
|
-
/** from this Hex, follow links[ds], ns times. */
|
|
116
|
-
nextHex(dir: HexDir, ns?: number):
|
|
115
|
+
/** from this Hex, follow links[ds], ns times (or until !links[ds]). */
|
|
116
|
+
nextHex(dir: HexDir, ns?: number): this | undefined;
|
|
117
117
|
/** return last Hex on axis in given direction */
|
|
118
|
-
lastHex(ds: HexDir):
|
|
119
|
-
/** distance between Hexes: adjacent = 1, based on row, col, sqrt3 */
|
|
118
|
+
lastHex(ds: HexDir): this;
|
|
119
|
+
/** distance between Hexes: adjacent = 1, based on row, col, unit = 1 / H.sqrt3 */
|
|
120
120
|
radialDist(hex: Hex): number;
|
|
121
121
|
}
|
|
122
122
|
/**
|
|
@@ -143,6 +143,42 @@ export declare class Hex1 extends Hex {
|
|
|
143
143
|
* class LibHex2extendsLocalHex1 extends Hex2Mixin(LocalHex1) { }
|
|
144
144
|
*
|
|
145
145
|
* class LocalHex2 extends LibHex2extendsLocalHex1 { ... }
|
|
146
|
+
*
|
|
147
|
+
* https://www.typescriptlang.org/docs/handbook/mixins.html
|
|
148
|
+
*
|
|
149
|
+
*
|
|
150
|
+
* Note: In the compiled hex.js and its hex.d.ts,
|
|
151
|
+
* the type 'this' in the Hex2Mixin versions of Hex methods
|
|
152
|
+
* is converted to type 'any'.
|
|
153
|
+
* (because Hex2Mixin and Hex2_base come from new(...) but are not a class,
|
|
154
|
+
* therefore have no instance or this/type)
|
|
155
|
+
*
|
|
156
|
+
* To get properly typed versions in your derived class extends Hex2Mixin,
|
|
157
|
+
* include the following overrides:
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
override forEachLinkHex(func: (hex: this | undefined, dir: HexDir | undefined, hex0: this) => unknown, inclCenter = false) {
|
|
161
|
+
super.forEachLinkHex(func)
|
|
162
|
+
}
|
|
163
|
+
override findLinkHex(pred: (hex: this | undefined, dir: HexDir, hex0: this) => boolean) {
|
|
164
|
+
return super.findLinkHex(pred)
|
|
165
|
+
}
|
|
166
|
+
override findInDir(dir: HexDir, pred: (hex: this, dir: HexDir, hex0: this) => boolean): this | undefined {
|
|
167
|
+
return super.findInDir(dir, pred)
|
|
168
|
+
}
|
|
169
|
+
override hexesInDir(dir: HexDir, rv: this[] = []): this[] {
|
|
170
|
+
return super.hexesInDir(dir, rv)
|
|
171
|
+
}
|
|
172
|
+
override forEachHexDir(func: (hex: this, dir: HexDir, hex0: this) => unknown) {
|
|
173
|
+
super.forEachHexDir(func);
|
|
174
|
+
}
|
|
175
|
+
override nextHex(dir: HexDir, ns: number = 1): this | undefined {
|
|
176
|
+
return super.nextHex(dir, ns) as this | undefined;
|
|
177
|
+
}
|
|
178
|
+
override lastHex(ds: HexDir): this {
|
|
179
|
+
return super.lastHex(ds)
|
|
180
|
+
}
|
|
181
|
+
*
|
|
146
182
|
*/
|
|
147
183
|
export declare function Hex2Mixin<TBase extends Constructor<Hex1>>(Base: TBase): {
|
|
148
184
|
new (...args: any[]): {
|
|
@@ -179,11 +215,13 @@ export declare function Hex2Mixin<TBase extends Constructor<Hex1>>(Base: TBase):
|
|
|
179
215
|
setHexColor(color: string, district?: number | undefined): void;
|
|
180
216
|
/** unit distance between Hexes: adjacent = 1; see also: radialDist */
|
|
181
217
|
metricDist(hex: Hex): number;
|
|
182
|
-
/**
|
|
183
|
-
* @param dir0
|
|
184
|
-
* @param dir1
|
|
218
|
+
/** Location of corner between dir0 and dir1; in parent coordinates.
|
|
219
|
+
* @param dir0 a HexDir
|
|
220
|
+
* @param dir1 a HexDir
|
|
221
|
+
* @param point [new Point()] set location-x,y in point and return it.
|
|
222
|
+
* @param rad [this.radius]
|
|
185
223
|
*/
|
|
186
|
-
cornerPoint(dir0: HexDir, dir1: HexDir): Point;
|
|
224
|
+
cornerPoint(dir0: HexDir, dir1: HexDir, point?: Point, rad?: number): Point;
|
|
187
225
|
/** Location of edge point in dir; in parent coordinates.
|
|
188
226
|
* @param dir indicates direction to edge
|
|
189
227
|
* @param rad [1] per-unit distance from center: 0 --> center, 1 --> exactly on edge, 1+ --> outside hex
|
|
@@ -246,20 +284,20 @@ export declare function Hex2Mixin<TBase extends Constructor<Hex1>>(Base: TBase):
|
|
|
246
284
|
readonly linkDirs: HexDir[];
|
|
247
285
|
/** convert LINKS object to Array of Hex */
|
|
248
286
|
readonly linkHexes: (any | undefined)[];
|
|
249
|
-
forEachLinkHex(func: (hex:
|
|
287
|
+
forEachLinkHex(func: (hex: any | undefined, dir: HexDir | undefined, hex0: any) => unknown, inclCenter?: boolean): void;
|
|
250
288
|
/** return HexDir to the first linked hex that satisfies predicate. */
|
|
251
289
|
findLinkHex(pred: (hex: any | undefined, dir: HexDir, hex0: any) => boolean): HexDir | undefined;
|
|
252
290
|
/** continue in HexDir until pred is satisfied. */
|
|
253
|
-
findInDir(dir: HexDir, pred: (hex:
|
|
291
|
+
findInDir(dir: HexDir, pred: (hex: any, dir: HexDir, hex0: any) => boolean): any | undefined;
|
|
254
292
|
/** array of all hexes in line from dir. */
|
|
255
293
|
hexesInDir(dir: HexDir, rv?: any[]): any[];
|
|
256
294
|
/** for each Hex in each Dir: func(hex, dir, this) */
|
|
257
295
|
forEachHexDir(func: (hex: any, dir: HexDir, hex0: any) => unknown): void;
|
|
258
|
-
/** from this Hex, follow links[ds], ns times. */
|
|
259
|
-
nextHex(dir: HexDir, ns?: number):
|
|
296
|
+
/** from this Hex, follow links[ds], ns times (or until !links[ds]). */
|
|
297
|
+
nextHex(dir: HexDir, ns?: number): any | undefined;
|
|
260
298
|
/** return last Hex on axis in given direction */
|
|
261
|
-
lastHex(ds: HexDir):
|
|
262
|
-
/** distance between Hexes: adjacent = 1, based on row, col, sqrt3 */
|
|
299
|
+
lastHex(ds: HexDir): any;
|
|
300
|
+
/** distance between Hexes: adjacent = 1, based on row, col, unit = 1 / H.sqrt3 */
|
|
263
301
|
radialDist(hex: Hex): number;
|
|
264
302
|
};
|
|
265
303
|
} & TBase;
|
|
@@ -298,11 +336,13 @@ declare const Hex2_base: {
|
|
|
298
336
|
setHexColor(color: string, district?: number | undefined): void;
|
|
299
337
|
/** unit distance between Hexes: adjacent = 1; see also: radialDist */
|
|
300
338
|
metricDist(hex: Hex): number;
|
|
301
|
-
/**
|
|
302
|
-
* @param dir0
|
|
303
|
-
* @param dir1
|
|
339
|
+
/** Location of corner between dir0 and dir1; in parent coordinates.
|
|
340
|
+
* @param dir0 a HexDir
|
|
341
|
+
* @param dir1 a HexDir
|
|
342
|
+
* @param point [new Point()] set location-x,y in point and return it.
|
|
343
|
+
* @param rad [this.radius]
|
|
304
344
|
*/
|
|
305
|
-
cornerPoint(dir0: HexDir, dir1: HexDir): Point;
|
|
345
|
+
cornerPoint(dir0: HexDir, dir1: HexDir, point?: Point, rad?: number): Point;
|
|
306
346
|
/** Location of edge point in dir; in parent coordinates.
|
|
307
347
|
* @param dir indicates direction to edge
|
|
308
348
|
* @param rad [1] per-unit distance from center: 0 --> center, 1 --> exactly on edge, 1+ --> outside hex
|
|
@@ -365,20 +405,20 @@ declare const Hex2_base: {
|
|
|
365
405
|
readonly linkDirs: HexDir[];
|
|
366
406
|
/** convert LINKS object to Array of Hex */
|
|
367
407
|
readonly linkHexes: (any | undefined)[];
|
|
368
|
-
forEachLinkHex(func: (hex:
|
|
408
|
+
forEachLinkHex(func: (hex: any | undefined, dir: HexDir | undefined, hex0: any) => unknown, inclCenter?: boolean): void;
|
|
369
409
|
/** return HexDir to the first linked hex that satisfies predicate. */
|
|
370
410
|
findLinkHex(pred: (hex: any | undefined, dir: HexDir, hex0: any) => boolean): HexDir | undefined;
|
|
371
411
|
/** continue in HexDir until pred is satisfied. */
|
|
372
|
-
findInDir(dir: HexDir, pred: (hex:
|
|
412
|
+
findInDir(dir: HexDir, pred: (hex: any, dir: HexDir, hex0: any) => boolean): any | undefined;
|
|
373
413
|
/** array of all hexes in line from dir. */
|
|
374
414
|
hexesInDir(dir: HexDir, rv?: any[]): any[];
|
|
375
415
|
/** for each Hex in each Dir: func(hex, dir, this) */
|
|
376
416
|
forEachHexDir(func: (hex: any, dir: HexDir, hex0: any) => unknown): void;
|
|
377
|
-
/** from this Hex, follow links[ds], ns times. */
|
|
378
|
-
nextHex(dir: HexDir, ns?: number):
|
|
417
|
+
/** from this Hex, follow links[ds], ns times (or until !links[ds]). */
|
|
418
|
+
nextHex(dir: HexDir, ns?: number): any | undefined;
|
|
379
419
|
/** return last Hex on axis in given direction */
|
|
380
|
-
lastHex(ds: HexDir):
|
|
381
|
-
/** distance between Hexes: adjacent = 1, based on row, col, sqrt3 */
|
|
420
|
+
lastHex(ds: HexDir): any;
|
|
421
|
+
/** distance between Hexes: adjacent = 1, based on row, col, unit = 1 / H.sqrt3 */
|
|
382
422
|
radialDist(hex: Hex): number;
|
|
383
423
|
};
|
|
384
424
|
} & typeof Hex1;
|
|
@@ -446,34 +486,49 @@ export interface HexM<T extends Hex> {
|
|
|
446
486
|
readonly district: T[][];
|
|
447
487
|
readonly mapCont: MapCont;
|
|
448
488
|
rcLinear(row: number, col: number): number;
|
|
449
|
-
forEachHex
|
|
489
|
+
forEachHex(fn: (hex: T) => void): void;
|
|
450
490
|
update(): void;
|
|
451
491
|
showMark(hex?: T): void;
|
|
492
|
+
radius: number;
|
|
493
|
+
centerHex: T;
|
|
494
|
+
xywh: XYWH & {
|
|
495
|
+
dxdc: number;
|
|
496
|
+
dydr: number;
|
|
497
|
+
};
|
|
498
|
+
hexC: Constructor<Hex>;
|
|
499
|
+
hexUnderObj(dragObj: DisplayObject, legalOnly?: boolean): T | undefined;
|
|
452
500
|
}
|
|
453
501
|
/**
|
|
454
|
-
*
|
|
455
|
-
*
|
|
502
|
+
* 2-D Array[row][col]: Hex; plus a mapCont of Graphics-Containers for IHex2.
|
|
503
|
+
*
|
|
504
|
+
* hexAry[n]: all the Hex (or IHex2) elements.
|
|
456
505
|
*
|
|
457
|
-
*
|
|
458
|
-
* If mapCont is set, then populate with Hex2
|
|
506
|
+
* district[i]: Hex[]; all the Hex in a given district.
|
|
459
507
|
*
|
|
460
508
|
* (TP.mh X TP.nh) hexes in districts;
|
|
461
509
|
*
|
|
462
|
-
*
|
|
510
|
+
* Use addToMapCont(hexC), to populate with new hexC()
|
|
511
|
+
*
|
|
512
|
+
* mark: a HexMark to visually indicate a selected IHex2.
|
|
463
513
|
*
|
|
464
514
|
*/
|
|
465
515
|
export declare class HexMap<T extends Hex> extends Array<Array<T>> implements HexM<T> {
|
|
466
|
-
hexC:
|
|
516
|
+
hexC: Constructor<Hex>;
|
|
467
517
|
Aname: string;
|
|
518
|
+
/** A color for each District: 'rgb(198,198,198)' */
|
|
468
519
|
static readonly distColor: string[];
|
|
469
520
|
/**
|
|
470
|
-
* HexMap: TP.nRows X TP.nCols
|
|
521
|
+
* HexMap: TP.nRows X TP.nCols of Hex [new hexC()]
|
|
471
522
|
*
|
|
472
|
-
* Basic map is non-GUI, addToMapCont
|
|
473
|
-
*
|
|
474
|
-
*
|
|
523
|
+
* Basic map is non-GUI, addToMapCont(hexC) makes IHex2 elements to enable GUI interaction.
|
|
524
|
+
* Use hexC() to make Hex; mapCont has layers of Containers per HexMap.cNames;
|
|
525
|
+
*
|
|
526
|
+
* @param radius [TP.hexRad] typically 60
|
|
527
|
+
* @param addToMapCont [false] set true to include addToMapCont(hexC)
|
|
528
|
+
* @param hexC [Hex] HexConstructor\<Hex\> for each element
|
|
529
|
+
* @param Aname ['mainMap'] a name for debugger
|
|
475
530
|
*/
|
|
476
|
-
constructor(radius?: number, addToMapCont?: boolean, hexC?:
|
|
531
|
+
constructor(radius?: number, addToMapCont?: boolean, hexC?: Constructor<Hex>, Aname?: string);
|
|
477
532
|
/** may be obsolete when using IHex2 */
|
|
478
533
|
get asIHex2Map(): HexMap<PublicInterface<Hex2>>;
|
|
479
534
|
/** Each occupied Hex, with the associated district color */
|
|
@@ -500,7 +555,7 @@ export declare class HexMap<T extends Hex> extends Array<Array<T>> implements He
|
|
|
500
555
|
};
|
|
501
556
|
get centerHex(): T;
|
|
502
557
|
get nRowCol(): number[];
|
|
503
|
-
getCornerHex(dn: HexDir):
|
|
558
|
+
getCornerHex(dn: HexDir): T;
|
|
504
559
|
rcLinear(row: number, col: number): number;
|
|
505
560
|
mark: HexMark | undefined;
|
|
506
561
|
makeMark(): HexMark;
|
|
@@ -537,12 +592,15 @@ export declare class HexMap<T extends Hex> extends Array<Array<T>> implements He
|
|
|
537
592
|
/** link hex to/from each extant neighor */
|
|
538
593
|
link(hex: T, rc?: RC, map?: T[][], nt?: Topo, lf?: (hex: T) => LINKS<T>): void;
|
|
539
594
|
/**
|
|
540
|
-
*
|
|
541
|
-
*
|
|
595
|
+
* Return the Hex under the given x,y coordinates.
|
|
596
|
+
*
|
|
597
|
+
* Conceptually: (legal ? LegalMark : HexCont)?.hex2 as \<T extends IHex2\>;
|
|
598
|
+
*
|
|
599
|
+
* If multiple HexCont at x,y, return the top (last drawn) HexCont.
|
|
542
600
|
* @param x in local coordinates of this HexMap.mapCont
|
|
543
601
|
* @param y
|
|
544
|
-
* @param legal -
|
|
545
|
-
* @returns the
|
|
602
|
+
* @param legal - return ONLY a Hex with LegalMark visible & mouseenabled.
|
|
603
|
+
* @returns the IHex2 of the LegalMark or HexCont at the given point (or undefined if no such HexCont)
|
|
546
604
|
*/
|
|
547
605
|
hexUnderPoint(x: number, y: number, legal?: boolean): T | undefined;
|
|
548
606
|
private _nh;
|
|
@@ -566,7 +624,10 @@ export declare class HexMap<T extends Hex> extends Array<Array<T>> implements He
|
|
|
566
624
|
/**
|
|
567
625
|
* overridable action for makeAllDistricts;
|
|
568
626
|
*
|
|
569
|
-
* Base implementation invokes
|
|
627
|
+
* Base implementation invokes makeMetaHexRings(nh, mh, rc0)
|
|
628
|
+
*
|
|
629
|
+
* Alterative: makeRect(nrow, ncol, ...)
|
|
630
|
+
*
|
|
570
631
|
* @param nh
|
|
571
632
|
* @param mh
|
|
572
633
|
* @param rc0
|
|
@@ -575,6 +636,11 @@ export declare class HexMap<T extends Hex> extends Array<Array<T>> implements He
|
|
|
575
636
|
makeAllHexes(nh: number | undefined, mh: number | undefined, rc0: RC): T[];
|
|
576
637
|
/**
|
|
577
638
|
* Make the center district, then make (mh-1) rings other meta-hex districts.
|
|
639
|
+
*
|
|
640
|
+
* Spiral clockwise from center, placing a line of meta-hex [using makeMetaHex()].
|
|
641
|
+
*
|
|
642
|
+
* MakeMetaHex likewise spirals from center, placing a line of Hex.
|
|
643
|
+
*
|
|
578
644
|
* @param nh order [number of 'rings'] of meta-hexes (2 or 3 for this game) [TP.mHexes]
|
|
579
645
|
* @param mh size ['rings' in each meta-hex] of meta-hex (1..6) [TP.nHexes]
|
|
580
646
|
* @param rc0 location of initial, central Hex
|
package/dist/hex.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hex.d.ts","sourceRoot":"","sources":["../src/hex.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hex.d.ts","sourceRoot":"","sources":["../src/hex.ts"],"names":[],"mappings":"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"}
|
package/dist/hex.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { C, CenterText, F } from "@thegraid/easeljs-lib";
|
|
2
2
|
import { Container, Point } from "@thegraid/easeljs-module";
|
|
3
|
+
import { NamedContainer } from "./game-play";
|
|
3
4
|
import { H } from "./hex-intfs";
|
|
4
5
|
import { HexShape, LegalMark } from "./shapes";
|
|
5
6
|
import { TP } from "./table-params";
|
|
@@ -141,10 +142,10 @@ export class Hex {
|
|
|
141
142
|
forEachHexDir(func) {
|
|
142
143
|
this.linkDirs.forEach((dir) => this.hexesInDir(dir).filter(hex => !!hex).map(hex => func(hex, dir, this)));
|
|
143
144
|
}
|
|
144
|
-
/** from this Hex, follow links[ds], ns times. */
|
|
145
|
+
/** from this Hex, follow links[ds], ns times (or until !links[ds]). */
|
|
145
146
|
nextHex(dir, ns = 1) {
|
|
146
147
|
let hex = this;
|
|
147
|
-
while (!!(hex = hex.links[dir])
|
|
148
|
+
while (ns-- > 0 && !!(hex = hex.links[dir])) { }
|
|
148
149
|
return hex;
|
|
149
150
|
}
|
|
150
151
|
/** return last Hex on axis in given direction */
|
|
@@ -155,7 +156,7 @@ export class Hex {
|
|
|
155
156
|
}
|
|
156
157
|
return hex;
|
|
157
158
|
}
|
|
158
|
-
/** distance between Hexes: adjacent = 1, based on row, col, sqrt3 */
|
|
159
|
+
/** distance between Hexes: adjacent = 1, based on row, col, unit = 1 / H.sqrt3 */
|
|
159
160
|
radialDist(hex) {
|
|
160
161
|
let unit = 1 / H.sqrt3; // so w = delta(col) = 1
|
|
161
162
|
let { x: tx, y: ty } = this.xywh(unit), { x: hx, y: hy } = hex.xywh(unit);
|
|
@@ -192,6 +193,42 @@ export class Hex1 extends Hex {
|
|
|
192
193
|
* class LibHex2extendsLocalHex1 extends Hex2Mixin(LocalHex1) { }
|
|
193
194
|
*
|
|
194
195
|
* class LocalHex2 extends LibHex2extendsLocalHex1 { ... }
|
|
196
|
+
*
|
|
197
|
+
* https://www.typescriptlang.org/docs/handbook/mixins.html
|
|
198
|
+
*
|
|
199
|
+
*
|
|
200
|
+
* Note: In the compiled hex.js and its hex.d.ts,
|
|
201
|
+
* the type 'this' in the Hex2Mixin versions of Hex methods
|
|
202
|
+
* is converted to type 'any'.
|
|
203
|
+
* (because Hex2Mixin and Hex2_base come from new(...) but are not a class,
|
|
204
|
+
* therefore have no instance or this/type)
|
|
205
|
+
*
|
|
206
|
+
* To get properly typed versions in your derived class extends Hex2Mixin,
|
|
207
|
+
* include the following overrides:
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
override forEachLinkHex(func: (hex: this | undefined, dir: HexDir | undefined, hex0: this) => unknown, inclCenter = false) {
|
|
211
|
+
super.forEachLinkHex(func)
|
|
212
|
+
}
|
|
213
|
+
override findLinkHex(pred: (hex: this | undefined, dir: HexDir, hex0: this) => boolean) {
|
|
214
|
+
return super.findLinkHex(pred)
|
|
215
|
+
}
|
|
216
|
+
override findInDir(dir: HexDir, pred: (hex: this, dir: HexDir, hex0: this) => boolean): this | undefined {
|
|
217
|
+
return super.findInDir(dir, pred)
|
|
218
|
+
}
|
|
219
|
+
override hexesInDir(dir: HexDir, rv: this[] = []): this[] {
|
|
220
|
+
return super.hexesInDir(dir, rv)
|
|
221
|
+
}
|
|
222
|
+
override forEachHexDir(func: (hex: this, dir: HexDir, hex0: this) => unknown) {
|
|
223
|
+
super.forEachHexDir(func);
|
|
224
|
+
}
|
|
225
|
+
override nextHex(dir: HexDir, ns: number = 1): this | undefined {
|
|
226
|
+
return super.nextHex(dir, ns) as this | undefined;
|
|
227
|
+
}
|
|
228
|
+
override lastHex(ds: HexDir): this {
|
|
229
|
+
return super.lastHex(ds)
|
|
230
|
+
}
|
|
231
|
+
*
|
|
195
232
|
*/
|
|
196
233
|
export function Hex2Mixin(Base) {
|
|
197
234
|
return class Hex2Impl extends Base {
|
|
@@ -324,18 +361,21 @@ export function Hex2Mixin(Base) {
|
|
|
324
361
|
let dx = tx - hx, dy = ty - hy;
|
|
325
362
|
return Math.sqrt(dx * dx + dy * dy); // tw == H.sqrt3
|
|
326
363
|
}
|
|
327
|
-
/**
|
|
328
|
-
* @param dir0
|
|
329
|
-
* @param dir1
|
|
364
|
+
/** Location of corner between dir0 and dir1; in parent coordinates.
|
|
365
|
+
* @param dir0 a HexDir
|
|
366
|
+
* @param dir1 a HexDir
|
|
367
|
+
* @param point [new Point()] set location-x,y in point and return it.
|
|
368
|
+
* @param rad [this.radius]
|
|
330
369
|
*/
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
let a2 = (d0 + d1) / 2, h = this.radius;
|
|
370
|
+
cornerPoint(dir0, dir1, point = new Point(), rad = this.radius) {
|
|
371
|
+
const d0 = H.dirRot[dir0], d1 = H.dirRot[dir1];
|
|
372
|
+
let a2 = (d0 + d1) / 2;
|
|
335
373
|
if (Math.abs(d0 - d1) > 180)
|
|
336
374
|
a2 += 180;
|
|
337
|
-
|
|
338
|
-
|
|
375
|
+
const a = a2 * H.degToRadians;
|
|
376
|
+
point.x = this.x + Math.sin(a) * rad;
|
|
377
|
+
point.y = this.y - Math.cos(a) * rad;
|
|
378
|
+
return point;
|
|
339
379
|
}
|
|
340
380
|
/** Location of edge point in dir; in parent coordinates.
|
|
341
381
|
* @param dir indicates direction to edge
|
|
@@ -343,9 +383,9 @@ export function Hex2Mixin(Base) {
|
|
|
343
383
|
* @param point [new Point()] set location-x,y in point and return it.
|
|
344
384
|
*/
|
|
345
385
|
edgePoint(dir, rad = 1, point = new Point()) {
|
|
346
|
-
const a = H.
|
|
347
|
-
point.x = this.
|
|
348
|
-
point.y = this.
|
|
386
|
+
const a = H.dirRot[dir] * H.degToRadians, h = rad * this.radius * H.sqrt3_2;
|
|
387
|
+
point.x = this.x + Math.sin(a) * h;
|
|
388
|
+
point.y = this.y - Math.cos(a) * h;
|
|
349
389
|
return point;
|
|
350
390
|
}
|
|
351
391
|
};
|
|
@@ -372,7 +412,7 @@ export class HexMark extends HexShape {
|
|
|
372
412
|
this.graphics.f(cm).dp(0, 0, this.radius, 6, 0, this.tilt);
|
|
373
413
|
this.cache(-radius, -radius, 2 * radius, 2 * radius);
|
|
374
414
|
this.graphics.c().f(C.BLACK).dc(0, 0, radius0);
|
|
375
|
-
this.updateCache(
|
|
415
|
+
this.updateCache('destination-out');
|
|
376
416
|
this.setHexBounds(); // bounds are based on readonly, should be const
|
|
377
417
|
this.mouseEnabled = false;
|
|
378
418
|
}
|
|
@@ -429,10 +469,9 @@ export class MapCont extends Container {
|
|
|
429
469
|
/** add all the layers of Containers. update this.cNames */
|
|
430
470
|
addContainers(cNames = this.cNames) {
|
|
431
471
|
this._cNames = cNames.concat();
|
|
432
|
-
this.removeAllChildren();
|
|
472
|
+
this.removeAllChildren(); // TODO: remove all the field references also
|
|
433
473
|
this.cNames.forEach(cname => {
|
|
434
|
-
const cont = new
|
|
435
|
-
cont.Aname = cont.name = cname;
|
|
474
|
+
const cont = new NamedContainer(cname);
|
|
436
475
|
this[cname] = cont;
|
|
437
476
|
this.addChild(cont);
|
|
438
477
|
});
|
|
@@ -457,28 +496,34 @@ export class MapCont extends Container {
|
|
|
457
496
|
}
|
|
458
497
|
}
|
|
459
498
|
/**
|
|
460
|
-
*
|
|
461
|
-
*
|
|
499
|
+
* 2-D Array[row][col]: Hex; plus a mapCont of Graphics-Containers for IHex2.
|
|
500
|
+
*
|
|
501
|
+
* hexAry[n]: all the Hex (or IHex2) elements.
|
|
462
502
|
*
|
|
463
|
-
*
|
|
464
|
-
* If mapCont is set, then populate with Hex2
|
|
503
|
+
* district[i]: Hex[]; all the Hex in a given district.
|
|
465
504
|
*
|
|
466
505
|
* (TP.mh X TP.nh) hexes in districts;
|
|
467
506
|
*
|
|
468
|
-
*
|
|
507
|
+
* Use addToMapCont(hexC), to populate with new hexC()
|
|
508
|
+
*
|
|
509
|
+
* mark: a HexMark to visually indicate a selected IHex2.
|
|
469
510
|
*
|
|
470
511
|
*/
|
|
471
512
|
export class HexMap extends Array {
|
|
472
513
|
hexC;
|
|
473
514
|
Aname;
|
|
474
|
-
|
|
475
|
-
static distColor = ['lightgrey',
|
|
515
|
+
/** A color for each District: 'rgb(198,198,198)' */
|
|
516
|
+
static distColor = ['lightgrey', 'limegreen', 'deepskyblue', 'rgb(255,165,0)', 'violet', 'rgb(250,80,80)', 'yellow'];
|
|
476
517
|
/**
|
|
477
|
-
* HexMap: TP.nRows X TP.nCols
|
|
518
|
+
* HexMap: TP.nRows X TP.nCols of Hex [new hexC()]
|
|
519
|
+
*
|
|
520
|
+
* Basic map is non-GUI, addToMapCont(hexC) makes IHex2 elements to enable GUI interaction.
|
|
521
|
+
* Use hexC() to make Hex; mapCont has layers of Containers per HexMap.cNames;
|
|
478
522
|
*
|
|
479
|
-
*
|
|
480
|
-
* @param addToMapCont
|
|
481
|
-
* @param hexC
|
|
523
|
+
* @param radius [TP.hexRad] typically 60
|
|
524
|
+
* @param addToMapCont [false] set true to include addToMapCont(hexC)
|
|
525
|
+
* @param hexC [Hex] HexConstructor\<Hex\> for each element
|
|
526
|
+
* @param Aname ['mainMap'] a name for debugger
|
|
482
527
|
*/
|
|
483
528
|
constructor(radius = TP.hexRad, addToMapCont = false, hexC = Hex, Aname = 'mainMap') {
|
|
484
529
|
super(); // Array<Array<Hex>>()
|
|
@@ -664,16 +709,19 @@ export class HexMap extends Array {
|
|
|
664
709
|
});
|
|
665
710
|
}
|
|
666
711
|
/**
|
|
667
|
-
*
|
|
668
|
-
*
|
|
712
|
+
* Return the Hex under the given x,y coordinates.
|
|
713
|
+
*
|
|
714
|
+
* Conceptually: (legal ? LegalMark : HexCont)?.hex2 as \<T extends IHex2\>;
|
|
715
|
+
*
|
|
716
|
+
* If multiple HexCont at x,y, return the top (last drawn) HexCont.
|
|
669
717
|
* @param x in local coordinates of this HexMap.mapCont
|
|
670
718
|
* @param y
|
|
671
|
-
* @param legal -
|
|
672
|
-
* @returns the
|
|
719
|
+
* @param legal - return ONLY a Hex with LegalMark visible & mouseenabled.
|
|
720
|
+
* @returns the IHex2 of the LegalMark or HexCont at the given point (or undefined if no such HexCont)
|
|
673
721
|
*/
|
|
674
722
|
hexUnderPoint(x, y, legal = true) {
|
|
675
723
|
const mark = this.mapCont.markCont.getObjectUnderPoint(x, y, 1);
|
|
676
|
-
// Note: in theory, mark could be on a
|
|
724
|
+
// Note: in theory, mark could be on a IHex2 that is NOT in hexCont!
|
|
677
725
|
if (mark instanceof LegalMark)
|
|
678
726
|
return mark.hex2;
|
|
679
727
|
if (legal)
|
|
@@ -712,13 +760,15 @@ export class HexMap extends Array {
|
|
|
712
760
|
this.setSize(nh, mh);
|
|
713
761
|
const rc0 = this.calculateRC0();
|
|
714
762
|
const hexAry = this.hexAry = this.makeAllHexes(nh, mh, rc0); // nh hexes on outer ring; single meta-hex
|
|
715
|
-
this.mapCont.hexCont && this.mapCont.centerContainers();
|
|
716
763
|
return hexAry;
|
|
717
764
|
}
|
|
718
765
|
/**
|
|
719
766
|
* overridable action for makeAllDistricts;
|
|
720
767
|
*
|
|
721
|
-
* Base implementation invokes
|
|
768
|
+
* Base implementation invokes makeMetaHexRings(nh, mh, rc0)
|
|
769
|
+
*
|
|
770
|
+
* Alterative: makeRect(nrow, ncol, ...)
|
|
771
|
+
*
|
|
722
772
|
* @param nh
|
|
723
773
|
* @param mh
|
|
724
774
|
* @param rc0
|
|
@@ -729,6 +779,11 @@ export class HexMap extends Array {
|
|
|
729
779
|
}
|
|
730
780
|
/**
|
|
731
781
|
* Make the center district, then make (mh-1) rings other meta-hex districts.
|
|
782
|
+
*
|
|
783
|
+
* Spiral clockwise from center, placing a line of meta-hex [using makeMetaHex()].
|
|
784
|
+
*
|
|
785
|
+
* MakeMetaHex likewise spirals from center, placing a line of Hex.
|
|
786
|
+
*
|
|
732
787
|
* @param nh order [number of 'rings'] of meta-hexes (2 or 3 for this game) [TP.mHexes]
|
|
733
788
|
* @param mh size ['rings' in each meta-hex] of meta-hex (1..6) [TP.nHexes]
|
|
734
789
|
* @param rc0 location of initial, central Hex
|