Prototype/Roboport: Difference between revisions
(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. | ||
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 | 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_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. | 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 | 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. | 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 | 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
Prototype definitions » PrototypeBase » Prototype/Entity » Prototype/EntityWithHealth » Prototype/EntityWithOwner » Prototype/Roboport
A roboport.
Mandatory properties
This prototype inherits all the properties from Prototype/EntityWithHealth.
energy_source
Type: EnergySource
The roboport's energy source. Must be an electric or void energy source.
energy_usage
Type: Energy
The amount of energy the roboport uses when idle.
recharge_minimum
Type: Energy
robot_slots_count
Type: ItemStackIndex
The number of robot slots in the roboport.
material_slots_count
Type: ItemStackIndex
The number of repair pack slots in the roboport.
base
Type: Sprite
base_patch
Type: Sprite
base_animation
Type: Animation
The animation played when the roboport is idle.
door_animation_up
Type: Animation
door_animation_down
Type: Animation
request_to_open_door_timeout
Type: uint32
recharging_animation
Type: Animation
The animation played at each charging point when a robot is charging there.
spawn_and_station_height
Type: float
Presumably states the height of the charging stations and thus an additive offset for the charging_offsets.
charge_approach_distance
Type: 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.
logistics_radius
Type: float
Can't be negative.
construction_radius
Type: float
Can't be negative.
charging_energy
Type: Energy
The amount of energy that is given to a robot per tick.
Optional properties
open_door_trigger_effect
Type: TriggerEffect
close_door_trigger_effect
Type: TriggerEffect
default_available_logistic_output_signal
Type: SignalIDConnector
default_total_logistic_output_signal
Type: SignalIDConnector
default_available_construction_output_signal
Type: SignalIDConnector
default_total_construction_output_signal
Type: SignalIDConnector
circuit_wire_connection_point
Type: WireConnectionPoint
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
spawn_and_station_shadow_height_offset
Type: float
Default: 0
draw_logistic_radius_visualization
Type: bool
Default: true
draw_construction_radius_visualization
Type: bool
Default: true
recharging_light
Type: LightDefinition
The light emitted when charging a robot.
charging_station_count
Type: uint32
Default: 0
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.
charging_distance
Type: float
Default: 0.0
charging_station_shift
Type: vector
charging_threshold_distance
Type: float
Default: 1.0
Unused.
robot_vertical_acceleration
Type: float
Default: 0.01
stationing_offset
Type: vector
The offset from the center of the roboport at which robots will enter and exit.
robot_limit
Type: ItemCountType
Default: max uint
Unused.
robots_shrink_when_entering_and_exiting
Type: bool
Default: false
charging_offsets
Type: table of vector
The offsets from the center of the roboport at which robots will charge. Only used if charging_station_count is equal to 0.
logistics_connection_distance
Type: float
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
}
}