Prototype/Accumulator: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(→‎Example: updated)
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Basics==
{{Prototype parent|Prototype/EntityWithHealth}}
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/EntityWithHealth]].


=== 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 ===
{{Prototype property|discharge_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}
'''Type''': [[Types/uint16]]
Note that some kind of discharge_animation must also be defined for the light to appear.
 
How long (in ticks) the animation will last after discharge has been initialized.
 
=== 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]]
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 ==
== Example ==
Line 66: 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 76: 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"}
  }