Prototype/Lab: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(0.16)
(1.1.51: Prototype/EntityWithOwner added)
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Basics ==
{{Prototype parent|Prototype/EntityWithOwner}}
A [[lab]]. Based on [[Prototype/EntityWithHealth]].
A [[lab]].
 
{{Prototype TOC|lab}}


== Mandatory properties ==
== Mandatory properties ==
This prototype inherits all the properties from [[Prototype/EntityWithHealth]].
This prototype inherits all the properties from [[Prototype/EntityWithOwner]].
 
=== energy_usage ===
'''Type''': [[Types/Energy]]


{{Prototype property|energy_usage|[[Types/Energy|Energy]]}}
The amount of energy this lab uses.
The amount of energy this lab uses.


=== energy_source ===
{{Prototype property|energy_source|[[Types/EnergySource|EnergySource]]}}
'''Type''': [[Types/EnergySource]]
 
Defines how this lab gets energy.
Defines how this lab gets energy.


=== on_animation ===
{{Prototype property|on_animation|[[Types/Animation|Animation]]}}
'''Type''': [[Types/Animation]]
 
The animation that plays when the lab is active.
The animation that plays when the lab is active.


=== off_animation ===
{{Prototype property|off_animation|[[Types/Animation|Animation]]}}
'''Type''': [[Types/Animation]]
 
The animation that plays when the lab is idle.
The animation that plays when the lab is idle.


=== module_specification ===
{{Prototype property|inputs|[[Types/table|table]] of [[Types/string|string]]}}
'''Type''': [[Types/ModuleSpecification]]
A list of the names of science packs that can be used in this lab.
 
The number of module slots.
 
=== inputs ===
'''Type''': [[Types/table]] of [[Types/string]]
 
A list of the names of science packs that cane be used in this lab.


e.g. for the default lab, this is:
e.g. for the default lab, this is:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
inputs = {"science-pack-1", "science-pack-2", "science-pack-3", "alien-science-pack"}</syntaxhighlight>
inputs = {"automation-science-pack", "logistic-science-pack", "chemical-science-pack", "military-science-pack", "production-science-pack", "utility-science-pack", "space-science-pack"}</syntaxhighlight>


If a technology requires other types of science packs, it cannot be researched in this lab.
If a technology requires other types of science packs, it cannot be researched in this lab.
Line 43: Line 30:
== Optional properties ==
== Optional properties ==


=== researching_speed ===
{{Prototype property|researching_speed|[[Types/double|double]]|1|optional=true}}
'''Type''': [[Types/double]]
 
{{Prototype property|allowed_effects|[[Types/EffectTypeLimitation|EffectTypeLimitation]]|All effects are allowed|optional=true}}
Sets the module effects that are allowed to be used on this lab.
 
{{Prototype property|light|[[Types/LightDefinition|LightDefinition]]||optional=true}}


'''Default''': 1
{{Prototype property|base_productivity|[[Types/float|float]]|0|optional=true}}
Productivity bonus that this machine always has.


=== light ===
{{Prototype property|entity_info_icon_shift|[[Types/vector|vector]]|<nowiki>{0, 0}</nowiki>|optional=true}}
'''Type''': [[Types/LightDefinition]]
Shift of the "alt-mode icon" relative to the lab's center.
 
{{Prototype property|module_specification|[[Types/ModuleSpecification|ModuleSpecification]]|optional=true}}
The number of module slots.

Latest revision as of 19:27, 21 January 2022

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


A lab.


Prototype/Lab — lab
energy_source::EnergySource
energy_usage::Energy
inputs::table of string
off_animation::Animation
on_animation::Animation
allowed_effects::EffectTypeLimitation (optional)
base_productivity::float (optional)
entity_info_icon_shift::vector (optional)
light::LightDefinition (optional)
module_specification::ModuleSpecification (optional)
researching_speed::double (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_usage

Type: Energy
The amount of energy this lab uses.

energy_source

Type: EnergySource
Defines how this lab gets energy.

on_animation

Type: Animation
The animation that plays when the lab is active.

off_animation

Type: Animation
The animation that plays when the lab is idle.

inputs

Type: table of string
A list of the names of science packs that can be used in this lab.

e.g. for the default lab, this is:

inputs = {"automation-science-pack", "logistic-science-pack", "chemical-science-pack", "military-science-pack", "production-science-pack", "utility-science-pack", "space-science-pack"}

If a technology requires other types of science packs, it cannot be researched in this lab.

Optional properties

researching_speed

Type: double
Default: 1

allowed_effects

Type: EffectTypeLimitation
Default: All effects are allowed
Sets the module effects that are allowed to be used on this lab.

light

Type: LightDefinition

base_productivity

Type: float
Default: 0
Productivity bonus that this machine always has.

entity_info_icon_shift

Type: vector
Default: {0, 0}
Shift of the "alt-mode icon" relative to the lab's center.

module_specification

Type: ModuleSpecification
The number of module slots.