Prototype/Roboport: Difference between revisions
m (→Mandatory properties: Factorio uses watts in the roboport prototype, so describing charging_energy with power seems more appropriate) |
m (Explain that logistics_connection_distance defaults to the value of logistics_radius) |
||
Line 113: | Line 113: | ||
The offsets from the center of the roboport at which robots will charge. Only used if charging_station_count is equal to 0. | 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]]|value of <code>logistics_radius</code>|optional=true}} | ||
Must be >= <code>logistics_radius</code>. | Must be >= <code>logistics_radius</code>. | ||
Revision as of 08:57, 19 May 2023
Template:Prototype parent A roboport.
Mandatory properties
This prototype inherits all the properties from Prototype/EntityWithOwner.
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
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 0.25 × recharge_minimum
energy.
Must be larger than or equal to energy_usage
otherwise during low power the roboport will toggle on and off every tick.
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 The animation played when the roboport is idle.
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 maximum power provided to each charging station.
Optional properties
Template:Prototype property The maximum circuit wire distance for this entity.
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 Unused.
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 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
}
}