Prototype/Accumulator: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Has to be an electric energy source.)
m (Protected "Prototype/Accumulator": Migrated prototype doc to separate website ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Basics==
'''The prototype docs have moved to a new website with an improved format.''' This documentation page can now be found here: [https://lua-api.factorio.com/latest/prototypes/AccumulatorPrototype.html https://lua-api.factorio.com/latest/prototypes/AccumulatorPrototype.html]
 
This wiki page is no longer updated and '''will be removed at some point in the future''', so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback [https://forums.factorio.com/viewforum.php?f=233 on the forums].
 
 
 
{{Prototype parent|Prototype/EntityWithOwner}}
Entity with energy source with specialised animation for charging/decharging.
Entity with energy source with specialised animation for charging/decharging.
Extends the [[Prototype/EntityWithHealth]]
 
{{Prototype TOC|accumulator}}
 
== Usage in base==
== Usage in base==
*[[Accumulator]]
*[[Accumulator]]
== Properties ==
=== energy_source ===
'''Type''': [[Types/EnergySource]]


The capacity of the energy source buffer specifies the capacity of the accumulator. Has to be an electric energy source.
== Mandatory properties ==
This prototype inherits all the properties from [[Prototype/EntityWithOwner]].


=== picture ===
{{Prototype property|energy_source|[[Types/EnergySource|EnergySource]]}}
'''Type''': [[Types/Sprite]]
The capacity of the energy source buffer specifies the capacity of the accumulator. Must be an electric energy source.


=== charge_animation ===
{{Prototype property|picture|[[Types/Sprite|Sprite]]}}
'''Type''': [[Types/Animation]]


=== charge_light ===
{{Prototype property|charge_cooldown|[[Types/uint16|uint16]]}}
'''Type''': [[Types/LightDefinition]]
Count of ticks to preserve the animation even when the charging ends. Used to prevent rapid blinking of the accumulator with unstable need to use it.


=== charge_cooldown ===
{{Prototype property|discharge_cooldown|[[Types/uint16|uint16]]}}
'''Type''': [[Types/uint16]]
How long (in ticks) the animation will last after discharge has been initialized.


Count of ticks to preserve the animation even when the charging ends.
== Optional properties ==


Used to prevent rapid blinking of the accumulator with unstable need to use it.
{{Prototype property|charge_animation|[[Types/Animation|Animation]]|optional=true}}


=== discharge_animation ===
{{Prototype property|charge_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}
'''Type''': [[Types/Animation]]
Note that some kind of charge_animation must also be defined for the light to appear.


=== discharge_light ===
{{Prototype property|discharge_animation|[[Types/Animation|Animation]]|optional=true}}
'''Type''': [[Types/LightDefinition]]
 
=== discharge_cooldown ===
'''Type''': [[Types/uint16]]
 
How long (in ticks) the animation will last after discharge has been initialized.


=== circuit_wire_connection_point ===
{{Prototype property|discharge_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}
'''Type''': [[Types/WireConnectionPoint]]
Note that some kind of discharge_animation must also be defined for the light to appear.


{{Prototype property|circuit_wire_connection_point|[[Types/WireConnectionPoint|WireConnectionPoint]]|optional=true}}
Defines how wires visually connect to this accumulator.
Defines how wires visually connect to this accumulator.


=== circuit_wire_max_distance ===
{{Prototype property|circuit_wire_max_distance|[[Types/double|double]]|0|optional=true}}
'''Type''': [[Types/double]]
The maximum circuit wire distance for this entity.
 
'''Default''': 0


The maximum circuit wire distance for this accumulator.
{{Prototype property|draw_copper_wires|[[Types/bool|bool]]|true|optional=true}}


=== circuit_connector_sprites ===
{{Prototype property|draw_circuit_wires|[[Types/bool|bool]]|true|optional=true}}
'''Type''': [[Types/CircuitConnectorSprites]]


{{Prototype property|circuit_connector_sprites|[[Types/CircuitConnectorSprites|CircuitConnectorSprites]]|optional=true}}
The pictures displayed for circuit connections to this accumulator.
The pictures displayed for circuit connections to this accumulator.


=== default_output_signal ===
{{Prototype property|default_output_signal|[[Types/SignalIDConnector|SignalIDConnector]]|optional=true}}
'''Type''': [[Types/string]]
The name of the signal that is the default for when an accumulator is connected to the circuit network.


The name of the signal that is the default for when a accumulator is connected to the circuit network.
== Example ==
<syntaxhighlight lang="lua">{
    type = "accumulator",
    name = "accumulator",
    icon = "__base__/graphics/icons/accumulator.png",
    icon_size = 32,
    flags = {"placeable-neutral", "player-creation"},
    minable = {mining_time = 0.1, result = "accumulator"},
    max_health = 150,
    corpse = "accumulator-remnants",
    collision_box = {{-0.9, -0.9}, {0.9, 0.9}},
    selection_box = {{-1, -1}, {1, 1}},
    drawing_box = {{-1, -1.5}, {1, 1}},
    energy_source =
    {
      type = "electric",
      buffer_capacity = "5MJ",
      usage_priority = "tertiary",
      input_flow_limit = "300kW",
      output_flow_limit = "300kW"
    },
    picture = accumulator_picture(),
    charge_animation = accumulator_charge(),


== Example ==
    charge_cooldown = 30,
    charge_light = {intensity = 0.3, size = 7, color = {r = 1.0, g = 1.0, b = 1.0}},
    discharge_animation = accumulator_discharge(),
    discharge_cooldown = 60,
    discharge_light = {intensity = 0.7, size = 7, color = {r = 1.0, g = 1.0, b = 1.0}},
    vehicle_impact_sound =  { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 },
    working_sound =
     {
     {
       type = "accumulator",
       sound =
      name = "basic-accumulator",
      icon = "__base__/graphics/icons/basic-accumulator.png",
      flags = {"placeable-neutral", "player-creation"},
      minable = {hardness = 0.2, mining_time = 0.5, result = "basic-accumulator"},
      max_health = 150,
      corpse = "medium-remnants",
      collision_box = {{-0.9, -0.9}, {0.9, 0.9}},
      selection_box = {{-1, -1}, {1, 1}},
      energy_source =
       {
       {
         type = "electric",
         filename = "__base__/sound/accumulator-working.ogg",
         output_priority = "terciary",
         volume = 1
        input_flow_limit = "300W",
        input_priority = "terciary",
        output_flow_limit = "300W",
        buffer_capacity = "5KJ"
       },
       },
       picture =
       idle_sound =
       {
       {
         filename = "__base__/graphics/entity/basic-accumulator/basic-accumulator.png",
         filename = "__base__/sound/accumulator-idle.ogg",
        priority = "extra-high",
         volume = 0.4
         width = 124,
        height = 103,
        shift = {0.7, -0.2}
       },
       },
       charge_animation =
       max_sounds_per_type = 5
      {
    },
        filename = "__base__/graphics/entity/basic-accumulator/basic-accumulator-charge-animation.png",
 
        frame_width = 138,
    circuit_wire_connection_point = circuit_connector_definitions["accumulator"].points,
        frame_height = 135,
    circuit_connector_sprites = circuit_connector_definitions["accumulator"].sprites,
        line_length = 8,
    circuit_wire_max_distance = default_circuit_wire_max_distance,
        frame_count = 24,
 
        shift = {0.482, -0.638},
    default_output_signal = {type = "virtual", name = "signal-A"}
        animation_speed = 0.5
  }</syntaxhighlight>
      },
      charge_cooldown = 30,
      charge_light = {intensity = 0.3, size = 7},
      discharge_animation =
      {
        filename = "__base__/graphics/entity/basic-accumulator/basic-accumulator-discharge-animation.png",
        frame_width = 147,
        frame_height = 128,
        line_length = 8,
        frame_count = 24,
        shift = {0.395, -0.525},
        animation_speed = 0.5
      },
      discharge_cooldown = 60,
      discharge_light = {intensity = 0.7, size = 7}
    }

Latest revision as of 09:27, 16 August 2023

The prototype docs have moved to a new website with an improved format. This documentation page can now be found here: https://lua-api.factorio.com/latest/prototypes/AccumulatorPrototype.html

This wiki page is no longer updated and will be removed at some point in the future, so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback on the forums.


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


Entity with energy source with specialised animation for charging/decharging.


Prototype/Accumulator — accumulator
charge_cooldown::uint16
discharge_cooldown::uint16
energy_source::EnergySource
picture::Sprite
charge_animation::Animation (optional)
charge_light::LightDefinition (optional)
circuit_connector_sprites::CircuitConnectorSprites (optional)
circuit_wire_connection_point::WireConnectionPoint (optional)
circuit_wire_max_distance::double (optional)
default_output_signal::SignalIDConnector (optional)
discharge_animation::Animation (optional)
discharge_light::LightDefinition (optional)
draw_circuit_wires::bool (optional)
draw_copper_wires::bool (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)

Usage in base

Mandatory properties

This prototype inherits all the properties from Prototype/EntityWithOwner.

energy_source

Type: EnergySource
The capacity of the energy source buffer specifies the capacity of the accumulator. Must be an electric energy source.

picture

Type: Sprite

charge_cooldown

Type: uint16
Count of ticks to preserve the animation even when the charging ends. Used to prevent rapid blinking of the accumulator with unstable need to use it.

discharge_cooldown

Type: uint16
How long (in ticks) the animation will last after discharge has been initialized.

Optional properties

charge_animation

Type: Animation

charge_light

Type: LightDefinition
Note that some kind of charge_animation must also be defined for the light to appear.

discharge_animation

Type: Animation

discharge_light

Type: LightDefinition
Note that some kind of discharge_animation must also be defined for the light to appear.

circuit_wire_connection_point

Type: WireConnectionPoint
Defines how wires visually connect to this accumulator.

circuit_wire_max_distance

Type: double
Default: 0
The maximum circuit wire distance for this entity.

draw_copper_wires

Type: bool
Default: true

draw_circuit_wires

Type: bool
Default: true

circuit_connector_sprites

Type: CircuitConnectorSprites
The pictures displayed for circuit connections to this accumulator.

default_output_signal

Type: SignalIDConnector
The name of the signal that is the default for when an accumulator is connected to the circuit network.

Example

{
    type = "accumulator",
    name = "accumulator",
    icon = "__base__/graphics/icons/accumulator.png",
    icon_size = 32,
    flags = {"placeable-neutral", "player-creation"},
    minable = {mining_time = 0.1, result = "accumulator"},
    max_health = 150,
    corpse = "accumulator-remnants",
    collision_box = {{-0.9, -0.9}, {0.9, 0.9}},
    selection_box = {{-1, -1}, {1, 1}},
    drawing_box = {{-1, -1.5}, {1, 1}},
    energy_source =
    {
      type = "electric",
      buffer_capacity = "5MJ",
      usage_priority = "tertiary",
      input_flow_limit = "300kW",
      output_flow_limit = "300kW"
    },
    picture = accumulator_picture(),
    charge_animation = accumulator_charge(),

    charge_cooldown = 30,
    charge_light = {intensity = 0.3, size = 7, color = {r = 1.0, g = 1.0, b = 1.0}},
    discharge_animation = accumulator_discharge(),
    discharge_cooldown = 60,
    discharge_light = {intensity = 0.7, size = 7, color = {r = 1.0, g = 1.0, b = 1.0}},
    vehicle_impact_sound =  { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 },
    working_sound =
    {
      sound =
      {
        filename = "__base__/sound/accumulator-working.ogg",
        volume = 1
      },
      idle_sound =
      {
        filename = "__base__/sound/accumulator-idle.ogg",
        volume = 0.4
      },
      max_sounds_per_type = 5
    },

    circuit_wire_connection_point = circuit_connector_definitions["accumulator"].points,
    circuit_connector_sprites = circuit_connector_definitions["accumulator"].sprites,
    circuit_wire_max_distance = default_circuit_wire_max_distance,

    default_output_signal = {type = "virtual", name = "signal-A"}
  }