factorio-blueprint
Version:
Factorio Blueprints API
1,066 lines (1,011 loc) • 16.3 kB
text/typescript
enum Type {
Fluid = 'fluid',
Item = 'item',
Virtual = 'virtual',
Tile = 'tile',
Recipe = 'recipe',
}
export interface EntityDescription {
type?: string;
width?: number;
height?: number;
parameters?: boolean;
alertParameters?: boolean;
inventorySize?: number;
directionType?: boolean;
filterAmount?: boolean;
combinator?: boolean;
modules?: number;
recipe?: boolean;
maxElectricReach?: number;
}
const DEFAULT_ENTITIES: { [entity_name: string]: EntityDescription } = {
// ADD MORE (vanilla) AS YOU PLEASE (or modded if it's just for you)!
// Somebody will probably automate the gathering of this data soon...
programmable_speaker: {
type: Type.Item,
width: 1,
height: 1,
parameters: true,
alertParameters: true,
},
heat_exchanger: {
type: Type.Item,
width: 3,
height: 2,
},
heat_pipe: {
type: Type.Item,
width: 1,
height: 1,
},
nuclear_reactor: {
type: Type.Item,
width: 5,
height: 5,
},
centrifuge: {
type: Type.Item,
width: 3,
height: 3,
},
steam_turbine: {
type: Type.Item,
width: 3,
height: 5,
},
tank: {
type: Type.Item,
},
car: {
type: Type.Item,
},
cargo_wagon: {
type: Type.Item,
inventorySize: 40,
},
fluid_wagon: {
type: Type.Item,
},
locomotive: {
type: Type.Item,
},
light_armor: {
type: Type.Item,
},
heavy_armor: {
type: Type.Item,
},
modular_armor: {
type: Type.Item,
},
grenade: {
type: Type.Item,
},
cluster_grenade: {
type: Type.Item,
},
flamethrower: {
type: Type.Item,
},
flamethrower_ammo: {
type: Type.Item,
},
rocket_launcher: {
type: Type.Item,
},
rocket: {
type: Type.Item,
},
explosive_rocket: {
type: Type.Item,
},
atomic_bomb: {
type: Type.Item,
},
combat_shotgun: {
type: Type.Item,
},
shotgun: {
type: Type.Item,
},
shotgun_shell: {
type: Type.Item,
},
piercing_shotgun_shell: {
type: Type.Item,
},
submachine_gun: {
type: Type.Item,
},
pistol: {
type: Type.Item,
},
firearm_magazine: {
type: Type.Item,
},
piercing_rounds_magazine: {
type: Type.Item,
},
uranium_rounds_magazine: {
type: Type.Item,
},
cannon_shell: {
type: Type.Item,
},
explosive_cannon_shell: {
type: Type.Item,
},
uranium_cannon_shell: {
type: Type.Item,
},
explosive_uranium_cannon_shell: {
type: Type.Item,
},
power_armor: {
type: Type.Item,
},
power_armor_mk2: {
type: Type.Item,
},
energy_shield_equipment: {
type: Type.Item,
},
energy_shield_mk2_equipment: {
type: Type.Item,
},
solar_panel_equipment: {
type: Type.Item,
},
fusion_reactor_equipment: {
type: Type.Item,
},
battery_equipment: {
type: Type.Item,
},
battery_mk2_equipment: {
type: Type.Item,
},
personal_laser_defense_equipment: {
type: Type.Item,
},
discharge_defense_equipment: {
type: Type.Item,
},
exoskeleton_equipment: {
type: Type.Item,
},
personal_roboport_equipment: {
type: Type.Item,
},
personal_roboport_mk2_equipment: {
type: Type.Item,
},
night_vision_equipment: {
type: Type.Item,
},
discharge_defense_remote: {
type: Type.Item,
},
destroyer_capsule: {
type: Type.Item,
},
distractor_capsule: {
type: Type.Item,
},
defender_capsule: {
type: Type.Item,
},
slowdown_capsule: {
type: Type.Item,
},
poison_capsule: {
type: Type.Item,
},
stone: {
type: Type.Item,
},
solid_fuel: {
type: Type.Item,
},
stone_brick: {
type: Type.Item,
},
stone_path: {
type: Type.Tile,
},
landfill: {
type: Type.Tile,
},
concrete: {
type: Type.Tile,
},
hazard_concrete: {
type: Type.Item,
},
hazard_concrete_left: {
type: Type.Tile,
},
hazard_concrete_right: {
type: Type.Tile,
},
refined_concrete: {
type: Type.Tile,
},
refined_hazard_concrete: {
type: Type.Item,
},
refined_hazard_concrete_left: {
type: Type.Tile,
},
refined_hazard_concrete_right: {
type: Type.Tile,
},
iron_axe: {
type: Type.Item,
},
steel_axe: {
type: Type.Item,
},
repair_pack: {
type: Type.Item,
},
blueprint: {
type: Type.Item,
},
deconstruction_planner: {
type: Type.Item,
},
blueprint_book: {
type: Type.Item,
},
copper_cable: {
type: Type.Item,
},
red_wire: {
type: Type.Item,
},
green_wire: {
type: Type.Item,
},
beacon: {
type: Type.Item,
width: 3,
height: 3,
modules: 2,
},
small_electric_pole: {
type: Type.Item,
width: 1,
height: 1,
maxElectricReach: 7.5,
},
medium_electric_pole: {
type: Type.Item,
width: 1,
height: 1,
maxElectricReach: 9,
},
substation: {
type: Type.Item,
width: 2,
height: 2,
maxElectricReach: 18,
},
big_electric_pole: {
type: Type.Item,
width: 2,
height: 2,
maxElectricReach: 30,
},
offshore_pump: {
type: Type.Item,
width: 2,
height: 2,
},
small_lamp: {
type: Type.Item,
width: 1,
height: 1,
},
solar_panel: {
type: Type.Item,
width: 3,
height: 3,
},
arithmetic_combinator: {
type: Type.Item,
width: 1,
height: 2,
},
decider_combinator: {
type: Type.Item,
width: 1,
height: 2,
},
constant_combinator: {
type: Type.Item,
width: 1,
height: 1,
},
splitter: {
// Default position is facing north, 2 wide and 1 high for all splitters.
type: Type.Item,
width: 2,
height: 1,
},
fast_splitter: {
type: Type.Item,
width: 2,
height: 1,
},
express_splitter: {
type: Type.Item,
width: 2,
height: 1,
},
transport_belt: {
type: Type.Item,
width: 1,
height: 1,
},
fast_transport_belt: {
type: Type.Item,
width: 1,
height: 1,
},
express_transport_belt: {
type: Type.Item,
width: 1,
height: 1,
},
underground_belt: {
type: Type.Item,
width: 1,
height: 1,
directionType: true,
},
fast_underground_belt: {
type: Type.Item,
width: 1,
height: 1,
directionType: true,
},
express_underground_belt: {
type: Type.Item,
width: 1,
height: 1,
directionType: true,
},
assembling_machine_1: {
type: Type.Item,
width: 3,
height: 3,
recipe: true,
},
assembling_machine_2: {
type: Type.Item,
width: 3,
height: 3,
recipe: true,
modules: 2,
},
assembling_machine_3: {
type: Type.Item,
width: 3,
height: 3,
recipe: true,
modules: 4,
},
wooden_chest: {
type: Type.Item,
width: 1,
height: 1,
inventorySize: 16,
},
iron_chest: {
type: Type.Item,
width: 1,
height: 1,
inventorySize: 32,
},
steel_chest: {
type: Type.Item,
width: 1,
height: 1,
inventorySize: 48,
},
logistic_chest_passive_provider: {
type: Type.Item,
width: 1,
height: 1,
inventorySize: 48,
},
logistic_chest_active_provider: {
type: Type.Item,
width: 1,
height: 1,
inventorySize: 48,
},
logistic_chest_storage: {
type: Type.Item,
width: 1,
height: 1,
inventorySize: 48,
},
logistic_chest_requester: {
type: Type.Item,
width: 1,
height: 1,
inventorySize: 48,
},
logistic_chest_buffer: {
type: Type.Item,
width: 1,
height: 1,
inventorySize: 48,
},
storage_tank: {
type: Type.Item,
width: 3,
height: 3,
},
burner_inserter: {
type: Type.Item,
width: 1,
height: 1,
},
inserter: {
type: Type.Item,
width: 1,
height: 1,
},
long_handed_inserter: {
type: Type.Item,
width: 1,
height: 1,
},
fast_inserter: {
type: Type.Item,
width: 1,
height: 1,
},
filter_inserter: {
type: Type.Item,
width: 1,
height: 1,
filterAmount: false,
},
stack_inserter: {
type: Type.Item,
width: 1,
height: 1,
},
stack_filter_inserter: {
type: Type.Item,
width: 1,
height: 1,
filterAmount: false,
},
gate: {
type: Type.Item,
width: 1,
height: 1,
},
stone_wall: {
type: Type.Item,
width: 1,
height: 1,
},
radar: {
type: Type.Item,
width: 3,
height: 3,
},
rail: {
type: Type.Item,
},
straight_rail: {
type: Type.Item,
width: 2,
height: 2,
},
curved_rail: {
type: Type.Item,
width: 1,
height: 1,
},
// Lets figure out curved rails later. (1 curved rail deconstructs to 4 straight rails)
land_mine: {
type: Type.Item,
width: 1,
height: 1,
},
train_stop: {
// pretty sure this is a 1.2x1.2 centered in a 2x2 square.
type: Type.Item,
width: 2,
height: 2,
},
rail_signal: {
type: Type.Item,
width: 1,
height: 1,
},
rail_chain_signal: {
type: Type.Item,
width: 1,
height: 1,
},
lab: {
type: Type.Item,
width: 3,
height: 3,
modules: 2,
},
rocket_silo: {
type: Type.Item,
width: 9,
height: 10, //unsure about these values, got them from code only (never counted it in game, but 10 sounds right.)
modules: 4,
},
chemical_plant: {
type: Type.Item,
width: 3,
height: 3,
modules: 3,
},
oil_refinery: {
type: Type.Item,
width: 5,
height: 5,
modules: 3,
},
stone_furnace: {
type: Type.Item,
width: 2,
height: 2,
},
steel_furnace: {
type: Type.Item,
width: 2,
height: 2,
},
electric_furnace: {
type: Type.Item,
width: 3,
height: 3,
modules: 2,
},
pumpjack: {
type: Type.Item,
width: 3,
height: 3,
},
burner_mining_drill: {
type: Type.Item,
width: 2,
height: 2,
},
electric_mining_drill: {
type: Type.Item,
width: 3,
height: 3,
modules: 3,
},
pump: {
type: Type.Item,
width: 1,
height: 2,
},
pipe: {
type: Type.Item,
width: 1,
height: 1,
},
pipe_to_ground: {
type: Type.Item,
width: 1,
height: 1,
},
electronic_circuit: {
type: Type.Item,
},
advanced_circuit: {
type: Type.Item,
},
boiler: {
type: Type.Item,
width: 1,
height: 1,
},
steam_engine: {
type: Type.Item,
width: 5,
height: 3,
},
accumulator: {
type: Type.Item,
width: 2,
height: 2,
},
roboport: {
type: Type.Item,
width: 4,
height: 4,
},
construction_robot: {
type: Type.Item,
},
logistic_robot: {
type: Type.Item,
},
power_switch: {
type: Type.Item,
width: 3,
height: 3,
},
gun_turret: {
type: Type.Item,
width: 2,
height: 2,
},
artillery_turret: {
type: Type.Item,
width: 3,
height: 3,
},
laser_turret: {
type: Type.Item,
width: 2,
height: 2,
},
flamethrower_turret: {
type: Type.Item,
width: 2,
height: 3,
},
productivity_module: {
type: Type.Item,
},
productivity_module_2: {
type: Type.Item,
},
productivity_module_3: {
type: Type.Item,
},
effectivity_module: {
type: Type.Item,
},
effectivity_module_2: {
type: Type.Item,
},
effectivity_module_3: {
type: Type.Item,
},
speed_module: {
type: Type.Item,
},
speed_module_2: {
type: Type.Item,
},
speed_module_3: {
type: Type.Item,
},
water: {
type: Type.Fluid,
},
crude_oil: {
type: Type.Fluid,
},
petroleum_gas: {
type: Type.Fluid,
},
heavy_oil: {
type: Type.Fluid,
},
light_oil: {
type: Type.Fluid,
},
sulfuric_acid: {
type: Type.Fluid,
},
lubricant: {
type: Type.Fluid,
},
steam: {
type: Type.Fluid,
},
basic_oil_processing: {
type: Type.Recipe,
},
advanced_oil_processing: {
type: Type.Recipe,
},
heavy_oil_cracking: {
type: Type.Recipe,
},
light_oil_cracking: {
type: Type.Recipe,
},
coal_liquefaction: {
type: Type.Recipe,
},
raw_fish: {
type: Type.Item,
},
wood: {
type: Type.Item,
},
raw_wood: {
type: Type.Item,
},
iron_ore: {
type: Type.Item,
},
iron_plate: {
type: Type.Item,
},
copper_ore: {
type: Type.Item,
},
copper_plate: {
type: Type.Item,
},
steel_plate: {
type: Type.Item,
},
coal: {
type: Type.Item,
},
uranium_ore: {
type: Type.Item,
},
plastic_bar: {
type: Type.Item,
},
sulfur: {
type: Type.Item,
},
crude_oil_barrel: {
type: Type.Item,
},
heavy_oil_barrel: {
type: Type.Item,
},
light_oil_barrel: {
type: Type.Item,
},
lubricant_barrel: {
type: Type.Item,
},
petroleum_gas_barrel: {
type: Type.Item,
},
sulfuric_acid_barrel: {
type: Type.Item,
},
water_barrel: {
type: Type.Item,
},
empty_barrel: {
type: Type.Item,
},
processing_unit: {
type: Type.Item,
},
engine_unit: {
type: Type.Item,
},
electric_engine_unit: {
type: Type.Item,
},
battery: {
type: Type.Item,
},
explosives: {
type: Type.Item,
},
flying_robot_frame: {
type: Type.Item,
},
low_density_structure: {
type: Type.Item,
},
rocket_fuel: {
type: Type.Item,
},
rocket_control_unit: {
type: Type.Item,
},
satellite: {
type: Type.Item,
},
uranium_235: {
type: Type.Item,
},
uranium_238: {
type: Type.Item,
},
uranium_fuel_cell: {
type: Type.Item,
},
used_up_uranium_fuel_cell: {
type: Type.Item,
},
science_pack_1: {
type: Type.Item,
},
science_pack_2: {
type: Type.Item,
},
science_pack_3: {
type: Type.Item,
},
military_science_pack: {
type: Type.Item,
},
production_science_pack: {
type: Type.Item,
},
high_tech_science_pack: {
type: Type.Item,
},
space_science_pack: {
type: Type.Item,
},
iron_stick: {
type: Type.Item,
},
iron_gear_wheel: {
type: Type.Item,
},
signal_anything: {
type: Type.Virtual,
combinator: true,
},
signal_each: {
type: Type.Virtual,
combinator: true,
},
signal_everything: {
type: Type.Virtual,
combinator: true,
},
signal_0: {
type: Type.Virtual,
},
signal_1: {
type: Type.Virtual,
},
signal_2: {
type: Type.Virtual,
},
signal_3: {
type: Type.Virtual,
},
signal_4: {
type: Type.Virtual,
},
signal_5: {
type: Type.Virtual,
},
signal_6: {
type: Type.Virtual,
},
signal_7: {
type: Type.Virtual,
},
signal_8: {
type: Type.Virtual,
},
signal_9: {
type: Type.Virtual,
},
signal_A: {
type: Type.Virtual,
},
signal_B: {
type: Type.Virtual,
},
signal_C: {
type: Type.Virtual,
},
signal_D: {
type: Type.Virtual,
},
signal_E: {
type: Type.Virtual,
},
signal_F: {
type: Type.Virtual,
},
signal_G: {
type: Type.Virtual,
},
signal_H: {
type: Type.Virtual,
},
signal_I: {
type: Type.Virtual,
},
signal_J: {
type: Type.Virtual,
},
signal_K: {
type: Type.Virtual,
},
signal_L: {
type: Type.Virtual,
},
signal_M: {
type: Type.Virtual,
},
signal_N: {
type: Type.Virtual,
},
signal_O: {
type: Type.Virtual,
},
signal_P: {
type: Type.Virtual,
},
signal_Q: {
type: Type.Virtual,
},
signal_R: {
type: Type.Virtual,
},
signal_S: {
type: Type.Virtual,
},
signal_T: {
type: Type.Virtual,
},
signal_U: {
type: Type.Virtual,
},
signal_V: {
type: Type.Virtual,
},
signal_W: {
type: Type.Virtual,
},
signal_X: {
type: Type.Virtual,
},
signal_Y: {
type: Type.Virtual,
},
signal_Z: {
type: Type.Virtual,
},
signal_blue: {
type: Type.Virtual,
},
signal_red: {
type: Type.Virtual,
},
signal_green: {
type: Type.Virtual,
},
signal_yellow: {
type: Type.Virtual,
},
signal_cyan: {
type: Type.Virtual,
},
signal_pink: {
type: Type.Virtual,
},
signal_white: {
type: Type.Virtual,
},
signal_grey: {
type: Type.Virtual,
},
signal_black: {
type: Type.Virtual,
},
};
export default DEFAULT_ENTITIES;