2026-03-31 18:01:57 +08:00
|
|
|
/**
|
|
|
|
|
* boardgame-core
|
|
|
|
|
* 基于 Preact Signals 的桌游状态管理库
|
|
|
|
|
*/
|
|
|
|
|
|
2026-03-31 18:20:18 +08:00
|
|
|
// Rules engine
|
|
|
|
|
export type {
|
|
|
|
|
Rule,
|
|
|
|
|
RuleContext,
|
|
|
|
|
RuleResult,
|
|
|
|
|
ValidationRule,
|
|
|
|
|
EffectRule,
|
|
|
|
|
TriggerRule,
|
|
|
|
|
RuleLogEntry,
|
|
|
|
|
} from './rules/Rule';
|
|
|
|
|
|
|
|
|
|
export {
|
|
|
|
|
isValidationRule,
|
|
|
|
|
isEffectRule,
|
|
|
|
|
isTriggerRule,
|
|
|
|
|
createValidationRule,
|
|
|
|
|
createEffectRule,
|
|
|
|
|
createTriggerRule,
|
|
|
|
|
} from './rules/Rule';
|
|
|
|
|
|
|
|
|
|
export { RuleEngine, createRuleEngine } from './rules/RuleEngine';
|
|
|
|
|
export type { RuleEngineOptions, RuleEngineExecutionResult } from './rules/RuleEngine';
|
|
|
|
|
|
|
|
|
|
export { RuleRegistry, createRuleRegistry } from './rules/RuleRegistry';
|
|
|
|
|
export type { RuleGroup } from './rules/RuleRegistry';
|
|
|
|
|
|
|
|
|
|
// Tic Tac Toe game
|
|
|
|
|
export type {
|
|
|
|
|
Player,
|
|
|
|
|
CellState,
|
|
|
|
|
TicTacToeMetadata,
|
|
|
|
|
MoveRecord,
|
|
|
|
|
WinningLine,
|
|
|
|
|
TicTacToeBoardConfig,
|
|
|
|
|
} from './games/tictactoe/TicTacToeState';
|
|
|
|
|
|
|
|
|
|
export {
|
|
|
|
|
DEFAULT_BOARD_CONFIG,
|
|
|
|
|
getCellId,
|
|
|
|
|
parseCellId,
|
|
|
|
|
isValidCellId,
|
|
|
|
|
getAllCellIds,
|
|
|
|
|
getWinningCombinations,
|
|
|
|
|
} from './games/tictactoe/TicTacToeState';
|
|
|
|
|
|
|
|
|
|
export {
|
|
|
|
|
validateTurnRule,
|
|
|
|
|
validateCellEmptyRule,
|
|
|
|
|
validateGameNotEndedRule,
|
|
|
|
|
switchTurnRule,
|
|
|
|
|
recordMoveHistoryRule,
|
|
|
|
|
checkWinConditionRule,
|
|
|
|
|
checkDrawConditionRule,
|
|
|
|
|
ticTacToeRules,
|
|
|
|
|
getTicTacToeValidationRules,
|
|
|
|
|
getTicTacToeEffectRules,
|
|
|
|
|
getTicTacToeTriggerRules,
|
|
|
|
|
createTicTacToeGame,
|
|
|
|
|
} from './games/tictactoe';
|
|
|
|
|
|
|
|
|
|
export {
|
|
|
|
|
startGameCommand,
|
|
|
|
|
markCellCommand,
|
|
|
|
|
resetGameCommand,
|
|
|
|
|
setPlayersCommand,
|
|
|
|
|
getCellCommand,
|
|
|
|
|
ticTacToeCommands,
|
|
|
|
|
createMarkCellCommand,
|
|
|
|
|
createSetPlayersCommand,
|
|
|
|
|
} from './games/tictactoe';
|
|
|
|
|
|
2026-03-31 18:01:57 +08:00
|
|
|
// Core types
|
|
|
|
|
export { PartType } from './core/Part';
|
|
|
|
|
export type {
|
|
|
|
|
Part,
|
|
|
|
|
PartBase,
|
|
|
|
|
MeeplePart,
|
|
|
|
|
CardPart,
|
|
|
|
|
TilePart,
|
|
|
|
|
PartSignal,
|
|
|
|
|
} from './core/Part';
|
|
|
|
|
|
|
|
|
|
export { RegionType } from './core/Region';
|
|
|
|
|
export type { Region, RegionProperties, Slot } from './core/Region';
|
|
|
|
|
|
|
|
|
|
export type { Placement, PlacementProperties, Position, PlacementSignal } from './core/Placement';
|
|
|
|
|
|
|
|
|
|
export type { GameStateData } from './core/GameState';
|
|
|
|
|
|
|
|
|
|
// Core classes and functions
|
|
|
|
|
export {
|
|
|
|
|
createPart,
|
|
|
|
|
createMeeple,
|
|
|
|
|
createCard,
|
|
|
|
|
createTile,
|
|
|
|
|
} from './core/Part';
|
|
|
|
|
|
|
|
|
|
export { createRegion, createRegion as createRegionCore } from './core/Region';
|
|
|
|
|
export type { Region as RegionClass } from './core/Region';
|
|
|
|
|
|
|
|
|
|
export { createPlacement } from './core/Placement';
|
|
|
|
|
|
|
|
|
|
export { GameState, createGameState } from './core/GameState';
|
|
|
|
|
|
|
|
|
|
// Part actions
|
|
|
|
|
export {
|
|
|
|
|
createPartAction,
|
|
|
|
|
createMeepleAction,
|
|
|
|
|
createCardAction,
|
|
|
|
|
createTileAction,
|
|
|
|
|
updatePartAction,
|
|
|
|
|
removePartAction,
|
|
|
|
|
getPartAction,
|
|
|
|
|
} from './actions/part.actions';
|
|
|
|
|
|
|
|
|
|
// Region actions
|
|
|
|
|
export {
|
|
|
|
|
createRegionAction,
|
|
|
|
|
getRegionAction,
|
|
|
|
|
removeRegionAction,
|
|
|
|
|
addPlacementToRegionAction,
|
|
|
|
|
removePlacementFromRegionAction,
|
|
|
|
|
setSlotAction,
|
|
|
|
|
getSlotAction,
|
|
|
|
|
clearRegionAction,
|
|
|
|
|
getRegionPlacementCountAction,
|
|
|
|
|
isRegionEmptyAction,
|
|
|
|
|
isRegionFullAction,
|
|
|
|
|
} from './actions/region.actions';
|
|
|
|
|
|
|
|
|
|
// Placement actions
|
|
|
|
|
export {
|
|
|
|
|
createPlacementAction,
|
|
|
|
|
getPlacementAction,
|
|
|
|
|
removePlacementAction,
|
|
|
|
|
movePlacementAction,
|
|
|
|
|
updatePlacementPositionAction,
|
|
|
|
|
updatePlacementRotationAction,
|
|
|
|
|
flipPlacementAction,
|
|
|
|
|
updatePlacementPartAction,
|
|
|
|
|
swapPlacementsAction,
|
|
|
|
|
setPlacementFaceAction,
|
|
|
|
|
getPlacementsInRegionAction,
|
|
|
|
|
getPlacementsOfPartAction,
|
|
|
|
|
} from './actions/placement.actions';
|
|
|
|
|
|
|
|
|
|
// Commands
|
|
|
|
|
export {
|
|
|
|
|
CommandActionType,
|
|
|
|
|
type Command,
|
|
|
|
|
type CommandStep,
|
|
|
|
|
type CommandExecutionResult,
|
|
|
|
|
type CommandLogEntry,
|
|
|
|
|
type StepResult,
|
|
|
|
|
type CommandStatus,
|
|
|
|
|
type QueuedCommand,
|
|
|
|
|
} from './commands/Command';
|
|
|
|
|
|
|
|
|
|
export { CommandExecutor } from './commands/CommandExecutor';
|
|
|
|
|
|
|
|
|
|
export { CommandLog, createCommandLog } from './commands/CommandLog';
|
|
|
|
|
|
|
|
|
|
export {
|
|
|
|
|
setupGameCommand,
|
|
|
|
|
placeMeepleCommand,
|
|
|
|
|
moveMeepleCommand,
|
|
|
|
|
drawCardCommand,
|
|
|
|
|
playCardCommand,
|
|
|
|
|
placeTileCommand,
|
|
|
|
|
flipTileCommand,
|
|
|
|
|
swapPlacementsCommand,
|
|
|
|
|
setPhaseCommand,
|
|
|
|
|
clearRegionCommand,
|
|
|
|
|
defaultCommands,
|
|
|
|
|
getDefaultCommand,
|
|
|
|
|
} from './commands/default.commands';
|
|
|
|
|
|
|
|
|
|
// CLI Commands
|
|
|
|
|
export {
|
|
|
|
|
type CliCommand,
|
|
|
|
|
type CliCommandArgs,
|
|
|
|
|
type CliCommandResult,
|
|
|
|
|
type CliCommandStep,
|
|
|
|
|
type ParsedCliCommand,
|
|
|
|
|
} from './commands/CliCommand';
|
|
|
|
|
|
|
|
|
|
export { CommandParser, createCommandParser, CommandParseError } from './commands/CommandParser';
|
|
|
|
|
|
|
|
|
|
export { CommandRegistry, createCommandRegistry } from './commands/CommandRegistry';
|
|
|
|
|
|
|
|
|
|
export {
|
|
|
|
|
moveCommand,
|
|
|
|
|
placeCommand,
|
|
|
|
|
flipCommand,
|
|
|
|
|
createCommand,
|
|
|
|
|
regionCommand,
|
|
|
|
|
drawCommand,
|
|
|
|
|
shuffleCommand,
|
|
|
|
|
discardCommand,
|
|
|
|
|
swapCommand,
|
|
|
|
|
rotateCommand,
|
|
|
|
|
positionCommand,
|
|
|
|
|
phaseCommand,
|
|
|
|
|
clearCommand,
|
|
|
|
|
removeCommand,
|
|
|
|
|
helpCommand,
|
|
|
|
|
cliCommands,
|
|
|
|
|
} from './commands/cli.commands';
|