brs-js
Version:
Brickadia Save Read/Writing
1,003 lines • 29 kB
TypeScript
export interface BRSBytes extends Uint8Array {
brsOffset: number;
}
declare type Modify<T, R> = Omit<T, keyof R> & R;
export declare type Bytes = Uint8Array | BRSBytes;
export declare type Uuid = string;
export declare type UnrealClass = string;
export declare type UnrealObject = string;
export declare type UnrealBoolean = boolean;
export declare type UnrealFloat = number;
export declare type UnrealInteger = number;
export declare type UnrealInteger64 = number;
export declare type UnrealColor = [number, number, number, number];
export declare type UnrealByte = number;
export declare type UnrealRotator = [number, number, number];
export declare type Vector3d = Vector;
export declare type IntVector = Vector;
export declare type UnrealString = string;
export declare type WireGraphVariant = {
number: number;
} | {
integer: number;
} | {
bool: boolean;
} | {
exec: true;
} | {
object: true;
};
export declare type BRInventoryEntryPlan = string;
export declare type UnrealType = UnrealClass | UnrealObject | UnrealBoolean | UnrealFloat | UnrealColor | UnrealByte | UnrealRotator | UnrealString | WireGraphVariant | UnrealInteger64 | Vector3d | IntVector | BRInventoryEntryPlan;
declare type UnrealTypeFromString<T> = T extends 'Class' ? UnrealClass : T extends 'Object' ? UnrealObject : T extends 'Boolean' ? UnrealBoolean : T extends 'Float' ? UnrealFloat : T extends 'Color' ? UnrealColor : T extends 'Byte' ? UnrealByte : T extends 'Rotator' ? UnrealRotator : T extends 'Rotator3d' ? UnrealRotator : T extends 'Vector3d' ? Vector3d : T extends 'IntVector' ? IntVector : T extends 'String' ? UnrealString : T extends 'BRInventoryEntryPlan' ? BRInventoryEntryPlan : T extends 'WireGraphVariant' ? WireGraphVariant : T extends 'WireGraphPrimMathVariant' ? WireGraphVariant : T extends 'Integer' ? UnrealInteger : T extends 'Integer64' ? UnrealInteger64 : UnrealType;
export interface User {
id: Uuid;
name: string;
}
export interface LegacyOwner extends User {
bricks: number;
}
export interface Owner extends LegacyOwner {
display_name: string;
}
export declare enum Direction {
XPositive = 0,
XNegative = 1,
YPositive = 2,
YNegative = 3,
ZPositive = 4,
ZNegative = 5
}
export declare enum Rotation {
Deg0 = 0,
Deg90 = 1,
Deg180 = 2,
Deg270 = 3
}
export declare type ColorRgb = [number, number, number];
export interface Collision {
player: boolean;
weapon: boolean;
interaction: boolean;
tool: boolean;
physics: boolean;
}
export interface AppliedComponent {
[property: string]: UnrealType;
}
export interface UnknownComponents {
[component_name: string]: {
version: number;
brick_indices?: number[];
properties: {
[property: string]: string;
};
};
}
export declare type KnownComponents = {
BCD_SpotLight: {
version: 1;
brick_indices?: number[];
properties: {
Rotation: 'Rotator';
InnerConeAngle: 'Float';
OuterConeAngle: 'Float';
Brightness: 'Float';
Radius: 'Float';
Color: 'Color';
bUseBrickColor: 'Boolean';
bCastShadows: 'Boolean';
};
};
BCD_PointLight: {
version: 1;
brick_indices?: number[];
properties: {
bMatchBrickShape: 'Boolean';
Brightness: 'Float';
Radius: 'Float';
Color: 'Color';
bUseBrickColor: 'Boolean';
bCastShadows: 'Boolean';
};
};
BCD_ItemSpawn: {
version: 1;
brick_indices?: number[];
properties: {
PickupClass: 'Class';
bPickupEnabled: 'Boolean';
bPickupRespawnOnMinigameReset: 'Boolean';
PickupMinigameResetRespawnDelay: 'Float';
bPickupAutoDisableOnPickup: 'Boolean';
PickupRespawnTime: 'Float';
PickupOffsetDirection: 'Byte';
PickupOffsetDistance: 'Float';
PickupRotation: 'Rotator';
PickupScale: 'Float';
bPickupAnimationEnabled: 'Boolean';
PickupAnimationAxis: 'Byte';
bPickupAnimationAxisLocal: 'Boolean';
PickupSpinSpeed: 'Float';
PickupBobSpeed: 'Float';
PickupBobHeight: 'Float';
PickupAnimationPhase: 'Float';
};
};
BCD_Interact: {
version: 1;
brick_indices?: number[];
properties: {
bPlayInteractSound: 'Boolean';
Message: 'String';
ConsoleTag: 'String';
};
};
BCD_AudioEmitter: {
version: 1;
brick_indices?: number[];
properties: {
AudioDescriptor: 'Object';
VolumeMultiplier: 'Float';
PitchMultiplier: 'Float';
InnerRadius: 'Float';
MaxDistance: 'Float';
bSpatialization: 'Boolean';
};
};
Component_AudioEmitter: {
version: 1;
brick_indices?: number[];
properties: {
bEnabled: 'Boolean';
AudioDescriptor: 'Object';
VolumeMultiplier: 'Float';
PitchMultiplier: 'Float';
InnerRadius: 'Float';
MaxDistance: 'Float';
bSpatialization: 'Boolean';
FocusAzimuth: 'Float';
NonFocusAzimuth: 'Float';
NonFocusVolumeAttenuation: 'Float';
};
};
Component_BotSpawn: {
version: 1;
brick_indices?: number[];
properties: {
RespawnTime: 'Float';
CorpseTimeout: 'Float';
GunSkill: 'Float';
Agression: 'Float';
ReactionTime: 'Float';
MovementRandomness: 'Float';
Jumpyness: 'Float';
MovementAmount: 'Float';
AttackMovementAmount: 'Float';
AggroRange: 'Float';
bCanJump: 'Boolean';
bBackVision: 'Boolean';
bVisionRaycasting: 'Boolean';
bCanTargetPlayers: 'Boolean';
bCanTargetBots: 'Boolean';
MoveTarget: 'Vector3d';
BotWeapon: 'Class';
};
};
Component_CheckPoint: {
version: 1;
brick_indices?: number[];
properties: {
bRotatePlayerGravityOnSpawn: 'Boolean';
};
};
Component_Damage: {
version: 1;
brick_indices?: number[];
properties: {
Message: 'String';
ConsoleTag: 'String';
};
};
Component_GoalPoint: {
version: 1;
brick_indices?: number[];
properties: {};
};
Component_InputSplitter: {
version: 1;
brick_indices?: number[];
properties: {};
};
Component_OneShotAudioEmitter: {
version: 1;
brick_indices?: number[];
properties: {
AudioDescriptor: 'Object';
VolumeMultiplier: 'Float';
PitchMultiplier: 'Float';
InnerRadius: 'Float';
MaxDistance: 'Float';
bSpatialization: 'Boolean';
bEnableRepeat: 'Boolean';
RepeatTime: 'Float';
RepeatVariance: 'Float';
};
};
Component_SpawnPoint: {
version: 1;
brick_indices?: number[];
properties: {
bRotatePlayerGravityOnSpawn: 'Boolean';
bEnable: 'Boolean';
};
};
Component_Target: {
version: 1;
brick_indices?: number[];
properties: {
OnTime: 'Float';
};
};
Component_Internal_AnimatedButton: {
version: 1;
brick_indices?: number[];
properties: {
PressSound: 'Object';
ReleaseSound: 'Object';
bAllowNearbyInteraction: 'Boolean';
bHiddenInteraction: 'Boolean';
PromptCustomLabel: 'String';
};
};
Component_Internal_AnimatedSwitch: {
version: 1;
brick_indices?: number[];
properties: {
bEnabled: 'Boolean';
InteractSound: 'Object';
bAllowNearbyInteraction: 'Boolean';
bHiddenInteraction: 'Boolean';
PromptCustomLabel: 'String';
};
};
Component_Internal_AttachedZone: {
version: 1;
brick_indices?: number[];
properties: {
ZoneStartDistance: 'Integer';
ZoneEndDistance: 'Integer';
bIsBuildingZone: 'Boolean';
bIsLooseZone: 'Boolean';
bIsShareZone: 'Boolean';
};
};
Component_Internal_Bearing: {
version: 1;
brick_indices?: number[];
properties: {
bLimitAngle: 'Boolean';
LimitAngle: 'Float';
Damping: 'Float';
};
};
Component_Internal_Joint_Wheel: {
version: 1;
brick_indices?: number[];
properties: {
bEnabled: 'Boolean';
DriveSpeed: 'Float';
DrivePower: 'Float';
bSteerEnabled: 'Boolean';
Steer: 'Float';
SteerLimitDegree: 'Float';
SteerPower: 'Float';
bSuspensionEnabled: 'Boolean';
SuspensionStiffness: 'Float';
SuspensionDamping: 'Float';
JointDistance: 'Integer';
bDriveWhenNotAttachedToEngine: 'Boolean';
bCanBrake: 'Boolean';
bAllowEngineSteerCorrect: 'Boolean';
Damping: 'Float';
};
};
Component_Internal_Motor: {
version: 1;
brick_indices?: number[];
properties: {
bEnabled: 'Boolean';
Speed: 'Float';
Power: 'Float';
bLimitAngle: 'Boolean';
LimitAngle: 'Float';
Damping: 'Float';
};
};
Component_Internal_MotorSlider: {
version: 1;
brick_indices?: number[];
properties: {
bEnabled: 'Boolean';
Speed: 'Float';
Power: 'Float';
bPositionsArePercentages: 'Boolean';
Damping: 'Float';
};
};
Component_Internal_Rerouter: {
version: 1;
brick_indices?: number[];
properties: {};
};
Component_Internal_Seat: {
version: 1;
brick_indices?: number[];
properties: {
bIsOccupied: 'Boolean';
ExitOffset: 'IntVector';
bAllowNearbyInteraction: 'Boolean';
bHiddenInteraction: 'Boolean';
PromptCustomLabel: 'String';
};
};
Component_Internal_Servo: {
version: 1;
brick_indices?: number[];
properties: {
bEnabled: 'Boolean';
TargetAngle: 'Float';
Power: 'Float';
ActiveDamping: 'Float';
ForceLimit: 'Float';
bLimitAngle: 'Boolean';
LimitAngle: 'Float';
Damping: 'Float';
};
};
Component_Internal_ServoSlider: {
version: 1;
brick_indices?: number[];
properties: {
bEnabled: 'Boolean';
TargetPosition: 'Float';
Power: 'Float';
TopSpeed: 'Float';
Exponent: 'Float';
bPositionsArePercentages: 'Boolean';
Damping: 'Float';
};
};
Component_Internal_Slider: {
version: 1;
brick_indices?: number[];
properties: {
bPositionsArePercentages: 'Boolean';
Damping: 'Float';
};
};
Component_Internal_Socket: {
version: 1;
brick_indices?: number[];
properties: {};
};
Component_Internal_WeightBrick: {
version: 1;
brick_indices?: number[];
properties: {
Mass: 'Float';
MassSize: 'IntVector';
MassOffset: 'IntVector';
};
};
Component_Internal_WheelEngine: {
version: 1;
brick_indices?: number[];
properties: {
bEnabled: 'Boolean';
bEnableManualControl: 'Boolean';
ManualInput_Drive: 'Float';
ManualInput_Steer: 'Float';
bManualInput_Brake: 'Boolean';
CustomMass: 'Float';
CustomMassVerticalOffset: 'Float';
DriveInterpSpeed: 'Float';
DriveSpeed: 'Float';
DriveAcceleratingPowerMultiplier: 'Float';
DriveBrakingPowerMultiplier: 'Float';
DriveDampingMultiplier: 'Float';
SteerPowerMultiplier: 'Float';
SteerInterpSpeed: 'Float';
SteerLimitDegree: 'Float';
CenterOfSteering: 'Float';
bTankSteering: 'Boolean';
TankSteerSpeedMultiplier: 'Float';
WaterDriveForce: 'Float';
WaterSteeringForce: 'Float';
AudioDescriptor: 'Object';
};
};
Component_WireGraph_PlayAudioAt: {
version: 1;
brick_indices?: number[];
properties: {
AudioDescriptor: 'Object';
VolumeMultiplier: 'Float';
PitchMultiplier: 'Float';
InnerRadius: 'Float';
MaxDistance: 'Float';
bSpatialization: 'Boolean';
};
};
Component_WireGraph_SetInventoryEntry: {
version: 1;
brick_indices?: number[];
properties: {
Slot: 'Integer';
EntryPlan: 'BRInventoryEntryPlan';
};
};
BrickComponentType_Internal_CharacterZoneEvent_Entered: {
version: 1;
brick_indices?: number[];
properties: {};
};
BrickComponentType_Internal_CharacterZoneEvent_Left: {
version: 1;
brick_indices?: number[];
properties: {};
};
BrickComponentType_Internal_ReadBrickGrid: {
version: 1;
brick_indices?: number[];
properties: {};
};
BrickComponentType_Internal_TeleportDestination: {
version: 1;
brick_indices?: number[];
properties: {};
};
BrickComponentType_Internal_ZoneEvent_BrickChanged: {
version: 1;
brick_indices?: number[];
properties: {};
};
BrickComponentType_Internal_ZoneEvent_BrickRemoved: {
version: 1;
brick_indices?: number[];
properties: {};
};
BrickComponentType_WireGraphPseudo_BufferSeconds: {
version: 1;
brick_indices?: number[];
properties: {
SecondsToWait: 'Float';
ZeroSecondsToWait: 'Float';
CurrentTime: 'Float';
Input: 'WireGraphVariant';
Output: 'WireGraphVariant';
Buffered: 'WireGraphVariant';
Queued: 'WireGraphVariant';
bHasQueued: 'Boolean';
};
};
BrickComponentType_WireGraphPseudo_BufferTicks: {
version: 1;
brick_indices?: number[];
properties: {
TicksToWait: 'Integer';
ZeroTicksToWait: 'Integer';
CurrentTicks: 'Integer';
Input: 'WireGraphVariant';
Output: 'WireGraphVariant';
Buffered: 'WireGraphVariant';
Queued: 'WireGraphVariant';
bHasQueued: 'Boolean';
};
};
BrickComponentType_WireGraphPseudo_Var: {
version: 1;
brick_indices?: number[];
properties: {
Value: 'WireGraphVariant';
};
};
BrickComponentType_WireGraph_Exec_Branch: {
version: 1;
brick_indices?: number[];
properties: {};
};
BrickComponentType_WireGraph_Exec_Character_SetTempPermission: {
version: 1;
brick_indices?: number[];
properties: {
PermissionTagStr: 'String';
bPermissionEnable: 'Boolean';
};
};
BrickComponentType_WireGraph_Exec_Character_ShowHint: {
version: 1;
brick_indices?: number[];
properties: {
HintTitle: 'String';
HintText: 'String';
};
};
BrickComponentType_WireGraph_Exec_Entity_AddLocationRotation: {
version: 1;
brick_indices?: number[];
properties: {
Vector: 'Vector3d';
Rotation: 'Rotator3d';
};
};
BrickComponentType_WireGraph_Exec_Entity_AddVelocity: {
version: 1;
brick_indices?: number[];
properties: {
Vector: 'Vector3d';
Rotation: 'Vector3d';
};
};
BrickComponentType_WireGraph_Exec_Entity_RelativeTeleport: {
version: 1;
brick_indices?: number[];
properties: {};
};
BrickComponentType_WireGraph_Exec_Entity_SetGravityDirection: {
version: 1;
brick_indices?: number[];
properties: {
Rotation: 'Rotator3d';
};
};
BrickComponentType_WireGraph_Exec_Entity_SetLocation: {
version: 1;
brick_indices?: number[];
properties: {
Vector: 'Vector3d';
};
};
BrickComponentType_WireGraph_Exec_Entity_SetLocationRotation: {
version: 1;
brick_indices?: number[];
properties: {
Vector: 'Vector3d';
Rotation: 'Rotator3d';
};
};
BrickComponentType_WireGraph_Exec_Entity_SetRotation: {
version: 1;
brick_indices?: number[];
properties: {
Rotation: 'Rotator3d';
};
};
BrickComponentType_WireGraph_Exec_Entity_SetVelocity: {
version: 1;
brick_indices?: number[];
properties: {
Vector: 'Vector3d';
Rotation: 'Vector3d';
};
};
BrickComponentType_WireGraph_Exec_Entity_Teleport: {
version: 1;
brick_indices?: number[];
properties: {};
};
BrickComponentType_WireGraph_Exec_Union: {
version: 1;
brick_indices?: number[];
properties: {};
};
BrickComponentType_WireGraph_Exec_Var_Get: {
version: 1;
brick_indices?: number[];
properties: {
Value: 'WireGraphVariant';
};
};
BrickComponentType_WireGraph_Exec_Var_Increment: {
version: 1;
brick_indices?: number[];
properties: {
Value: 'WireGraphVariant';
};
};
BrickComponentType_WireGraph_Exec_Var_Set: {
version: 1;
brick_indices?: number[];
properties: {
Value: 'WireGraphVariant';
};
};
BrickComponentType_WireGraph_Expr_BitwiseAND: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'Integer64';
InputB: 'Integer64';
};
};
BrickComponentType_WireGraph_Expr_BitwiseNAND: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'Integer64';
InputB: 'Integer64';
};
};
BrickComponentType_WireGraph_Expr_BitwiseNOR: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'Integer64';
InputB: 'Integer64';
};
};
BrickComponentType_WireGraph_Expr_BitwiseNOT: {
version: 1;
brick_indices?: number[];
properties: {
Input: 'Integer64';
};
};
BrickComponentType_WireGraph_Expr_BitwiseOR: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'Integer64';
InputB: 'Integer64';
};
};
BrickComponentType_WireGraph_Expr_BitwiseShiftLeft: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'Integer64';
InputB: 'Integer64';
};
};
BrickComponentType_WireGraph_Expr_BitwiseShiftRight: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'Integer64';
InputB: 'Integer64';
};
};
BrickComponentType_WireGraph_Expr_BitwiseXOR: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'Integer64';
InputB: 'Integer64';
};
};
BrickComponentType_WireGraph_Expr_Ceil: {
version: 1;
brick_indices?: number[];
properties: {
Input: 'Double';
};
};
BrickComponentType_WireGraph_Expr_CompareEqual: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphVariant';
InputB: 'WireGraphVariant';
};
};
BrickComponentType_WireGraph_Expr_CompareGreater: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphPrimMathVariant';
InputB: 'WireGraphPrimMathVariant';
};
};
BrickComponentType_WireGraph_Expr_CompareGreaterOrEqual: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphPrimMathVariant';
InputB: 'WireGraphPrimMathVariant';
};
};
BrickComponentType_WireGraph_Expr_CompareLess: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphPrimMathVariant';
InputB: 'WireGraphPrimMathVariant';
};
};
BrickComponentType_WireGraph_Expr_CompareLessOrEqual: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphPrimMathVariant';
InputB: 'WireGraphPrimMathVariant';
};
};
BrickComponentType_WireGraph_Expr_CompareNotEqual: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphVariant';
InputB: 'WireGraphVariant';
};
};
BrickComponentType_WireGraph_Expr_Floor: {
version: 1;
brick_indices?: number[];
properties: {
Input: 'Double';
};
};
BrickComponentType_WireGraph_Expr_LogicalAND: {
version: 1;
brick_indices?: number[];
properties: {
bInputA: 'Boolean';
bInputB: 'Boolean';
};
};
BrickComponentType_WireGraph_Expr_LogicalNAND: {
version: 1;
brick_indices?: number[];
properties: {
bInputA: 'Boolean';
bInputB: 'Boolean';
};
};
BrickComponentType_WireGraph_Expr_LogicalNOR: {
version: 1;
brick_indices?: number[];
properties: {
bInputA: 'Boolean';
bInputB: 'Boolean';
};
};
BrickComponentType_WireGraph_Expr_LogicalNOT: {
version: 1;
brick_indices?: number[];
properties: {
bInput: 'Boolean';
};
};
BrickComponentType_WireGraph_Expr_LogicalOR: {
version: 1;
brick_indices?: number[];
properties: {
bInputA: 'Boolean';
bInputB: 'Boolean';
};
};
BrickComponentType_WireGraph_Expr_LogicalXOR: {
version: 1;
brick_indices?: number[];
properties: {
bInputA: 'Boolean';
bInputB: 'Boolean';
};
};
BrickComponentType_WireGraph_Expr_MathAdd: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphPrimMathVariant';
InputB: 'WireGraphPrimMathVariant';
};
};
BrickComponentType_WireGraph_Expr_MathBlend: {
version: 1;
brick_indices?: number[];
properties: {
Blend: 'Double';
InputA: 'WireGraphPrimMathVariant';
InputB: 'WireGraphPrimMathVariant';
};
};
BrickComponentType_WireGraph_Expr_MathDivide: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphPrimMathVariant';
InputB: 'WireGraphPrimMathVariant';
};
};
BrickComponentType_WireGraph_Expr_MathModulo: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphPrimMathVariant';
InputB: 'WireGraphPrimMathVariant';
};
};
BrickComponentType_WireGraph_Expr_MathModuloFloored: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphPrimMathVariant';
InputB: 'WireGraphPrimMathVariant';
};
};
BrickComponentType_WireGraph_Expr_MathMultiply: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphPrimMathVariant';
InputB: 'WireGraphPrimMathVariant';
};
};
BrickComponentType_WireGraph_Expr_MathSubtract: {
version: 1;
brick_indices?: number[];
properties: {
InputA: 'WireGraphPrimMathVariant';
InputB: 'WireGraphPrimMathVariant';
};
};
BrickComponentType_WireGraph_Fake_Gamemode_RoundEndEvent: {
version: 1;
brick_indices?: number[];
properties: {
RoundNumber: 'Integer';
};
};
BrickComponentType_WireGraph_Fake_Gamemode_RoundStartEvent: {
version: 1;
brick_indices?: number[];
properties: {
RoundNumber: 'Integer';
};
};
BrickComponent_WireGraph_Expr_EdgeDetector: {
version: 1;
brick_indices?: number[];
properties: {
Input: 'Double';
bPulseOnRisingEdge: 'Boolean';
bPulseOnFallingEdge: 'Boolean';
};
};
};
export interface DefinedComponents extends UnknownComponents, Partial<KnownComponents> {
}
export declare type Components<C extends DefinedComponents> = {
[T in keyof C]: {
[V in keyof C[T]['properties']]: UnrealTypeFromString<C[T]['properties'][V]>;
};
} & {
[component_name: string]: AppliedComponent;
};
export declare type Vector = [number, number, number];
export declare type WirePort = {
brick_index: number;
component: string;
port: string;
};
export declare type Wire = {
source: WirePort;
target: WirePort;
};
export interface BrickV1 {
asset_name_index: number;
size: Vector;
position: Vector;
direction: Direction;
rotation: Rotation;
collision: boolean;
visibility: boolean;
color: UnrealColor | number;
}
export interface BrickV2 extends BrickV1 {
material_index: number;
}
export interface BrickV3 extends BrickV2 {
owner_index: number;
}
export interface BrickV8 extends BrickV3 {
components: Components<DefinedComponents>;
}
export declare type BrickV9 = Modify<BrickV8, {
physical_index: number;
material_intensity: number;
color: ColorRgb | number;
}>;
export declare type BrickV10 = Modify<BrickV9, {
collision: Collision;
}>;
export interface BrsV1 {
version: 1;
map: string;
author: User;
description: string;
brick_count: number;
mods: string[];
brick_assets: string[];
colors: UnrealColor[];
bricks: BrickV1[];
}
export declare type BrsV2 = Modify<BrsV1, {
version: 2;
materials: string[];
bricks: BrickV2[];
}>;
export declare type BrsV3 = Modify<BrsV2, {
version: 3;
brick_owners: User[];
bricks: BrickV3[];
}>;
export declare type BrsV4 = Modify<BrsV3, {
version: 4;
save_time: Uint8Array;
}>;
export declare type BrsV8 = Modify<BrsV4, {
version: 8;
host: User;
brick_owners: LegacyOwner[];
preview?: Bytes;
game_version: number;
bricks: BrickV8[];
components: DefinedComponents;
}>;
export declare type BrsV9 = Modify<BrsV8, {
version: 9;
physical_materials: string[];
bricks: BrickV9[];
}>;
export declare type BrsV10 = Modify<BrsV9, {
version: 10;
bricks: BrickV10[];
}>;
export declare type BrsV14 = Modify<BrsV10, {
version: 14;
wires: Wire[];
}>;
export declare type ReadSaveObject = BrsV1 | BrsV2 | BrsV3 | BrsV4 | BrsV8 | BrsV9 | BrsV10 | BrsV14;
export interface Brick {
asset_name_index?: number;
size: Vector;
position: Vector;
direction?: Direction;
rotation?: Rotation;
collision?: boolean | Partial<Collision>;
visibility?: boolean;
material_index?: number;
physical_index?: number;
material_intensity?: number;
color?: ColorRgb | number | UnrealColor | number[];
owner_index?: number;
components?: Components<DefinedComponents>;
}
export interface WriteSaveObject {
game_version?: number;
map?: string;
description?: string;
author?: Partial<User>;
host?: Partial<User>;
mods?: string[];
brick_assets?: string[];
colors?: UnrealColor[];
materials?: string[];
brick_owners?: Partial<Owner>[];
physical_materials?: string[];
preview?: Bytes;
bricks: Brick[];
save_time?: ArrayLike<number>;
components?: DefinedComponents;
wires?: Wire[];
}
export interface ReadOptions {
bricks?: boolean;
preview?: boolean;
}
export interface WriteOptions {
compress?: boolean;
}
export {};
//# sourceMappingURL=types.d.ts.map