]> git.somenet.org - factorio/some-resourcespam.git/blob - control.lua
RELEASE 2.0.2 - Correctly skip spamming non-nauvis. This time for real... hopefully
[factorio/some-resourcespam.git] / control.lua
1 -- Iterate over every tile in the new chunk and spam with random resources, if empty and possible.
2 script.on_event(defines.events.on_chunk_generated, function (event)
3     -- this mod is intended as an early game challenge. Therefore do nothing on any non-initial surface.
4     if not (event.surface.index == 1) then return end
5
6     -- prevent one big continuous patch
7     if (event.area.left_top.x/32)%10 == 5 or (event.area.left_top.y/32)%10 == 5 then
8         return
9     end
10
11     -- dont spam uranium as it will halt normal miners :/
12     ores = {"stone", "iron-ore", "copper-ore", "coal"}
13     for x=event.area.left_top.x+0, event.area.right_bottom.x-1 do
14         for y=event.area.left_top.y+0, event.area.right_bottom.y-1 do
15             if  event.surface.get_tile(x, y).collides_with("ground_tile")
16                 and #event.surface.find_entities_filtered{area={{x,y}, {x+1, y+1}}, type="resource"} == 0
17                 and #event.surface.find_entities_filtered{area={{x-1, y-1}, {x+1, y+1}}, name="cliff"} == 0
18             then
19                 cnt = math.random(20, 50)
20                 ore = math.random(1, 4)
21                 event.surface.create_entity({name=ores[ore], amount=cnt, position={x, y}})
22             end
23         end
24     end
25 end)