Prototype/Roboport: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Updated styling of prototype doc migration note)
(Removed old prototype docs)
Tag: Replaced
 
Line 2: Line 2:


</p><p>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].</p></div>
</p><p>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].</p></div>
{{Prototype parent|Prototype/EntityWithOwner}}
A [[roboport]].
{{Prototype TOC|roboport}}
== Mandatory properties ==
This prototype inherits all the properties from [[Prototype/EntityWithOwner]].
{{Prototype property|energy_source|[[Types/EnergySource|EnergySource]]}}
The roboport's energy source. Must be an electric or void energy source.
{{Prototype property|energy_usage|[[Types/Energy|Energy]]}}
The amount of energy the roboport uses when idle.
{{Prototype property|recharge_minimum|[[Types/Energy|Energy]]}}
Minimum charge that the roboport has to have after a blackout (0 charge/buffered energy) to begin working again. Additionally, freshly placed roboports will have their energy buffer filled with <code>0.25 × recharge_minimum</code> energy.
Must be larger than or equal to <code>energy_usage</code> otherwise during low power the roboport will toggle on and off every tick.
{{Prototype property|robot_slots_count|[[Types/ItemStackIndex|ItemStackIndex]]}}
The number of robot slots in the roboport.
{{Prototype property|material_slots_count|[[Types/ItemStackIndex|ItemStackIndex]]}}
The number of repair pack slots in the roboport.
{{Prototype property|base|[[Types/Sprite|Sprite]]}}
{{Prototype property|base_patch|[[Types/Sprite|Sprite]]}}
{{Prototype property|base_animation|[[Types/Animation|Animation]]}}
The animation played when the roboport is idle.
{{Prototype property|door_animation_up|[[Types/Animation|Animation]]}}
{{Prototype property|door_animation_down|[[Types/Animation|Animation]]}}
{{Prototype property|request_to_open_door_timeout|[[Types/uint32|uint32]]}}
{{Prototype property|recharging_animation|[[Types/Animation|Animation]]}}
The animation played at each charging point when a robot is charging there.
{{Prototype property|spawn_and_station_height|[[Types/float|float]]}}
Presumably states the height of the charging stations and thus an additive offset for the charging_offsets.
{{Prototype property|charge_approach_distance|[[Types/float|float]]}}
The distance (in tiles) from the roboport at which robots will wait to charge.
Notably, if the robot is already in range, then it will simply wait at its current position.
{{Prototype property|logistics_radius|[[Types/float|float]]}}
Can't be negative.
{{Prototype property|construction_radius|[[Types/float|float]]}}
Can't be negative.
{{Prototype property|charging_energy|[[Types/Energy|Energy]]}}
The maximum power provided to each charging station.
== Optional properties ==
{{Prototype property|open_door_trigger_effect|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}
{{Prototype property|close_door_trigger_effect|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}
{{Prototype property|default_available_logistic_output_signal|[[Types/SignalIDConnector|SignalIDConnector]]|optional=true}}
{{Prototype property|default_total_logistic_output_signal|[[Types/SignalIDConnector|SignalIDConnector]]|optional=true}}
{{Prototype property|default_available_construction_output_signal|[[Types/SignalIDConnector|SignalIDConnector]]|optional=true}}
{{Prototype property|default_total_construction_output_signal|[[Types/SignalIDConnector|SignalIDConnector]]|optional=true}}
{{Prototype property|circuit_wire_connection_point|[[Types/WireConnectionPoint|WireConnectionPoint]]|optional=true}}
{{Prototype property|circuit_wire_max_distance|[[Types/double|double]]|0|optional=true}}
The maximum circuit wire distance for this entity.
{{Prototype property|draw_copper_wires|[[Types/bool|bool]]|true|optional=true}}
{{Prototype property|draw_circuit_wires|[[Types/bool|bool]]|true|optional=true}}
{{Prototype property|circuit_connector_sprites|[[Types/CircuitConnectorSprites|CircuitConnectorSprites]]|optional=true}}
{{Prototype property|spawn_and_station_shadow_height_offset|[[Types/float|float]]|0|optional=true}}
{{Prototype property|draw_logistic_radius_visualization|[[Types/bool|bool]]|true|optional=true}}
{{Prototype property|draw_construction_radius_visualization|[[Types/bool|bool]]|true|optional=true}}
{{Prototype property|recharging_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}
The light emitted when charging a robot.
{{Prototype property|charging_station_count|[[Types/uint32|uint32]]|0|optional=true}}
How many charging points this roboport has. If this is 0, the length of the charging_offsets table is used to calculate the charging station count.
{{Prototype property|charging_distance|[[Types/float|float]]|0.0|optional=true}}
{{Prototype property|charging_station_shift|[[Types/vector|vector]]|optional=true}}
{{Prototype property|charging_threshold_distance|[[Types/float|float]]|1.0|optional=true}}
Unused.
{{Prototype property|robot_vertical_acceleration|[[Types/float|float]]|0.01|optional=true}}
{{Prototype property|stationing_offset|[[Types/vector|vector]]|optional=true}}
The offset from the center of the roboport at which robots will enter and exit.
{{Prototype property|robot_limit|[[Types/ItemCountType|ItemCountType]]|max uint|optional=true}}
Unused.
{{Prototype property|robots_shrink_when_entering_and_exiting|[[Types/bool|bool]]|false|optional=true}}
{{Prototype property|charging_offsets|[[Types/table|table]] of [[Types/vector|vector]]|optional=true}}
The offsets from the center of the roboport at which robots will charge. Only used if charging_station_count is equal to 0.
{{Prototype property|logistics_connection_distance|[[Types/float|float]]|value of <code>logistics_radius</code>|optional=true}}
Must be >= <code>logistics_radius</code>.
== Example ==
<syntaxhighlight lang="lua">{
  type = "roboport",
  name = "roboport",
  icon = "__base__/graphics/icons/roboport.png",
  icon_size = 64, icon_mipmaps = 4,
  flags = {"placeable-player", "player-creation"},
  minable = {mining_time = 0.1, result = "roboport"},
  max_health = 500,
  corpse = "roboport-remnants",
  dying_explosion = "roboport-explosion",
  collision_box = {{-1.7, -1.7}, {1.7, 1.7}},
  selection_box = {{-2, -2}, {2, 2}},
  resistances =
  {
    {
      type = "fire",
      percent = 60
    },
    {
      type = "impact",
      percent = 30
    }
  },
  energy_source =
  {
    type = "electric",
    usage_priority = "secondary-input",
    input_flow_limit = "5MW",
    buffer_capacity = "100MJ"
  },
  recharge_minimum = "40MJ",
  energy_usage = "50kW",
  charging_energy = "1000kW",
  logistics_radius = 25,
  construction_radius = 55,
  charge_approach_distance = 5,
  robot_slots_count = 7,
  material_slots_count = 7,
  stationing_offset = {0, 0},
  charging_offsets =
  {
    {-1.5, -0.5}, {1.5, -0.5}, {1.5, 1.5}, {-1.5, 1.5}
  },
  working_sound =
  {
      sound = { filename = "__base__/sound/roboport-working.ogg", volume = 0.4 },
      max_sounds_per_type = 3,
      audible_distance_modifier = 0.75
  },
  recharging_light = {intensity = 0.2, size = 3, color = {r = 0.5, g = 0.5, b = 1.0}},
  request_to_open_door_timeout = 15,
  spawn_and_station_height = -0.1,
  draw_logistic_radius_visualization = true,
  draw_construction_radius_visualization = true,
  default_available_logistic_output_signal = {type = "virtual", name = "signal-X"},
  default_total_logistic_output_signal = {type = "virtual", name = "signal-Y"},
  default_available_construction_output_signal = {type = "virtual", name = "signal-Z"},
  default_total_construction_output_signal = {type = "virtual", name = "signal-T"},
  base =
  {
      layers =
      {
        {
          filename = "__base__/graphics/entity/roboport/roboport-base.png",
          width = 143,
          height = 135,
          shift = {0.5, 0.25},
          hr_version =
          {
            filename = "__base__/graphics/entity/roboport/hr-roboport-base.png",
            width = 228,
            height = 277,
            shift = util.by_pixel(2, 7.75),
            scale = 0.5
          }
        },
        {
          filename = "__base__/graphics/entity/roboport/roboport-shadow.png",
          width = 147,
          height = 101,
          draw_as_shadow = true,
          shift = util.by_pixel(28.5, 19.25),
          hr_version =
          {
            filename = "__base__/graphics/entity/roboport/hr-roboport-shadow.png",
            width = 294,
            height = 201,
            draw_as_shadow = true,
            force_hr_shadow = true,
            shift = util.by_pixel(28.5, 19.25),
            scale = 0.5
          }
        }
      }
  },
  base_patch =
  {
      filename = "__base__/graphics/entity/roboport/roboport-base-patch.png",
      priority = "medium",
      width = 69,
      height = 50,
      frame_count = 1,
      shift = {0.03125, 0.203125},
      hr_version =
      {
        filename = "__base__/graphics/entity/roboport/hr-roboport-base-patch.png",
        priority = "medium",
        width = 138,
        height = 100,
        frame_count = 1,
        shift = util.by_pixel(1.5, 5),
        scale = 0.5
      }
  },
  base_animation =
  {
      filename = "__base__/graphics/entity/roboport/roboport-base-animation.png",
      priority = "medium",
      width = 42,
      height = 31,
      frame_count = 8,
      animation_speed = 0.5,
      shift = {-0.5315, -1.9375},
      hr_version =
      {
        filename = "__base__/graphics/entity/roboport/hr-roboport-base-animation.png",
        priority = "medium",
        width = 83,
        height = 59,
        frame_count = 8,
        animation_speed = 0.5,
        shift = util.by_pixel(-17.75, -61.25),
        scale = 0.5
      }
  },
  door_animation_up =
  {
      filename = "__base__/graphics/entity/roboport/roboport-door-up.png",
      priority = "medium",
      width = 52,
      height = 20,
      frame_count = 16,
      shift = {0.015625, -0.890625},
      hr_version =
      {
        filename = "__base__/graphics/entity/roboport/hr-roboport-door-up.png",
        priority = "medium",
        width = 97,
        height = 38,
        frame_count = 16,
        shift = util.by_pixel(-0.25, -29.5),
        scale = 0.5
      }
  },
  door_animation_down =
  {
      filename = "__base__/graphics/entity/roboport/roboport-door-down.png",
      priority = "medium",
      width = 52,
      height = 22,
      frame_count = 16,
      shift = {0.015625, -0.234375},
      hr_version =
      {
        filename = "__base__/graphics/entity/roboport/hr-roboport-door-down.png",
        priority = "medium",
        width = 97,
        height = 41,
        frame_count = 16,
        shift = util.by_pixel(-0.25,-9.75),
        scale = 0.5
      }
  },
  recharging_animation =
  {
      filename = "__base__/graphics/entity/roboport/roboport-recharging.png",
      draw_as_glow = true,
      priority = "high",
      width = 37,
      height = 35,
      frame_count = 16,
      scale = 1.5,
      animation_speed = 0.5,
  },
  water_reflection =
  {
      pictures =
      {
        filename = "__base__/graphics/entity/roboport/roboport-reflection.png",
        priority = "extra-high",
        width = 28,
        height = 28,
        shift = util.by_pixel(0, 75),
        variation_count = 1,
        scale = 5
      },
      rotate = false,
      orientation_to_variation = false
  }
}</syntaxhighlight>

Latest revision as of 14:33, 25 October 2024

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