Prototype/Accumulator: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(0.17)
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
==Basics==
{{Prototype parent|Prototype/EntityWithHealth}}
Prototype type: '''accumulator'''
Entity with energy source with specialised animation for charging/decharging.
 
{{Prototype TOC|accumulator}}


Entity with energy source with specialised animation for charging/decharging.
Extends the [[Prototype/EntityWithHealth]]
== Usage in base==
== Usage in base==
*[[Accumulator]]
*[[Accumulator]]
== Mandatory properties ==
== Mandatory properties ==
This prototype inherits all the properties from [[Prototype/EntityWithHealth]].
This prototype inherits all the properties from [[Prototype/EntityWithHealth]].


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


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


=== charge_cooldown ===
{{Prototype property|charge_cooldown|[[Types/uint16|uint16]]}}
'''Type''': [[Types/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.
 
Count of ticks to preserve the animation even when the charging ends.\n\nUsed to prevent rapid blinking of the accumulator with unstable need to use it.
 
=== discharge_cooldown ===
'''Type''': [[Types/uint16]]


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


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


=== charge_animation ===
{{Prototype property|charge_animation|[[Types/Animation|Animation]]|optional=true}}
'''Type''': [[Types/Animation]]


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


=== discharge_animation ===
{{Prototype property|discharge_animation|[[Types/Animation|Animation]]|optional=true}}
'''Type''': [[Types/Animation]]


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


{{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]]
 
'''Default''': 0
 
The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.


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


'''Default''': true
{{Prototype property|draw_circuit_wires|[[Types/bool|bool]]|true|optional=true}}
 
=== draw_circuit_wires ===
'''Type''': [[Types/bool]]
 
'''Default''': true
 
=== circuit_connector_sprites ===
'''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/SignalIDConnector]]
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 an accumulator is connected to the circuit network.
== Example ==
== Example ==
<syntaxhighlight lang="lua">{
<syntaxhighlight lang="lua">{
Line 79: Line 56:
     icon_size = 32,
     icon_size = 32,
     flags = {"placeable-neutral", "player-creation"},
     flags = {"placeable-neutral", "player-creation"},
     minable = {hardness = 0.2, mining_time = 0.5, result = "accumulator"},
     minable = {mining_time = 0.1, result = "accumulator"},
     max_health = 150,
     max_health = 150,
     corpse = "medium-remnants",
     corpse = "accumulator-remnants",
     collision_box = {{-0.9, -0.9}, {0.9, 0.9}},
     collision_box = {{-0.9, -0.9}, {0.9, 0.9}},
     selection_box = {{-1, -1}, {1, 1}},
     selection_box = {{-1, -1}, {1, 1}},
Line 89: Line 66:
       type = "electric",
       type = "electric",
       buffer_capacity = "5MJ",
       buffer_capacity = "5MJ",
       usage_priority = "terciary",
       usage_priority = "tertiary",
       input_flow_limit = "300kW",
       input_flow_limit = "300kW",
       output_flow_limit = "300kW"
       output_flow_limit = "300kW"
     },
     },
     picture =
     picture = accumulator_picture(),
    {
     charge_animation = accumulator_charge(),
      filename = "__base__/graphics/entity/accumulator/accumulator.png",
      priority = "extra-high",
      width = 124,
      height = 103,
      shift = {0.6875, -0.203125}
    },
     charge_animation =
    {
      filename = "__base__/graphics/entity/accumulator/accumulator-charge-animation.png",
      width = 138,
      height = 135,
      line_length = 8,
      frame_count = 24,
      shift = {0.46875, -0.640625},
      animation_speed = 0.5
    },


     charge_cooldown = 30,
     charge_cooldown = 30,
     charge_light = {intensity = 0.3, size = 7, color = {r = 1.0, g = 1.0, b = 1.0}},
     charge_light = {intensity = 0.3, size = 7, color = {r = 1.0, g = 1.0, b = 1.0}},
     discharge_animation =
     discharge_animation = accumulator_discharge(),
    {
      filename = "__base__/graphics/entity/accumulator/accumulator-discharge-animation.png",
      width = 147,
      height = 128,
      line_length = 8,
      frame_count = 24,
      shift = {0.390625, -0.53125},
      animation_speed = 0.5
    },
     discharge_cooldown = 60,
     discharge_cooldown = 60,
     discharge_light = {intensity = 0.7, size = 7, color = {r = 1.0, g = 1.0, b = 1.0}},
     discharge_light = {intensity = 0.7, size = 7, color = {r = 1.0, g = 1.0, b = 1.0}},

Revision as of 16:54, 12 January 2021

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/EntityWithHealth.

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"}
  }