Prototype/Generator: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Must be an electric energy source.)
(added example for effectivity)
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Basics ==
{{Prototype parent|Prototype/EntityWithOwner}}
A power generator, for example a [[steam engine]].
An entity that produces power from fluids, for example a [[steam engine]].
 
{{Prototype TOC|generator}}
 
== Mandatory properties ==
== Mandatory properties ==
This prototype inherits all the properties from [[Prototype/EntityWithHealth]].
This prototype inherits all the properties from [[Prototype/EntityWithOwner]].
 
=== energy_source ===
'''Type''': [[Types/EnergySource]]


{{Prototype property|energy_source|[[Types/EnergySource|EnergySource]]}}
Must be an electric energy source.
Must be an electric energy source.


=== fluid_box ===
{{Prototype property|fluid_box|[[Types/FluidBox|FluidBox]]}}
'''Type''': [[Types/FluidBox]]
This must have a filter if <code>max_power_output</code> is not defined.


=== horizontal_animation ===
{{Prototype property|horizontal_animation|[[Types/Animation|Animation]]}}
'''Type''': [[Types/Animation]]


=== vertical_animation ===
{{Prototype property|vertical_animation|[[Types/Animation|Animation]]}}
'''Type''': [[Types/Animation]]


=== effectivity ===
{{Prototype property|effectivity|[[Types/double|double]]}}
'''Type''': [[Types/double]]
How much energy the generator produces compared to how much energy it consumes. For example, an effectivity of 0.5 means that half of the consumed energy is output as power.


The effectivity of the generator with 0.5 being half as effective as a regular steam-engine generator.
{{Prototype property|fluid_usage_per_tick|[[Types/double|double]]}}
The number of fluid units the generator uses per tick.


=== fluid_usage_per_tick ===
{{Prototype property|maximum_temperature|[[Types/double|double]]}}
'''Type''': [[Types/double]]
Used to calculate the <code>max_power_output</code> if it is not defined and <code>burns_fluid</code> is false. Then, the max power output is <code>(min(fluid_max_temp,&nbsp;maximum_temperature)&nbsp;-&nbsp;fluid_default_temp) × fluid_usage_per_tick × fluid_heat_capacity × effectivity</code>, the fluid is the filter specified on the <code>fluid_box</code>.


The number of fluid units the generator uses per tick.
The maximum temperature to which the efficiency can increase. At this temperature the generator will run at 100% efficiency. Note: Higher temperature fluid can still be consumed.
 
=== maximum_temperature ===
'''Type''': [[Types/double]]


== Optional properties ==
== Optional properties ==


=== smoke ===
{{Prototype property|smoke|[[Types/table|table]] of [[Types/SmokeSource|SmokeSource]]|optional=true}}
'''Type''': [[Types/SmokeSources]]
Array of 1 or more smoke sources.
 
=== burns_fluid ===
'''Type''': [[Types/bool]]
 
'''Default''': false
 
=== scale_fluid_usage ===
'''Type''': [[Types/bool]]


'''Default''': false
{{Prototype property|burns_fluid|[[Types/bool|bool]]|false|optional=true}}
If set to true, the available power output is based on the [[Prototype/Fluid#fuel_value|fuel_value]] of the fluid. Otherwise, the available power output will be based on the fluid temperature.


{{Prototype property|scale_fluid_usage|[[Types/bool|bool]]|false|optional=true}}
Scales the generator's fluid usage to its maximum power output.
Scales the generator's fluid usage to its maximum power output.


=== min_perceived_performance ===
Setting this to true prevents the generator from overconsuming fluid, for example when higher than <code>maximum_temperature</code> fluid is fed to the generator.<br>
'''Type''': [[Types/double]]
If scale_fluid_usage is false, the generator consumes the full <code>fluid_usage_per_tick</code> and any of the extra energy in the fluid (in the form of higher temperature) is wasted. The [[steam engine]] exhibits this behavior when fed steam from [[heat exchanger]]s.


'''Default''': 0.25
{{Prototype property|destroy_non_fuel_fluid|[[Types/bool|bool]]|true|optional=true}}
This property is used when:
* <code>burns_fluid</code> is true and the fluid has a [[Prototype/Fluid#fuel_value|fuel_value]] of 0
* or <code>burns_fluid</code> is false and the fluid is at default temperature
In these cases, this property determines whether the fluid should be destroyed, meaning that the fluid is consumed at the rate of <code>fluid_usage_per_tick</code>, without producing any power.


{{Prototype property|min_perceived_performance|[[Types/double|double]]|0.25|optional=true}}
Animation runs at least this fast. This corresponds to the sound.
Animation runs at least this fast. This corresponds to the sound.


=== performance_to_sound_speedup ===
{{Prototype property|performance_to_sound_speedup|[[Types/double|double]]|0.5|optional=true}}
'''Type''': [[Types/double]]


'''Default''': 0.5
{{Prototype property|max_power_output|[[Types/Energy|Energy]]|optional=true}}
The power production of the generator is capped to this value. This is also the value that is shown as the maximum power output in the tooltip of the generator.


=== max_power_output ===
<code>fluid_box</code> must have a filter if this is not defined.
'''Type''': [[Types/Energy]]

Latest revision as of 13:29, 22 April 2022

Prototype definitions » PrototypeBase » Prototype/Entity » Prototype/EntityWithHealth » Prototype/EntityWithOwner » Prototype/Generator


An entity that produces power from fluids, for example a steam engine.


Prototype/Generator — generator
effectivity::double
energy_source::EnergySource
fluid_box::FluidBox
fluid_usage_per_tick::double
horizontal_animation::Animation
maximum_temperature::double
vertical_animation::Animation
burns_fluid::bool (optional)
destroy_non_fuel_fluid::bool (optional)
max_power_output::Energy (optional)
min_perceived_performance::double (optional)
performance_to_sound_speedup::double (optional)
scale_fluid_usage::bool (optional)
smoke::table of SmokeSource (optional)
Inherited from Prototype/EntityWithOwner
allow_run_time_change_of_is_military_target::bool (optional)
is_military_target::bool (optional)
Inherited from Prototype/EntityWithHealth
alert_when_damaged::bool (optional)
attack_reaction::AttackReaction (optional)
corpse::string or table of strings (optional)
create_ghost_on_death::bool (optional)
damaged_trigger_effect::TriggerEffect (optional)
dying_explosion::ExplosionDefinition or table of ExplosionDefinition (optional)
dying_trigger_effect::TriggerEffect (optional)
healing_per_tick::float (optional)
hide_resistances::bool (optional)
integration_patch::Sprite4Way (optional)
integration_patch_render_layer::RenderLayer (optional)
loot::Loot (optional)
max_health::float (optional)
random_corpse_variation::bool (optional)
repair_sound::Sound (optional)
repair_speed_modifier::float (optional)
resistances::Resistances (optional)
Inherited from Prototype/Entity
icons, icon, icon_size (IconSpecification)::IconSpecification
additional_pastable_entities::table of string (optional)
alert_icon_scale::float (optional)
alert_icon_shift::vector (optional)
allow_copy_paste::bool (optional)
autoplace::AutoplaceSpecification (optional)
build_base_evolution_requirement::double (optional)
build_grid_size::uint8 (optional)
build_sound::Sound (optional)
close_sound::Sound (optional)
collision_box::BoundingBox (optional)
collision_mask::CollisionMask (optional)
created_effect::Trigger (optional)
created_smoke::CreateTrivialSmokeEffectItem (optional)
drawing_box::BoundingBox (optional)
emissions_per_second::double (optional)
enemy_map_color::Color (optional)
fast_replaceable_group::string (optional)
flags::EntityPrototypeFlags (optional)
friendly_map_color::Color (optional)
hit_visualization_box::BoundingBox (optional)
map_color::Color (optional)
map_generator_bounding_box::BoundingBox (optional)
minable::MinableProperties (optional)
mined_sound::Sound (optional)
mining_sound::Sound (optional)
next_upgrade::string (optional)
open_sound::Sound (optional)
placeable_by::ItemToPlace or table of ItemToPlace (optional)
protected_from_tile_building::bool (optional)
radius_visualisation_specification::RadiusVisualisationSpecification (optional)
remains_when_mined::string or table of string (optional)
remove_decoratives::string (optional)
rotated_sound::Sound (optional)
selectable_in_game::bool (optional)
selection_box::BoundingBox (optional)
selection_priority::uint8 (optional)
shooting_cursor_size::double (optional)
sticker_box::BoundingBox (optional)
subgroup::string (optional)
tile_height::uint32 (optional)
tile_width::uint32 (optional)
trigger_target_mask::TriggerTargetMask (optional)
vehicle_impact_sound::Sound (optional)
water_reflection::WaterReflectionDefinition (optional)
working_sound::WorkingSound (optional)
Inherited from PrototypeBase
name::string
type::string
localised_description::LocalisedString (optional)
localised_name::LocalisedString (optional)
order::Order (optional)

Mandatory properties

This prototype inherits all the properties from Prototype/EntityWithOwner.

energy_source

Type: EnergySource
Must be an electric energy source.

fluid_box

Type: FluidBox
This must have a filter if max_power_output is not defined.

horizontal_animation

Type: Animation

vertical_animation

Type: Animation

effectivity

Type: double
How much energy the generator produces compared to how much energy it consumes. For example, an effectivity of 0.5 means that half of the consumed energy is output as power.

fluid_usage_per_tick

Type: double
The number of fluid units the generator uses per tick.

maximum_temperature

Type: double
Used to calculate the max_power_output if it is not defined and burns_fluid is false. Then, the max power output is (min(fluid_max_temp, maximum_temperature) - fluid_default_temp) × fluid_usage_per_tick × fluid_heat_capacity × effectivity, the fluid is the filter specified on the fluid_box.

The maximum temperature to which the efficiency can increase. At this temperature the generator will run at 100% efficiency. Note: Higher temperature fluid can still be consumed.

Optional properties

smoke

Type: table of SmokeSource
Array of 1 or more smoke sources.

burns_fluid

Type: bool
Default: false
If set to true, the available power output is based on the fuel_value of the fluid. Otherwise, the available power output will be based on the fluid temperature.

scale_fluid_usage

Type: bool
Default: false
Scales the generator's fluid usage to its maximum power output.

Setting this to true prevents the generator from overconsuming fluid, for example when higher than maximum_temperature fluid is fed to the generator.
If scale_fluid_usage is false, the generator consumes the full fluid_usage_per_tick and any of the extra energy in the fluid (in the form of higher temperature) is wasted. The steam engine exhibits this behavior when fed steam from heat exchangers.

destroy_non_fuel_fluid

Type: bool
Default: true
This property is used when:

  • burns_fluid is true and the fluid has a fuel_value of 0
  • or burns_fluid is false and the fluid is at default temperature

In these cases, this property determines whether the fluid should be destroyed, meaning that the fluid is consumed at the rate of fluid_usage_per_tick, without producing any power.

min_perceived_performance

Type: double
Default: 0.25
Animation runs at least this fast. This corresponds to the sound.

performance_to_sound_speedup

Type: double
Default: 0.5

max_power_output

Type: Energy
The power production of the generator is capped to this value. This is also the value that is shown as the maximum power output in the tooltip of the generator.

fluid_box must have a filter if this is not defined.