@almadar/ui 5.104.0 → 5.107.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/avl/index.cjs +1911 -4127
- package/dist/avl/index.js +1006 -3222
- package/dist/components/core/atoms/index.d.ts +1 -1
- package/dist/components/core/molecules/index.d.ts +1 -1
- package/dist/components/core/organisms/index.d.ts +1 -1
- package/dist/components/core/templates/index.d.ts +2 -2
- package/dist/components/game/{2d/atoms → atoms}/ActionButton.d.ts +1 -1
- package/dist/components/game/{2d/atoms → atoms}/ChoiceButton.d.ts +1 -1
- package/dist/components/game/{2d/atoms → atoms}/ControlButton.d.ts +1 -1
- package/dist/components/game/atoms/DrawShape.d.ts +50 -0
- package/dist/components/game/atoms/DrawSprite.d.ts +47 -0
- package/dist/components/game/atoms/DrawText.d.ts +31 -0
- package/dist/components/game/{2d/atoms → atoms}/GameAudioToggle.d.ts +1 -1
- package/dist/components/game/{2d/atoms → atoms}/GameIcon.d.ts +1 -1
- package/dist/components/game/{2d/atoms → atoms}/ItemSlot.d.ts +1 -1
- package/dist/components/game/{2d/atoms → atoms}/MiniMap.d.ts +1 -1
- package/dist/components/game/{2d/atoms → atoms}/ResourceCounter.d.ts +2 -2
- package/dist/components/game/{2d/atoms → atoms}/ScoreDisplay.d.ts +1 -1
- package/dist/components/game/{2d/atoms → atoms}/Sprite.d.ts +1 -1
- package/dist/components/game/{2d/atoms → atoms}/StateIndicator.d.ts +1 -1
- package/dist/components/game/{2d/atoms → atoms}/StatusEffect.d.ts +1 -1
- package/dist/components/game/{2d/atoms → atoms}/WaypointMarker.d.ts +1 -1
- package/dist/components/game/{shared/hooks → hooks}/useCamera.d.ts +1 -1
- package/dist/components/game/{shared/hooks → hooks}/useUnitSpriteAtlas.d.ts +2 -2
- package/dist/components/game/{shared → lib}/index.d.ts +1 -2
- package/dist/components/game/{shared → lib}/isometric.d.ts +38 -0
- package/dist/components/game/{shared → lib}/isometricTypes.d.ts +4 -0
- package/dist/components/game/{shared/lib → lib}/puzzleObject.d.ts +1 -1
- package/dist/components/game/{2d/molecules → molecules}/ActionTile.d.ts +1 -1
- package/dist/components/game/molecules/Canvas.d.ts +96 -0
- package/dist/components/game/molecules/Canvas2D.d.ts +120 -0
- package/dist/components/game/{2d/molecules → molecules}/ControlGrid.d.ts +1 -1
- package/dist/components/game/molecules/DrawShapeLayer.d.ts +19 -0
- package/dist/components/game/molecules/DrawSpriteLayer.d.ts +21 -0
- package/dist/components/game/molecules/DrawTextLayer.d.ts +22 -0
- package/dist/components/game/{2d/molecules → molecules}/GameHud.d.ts +1 -1
- package/dist/components/game/{2d/molecules → molecules}/InventoryGrid.d.ts +1 -1
- package/dist/components/game/{2d/molecules → molecules}/ResourceBar.d.ts +1 -1
- package/dist/components/game/{2d/molecules → molecules}/StatBadge.d.ts +1 -1
- package/dist/components/game/{2d/molecules → molecules}/StateNode.d.ts +1 -1
- package/dist/components/game/{2d/molecules → molecules}/TraitSlot.d.ts +1 -1
- package/dist/components/game/{2d/molecules → molecules}/TraitStateViewer.d.ts +1 -1
- package/dist/components/game/{2d/molecules → molecules}/TransitionArrow.d.ts +1 -1
- package/dist/components/game/{2d/molecules → molecules}/index.d.ts +9 -16
- package/dist/components/game/patterns.d.ts +20 -0
- package/dist/components/game/{shared/providers → providers}/GameAudioProvider.d.ts +1 -1
- package/dist/components/game/{2d/templates → templates}/GameTemplate.d.ts +1 -1
- package/dist/components/game/three/atoms/SpriteBillboard3D.d.ts +18 -0
- package/dist/components/game/three/game3dTheme.d.ts +55 -0
- package/dist/components/game/{shared → three}/hooks/useGameCanvas3DEvents.d.ts +4 -3
- package/dist/components/game/{3d → three}/index.cjs +787 -2986
- package/dist/components/game/{3d → three}/index.css +3 -3
- package/dist/components/game/{3d → three}/index.d.ts +0 -1
- package/dist/components/game/{3d → three}/index.js +644 -2842
- package/dist/components/game/{shared → three}/lib/game3dAssetManifest.d.ts +1 -1
- package/dist/components/game/three/molecules/GameCamera3D.d.ts +35 -0
- package/dist/components/game/three/molecules/GameCanvas3D.d.ts +175 -0
- package/dist/components/game/{3d → three}/molecules/Lighting3D.d.ts +10 -2
- package/dist/components/game/{3d → three}/molecules/index.d.ts +9 -12
- package/dist/components/game/{3d → three}/patterns.d.ts +0 -4
- package/dist/components/index.cjs +2326 -4362
- package/dist/components/index.js +1420 -3449
- package/dist/lib/drawable/Drawable3D.d.ts +20 -0
- package/dist/lib/drawable/contract.d.ts +68 -0
- package/dist/lib/drawable/hitTest.d.ts +23 -0
- package/dist/lib/drawable/mesh3d.d.ts +28 -0
- package/dist/lib/drawable/paintDispatch.d.ts +22 -0
- package/dist/lib/drawable/projector.d.ts +14 -0
- package/dist/lib/drawable/projector3d.d.ts +20 -0
- package/dist/lib/imageCache.d.ts +9 -0
- package/dist/lib/painter2d.d.ts +81 -0
- package/dist/lib/webPainter2d.d.ts +7 -0
- package/dist/marketing/index.cjs +10 -0
- package/dist/marketing/index.js +10 -0
- package/dist/providers/index.cjs +1756 -3976
- package/dist/providers/index.js +964 -3184
- package/dist/runtime/index.cjs +1766 -3982
- package/dist/runtime/index.js +980 -3196
- package/package.json +13 -13
- package/dist/components/game/2d/molecules/Canvas2D.d.ts +0 -175
- package/dist/components/game/2d/organisms/BuilderBoard.d.ts +0 -60
- package/dist/components/game/2d/organisms/ClassifierBoard.d.ts +0 -66
- package/dist/components/game/2d/organisms/DebuggerBoard.d.ts +0 -61
- package/dist/components/game/2d/organisms/EventHandlerBoard.d.ts +0 -42
- package/dist/components/game/2d/organisms/NegotiatorBoard.d.ts +0 -56
- package/dist/components/game/2d/organisms/SequencerBoard.d.ts +0 -69
- package/dist/components/game/2d/organisms/SimulatorBoard.d.ts +0 -58
- package/dist/components/game/2d/organisms/StateArchitectBoard.d.ts +0 -61
- package/dist/components/game/3d/molecules/GameCanvas3D.d.ts +0 -259
- package/dist/components/game/3d/organisms/GameBoard3D.d.ts +0 -66
- package/dist/components/game/3d/templates/GameCanvas3DBattleTemplate.d.ts +0 -82
- package/dist/components/game/3d/templates/GameCanvas3DCastleTemplate.d.ts +0 -87
- package/dist/components/game/3d/templates/GameCanvas3DWorldMapTemplate.d.ts +0 -95
- package/dist/components/game/shared/effects.d.ts +0 -253
- /package/dist/components/game/{2d/atoms → atoms}/ComboCounter.d.ts +0 -0
- /package/dist/components/game/{2d/atoms → atoms}/DamageNumber.d.ts +0 -0
- /package/dist/components/game/{2d/atoms → atoms}/DialogueBubble.d.ts +0 -0
- /package/dist/components/game/{2d/atoms → atoms}/GameCard.d.ts +0 -0
- /package/dist/components/game/{2d/atoms → atoms}/HealthBar.d.ts +0 -0
- /package/dist/components/game/{2d/atoms → atoms}/TimerDisplay.d.ts +0 -0
- /package/dist/components/game/{2d/atoms → atoms}/TurnIndicator.d.ts +0 -0
- /package/dist/components/game/{shared/hooks → hooks}/useGameAudio.d.ts +0 -0
- /package/dist/components/game/{shared → hooks}/useImageCache.d.ts +0 -0
- /package/dist/components/game/{shared → lib}/boardEntity.d.ts +0 -0
- /package/dist/components/game/{shared/lib → lib}/editorUtils.d.ts +0 -0
- /package/dist/components/game/{shared → lib}/game.d.ts +0 -0
- /package/dist/components/game/{shared → lib}/makeAsset.d.ts +0 -0
- /package/dist/components/game/{shared/lib → lib}/mechanics.d.ts +0 -0
- /package/dist/components/game/{shared/lib → lib}/physicsPresets.d.ts +0 -0
- /package/dist/components/game/{shared/lib → lib}/physicsTypes.d.ts +0 -0
- /package/dist/components/game/{shared → lib}/spriteAnimation.d.ts +0 -0
- /package/dist/components/game/{shared → lib}/spriteAnimationTypes.d.ts +0 -0
- /package/dist/components/game/{shared → lib}/spriteSheetConstants.d.ts +0 -0
- /package/dist/components/game/{2d/molecules → molecules}/ActionPalette.d.ts +0 -0
- /package/dist/components/game/{2d/molecules → molecules}/EventLog.d.ts +0 -0
- /package/dist/components/game/{2d/molecules → molecules}/GameMenu.d.ts +0 -0
- /package/dist/components/game/{2d/molecules → molecules}/ObjectRulePanel.d.ts +0 -0
- /package/dist/components/game/{2d/molecules → molecules}/RuleEditor.d.ts +0 -0
- /package/dist/components/game/{2d/molecules → molecules}/SequenceBar.d.ts +0 -0
- /package/dist/components/game/{2d/molecules → molecules}/StateGraph.d.ts +0 -0
- /package/dist/components/game/{2d/molecules → molecules}/StateJsonView.d.ts +0 -0
- /package/dist/components/game/{2d/molecules → molecules}/VariablePanel.d.ts +0 -0
- /package/dist/components/game/{2d/templates → templates}/GameShell.d.ts +0 -0
- /package/dist/components/game/{shared → three}/hooks/useAssetLoader.d.ts +0 -0
- /package/dist/components/game/{shared → three}/hooks/useRaycaster.d.ts +0 -0
- /package/dist/components/game/{shared → three}/hooks/useSceneGraph.d.ts +0 -0
- /package/dist/components/game/{shared → three}/hooks/useThree.d.ts +0 -0
- /package/dist/components/game/{shared → three}/lib/AssetLoader.d.ts +0 -0
- /package/dist/components/game/{shared → three}/lib/culling.d.ts +0 -0
- /package/dist/components/game/{shared → three}/lib/grid3D.d.ts +0 -0
- /package/dist/components/game/{3d → three}/molecules/Camera3D.d.ts +0 -0
- /package/dist/components/game/{3d → three}/molecules/Canvas3DErrorBoundary.d.ts +0 -0
- /package/dist/components/game/{3d → three}/molecules/Canvas3DLoadingState.d.ts +0 -0
- /package/dist/components/game/{3d → three}/molecules/ModelLoader.d.ts +0 -0
- /package/dist/components/game/{3d → three}/molecules/Scene3D.d.ts +0 -0
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* StateArchitectBoard Organism
|
|
3
|
-
*
|
|
4
|
-
* Contains ALL game logic for the State Architect tier (ages 13+).
|
|
5
|
-
* Kids design state machines via a visual graph editor, then run
|
|
6
|
-
* them to see if the behavior matches the puzzle goal.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
import React from 'react';
|
|
11
|
-
import type { EventEmit, EntityRow } from '@almadar/core';
|
|
12
|
-
import type { DisplayStateProps } from '../../../core/organisms/types';
|
|
13
|
-
/** A kid-built transition in the visual graph editor (UI value DTO). */
|
|
14
|
-
export interface StateArchitectTransition {
|
|
15
|
-
id: string;
|
|
16
|
-
from: string;
|
|
17
|
-
to: string;
|
|
18
|
-
event: string;
|
|
19
|
-
guardHint?: string;
|
|
20
|
-
}
|
|
21
|
-
/** A puzzle test case (UI value DTO). */
|
|
22
|
-
export interface TestCase {
|
|
23
|
-
/** Sequence of events to fire */
|
|
24
|
-
events: string[];
|
|
25
|
-
/** Expected final state */
|
|
26
|
-
expectedState: string;
|
|
27
|
-
/** Description */
|
|
28
|
-
label: string;
|
|
29
|
-
}
|
|
30
|
-
export interface StateArchitectBoardProps extends DisplayStateProps {
|
|
31
|
-
/** Puzzle board-state entity (single row or array). The board reads
|
|
32
|
-
* `variables` / `states` / `transitions` / `testCases` etc. off the row. */
|
|
33
|
-
entity?: EntityRow | readonly EntityRow[];
|
|
34
|
-
/** Playback speed */
|
|
35
|
-
stepDurationMs?: number;
|
|
36
|
-
/** Emits UI:{testEvent} */
|
|
37
|
-
testEvent?: EventEmit<Record<string, never>>;
|
|
38
|
-
/** Emits UI:{completeEvent} with { success, passedTests } */
|
|
39
|
-
completeEvent?: EventEmit<{
|
|
40
|
-
success: boolean;
|
|
41
|
-
passedTests: number;
|
|
42
|
-
}>;
|
|
43
|
-
/** Emits UI:{addTransitionEvent} — lolo handles ADD_TRANSITION */
|
|
44
|
-
addTransitionEvent?: EventEmit<{
|
|
45
|
-
id: string;
|
|
46
|
-
from: string;
|
|
47
|
-
to: string;
|
|
48
|
-
event: string;
|
|
49
|
-
}>;
|
|
50
|
-
/** Emits UI:{removeTransitionEvent} — lolo handles REMOVE_TRANSITION */
|
|
51
|
-
removeTransitionEvent?: EventEmit<{
|
|
52
|
-
id: string;
|
|
53
|
-
}>;
|
|
54
|
-
/** Emits UI:{playAgainEvent} — lolo handles PLAY_AGAIN */
|
|
55
|
-
playAgainEvent?: EventEmit<Record<string, never>>;
|
|
56
|
-
}
|
|
57
|
-
export declare function StateArchitectBoard({ entity, stepDurationMs, testEvent, completeEvent, addTransitionEvent, removeTransitionEvent, playAgainEvent, className, }: StateArchitectBoardProps): React.JSX.Element | null;
|
|
58
|
-
export declare namespace StateArchitectBoard {
|
|
59
|
-
var displayName: string;
|
|
60
|
-
}
|
|
61
|
-
export default StateArchitectBoard;
|
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GameCanvas3D
|
|
3
|
-
*
|
|
4
|
-
* 3D game canvas component using Three.js.
|
|
5
|
-
* Mirrors the IsometricCanvas API for easy migration.
|
|
6
|
-
*
|
|
7
|
-
* **State categories (closed-circuit compliant):**
|
|
8
|
-
* - All game data (tiles, units, features, selection, validMoves) → received via props
|
|
9
|
-
* - Rendering state (hoveredTile, internalError, asset loading, camera) → local only
|
|
10
|
-
* - Events → emitted via `useGameCanvas3DEvents()` hook for trait integration
|
|
11
|
-
*
|
|
12
|
-
* This component is a **pure 3D renderer** — it holds no game logic state.
|
|
13
|
-
*
|
|
14
|
-
* @packageDocumentation
|
|
15
|
-
*/
|
|
16
|
-
import React from 'react';
|
|
17
|
-
import type { EventEmit, Asset } from '@almadar/core';
|
|
18
|
-
import type { Platform, SidePlayer } from '../../2d/molecules/Canvas2D';
|
|
19
|
-
import * as THREE from 'three';
|
|
20
|
-
import { AssetLoader } from '../../shared/lib/AssetLoader';
|
|
21
|
-
import { type MinimalMouseEvent } from '../../shared/hooks/useGameCanvas3DEvents';
|
|
22
|
-
import type { IsometricTile, IsometricUnit, IsometricFeature } from '../../shared/isometricTypes';
|
|
23
|
-
import './GameCanvas3D.css';
|
|
24
|
-
export type { IsometricTile, IsometricUnit, IsometricFeature };
|
|
25
|
-
/** Game event for canvas display */
|
|
26
|
-
export interface GameEvent {
|
|
27
|
-
id: string;
|
|
28
|
-
type: string;
|
|
29
|
-
x: number;
|
|
30
|
-
z?: number;
|
|
31
|
-
y?: number;
|
|
32
|
-
message?: string;
|
|
33
|
-
}
|
|
34
|
-
/** Camera mode for 3D view.
|
|
35
|
-
* - `follow` tracks the side-view player (or the selected unit) from a fixed offset.
|
|
36
|
-
* - `chase` sits behind + above the followed unit relative to its `heading` (driving). */
|
|
37
|
-
export type CameraMode = 'isometric' | 'perspective' | 'top-down' | 'follow' | 'chase';
|
|
38
|
-
/** Per-role model manifest — the 3D analogue of Canvas2D's assetManifest (values are GLB Assets). */
|
|
39
|
-
export interface GameCanvas3DAssetManifest {
|
|
40
|
-
terrains?: Record<string, Asset>;
|
|
41
|
-
units?: Record<string, Asset>;
|
|
42
|
-
features?: Record<string, Asset>;
|
|
43
|
-
effects?: Record<string, Asset>;
|
|
44
|
-
}
|
|
45
|
-
/** Map orientation */
|
|
46
|
-
export type MapOrientation = 'standard' | 'rotated';
|
|
47
|
-
/** Overlay control */
|
|
48
|
-
export type OverlayControl = 'default' | 'hidden' | 'minimap';
|
|
49
|
-
/** Props for GameCanvas3D component */
|
|
50
|
-
export interface GameCanvas3DProps {
|
|
51
|
-
/** Additional CSS classes */
|
|
52
|
-
className?: string;
|
|
53
|
-
/** Children to render inside the 3D canvas (e.g., physics objects, custom meshes) */
|
|
54
|
-
children?: React.ReactNode;
|
|
55
|
-
/** Loading state indicator */
|
|
56
|
-
isLoading?: boolean;
|
|
57
|
-
/** Error state */
|
|
58
|
-
error?: string | null;
|
|
59
|
-
/** Array of tiles to render */
|
|
60
|
-
tiles?: IsometricTile[];
|
|
61
|
-
/** Array of units to render */
|
|
62
|
-
units?: IsometricUnit[];
|
|
63
|
-
/** Array of features to render */
|
|
64
|
-
features?: IsometricFeature[];
|
|
65
|
-
/** Array of events to display */
|
|
66
|
-
events?: Array<GameEvent>;
|
|
67
|
-
/** Fog of war data */
|
|
68
|
-
fogOfWar?: boolean[][];
|
|
69
|
-
/** Map orientation */
|
|
70
|
-
orientation?: MapOrientation;
|
|
71
|
-
/** Camera mode */
|
|
72
|
-
cameraMode?: CameraMode;
|
|
73
|
-
/** Show grid */
|
|
74
|
-
showGrid?: boolean;
|
|
75
|
-
/** Show coordinates overlay */
|
|
76
|
-
showCoordinates?: boolean;
|
|
77
|
-
/** Show tile information */
|
|
78
|
-
showTileInfo?: boolean;
|
|
79
|
-
/** Overlay control mode */
|
|
80
|
-
overlay?: OverlayControl;
|
|
81
|
-
/** Enable shadows */
|
|
82
|
-
shadows?: boolean;
|
|
83
|
-
/** Background color */
|
|
84
|
-
backgroundColor?: string;
|
|
85
|
-
/** Callback when a tile is clicked */
|
|
86
|
-
onTileClick?: (tile: IsometricTile, event: MinimalMouseEvent) => void;
|
|
87
|
-
/** Callback when a unit is clicked */
|
|
88
|
-
onUnitClick?: (unit: IsometricUnit, event: MinimalMouseEvent) => void;
|
|
89
|
-
/** Callback when a feature is clicked */
|
|
90
|
-
onFeatureClick?: (feature: IsometricFeature, event: MinimalMouseEvent) => void;
|
|
91
|
-
/** Callback when canvas is clicked (background) */
|
|
92
|
-
onCanvasClick?: (event: MinimalMouseEvent) => void;
|
|
93
|
-
/** Callback when mouse moves over a tile */
|
|
94
|
-
onTileHover?: (tile: IsometricTile | null, event: MinimalMouseEvent) => void;
|
|
95
|
-
/** Callback for unit animation state change */
|
|
96
|
-
onUnitAnimation?: (unitId: string, state: string) => void;
|
|
97
|
-
/** Asset loader instance (uses global singleton if not provided) */
|
|
98
|
-
assetLoader?: AssetLoader;
|
|
99
|
-
/** Custom tile renderer component */
|
|
100
|
-
tileRenderer?: React.FC<{
|
|
101
|
-
tile: IsometricTile;
|
|
102
|
-
position: [number, number, number];
|
|
103
|
-
}>;
|
|
104
|
-
/** Custom unit renderer component */
|
|
105
|
-
unitRenderer?: React.FC<{
|
|
106
|
-
unit: IsometricUnit;
|
|
107
|
-
position: [number, number, number];
|
|
108
|
-
}>;
|
|
109
|
-
/** Custom feature renderer component */
|
|
110
|
-
featureRenderer?: React.FC<{
|
|
111
|
-
feature: IsometricFeature;
|
|
112
|
-
position: [number, number, number];
|
|
113
|
-
}>;
|
|
114
|
-
/** URLs to preload */
|
|
115
|
-
preloadAssets?: string[];
|
|
116
|
-
/** Declarative event: tile click */
|
|
117
|
-
tileClickEvent?: EventEmit<{
|
|
118
|
-
tileId: string;
|
|
119
|
-
x: number;
|
|
120
|
-
z: number;
|
|
121
|
-
type?: string;
|
|
122
|
-
terrain?: string;
|
|
123
|
-
elevation?: number;
|
|
124
|
-
}>;
|
|
125
|
-
/** Declarative event: unit click */
|
|
126
|
-
unitClickEvent?: EventEmit<{
|
|
127
|
-
unitId: string;
|
|
128
|
-
x: number;
|
|
129
|
-
z: number;
|
|
130
|
-
unitType?: string;
|
|
131
|
-
name?: string;
|
|
132
|
-
team?: string;
|
|
133
|
-
faction?: string;
|
|
134
|
-
health?: number;
|
|
135
|
-
maxHealth?: number;
|
|
136
|
-
}>;
|
|
137
|
-
/** Declarative event: feature click */
|
|
138
|
-
featureClickEvent?: EventEmit<{
|
|
139
|
-
featureId: string;
|
|
140
|
-
x: number;
|
|
141
|
-
z: number;
|
|
142
|
-
type?: string;
|
|
143
|
-
elevation?: number;
|
|
144
|
-
}>;
|
|
145
|
-
/** Declarative event: canvas click */
|
|
146
|
-
canvasClickEvent?: EventEmit<{
|
|
147
|
-
clientX: number;
|
|
148
|
-
clientY: number;
|
|
149
|
-
button: number;
|
|
150
|
-
}>;
|
|
151
|
-
/** Declarative event: tile hover */
|
|
152
|
-
tileHoverEvent?: EventEmit<{
|
|
153
|
-
tileId: string;
|
|
154
|
-
x: number;
|
|
155
|
-
z: number;
|
|
156
|
-
type?: string;
|
|
157
|
-
}>;
|
|
158
|
-
/** Declarative event: tile leave */
|
|
159
|
-
tileLeaveEvent?: EventEmit<Record<string, never>>;
|
|
160
|
-
/** Declarative event: unit animation */
|
|
161
|
-
unitAnimationEvent?: EventEmit<{
|
|
162
|
-
unitId: string;
|
|
163
|
-
state: string;
|
|
164
|
-
timestamp: number;
|
|
165
|
-
}>;
|
|
166
|
-
/** Declarative event: camera change */
|
|
167
|
-
cameraChangeEvent?: EventEmit<{
|
|
168
|
-
position: {
|
|
169
|
-
x: number;
|
|
170
|
-
y: number;
|
|
171
|
-
z: number;
|
|
172
|
-
};
|
|
173
|
-
timestamp: number;
|
|
174
|
-
}>;
|
|
175
|
-
/** Loading message */
|
|
176
|
-
loadingMessage?: string;
|
|
177
|
-
/** Whether to use instancing for tiles */
|
|
178
|
-
useInstancing?: boolean;
|
|
179
|
-
/** Valid move positions */
|
|
180
|
-
validMoves?: Array<{
|
|
181
|
-
x: number;
|
|
182
|
-
z: number;
|
|
183
|
-
}>;
|
|
184
|
-
/** Attack target positions */
|
|
185
|
-
attackTargets?: Array<{
|
|
186
|
-
x: number;
|
|
187
|
-
z: number;
|
|
188
|
-
}>;
|
|
189
|
-
/** Selected tile IDs */
|
|
190
|
-
selectedTileIds?: string[];
|
|
191
|
-
/** Selected unit ID */
|
|
192
|
-
selectedUnitId?: string | null;
|
|
193
|
-
/** Unit draw-size multiplier. 1 = default tile-proportional size. */
|
|
194
|
-
unitScale?: number;
|
|
195
|
-
/** Board zoom/group scale. Applied to the scene group. Default 0.45. */
|
|
196
|
-
scale?: number;
|
|
197
|
-
/** Maps a keydown `e.code` → the board's SEMANTIC event, e.g. `{ ArrowLeft: "LEFT", Space: "JUMP" }`.
|
|
198
|
-
* The input layer emits `UI:<event>` so the FSM stays device-agnostic — keyboard and d-pad converge. */
|
|
199
|
-
keyMap?: Record<string, string>;
|
|
200
|
-
/** Maps a keyup `e.code` → the board's SEMANTIC event, e.g. `{ ArrowLeft: "STOP" }`. */
|
|
201
|
-
keyUpMap?: Record<string, string>;
|
|
202
|
-
/** Side-view player (pixel coords, LOLO-owned physics) — presence switches to side-scroller rendering. */
|
|
203
|
-
player?: SidePlayer;
|
|
204
|
-
/** Side-view level geometry (pixel AABBs, same contract as Canvas2D). */
|
|
205
|
-
platforms?: Platform[];
|
|
206
|
-
/** Side-view world size in pixels. */
|
|
207
|
-
worldWidth?: number;
|
|
208
|
-
/** Side-view world size in pixels. */
|
|
209
|
-
worldHeight?: number;
|
|
210
|
-
/** Pixel→world-unit divisor for side view (default 32 = one 2D tile per 3D cell). */
|
|
211
|
-
pixelsPerUnit?: number;
|
|
212
|
-
/** Player model — named for 2D parity; in 3D the Asset's url is a GLB. */
|
|
213
|
-
playerSprite?: Asset;
|
|
214
|
-
/** Platform-type → model map — named for 2D parity; values are GLB Assets. */
|
|
215
|
-
tileSprites?: Record<string, Asset>;
|
|
216
|
-
/** Per-role model manifest; resolves tiles/units/features without explicit modelUrl/assetUrl. */
|
|
217
|
-
assetManifest?: GameCanvas3DAssetManifest;
|
|
218
|
-
/** Opt-in: smooth-lerp unit positions between LOLO tick snapshots. DEFAULT OFF. */
|
|
219
|
-
interpolateUnits?: boolean;
|
|
220
|
-
}
|
|
221
|
-
/** Imperative handle for GameCanvas3D */
|
|
222
|
-
export interface GameCanvas3DHandle {
|
|
223
|
-
/** Get current camera position */
|
|
224
|
-
getCameraPosition: () => THREE.Vector3 | null;
|
|
225
|
-
/** Set camera position */
|
|
226
|
-
setCameraPosition: (x: number, y: number, z: number) => void;
|
|
227
|
-
/** Look at a specific point */
|
|
228
|
-
lookAt: (x: number, y: number, z: number) => void;
|
|
229
|
-
/** Reset camera to default position */
|
|
230
|
-
resetCamera: () => void;
|
|
231
|
-
/** Take a screenshot */
|
|
232
|
-
screenshot: () => string | null;
|
|
233
|
-
/** Export current view as data */
|
|
234
|
-
export: () => {
|
|
235
|
-
tiles: IsometricTile[];
|
|
236
|
-
units: IsometricUnit[];
|
|
237
|
-
features: IsometricFeature[];
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* GameCanvas3D Component
|
|
242
|
-
*
|
|
243
|
-
* 3D game canvas that mirrors the IsometricCanvas API.
|
|
244
|
-
* Uses Three.js and React Three Fiber for rendering.
|
|
245
|
-
*
|
|
246
|
-
* @example
|
|
247
|
-
* ```tsx
|
|
248
|
-
* <GameCanvas3D
|
|
249
|
-
* tiles={tiles}
|
|
250
|
-
* units={units}
|
|
251
|
-
* features={features}
|
|
252
|
-
* cameraMode="isometric"
|
|
253
|
-
* tileClickEvent="TILE_SELECTED"
|
|
254
|
-
* onTileClick={(tile) => console.log('Clicked:', tile)}
|
|
255
|
-
* />
|
|
256
|
-
* ```
|
|
257
|
-
*/
|
|
258
|
-
export declare const GameCanvas3D: React.ForwardRefExoticComponent<GameCanvas3DProps & React.RefAttributes<GameCanvas3DHandle>>;
|
|
259
|
-
export default GameCanvas3D;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GameBoard3D
|
|
3
|
-
*
|
|
4
|
-
* Controlled 3D tactics board organism. Reads all gameplay state
|
|
5
|
-
* (selectedUnitId, validMoves, attackTargets, phase, result) from the entity
|
|
6
|
-
* prop and renders <GameCanvas3D> with those controlled values.
|
|
7
|
-
* Emits user interactions via event bus so the parent Orbital trait drives
|
|
8
|
-
* all state transitions.
|
|
9
|
-
*
|
|
10
|
-
* @packageDocumentation
|
|
11
|
-
*/
|
|
12
|
-
import React from 'react';
|
|
13
|
-
import type { EventEmit, EntityRow } from '@almadar/core';
|
|
14
|
-
import type { CameraMode } from '../molecules/GameCanvas3D';
|
|
15
|
-
import type { IsometricTile, IsometricFeature } from '../../shared/isometricTypes';
|
|
16
|
-
export interface GameBoard3DProps {
|
|
17
|
-
/** Entity row carrying all gameplay state (controlled). */
|
|
18
|
-
entity?: EntityRow | readonly EntityRow[];
|
|
19
|
-
/** Static tile data (config default). */
|
|
20
|
-
tiles?: IsometricTile[];
|
|
21
|
-
/** Static feature data (config default). */
|
|
22
|
-
features?: IsometricFeature[];
|
|
23
|
-
/** Camera mode forwarded to GameCanvas3D. */
|
|
24
|
-
cameraMode?: CameraMode;
|
|
25
|
-
/** Background color forwarded to GameCanvas3D. */
|
|
26
|
-
backgroundColor?: string;
|
|
27
|
-
/** Unit draw-size multiplier forwarded to GameCanvas3D. Default 1. */
|
|
28
|
-
unitScale?: number;
|
|
29
|
-
/** Board zoom/group scale forwarded to GameCanvas3D. Default 0.45. */
|
|
30
|
-
scale?: number;
|
|
31
|
-
/** Declarative tile click event emitted to the model. */
|
|
32
|
-
tileClickEvent?: EventEmit<{
|
|
33
|
-
tileId: string;
|
|
34
|
-
x: number;
|
|
35
|
-
z: number;
|
|
36
|
-
}>;
|
|
37
|
-
/** Declarative unit click event emitted to the model. */
|
|
38
|
-
unitClickEvent?: EventEmit<{
|
|
39
|
-
unitId: string;
|
|
40
|
-
x: number;
|
|
41
|
-
z: number;
|
|
42
|
-
}>;
|
|
43
|
-
/** Emits UI:{attackEvent} with { attackerId, targetId, damage } on attack. */
|
|
44
|
-
attackEvent?: EventEmit<{
|
|
45
|
-
attackerId: string;
|
|
46
|
-
targetId: string;
|
|
47
|
-
damage: number;
|
|
48
|
-
}>;
|
|
49
|
-
/** Emits UI:{endTurnEvent} with {} on end turn. */
|
|
50
|
-
endTurnEvent?: EventEmit<Record<string, never>>;
|
|
51
|
-
/** Emits UI:{cancelEvent} with {} on cancel. */
|
|
52
|
-
cancelEvent?: EventEmit<Record<string, never>>;
|
|
53
|
-
/** Emits UI:{playAgainEvent} with {} on play again / reset. */
|
|
54
|
-
playAgainEvent?: EventEmit<Record<string, never>>;
|
|
55
|
-
/** Emits UI:{gameEndEvent} with { result } when win/loss is detected. */
|
|
56
|
-
gameEndEvent?: EventEmit<{
|
|
57
|
-
result: 'victory' | 'defeat';
|
|
58
|
-
}>;
|
|
59
|
-
/** Additional CSS class. */
|
|
60
|
-
className?: string;
|
|
61
|
-
}
|
|
62
|
-
export declare function GameBoard3D({ entity, tiles, features, cameraMode, backgroundColor, unitScale, scale, tileClickEvent, unitClickEvent, attackEvent, endTurnEvent, cancelEvent, playAgainEvent, gameEndEvent, className, }: GameBoard3DProps): React.JSX.Element | null;
|
|
63
|
-
export declare namespace GameBoard3D {
|
|
64
|
-
var displayName: string;
|
|
65
|
-
}
|
|
66
|
-
export default GameBoard3D;
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GameCanvas3DBattleTemplate
|
|
3
|
-
*
|
|
4
|
-
* Declarative template for 3D battle/tactical combat.
|
|
5
|
-
* Delegates all interaction state (selectedUnitId, validMoves, attackTargets)
|
|
6
|
-
* to <GameBoard3D> so the model (not this template) owns gameplay state.
|
|
7
|
-
*
|
|
8
|
-
* Page: Battle3DPage
|
|
9
|
-
* Entity: Battle3D / GameBoard3DItem
|
|
10
|
-
* ViewType: detail
|
|
11
|
-
*
|
|
12
|
-
* Events Emitted:
|
|
13
|
-
* - TILE_CLICK - When a tile is clicked
|
|
14
|
-
* - UNIT_CLICK - When a unit is clicked
|
|
15
|
-
* - END_TURN - When ending turn
|
|
16
|
-
* - EXIT_BATTLE - When exiting battle
|
|
17
|
-
*
|
|
18
|
-
* @packageDocumentation
|
|
19
|
-
*/
|
|
20
|
-
import React from 'react';
|
|
21
|
-
import type { IsometricTile, IsometricFeature } from '../../shared/isometricTypes';
|
|
22
|
-
import type { TemplateProps } from '../../../core/templates/types';
|
|
23
|
-
import { type Game3DAssetManifest } from '../../shared/lib/game3dAssetManifest';
|
|
24
|
-
export interface GameCanvas3DBattleTemplateProps extends TemplateProps {
|
|
25
|
-
/** Fallback tile data when no entity is present (layout only — model URLs resolve from assetManifest) */
|
|
26
|
-
tiles?: IsometricTile[];
|
|
27
|
-
/** Fallback feature data when no entity is present */
|
|
28
|
-
features?: IsometricFeature[];
|
|
29
|
-
/** GLB model URLs keyed by terrain — owns all asset choice (no hardcoded URLs in this template). */
|
|
30
|
-
assetManifest?: Game3DAssetManifest;
|
|
31
|
-
/** 3D camera mode - defaults to perspective for dramatic effect */
|
|
32
|
-
cameraMode?: 'isometric' | 'perspective' | 'top-down';
|
|
33
|
-
/** Show grid helper */
|
|
34
|
-
showGrid?: boolean;
|
|
35
|
-
/** Enable shadows */
|
|
36
|
-
shadows?: boolean;
|
|
37
|
-
/** Background color - darker for battle atmosphere */
|
|
38
|
-
backgroundColor?: string;
|
|
39
|
-
/** Event name for tile clicks — forwarded to the model */
|
|
40
|
-
tileClickEvent?: string;
|
|
41
|
-
/** Event name for unit clicks — forwarded to the model */
|
|
42
|
-
unitClickEvent?: string;
|
|
43
|
-
/** Event name for ending turn */
|
|
44
|
-
endTurnEvent?: string;
|
|
45
|
-
/** Event name for cancel/deselect */
|
|
46
|
-
cancelEvent?: string;
|
|
47
|
-
/** Event name for attack emission */
|
|
48
|
-
attackEvent?: string;
|
|
49
|
-
/** Event name for play again / reset */
|
|
50
|
-
playAgainEvent?: string;
|
|
51
|
-
/** Event name for game end detection */
|
|
52
|
-
gameEndEvent?: string;
|
|
53
|
-
/** Event name for exiting battle */
|
|
54
|
-
exitEvent?: string;
|
|
55
|
-
/** Show turn indicator overlay */
|
|
56
|
-
showTurnIndicator?: boolean;
|
|
57
|
-
/** Unit draw-size multiplier forwarded to GameBoard3D. Default 1. */
|
|
58
|
-
unitScale?: number;
|
|
59
|
-
/** Board zoom/group scale forwarded to GameBoard3D. Default 0.45. */
|
|
60
|
-
scale?: number;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* GameCanvas3DBattleTemplate Component
|
|
64
|
-
*
|
|
65
|
-
* Template for 3D battle/tactical combat view.
|
|
66
|
-
* Interaction state lives in the entity (model), not in this component.
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```tsx
|
|
70
|
-
* <GameCanvas3DBattleTemplate
|
|
71
|
-
* entity={battleEntity}
|
|
72
|
-
* cameraMode="perspective"
|
|
73
|
-
* tileClickEvent="TILE_CLICK"
|
|
74
|
-
* unitClickEvent="UNIT_CLICK"
|
|
75
|
-
* />
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
78
|
-
export declare function GameCanvas3DBattleTemplate({ entity, tiles: propTiles, features: propFeatures, assetManifest, cameraMode, backgroundColor, tileClickEvent, unitClickEvent, endTurnEvent, cancelEvent, attackEvent, playAgainEvent, gameEndEvent, unitScale, scale, className, }: GameCanvas3DBattleTemplateProps): React.JSX.Element | null;
|
|
79
|
-
export declare namespace GameCanvas3DBattleTemplate {
|
|
80
|
-
var displayName: string;
|
|
81
|
-
}
|
|
82
|
-
export default GameCanvas3DBattleTemplate;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GameCanvas3DCastleTemplate
|
|
3
|
-
*
|
|
4
|
-
* Declarative template for 3D castle/settlement view.
|
|
5
|
-
* Delegates interaction state (selectedUnitId, validMoves, attackTargets)
|
|
6
|
-
* to <GameBoard3D> so the model owns all gameplay state.
|
|
7
|
-
*
|
|
8
|
-
* Page: Castle3DPage, Settlement3DPage
|
|
9
|
-
* Entity: Castle3D / GameBoard3DItem
|
|
10
|
-
* ViewType: detail
|
|
11
|
-
*
|
|
12
|
-
* Events Emitted:
|
|
13
|
-
* - BUILDING_SELECTED - When a building is clicked
|
|
14
|
-
* - UNIT_SELECTED - When a garrison unit is clicked
|
|
15
|
-
* - BUILD - When building/upgrading
|
|
16
|
-
* - RECRUIT - When recruiting units
|
|
17
|
-
* - EXIT - When exiting castle view
|
|
18
|
-
*
|
|
19
|
-
* @packageDocumentation
|
|
20
|
-
*/
|
|
21
|
-
import React from 'react';
|
|
22
|
-
import type { IsometricTile, IsometricFeature } from '../../shared/isometricTypes';
|
|
23
|
-
import type { TemplateProps } from '../../../core/templates/types';
|
|
24
|
-
import { type Game3DAssetManifest } from '../../shared/lib/game3dAssetManifest';
|
|
25
|
-
export interface GameCanvas3DCastleTemplateProps extends TemplateProps {
|
|
26
|
-
/** Fallback tile data when no entity is present (layout only — model URLs resolve from assetManifest) */
|
|
27
|
-
tiles?: IsometricTile[];
|
|
28
|
-
/** Fallback feature data when no entity is present */
|
|
29
|
-
features?: IsometricFeature[];
|
|
30
|
-
/** GLB model URLs keyed by terrain — owns all asset choice (no hardcoded URLs in this template). */
|
|
31
|
-
assetManifest?: Game3DAssetManifest;
|
|
32
|
-
/** 3D camera mode */
|
|
33
|
-
cameraMode?: 'isometric' | 'perspective' | 'top-down';
|
|
34
|
-
/** Show grid helper */
|
|
35
|
-
showGrid?: boolean;
|
|
36
|
-
/** Enable shadows */
|
|
37
|
-
shadows?: boolean;
|
|
38
|
-
/** Background color */
|
|
39
|
-
backgroundColor?: string;
|
|
40
|
-
/** Event name for building (feature) clicks */
|
|
41
|
-
buildingClickEvent?: string;
|
|
42
|
-
/** Event name for unit clicks */
|
|
43
|
-
unitClickEvent?: string;
|
|
44
|
-
/** Event name for ending turn */
|
|
45
|
-
endTurnEvent?: string;
|
|
46
|
-
/** Event name for cancel/deselect */
|
|
47
|
-
cancelEvent?: string;
|
|
48
|
-
/** Event name for attack emission */
|
|
49
|
-
attackEvent?: string;
|
|
50
|
-
/** Event name for play again / reset */
|
|
51
|
-
playAgainEvent?: string;
|
|
52
|
-
/** Event name for game end detection */
|
|
53
|
-
gameEndEvent?: string;
|
|
54
|
-
/** Event name for build action */
|
|
55
|
-
buildEvent?: string;
|
|
56
|
-
/** Event name for recruit action */
|
|
57
|
-
recruitEvent?: string;
|
|
58
|
-
/** Event name for exit */
|
|
59
|
-
exitEvent?: string;
|
|
60
|
-
/** Show castle name header */
|
|
61
|
-
showHeader?: boolean;
|
|
62
|
-
/** Unit draw-size multiplier forwarded to GameBoard3D. Default 1. */
|
|
63
|
-
unitScale?: number;
|
|
64
|
-
/** Board zoom/group scale forwarded to GameBoard3D. Default 0.45. */
|
|
65
|
-
scale?: number;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* GameCanvas3DCastleTemplate Component
|
|
69
|
-
*
|
|
70
|
-
* Template for 3D castle/settlement management view.
|
|
71
|
-
* Interaction state lives in the entity (model), not in this component.
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* ```tsx
|
|
75
|
-
* <GameCanvas3DCastleTemplate
|
|
76
|
-
* entity={castleEntity}
|
|
77
|
-
* cameraMode="isometric"
|
|
78
|
-
* showHeader={true}
|
|
79
|
-
* buildingClickEvent="UNIT_CLICK"
|
|
80
|
-
* />
|
|
81
|
-
* ```
|
|
82
|
-
*/
|
|
83
|
-
export declare function GameCanvas3DCastleTemplate({ entity, tiles: propTiles, features: propFeatures, assetManifest, cameraMode, backgroundColor, buildingClickEvent, unitClickEvent, endTurnEvent, cancelEvent, attackEvent, playAgainEvent, gameEndEvent, showHeader, unitScale, scale, className, }: GameCanvas3DCastleTemplateProps): React.JSX.Element | null;
|
|
84
|
-
export declare namespace GameCanvas3DCastleTemplate {
|
|
85
|
-
var displayName: string;
|
|
86
|
-
}
|
|
87
|
-
export default GameCanvas3DCastleTemplate;
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GameCanvas3DWorldMapTemplate
|
|
3
|
-
*
|
|
4
|
-
* Declarative template for 3D world map.
|
|
5
|
-
* Delegates interaction state (selectedUnitId, validMoves, attackTargets)
|
|
6
|
-
* to <GameBoard3D> so the model owns all gameplay state.
|
|
7
|
-
*
|
|
8
|
-
* Page: WorldMap3DPage
|
|
9
|
-
* Entity: WorldMap3D / GameBoard3DItem
|
|
10
|
-
* ViewType: detail
|
|
11
|
-
*
|
|
12
|
-
* Events Emitted:
|
|
13
|
-
* - TILE_CLICK - When a tile is clicked ({ tileId, x, z, type })
|
|
14
|
-
* - UNIT_CLICK - When a unit is clicked ({ unitId, x, z, name })
|
|
15
|
-
* - FEATURE_CLICK - When a feature is clicked ({ featureId, x, z, type })
|
|
16
|
-
* - TILE_HOVER - When hovering over a tile ({ tileId, x, z })
|
|
17
|
-
* - TILE_LEAVE - When leaving a tile ({})
|
|
18
|
-
* - CAMERA_CHANGE - When camera position changes ({ position })
|
|
19
|
-
*
|
|
20
|
-
* @packageDocumentation
|
|
21
|
-
*/
|
|
22
|
-
import React from 'react';
|
|
23
|
-
import type { IsometricTile, IsometricFeature } from '../../shared/isometricTypes';
|
|
24
|
-
import type { TemplateProps } from '../../../core/templates/types';
|
|
25
|
-
import { type Game3DAssetManifest } from '../../shared/lib/game3dAssetManifest';
|
|
26
|
-
export interface GameCanvas3DWorldMapTemplateProps extends TemplateProps {
|
|
27
|
-
/** Fallback tile data when no entity is present (layout only — model URLs resolve from assetManifest) */
|
|
28
|
-
tiles?: IsometricTile[];
|
|
29
|
-
/** Fallback feature data when no entity is present */
|
|
30
|
-
features?: IsometricFeature[];
|
|
31
|
-
/** GLB model URLs keyed by terrain — owns all asset choice (no hardcoded URLs in this template). */
|
|
32
|
-
assetManifest?: Game3DAssetManifest;
|
|
33
|
-
/** 3D camera mode */
|
|
34
|
-
cameraMode?: 'isometric' | 'perspective' | 'top-down';
|
|
35
|
-
/** Show grid helper */
|
|
36
|
-
showGrid?: boolean;
|
|
37
|
-
/** Show coordinate overlay */
|
|
38
|
-
showCoordinates?: boolean;
|
|
39
|
-
/** Show tile info on hover */
|
|
40
|
-
showTileInfo?: boolean;
|
|
41
|
-
/** Enable shadows */
|
|
42
|
-
shadows?: boolean;
|
|
43
|
-
/** Background color */
|
|
44
|
-
backgroundColor?: string;
|
|
45
|
-
/** Event name for tile clicks — forwarded to the model */
|
|
46
|
-
tileClickEvent?: string;
|
|
47
|
-
/** Event name for unit clicks — forwarded to the model */
|
|
48
|
-
unitClickEvent?: string;
|
|
49
|
-
/** Event name for ending turn */
|
|
50
|
-
endTurnEvent?: string;
|
|
51
|
-
/** Event name for cancel/deselect */
|
|
52
|
-
cancelEvent?: string;
|
|
53
|
-
/** Event name for attack emission */
|
|
54
|
-
attackEvent?: string;
|
|
55
|
-
/** Event name for play again / reset */
|
|
56
|
-
playAgainEvent?: string;
|
|
57
|
-
/** Event name for game end detection */
|
|
58
|
-
gameEndEvent?: string;
|
|
59
|
-
/** Event name for feature clicks */
|
|
60
|
-
featureClickEvent?: string;
|
|
61
|
-
/** Event name for tile hover */
|
|
62
|
-
tileHoverEvent?: string;
|
|
63
|
-
/** Event name for tile leave */
|
|
64
|
-
tileLeaveEvent?: string;
|
|
65
|
-
/** Event name for camera changes */
|
|
66
|
-
cameraChangeEvent?: string;
|
|
67
|
-
/** Exit/back event name */
|
|
68
|
-
exitEvent?: string;
|
|
69
|
-
/** Unit draw-size multiplier forwarded to GameBoard3D. Default 1. */
|
|
70
|
-
unitScale?: number;
|
|
71
|
-
/** Board zoom/group scale forwarded to GameBoard3D. Default 0.45. */
|
|
72
|
-
scale?: number;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* GameCanvas3DWorldMapTemplate Component
|
|
76
|
-
*
|
|
77
|
-
* Template for 3D world map view.
|
|
78
|
-
* Interaction state lives in the entity (model), not in this component.
|
|
79
|
-
*
|
|
80
|
-
* @example
|
|
81
|
-
* ```tsx
|
|
82
|
-
* <GameCanvas3DWorldMapTemplate
|
|
83
|
-
* entity={worldMapEntity}
|
|
84
|
-
* cameraMode="isometric"
|
|
85
|
-
* tileClickEvent="TILE_CLICK"
|
|
86
|
-
* unitClickEvent="UNIT_CLICK"
|
|
87
|
-
* showCoordinates={true}
|
|
88
|
-
* />
|
|
89
|
-
* ```
|
|
90
|
-
*/
|
|
91
|
-
export declare function GameCanvas3DWorldMapTemplate({ entity, tiles: propTiles, features: propFeatures, assetManifest, cameraMode, backgroundColor, tileClickEvent, unitClickEvent, endTurnEvent, cancelEvent, attackEvent, playAgainEvent, gameEndEvent, unitScale, scale, className, }: GameCanvas3DWorldMapTemplateProps): React.JSX.Element | null;
|
|
92
|
-
export declare namespace GameCanvas3DWorldMapTemplate {
|
|
93
|
-
var displayName: string;
|
|
94
|
-
}
|
|
95
|
-
export default GameCanvas3DWorldMapTemplate;
|