Skip to content

Commit e7432f4

Browse files
committed
Optimize events & fix overdelivery
1 parent 3fe5e9c commit e7432f4

File tree

3 files changed

+15
-24
lines changed

3 files changed

+15
-24
lines changed

mods/se-cargo-rocket-construction-helper/control.lua

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,18 @@ end)
2727

2828
--
2929

30-
local events = {
31-
[defines.events.on_built_entity] = silo.on_created_entity,
32-
[defines.events.on_robot_built_entity] = silo.on_created_entity,
33-
[defines.events.script_raised_built] = silo.on_created_entity,
34-
[defines.events.script_raised_revive] = silo.on_created_entity,
35-
[defines.events.on_entity_cloned] = silo.on_created_entity,
36-
}
37-
38-
for event, handler in pairs(events) do
39-
script.on_event(event, handler)
30+
for _, event in ipairs({
31+
defines.events.on_built_entity,
32+
defines.events.on_robot_built_entity,
33+
defines.events.script_raised_built,
34+
defines.events.script_raised_revive,
35+
}) do
36+
script.on_event(event, silo.on_created_entity, {
37+
{filter = 'name', name = 'se-rocket-launch-pad'},
38+
})
4039
end
4140

41+
4242
script.on_nth_tick(60 * 10, function()
4343
silo.every_10_seconds()
4444
end)

mods/se-cargo-rocket-construction-helper/info.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "se-cargo-rocket-construction-helper",
33
"title": "Space Exploration - cargo rocket construction helper",
44
"description": "Delivers the capsule and rocket parts to the silo with construction robots.",
5-
"version": "1.0.11",
5+
"version": "1.0.12",
66
"author": "Quezler",
77
"factorio_version": "1.1",
88
"dependencies": [

mods/se-cargo-rocket-construction-helper/scripts/silo.lua

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,9 @@ function silo.init()
1111

1212
end
1313

14-
function silo.is_valid_cargo_rocket_silo(entity)
15-
if not entity then return false end
16-
if not entity.valid then return false end
17-
if entity.type ~= "container" then return false end
18-
if entity.name ~= "se-rocket-launch-pad" then return false end
19-
20-
return true
21-
end
22-
2314
function silo.on_created_entity(event)
2415
local entity = event.created_entity or event.entity or event.destination
25-
if not silo.is_valid_cargo_rocket_silo(entity) then return end
2616

27-
-- game.print(entity.name)
2817
silo.register(entity)
2918
end
3019

@@ -65,8 +54,10 @@ function silo.random_tick(entry)
6554

6655
--
6756

68-
local missing_sections = 100 - entry.combinator.get_or_create_control_behavior().get_signal(2).count -- todo: - any sections still in the container
69-
local missing_capsules = 1 - entry.combinator.get_or_create_control_behavior().get_signal(3).count -- todo: - any capsules still in the container
57+
local container_inventory = entry.container.get_inventory(defines.inventory.chest)
58+
59+
local missing_sections = 100 - entry.combinator.get_or_create_control_behavior().get_signal(2).count - container_inventory.get_item_count('se-cargo-rocket-section')
60+
local missing_capsules = 1 - entry.combinator.get_or_create_control_behavior().get_signal(3).count - container_inventory.get_item_count('se-space-capsule')
7061

7162
if missing_sections > 0 or missing_capsules > 0 then
7263

0 commit comments

Comments
 (0)