Skip to content

Commit

Permalink
feat(is_aic): create enums for input values
Browse files Browse the repository at this point in the history
  • Loading branch information
mkapal committed Jan 24, 2025
1 parent 308f417 commit c668af4
Show file tree
Hide file tree
Showing 2 changed files with 134 additions and 2 deletions.
133 changes: 132 additions & 1 deletion src/packets/IS_AIC.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,135 @@ export class IS_AIC extends SendablePacket {
}
}

export type IS_AIC_Data = PacketData<IS_AIC>;
type OnOffValue = 0 | 1;

export type IS_AIC_Data = Omit<PacketData<IS_AIC>, 'Input' | 'Value'> &
(
| {
Input: AICInput.CS_MSX;
Value: number | AICSteering;
}
| {
Input: AICInput.CS_CHUP;
Value: OnOffValue;
}
| {
Input: AICInput.CS_CHDN;
Value: OnOffValue;
}
| {
Input: AICInput.CS_IGNITION;
Value: OnOffValue;
}
| {
Input: AICInput.CS_EXTRALIGHT;
Value: OnOffValue;
}
| {
Input: AICInput.CS_HEADLIGHTS;
Value: AICHeadlights;
}
| {
Input: AICInput.CS_SIREN;
Value: OnOffValue;
}
| {
Input: AICInput.CS_HORN;
Value: OnOffValue;
}
| {
Input: AICInput.CS_FLASH;
Value: OnOffValue;
}
| {
Input: AICInput.CS_INDICATORS;
Value: AICIndicators;
}
| {
Input: AICInput.CS_GEAR;
Value: AICGear;
}
| {
Input: AICInput.CS_LOOK;
Value: AICLook;
}
| {
Input: AICInput.CS_PITSPEED;
Value: OnOffValue;
}
| {
Input: AICInput.CS_TCDISABLE;
Value: OnOffValue;
}
| {
Input: AICInput.CS_FOGREAR;
Value: OnOffValue;
}
| {
Input: AICInput.CS_FOGFRONT;
Value: OnOffValue;
}
);

export enum AICSteering {
CENTRE = 32768,
}

export enum AICHeadlights {
/** All lights off */
OFF = 1,

/** Sidelights on */
SIDE = 2,

/** Low beam on */
LOW = 3,

/** High beam on */
HIGH = 4,
}

export enum AICIndicators {
/** All indicators off */
CANCEL = 1,

/** Left indicators on */
LEFT = 2,

/** Right indicators on */
RIGHT = 3,

/** All indicators on */
HAZARD = 4,
}

export enum AICGear {
REVERSE,
NEUTRAL,
FIRST,
SECOND,
THIRD,
FOURTH,
FIFTH,
SIXTH,
SEVENTH,

/** Use sequential shift control */
SEQUENTIAL = 255,
}

export enum AICLook {
NONE,

/** Look left */
LEFT = 4,

/** Look left more */
LEFT_PLUS = 5,

/** Look right */
RIGHT = 6,

/** Look right more */
RIGHT_PLUS = 7,
}
3 changes: 2 additions & 1 deletion src/packets/IS_AII.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { OutSimMain } from '../out/OutSimMain';
import { Packet } from './base';
import type { AIFlags } from './enums';
import { PacketType } from './enums';
import { AICGear } from './IS_AIC';

/**
* AI car info
Expand All @@ -22,7 +23,7 @@ export class IS_AII extends Packet {
@byte() Flags: AIFlags | 0 = 0;

/** Reverse: 0, Neutral: 1, First: 2... */
@byte() Gear = 0;
@byte() Gear: AICGear = AICGear.REVERSE;

@byte() readonly Sp2 = 0;
@byte() readonly Sp3 = 0;
Expand Down

0 comments on commit c668af4

Please sign in to comment.