Prototype/CraftingMachine
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 a crafting machine cannot be rotated unless it has at least one of the following: a fluid box, a heat energy source, a fluid energy source, or a non-square collision box.
Extensions
- Prototype/AssemblingMachine assembling-machine
- Prototype/RocketSilo rocket-silo
- Prototype/Furnace furnace
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.
When using an electric energy source and drain
is not specified, it will be set to energy_usage ÷ 30
automatically.
animation
Type: Types/Animation4Way
The animation played when crafting. When the crafting machine is idle, the animation will be paused.
When a crafting machine cannot be rotated (see #Basics), 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.
When a crafting machine cannot be rotated (see #Basics), 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.
If a crafting machine has fluid boxes and off_when_no_fluid_recipe is true, the crafting machine can only be rotated when a recipe consuming or producing fluid is set, or it has one of the other properties listed in #Basics.
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
show_recipe_icon
Type: Types/bool
Default: true
always_draw_idle_animation
Type: Types/bool
Default: false
return_ingredients_on_change
Type: Types/bool
Default: false
entity_info_icon_shift
Type: Types/Vector
Default: {0, -0.3} for Prototype/AssemblingMachine and {0, -0.1} for Prototype/Furnace
draw_entity_info_icon_background
Type: Types/bool
Default: true
Whether the "alt-mode icon" should have the black background.
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