UNPKG

@battle-racing/br-common-lib

Version:

Common library for all Battle Racing Repositorios

160 lines (159 loc) 4.78 kB
import type { ConfigDiskSensorBallShooterModuleOptions, ConfigureBallSensorDiskThrowerModuleOptions, FlagConfigurationOptions, FlagShowMediaOptions, PlaySoundOptions, RGBConfigurationOptions, RGBShowEffectOptions, ScreenCountdownParams, ScreenFinishViewInput, ScreenUpdateGameViewInput, SpeedChangeOptions, SpeedConfiguration, StarLaserConfigureModuleOptions, StarLaserSendActionsOptions } from '../hardware'; import type { ArithmeticExpression } from '../utils'; export interface ChangeSpeedActionCommandOptions extends Omit<SpeedChangeOptions, 'speed'> { speed: number | ArithmeticExpression; } export interface PlaySoundActionCommandOptions extends Omit<PlaySoundOptions, 'durationMs'> { durationMs?: number | ArithmeticExpression; } export type BallSensorDiskThrowerModuleCommands = { module: 'ballSensorDiskThrower'; action: 'activateSensor'; params?: undefined; } | { module: 'ballSensorDiskThrower'; action: 'deactivateSensor'; params?: undefined; } | { module: 'ballSensorDiskThrower'; action: 'configureModule'; params: ConfigureBallSensorDiskThrowerModuleOptions; } | { module: 'ballSensorDiskThrower'; action: 'throwDisk'; params?: undefined; } | { module: 'ballSensorDiskThrower'; action: 'activateDiskThrower'; params?: undefined; } | { module: 'ballSensorDiskThrower'; action: 'deactivateDiskThrower'; params?: undefined; }; export type DiskSensorBallShooterModuleCommands = { module: 'diskSensorBallShooter'; action: 'configure'; params: ConfigDiskSensorBallShooterModuleOptions; } | { module: 'diskSensorBallShooter'; action: 'prepareShooter'; params?: undefined; } | { module: 'diskSensorBallShooter'; action: 'shootBall'; params?: undefined; } | { module: 'diskSensorBallShooter'; action: 'activateSensor'; params?: undefined; } | { module: 'diskSensorBallShooter'; action: 'deactivateSensor'; params?: undefined; } | { module: 'diskSensorBallShooter'; action: 'calibrateSensor'; params?: undefined; }; export type FlagModuleCommands = { module: 'flag'; action: 'activate'; params?: undefined; } | { module: 'flag'; action: 'deactivate'; params?: undefined; } | { module: 'flag'; action: 'configure'; params: FlagConfigurationOptions; } | { module: 'flag'; action: 'showMediaIndefinitely'; params: FlagShowMediaOptions; } | { module: 'flag'; action: 'showMediaTemporarily'; params: FlagShowMediaOptions; }; export type RGBModuleCommands = { module: 'rgb'; action: 'configure'; params: RGBConfigurationOptions; } | { module: 'rgb'; action: 'showEffect'; params: RGBShowEffectOptions; }; export type SpeedModuleCommands = { module: 'speed'; action: 'activate'; params?: undefined; } | { module: 'speed'; action: 'deactivate'; params?: undefined; } | { module: 'speed'; action: 'change'; params: ChangeSpeedActionCommandOptions; } | { module: 'speed'; action: 'configure'; params: SpeedConfiguration; }; export type LeftStarBackLaserModuleCommands = { module: 'leftStarBackLaser'; action: 'action'; params: StarLaserSendActionsOptions; } | { module: 'leftStarBackLaser'; action: 'configure'; params: StarLaserConfigureModuleOptions; }; export type RightStarFrontLaserModuleCommands = { module: 'rightStarFrontLaser'; action: 'action'; params: StarLaserSendActionsOptions; } | { module: 'rightStarFrontLaser'; action: 'configure'; params: StarLaserConfigureModuleOptions; }; export type ScreenModuleCommands = { module: 'screen'; action: 'showHomeView'; params?: undefined; } | { module: 'screen'; action: 'showCountdownView'; params: ScreenCountdownParams; } | { module: 'screen'; action: 'updateGameView'; params: ScreenUpdateGameViewInput; } | { module: 'screen'; action: 'showScreenVictoryView'; params: ScreenFinishViewInput; } | { module: 'screen'; action: 'showScreenDefeatView'; params: ScreenFinishViewInput; }; export type SteeringWheelModuleCommands = { module: 'steeringWheel'; action: 'turnLedOn'; params?: undefined; } | { module: 'steeringWheel'; action: 'turnLedOff'; params?: undefined; }; export type SoundModuleCommands = { module: 'sound'; action: 'play'; params: PlaySoundActionCommandOptions; }; export type AllCommandsConfig = BallSensorDiskThrowerModuleCommands | DiskSensorBallShooterModuleCommands | FlagModuleCommands | RGBModuleCommands | SpeedModuleCommands | LeftStarBackLaserModuleCommands | RightStarFrontLaserModuleCommands | ScreenModuleCommands | SteeringWheelModuleCommands | SoundModuleCommands;