Hello,
I think, I found a mistake in the docs:
In
[https://lua-api.factorio.com/latest/cla ... _condition][LuaGenericOnOffControlBehavior]
the example for the circuit condition does not work in my case.
Instead of:
a_behavior.circuit_condition = {condition={
comparator=">",
first_signal={type="item", name="rail-chain-signal"},
constant=4}
}
the following worked for me:
a_behavior.circuit_condition = {
comparator=">",
first_signal={type="item", name="rail-chain-signal"},
constant=4
}
I am unsure if the documentation is also incorrect and "CircuitConditionDefinition" should be replaced with "CircuitCondition" in "circuit_condition :: Read|Write CircuitConditionDefinition".
I am unsure if this is also the case for logistic_condition of LuaGenericOnOffControlBehavior.
My code (ran in the editor mode accessed via STRG+SHIFT+F11 in a normal game of factorio space age):
local surface = game.player.surface -- to create entities
local position = game.player.position
local stacks_per_chest = 48
function create_fast_inserter(position, direction)
local inserter = surface.create_entity{
name = "fast-inserter",
position = position,
force = game.player.force,
direction = direction
-- conditions = { circuit = {comparator = "<", first_signal = "iron-ore", constant = 4}, filters = {{index = 1, name = "iron-ore"}}
-- }
}
return inserter
end
function create_buffer_chest(position, recipe)
local buffer_chest = surface.create_entity{
name = "buffer-chest",
position = position,
force = game.player.force
}
local requester_point = buffer_chest.get_requester_point()
requester_point.trash_not_requested = true
local request_section = requester_point.get_section(1)
local name_of_product = recipe.products[1].name
local stack_size = prototypes.item[name_of_product].stack_size
local logistic_filter = {
value = {type = "item", name = name_of_product, quality = "normal"},
min = stack_size * stacks_per_chest
}
request_section.set_slot(1, logistic_filter)
local inserter = create_fast_inserter({x = position.x + 2, y = position.y}, defines.direction.west)
local connector_inserter = inserter.get_wire_connector(defines.wire_connector_id.circuit_green, true)
local connector_buffer_chest = buffer_chest.get_wire_connector(defines.wire_connector_id.circuit_green, true)
connector_inserter.connect_to(connector_buffer_chest)
local inserter_behavior = inserter.get_or_create_control_behavior()
--inserter_behavior.circuit_set_filters = true
inserter_behavior.circuit_enable_disable = true
inserter_behavior.circuit_condition = {
comparator=">",
first_signal={type="item", name="rail-chain-signal"},
constant=4
}
end
local recipe = game.player.force.recipes["electric-engine-unit"]
create_buffer_chest({x = position.x + 3, y = position.y}, recipe)
Faulty Example for circuit_condition :: Read|Write CircuitConditionDefinition
Re: Faulty Example for circuit_condition :: Read|Write CircuitConditionDefinition
Thanks for the detailed report! Fixed the docs and examples for the next release.