Prototype/Roboport: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Capitalization and spaces after '.' and ',')
(Improved some descriptions)
Line 41: Line 41:


{{Prototype property|charge_approach_distance|[[Types/float|float]]}}
{{Prototype property|charge_approach_distance|[[Types/float|float]]}}
The distance from the roboport at which robots will wait to charge.
The distance (in tiles) from the roboport at which robots will wait to charge.
Notablely, if robots are already in range, then it will simplely wait at spot.
Notably, if the robot is already in range, then it will simply wait at its current position.


{{Prototype property|logistics_radius|[[Types/float|float]]}}
{{Prototype property|logistics_radius|[[Types/float|float]]}}
Line 88: Line 88:


{{Prototype property|charging_station_count|[[Types/uint32|uint32]]|0|optional=true}}
{{Prototype property|charging_station_count|[[Types/uint32|uint32]]|0|optional=true}}
How many charging point this roboport has, if value is 0, roboport will try to use charging_offsets to know charging point instead.
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.
(in vanilla game, roboport charging point is defined by charging_offsets)


{{Prototype property|charging_distance|[[Types/float|float]]|0.0|optional=true}}
{{Prototype property|charging_distance|[[Types/float|float]]|0.0|optional=true}}
Line 96: Line 95:


{{Prototype property|charging_threshold_distance|[[Types/float|float]]|1.0|optional=true}}
{{Prototype property|charging_threshold_distance|[[Types/float|float]]|1.0|optional=true}}
Unused. (only used in [[Prototype/RoboportEquipment|personal roboport]])
Unused.


{{Prototype property|robot_vertical_acceleration|[[Types/float|float]]|0.01|optional=true}}
{{Prototype property|robot_vertical_acceleration|[[Types/float|float]]|0.01|optional=true}}


{{Prototype property|stationing_offset|[[Types/vector|vector]]|optional=true}}
{{Prototype property|stationing_offset|[[Types/vector|vector]]|optional=true}}
The offset from the centre of the roboport at which robots will enter and exit.
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}}
{{Prototype property|robot_limit|[[Types/ItemCountType|ItemCountType]]|max uint|optional=true}}
Unused. (only used in [[Prototype/RoboportEquipment|personal roboport]])
Unused.


{{Prototype property|robots_shrink_when_entering_and_exiting|[[Types/bool|bool]]|false|optional=true}}
{{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}}
{{Prototype property|charging_offsets|[[Types/table|table]] of [[Types/vector|vector]]|optional=true}}
The offsets from the centre of the roboport at which robots will charge. Only used if charging_station_count is equal to zero.
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]]|optional=true}}
{{Prototype property|logistics_connection_distance|[[Types/float|float]]|optional=true}}
Must be >= <code>logistics_radius</code>.
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>

Revision as of 16:05, 27 October 2021

Template:Prototype parent A roboport.

Template:Prototype TOC

Mandatory properties

This prototype inherits all the properties from Prototype/EntityWithHealth.

Template:Prototype property The roboport's energy source. Must be an electric or void energy source.

Template:Prototype property The amount of energy the roboport uses when idle.

Template:Prototype property

Template:Prototype property The number of robot slots in the roboport.

Template:Prototype property The number of repair pack slots in the roboport.

Template:Prototype property

Template:Prototype property

Template:Prototype property The animation played when the roboport is idle.

Template:Prototype property

Template:Prototype property

Template:Prototype property

Template:Prototype property The animation played at each charging point when a robot is charging there.

Template:Prototype property Presumably states the height of the charging stations and thus an additive offset for the charging_offsets.

Template:Prototype property 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.

Template:Prototype property Can't be negative.

Template:Prototype property Can't be negative.

Template:Prototype property The amount of energy that is given to a robot per tick.

Optional properties

Template:Prototype property

Template:Prototype property

Template:Prototype property

Template:Prototype property

Template:Prototype property

Template:Prototype property

Template:Prototype property

Template:Prototype property The maximum circuit wire distance for this entity.

Template:Prototype property

Template:Prototype property

Template:Prototype property

Template:Prototype property

Template:Prototype property

Template:Prototype property

Template:Prototype property The light emitted when charging a robot.

Template:Prototype property 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.

Template:Prototype property

Template:Prototype property

Template:Prototype property Unused.

Template:Prototype property

Template:Prototype property The offset from the center of the roboport at which robots will enter and exit.

Template:Prototype property Unused.

Template:Prototype property

Template:Prototype property The offsets from the center of the roboport at which robots will charge. Only used if charging_station_count is equal to 0.

Template:Prototype property Must be >= logistics_radius.

Example

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