factorio-blueprint
Version:
Factorio Blueprints API
163 lines (162 loc) • 5.92 kB
TypeScript
import Victor from 'victor';
import Entity from './entity';
import Tile from './tile';
export default class Blueprint {
name: string;
description: string;
icons: string[];
entities: Entity[];
tiles: Tile[];
entityPositionGrid: {
[location: string]: Entity;
};
tilePositionGrid: {
[location: string]: Tile;
};
version: number;
checkWithEntityData: boolean;
snapping: {
grid: Position;
position?: Position;
absolute?: boolean;
};
constructor(data?: any, opt?: BlueprintOptions);
toString(opt: ToObjectOpt): string;
load(data: any, opt?: BlueprintOptions): this;
static test(str: any): any;
fillFromObject(data: any, opt: BlueprintLoadOptions): this;
placeBlueprint(bp: Blueprint, position: Position, rotations: number, allowOverlap: boolean): this;
createEntity(name: string, position: Position, direction?: number, allowOverlap?: boolean, noPlace?: boolean, center?: boolean): Entity;
createEntityWithData(data: any, allowOverlap?: boolean, noPlace?: boolean, center?: boolean): Entity;
createTile(name: string, position: Position): Tile;
createTileWithData(data: any): Tile;
findEntity(pos: Position): Entity;
findTile(pos: Position): Tile;
removeEntity(ent: Entity): false | Entity;
removeTile(tile: Tile): false | Tile;
removeEntityAtPosition(position: Position): false | Entity;
removeTileAtPosition(position: Position): false | Tile;
setIds(): this;
setSnapping(size: Position, absolute?: boolean, absolutePosition?: Position): void;
getPosition(f: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight', xcomp: Math['min'] | Math['max'], ycomp: Math['min'] | Math['max']): Victor;
center(): Victor;
topLeft(): Victor;
topRight(): Victor;
bottomLeft(): Victor;
bottomRight(): Victor;
fixCenter(aroundPoint?: Position): this;
generateIcons(num?: number): this;
toObject({ autoConnectPoles }?: ToObjectOpt): {
blueprint: {
icons: ({
signal: {
type: string;
name: string;
};
index: number;
} | null)[];
entities: {
name: string;
position: {
x: number;
y: number;
};
direction: number;
entity_number: number;
type: ("input" | "output") | undefined;
recipe: string | undefined;
bar: number | undefined;
station: string | undefined;
manual_trains_limit: number | undefined;
filter: string | undefined;
input_priority: ("left" | "right") | undefined;
output_priority: ("left" | "right") | undefined;
items: {
[name: string]: number;
} | undefined;
filters: any[] | undefined;
request_filters: any[] | undefined;
connections: {
[side: string]: {
[color: string]: {
entity_id: number;
circuit_id?: string | undefined;
}[];
};
} | undefined;
neighbours: number[];
parameters: {
playback_volume: any;
playback_globally: any;
allow_polyphony: any;
} | undefined;
alert_parameters: {
show_alert: boolean;
show_on_map: boolean;
alert_message: string;
icon_signal_id: string | {
type: string;
name: string;
} | undefined;
} | undefined;
control_behavior: any;
}[] | undefined;
tiles: {
name: string;
position: {
x: number;
y: number;
};
}[] | undefined;
item: string;
version: number;
label: string;
description: string | undefined;
"absolute-snapping": boolean | undefined;
"snap-to-grid": Position | undefined;
"position-relative-to-grid": Position | undefined;
};
};
toJSON(opt?: ToObjectOpt): string;
encode(opt?: EncodeOpt): string;
static setEntityData(obj: any): void;
static getEntityData(): {
[entity_name: string]: import("./defaultentities").EntityDescription;
};
static get UP(): number;
static get RIGHT(): number;
static get DOWN(): number;
static get LEFT(): number;
static get ROTATION_NONE(): number;
static get ROTATION_90_CW(): number;
static get ROTATION_180_CW(): number;
static get ROTATION_270_CW(): number;
static get ROTATION_270_CCW(): number;
static get ROTATION_180_CCW(): number;
static get ROTATION_90_CCW(): number;
checkName(name: string): string;
jsName(name: string): string;
fixName(name: string): string;
static getBook(str: string, opt?: BlueprintOptions): Blueprint[];
static toBook(blueprints: (Blueprint | undefined | null)[], activeIndex?: number, opt?: EncodeOpt): string;
static isBook(str: string): boolean;
}
type Version = '0' | 'latest';
interface Position {
x: number;
y: number;
}
interface BlueprintLoadOptions {
fixEntityData?: boolean;
allowOverlap?: boolean;
}
export interface BlueprintOptions extends BlueprintLoadOptions {
checkWithEntityData?: boolean;
}
interface EncodeOpt extends ToObjectOpt {
version?: Version;
}
interface ToObjectOpt {
autoConnectPoles?: boolean;
}
export {};