@maka/maka-cli 5.390.0 → 5.391.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/bundle/typescript/package.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js +8 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +6 -2
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.391.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"summary": "A command line tool for scaffolding Meteor 3.x applications using either React.",
|
|
6
6
|
"description": "A command line tool for scaffolding Meteor 3.x applications using React.",
|
|
@@ -3399,5 +3399,9 @@
|
|
|
3399
3399
|
// 1.202.0 (2026-10-06): NO "other" ON THE HELP SCREEN. The nine sprite
|
|
3400
3400
|
// powers (camouflage, cookie, ... watermark) shelve under resonance;
|
|
3401
3401
|
// registered in a loop, they had slipped past the taxonomy test.
|
|
3402
|
-
|
|
3402
|
+
// 1.203.0 (2026-10-06): A DOOR OR A WINDOW IS NOT FURNITURE. A spot whose
|
|
3403
|
+
// head noun is a door (door, gate, entrance, ...) or a window keeps its
|
|
3404
|
+
// anchor but fills no cell (room-grid wallFixtureKindOf): an exit's door
|
|
3405
|
+
// is already the exit's mark, any other door and every window is prose.
|
|
3406
|
+
export const ENGINE_VERSION = '1.203.0';
|
|
3403
3407
|
//# sourceMappingURL=engine-version.js.map
|
|
@@ -6,6 +6,14 @@ export function doorwayKindOf(spotName) {
|
|
|
6
6
|
return 'lateral';
|
|
7
7
|
return undefined;
|
|
8
8
|
}
|
|
9
|
+
export function wallFixtureKindOf(spotName) {
|
|
10
|
+
const head = spotName.trim().toLowerCase().split(/\s+/).pop() ?? '';
|
|
11
|
+
if (/^(door|doors|doorway|gate|gates|entrance|entry|archway|airlock)$/.test(head))
|
|
12
|
+
return 'door';
|
|
13
|
+
if (/^(window|windows)$/.test(head))
|
|
14
|
+
return 'window';
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
9
17
|
export const METERS_PER_CELL = 2;
|
|
10
18
|
/**
|
|
11
19
|
* How tall one storey is. A CHOICE, not a citation -- SR5 never says how
|
|
@@ -893,6 +901,15 @@ export function synthesizeGrid(input) {
|
|
|
893
901
|
...(input.keepClear ?? []).map(c => key({ x: c.x, y: c.y, z: 0 })),
|
|
894
902
|
]);
|
|
895
903
|
for (const [name, anchor] of grid.spotCells.entries()) {
|
|
904
|
+
// A DOOR OR WINDOW HAS NO FURNITURE (wallFixtureKindOf): an empty
|
|
905
|
+
// footprint, as a camera's perch has. The anchor stays claimed, so
|
|
906
|
+
// nothing grows onto it; it is simply floor. No rng is skipped --
|
|
907
|
+
// growFurniture draws none for a one-cell name -- so nothing else in
|
|
908
|
+
// the room moves.
|
|
909
|
+
if (wallFixtureKindOf(name)) {
|
|
910
|
+
grid.spotFootprints.set(name, []);
|
|
911
|
+
continue;
|
|
912
|
+
}
|
|
896
913
|
if (name === OPEN_FLOOR_NAME || exitKeys.has(key(anchor))) {
|
|
897
914
|
grid.spotFootprints.set(name, [anchor]);
|
|
898
915
|
continue;
|
|
@@ -7,7 +7,7 @@ import { DRONE_COLOUR } from './drone-prose.js';
|
|
|
7
7
|
import { PLAYER_GLYPH, OTHER_PLAYER_GLYPH, OTHER_PLAYER_COLOR, NEUTRAL_GLYPH, HOSTILE_GLYPH, CREW_GLYPH, DEAD_GLYPH, DOWNED_GLYPH, SPOT_GLYPH, RIGGED_GLYPH, UP_GLYPH, CAMERA_GLYPH, CAMERA_COLOR, CAMERA_DEAD_COLOR, BARRIER_GLYPH, BARRIER_COLOR, MANA_BARRIER_COLOR, exitGlyph, GLYPH_RANK, } from './map-glyphs.js';
|
|
8
8
|
import { barriersWire } from './ways-out.js';
|
|
9
9
|
import { xRulerLine, yRulerLabel, yGutterWidth } from './map-rulers.js';
|
|
10
|
-
import { key, levelFootprint, dimsForSize, roomRasterRows, METERS_PER_LEVEL, METERS_PER_CELL, } from './room-grid.js';
|
|
10
|
+
import { key, levelFootprint, dimsForSize, roomRasterRows, METERS_PER_LEVEL, METERS_PER_CELL, wallFixtureKindOf, } from './room-grid.js';
|
|
11
11
|
/**
|
|
12
12
|
* WHO THIS PANEL DRAWS: everyone you can see, plus every ARO your AR is
|
|
13
13
|
* showing you (BJDoj9xwy5GmnHAmj: "I should always be able to spot an
|
|
@@ -209,6 +209,11 @@ function buildRenderMaps(grid, room, viewer) {
|
|
|
209
209
|
cellToSpot.set(key(c), name);
|
|
210
210
|
}
|
|
211
211
|
for (const [name, c] of grid.spotCells.entries()) {
|
|
212
|
+
// A door or window is not furniture (room-grid wallFixtureKindOf):
|
|
213
|
+
// its cell is plain floor, and a door that is an exit wears the
|
|
214
|
+
// exit's own arrow.
|
|
215
|
+
if (wallFixtureKindOf(name))
|
|
216
|
+
continue;
|
|
212
217
|
if (!cellToSpot.has(key(c)))
|
|
213
218
|
cellToSpot.set(key(c), name);
|
|
214
219
|
}
|
|
@@ -541,6 +546,8 @@ function diamondSpots(room, grid) {
|
|
|
541
546
|
return (room.spots ?? [])
|
|
542
547
|
// A perch draws as its lens (CAMERA_GLYPH), with a legend row of its own.
|
|
543
548
|
.filter(s => !isPerchSpot(s))
|
|
549
|
+
// ...and a door or window draws nothing, so it has no row to explain.
|
|
550
|
+
.filter(s => !wallFixtureKindOf(s.name))
|
|
544
551
|
.filter(s => {
|
|
545
552
|
const cell = grid.spotCells.get(s.name);
|
|
546
553
|
return cell !== undefined && !onExit.has(key(cell));
|
|
@@ -6,7 +6,7 @@ import { wayOut } from './ways-out.js';
|
|
|
6
6
|
import { significantWords, wordsAreCloseEnough } from './fuzzy-match.js';
|
|
7
7
|
import { hint } from './hints.js';
|
|
8
8
|
import { placeName } from './log-style.js';
|
|
9
|
-
import { findPath, distanceMeters, coverBetween, blockingRegionFor, pathClearing, pathClimbSteps, levelFootprint, key, isCellBlocked, pathSqueezes, METERS_PER_CELL, doorwayKindOf, cellOnGrid, } from './room-grid.js';
|
|
9
|
+
import { findPath, distanceMeters, coverBetween, blockingRegionFor, pathClearing, pathClimbSteps, levelFootprint, key, isCellBlocked, pathSqueezes, METERS_PER_CELL, doorwayKindOf, wallFixtureKindOf, cellOnGrid, } from './room-grid.js';
|
|
10
10
|
// The doorway vocabulary moved to room-grid.ts (the grid seats exit
|
|
11
11
|
// spots by it); every caller of spots.ts keeps its import.
|
|
12
12
|
export { doorwayKindOf };
|
|
@@ -960,9 +960,13 @@ export function spotForCell(room, cell) {
|
|
|
960
960
|
return OPEN_FLOOR;
|
|
961
961
|
let best;
|
|
962
962
|
let bestDist = Infinity;
|
|
963
|
-
for (const [name,
|
|
963
|
+
for (const [name, footprint] of grid.spotFootprints.entries()) {
|
|
964
964
|
if (name === OPEN_FLOOR)
|
|
965
965
|
continue;
|
|
966
|
+
// A door or window fills no cell (room-grid wallFixtureKindOf), so its
|
|
967
|
+
// anchor stands in for it: step up to the window and you are AT it.
|
|
968
|
+
const anchor = footprint.length === 0 && wallFixtureKindOf(name) ? grid.spotCells.get(name) : undefined;
|
|
969
|
+
const cells = anchor ? [anchor] : footprint;
|
|
966
970
|
for (const c of cells) {
|
|
967
971
|
if (c.z !== cell.z)
|
|
968
972
|
continue;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.391.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"summary": "A command line tool for scaffolding Meteor 3.x applications using either React.",
|
|
6
6
|
"description": "A command line tool for scaffolding Meteor 3.x applications using React.",
|