Prototype/CraftingMachine

From Official Factorio Wiki
Revision as of 12:30, 28 March 2019 by Bilka (talk | contribs) (typos/grammar)
Jump to navigation Jump to search

Basics

This type is abstract and cannot be created directly.

The abstract basis of the assembling machines and furnaces. Contains the properties that both of them have.

Note that crafting machines cannot be rotated unless the fluid_boxes key exists.

Extensions

Mandatory properties

This prototype inherits all the properties from Prototype/EntityWithHealth.

energy_usage

Type: Types/Energy

Sets how much energy this machine uses while crafting. Energy usage has to be positive.

crafting_speed

Type: Types/double

How fast this crafting machine can craft. 1 means that for example a 1 second long recipe take 1 second to craft. 0.5 means it takes 2 seconds, and 2 means it takes 0.5 seconds.

Crafting speed has to be positive.

crafting_categories

Type: Types/table of Types/strings

A list of recipe categories this crafting machine can use.

Example:

crafting_categories = {"crafting", "smelting"}

energy_source

Type: Types/EnergySource

Defines how the crafting machine is powered.

animation

Type: Types/Animation4Way

The animation played when crafting. When the crafting machine is idle, the animation will be paused.

Note that crafting machines cannot be rotated unless the fluid_boxes key exists. When they cannot be rotated, only the north rotation of the animation will be used.

idle_animation

Type: Types/Animation4Way

The animation played when idle. Idle animation must have the same frame count as animation.

Note that crafting machines cannot be rotated unless the fluid_boxes key exists. When they cannot be rotated, only the north rotation of the idle animation will be used.

Optional properties

fluid_boxes

Type: Types/table of Types/FluidBox

Can have off_when_no_fluid_recipe key that has a Types/bool value. off_when_no_fluid_recipe defaults to false.

Note that crafting machines cannot be rotated unless the fluid_boxes key exists. If the fluid_boxes key exists and off_when_no_fluid_recipe is true, the crafting machine can only be rotated when a recipe consuming or producing fluid is set.

fluid_boxes =
    {
      {
        production_type = "input",
        pipe_picture = assembler2pipepictures(),
        pipe_covers = pipecoverspictures(),
        base_area = 10,
        base_level = -1,
        pipe_connections = {{ type="input", position = {0, -2} }},
        secondary_draw_orders = { north = -1 }
      },
      {
        production_type = "output",
        pipe_picture = assembler2pipepictures(),
        pipe_covers = pipecoverspictures(),
        base_area = 10,
        base_level = 1,
        pipe_connections = {{ type="output", position = {0, 2} }},
        secondary_draw_orders = { north = -1 }
      },
      off_when_no_fluid_recipe = true
    },

allowed_effects

Type: Types/EffectTypeLimitation

Sets the module effects that are allowed to be used on this machine.

has_backer_name

Type: Types/bool

Default: false

scale_entity_info_icon

Type: Types/bool

Default: false

always_draw_idle_animation

Type: Types/bool

Default: false

module_specification

Type: Types/ModuleSpecification

The number of module slots in this machine, and their icon positions.

module_specification = {
  module_info_icon_shift = {
    0,
    0.8
  },
  module_slots = 2
},

working_visualisations

Type: Types/table of Types/WorkingVisualisation