]> git.somenet.org - factorio/some-resourcespam.git/blob - control.lua
RELEASE 2.0.0 - Initial compatibility with Factorio 2.0
[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 non-nauvis.
4     if not event.surface.planet.name == "nauvis" then
5         return
6     end
7
8     -- prevent one big continuous patch
9     if (event.area.left_top.x/32)%10 == 5 or (event.area.left_top.y/32)%10 == 5 then
10         return
11     end
12
13     -- dont spam uranium as it will halt normal miners :/
14     ores = {"stone", "iron-ore", "copper-ore", "coal"}
15     for x=event.area.left_top.x+0, event.area.right_bottom.x-1 do
16         for y=event.area.left_top.y+0, event.area.right_bottom.y-1 do
17             if  event.surface.get_tile(x, y).collides_with("ground_tile")
18                 and #event.surface.find_entities_filtered{area={{x,y}, {x+1, y+1}}, type="resource"} == 0
19                 and #event.surface.find_entities_filtered{area={{x-1, y-1}, {x+1, y+1}}, name="cliff"} == 0
20             then
21                 cnt = math.random(20, 50)
22                 ore = math.random(1, 4)
23                 event.surface.create_entity({name=ores[ore], amount=cnt, position={x, y}})
24             end
25         end
26     end
27 end)