1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2024-12-12 10:04:40 +02:00

bermuda triangle

This commit is contained in:
grilledham 2018-06-16 12:57:11 +01:00
parent 89988cbad4
commit 40669a0c2a
33 changed files with 1269 additions and 20 deletions

View File

@ -145,14 +145,14 @@ local function pre_player_mined_item(event)
end
local entity_drop_amount = {
['small-biter'] = {low = -62, high = 1},
--[[['small-biter'] = {low = -62, high = 1},
['small-spitter'] = {low = -62, high = 1},
['medium-biter'] = {low = -14, high = 1},
['medium-spitter'] = {low = -14, high = 1},
['big-biter'] = {low = -2, high = 1},
['big-spitter'] = {low = -2, high = 1},
['behemoth-biter'] = {low = 1, high = 1},
['behemoth-spitter'] = {low = 1, high = 1},
['behemoth-spitter'] = {low = 1, high = 1}, ]]
['biter-spawner'] = {low = 5, high = 15},
['spitter-spawner'] = {low = 5, high = 15},
['small-worm-turret'] = {low = 2, high = 8},

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 B

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,64,},
{1,29,2,6,1,29,},
{1,29,2,7,1,28,},
{1,28,2,8,1,28,},
{1,27,2,10,1,27,},
{1,27,2,10,1,27,},
{1,26,2,12,1,26,},
{1,26,2,13,1,25,},
{1,25,2,14,1,25,},
{1,25,2,15,1,24,},
{1,24,2,16,1,24,},
{1,23,2,18,1,23,},
{1,23,2,18,1,23,},
{1,22,2,20,1,22,},
{1,22,2,20,1,22,},
{1,21,2,22,1,21,},
{1,21,2,23,1,20,},
{1,20,2,24,1,20,},
{1,19,2,26,1,19,},
{1,19,2,26,1,19,},
{1,18,2,28,1,18,},
{1,18,2,16,1,2,2,10,1,18,},
{1,17,2,16,1,5,2,9,1,17,},
{1,17,2,15,1,7,2,9,1,16,},
{1,16,2,15,1,9,2,8,1,16,},
{1,15,2,15,1,11,2,8,1,15,},
{1,15,2,14,1,13,2,7,1,15,},
{1,14,2,14,1,16,2,6,1,14,},
{1,14,2,13,1,11,2,4,1,3,2,5,1,14,},
{1,13,2,13,1,11,2,4,1,4,2,6,1,13,},
{1,13,2,12,1,11,2,4,1,4,2,7,1,13,},
{1,12,2,12,1,10,2,5,1,4,2,9,1,12,},
{1,11,2,12,1,10,2,5,1,4,2,11,1,11,},
{1,11,2,11,1,10,2,5,1,4,2,12,1,11,},
{1,10,2,11,1,10,2,5,1,4,2,14,1,10,},
{1,10,2,10,1,10,2,5,1,3,2,16,1,10,},
{1,9,2,10,1,10,2,5,1,3,2,18,1,9,},
{1,9,2,9,1,10,2,5,1,3,2,19,1,9,},
{1,8,2,9,1,10,2,5,1,3,2,21,1,8,},
{1,8,2,8,1,10,2,5,1,3,2,23,1,7,},
{1,7,2,9,1,9,2,5,1,3,2,24,1,7,},
{1,6,2,9,1,9,2,5,1,3,2,26,1,6,},
{1,6,2,10,1,7,2,5,1,3,2,27,1,6,},
{1,5,2,11,1,6,2,5,1,3,2,29,1,5,},
{1,5,2,11,1,7,2,3,1,3,2,30,1,5,},
{1,4,2,13,1,11,2,32,1,4,},
{1,4,2,15,1,8,2,33,1,4,},
{1,3,2,18,1,5,2,35,1,3,},
{1,2,2,21,1,2,2,37,1,2,},
{1,2,2,60,1,2,},
{1,1,2,62,1,1,},
{1,1,2,62,1,1,},
{2,64,},
{2,64,},
{2,64,},
{1,1,2,62,1,1,},
{1,1,2,61,1,2,},
{1,64,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,30,2,4,1,30,},
{1,29,2,6,1,29,},
{1,28,2,8,1,28,},
{1,28,2,9,1,27,},
{1,27,2,10,1,27,},
{1,26,2,12,1,26,},
{1,26,2,12,1,26,},
{1,25,2,14,1,25,},
{1,25,2,15,1,24,},
{1,24,2,16,1,24,},
{1,24,2,17,1,23,},
{1,23,2,18,1,23,},
{1,22,2,20,1,22,},
{1,22,2,20,1,22,},
{1,21,2,22,1,21,},
{1,21,2,22,1,21,},
{1,20,2,24,1,20,},
{1,20,2,10,1,4,2,11,1,19,},
{1,19,2,10,1,6,2,10,1,19,},
{1,18,2,10,1,8,2,10,1,18,},
{1,18,2,10,1,8,2,10,1,18,},
{1,17,2,11,1,8,2,11,1,17,},
{1,17,2,11,1,8,2,11,1,17,},
{1,16,2,12,1,8,2,12,1,16,},
{1,16,2,12,1,8,2,13,1,15,},
{1,15,2,13,1,8,2,13,1,15,},
{1,15,2,13,1,8,2,14,1,14,},
{1,14,2,14,1,8,2,14,1,14,},
{1,13,2,15,1,8,2,15,1,13,},
{1,13,2,15,1,8,2,15,1,13,},
{1,12,2,16,1,8,2,16,1,12,},
{1,12,2,16,1,8,2,16,1,12,},
{1,11,2,17,1,8,2,17,1,11,},
{1,11,2,17,1,8,2,18,1,10,},
{1,10,2,18,1,8,2,18,1,10,},
{1,9,2,19,1,8,2,19,1,9,},
{1,9,2,19,1,8,2,19,1,9,},
{1,8,2,21,1,6,2,21,1,8,},
{1,8,2,21,1,6,2,21,1,8,},
{1,7,2,24,1,2,2,24,1,7,},
{1,7,2,51,1,6,},
{1,6,2,52,1,6,},
{1,5,2,24,1,6,2,24,1,5,},
{1,5,2,23,1,8,2,23,1,5,},
{1,4,2,24,1,8,2,24,1,4,},
{1,4,2,24,1,8,2,24,1,4,},
{1,3,2,25,1,8,2,25,1,3,},
{1,3,2,25,1,8,2,25,1,3,},
{1,2,2,27,1,6,2,27,1,2,},
{1,1,2,29,1,4,2,29,1,1,},
{1,1,2,62,1,1,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{1,1,2,61,1,2,},
{1,64,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,30,2,4,1,30,},
{1,29,2,6,1,29,},
{1,28,2,8,1,28,},
{1,28,2,9,1,27,},
{1,27,2,10,1,27,},
{1,27,2,11,1,26,},
{1,26,2,12,1,26,},
{1,25,2,14,1,25,},
{1,25,2,14,1,25,},
{1,24,2,16,1,24,},
{1,24,2,16,1,24,},
{1,23,2,18,1,23,},
{1,23,2,19,1,22,},
{1,22,2,20,1,22,},
{1,21,2,22,1,21,},
{1,21,2,22,1,21,},
{1,20,2,24,1,20,},
{1,20,2,24,1,20,},
{1,19,2,26,1,19,},
{1,19,2,27,1,18,},
{1,18,2,28,1,18,},
{1,18,2,29,1,17,},
{1,17,2,30,1,17,},
{1,16,2,6,1,2,2,16,1,2,2,6,1,16,},
{1,16,2,5,1,4,2,14,1,4,2,5,1,16,},
{1,15,2,5,1,6,2,12,1,6,2,5,1,15,},
{1,15,2,4,1,8,2,10,1,8,2,4,1,15,},
{1,14,2,4,1,10,2,8,1,10,2,4,1,14,},
{1,14,2,3,1,12,2,6,1,12,2,4,1,13,},
{1,13,2,5,1,12,2,4,1,12,2,5,1,13,},
{1,12,2,7,1,12,2,2,1,12,2,7,1,12,},
{1,12,2,8,1,24,2,8,1,12,},
{1,11,2,10,1,22,2,10,1,11,},
{1,11,2,11,1,20,2,11,1,11,},
{1,10,2,13,1,18,2,13,1,10,},
{1,10,2,14,1,16,2,15,1,9,},
{1,9,2,16,1,14,2,16,1,9,},
{1,8,2,17,1,14,2,17,1,8,},
{1,8,2,17,1,14,2,17,1,8,},
{1,7,2,17,1,16,2,17,1,7,},
{1,7,2,16,1,18,2,16,1,7,},
{1,6,2,16,1,20,2,16,1,6,},
{1,6,2,15,1,22,2,15,1,6,},
{1,5,2,15,1,24,2,15,1,5,},
{1,5,2,14,1,12,2,2,1,12,2,15,1,4,},
{1,4,2,14,1,12,2,4,1,12,2,14,1,4,},
{1,3,2,14,1,12,2,6,1,12,2,14,1,3,},
{1,3,2,15,1,10,2,8,1,10,2,15,1,3,},
{1,2,2,17,1,8,2,10,1,8,2,17,1,2,},
{1,2,2,18,1,6,2,12,1,6,2,18,1,2,},
{1,1,2,20,1,4,2,14,1,4,2,20,1,1,},
{1,1,2,21,1,2,2,16,1,2,2,22,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{1,1,2,62,1,1,},
{1,2,2,60,1,2,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,30,2,5,1,29,},
{1,30,2,6,1,28,},
{1,29,2,8,1,27,},
{1,28,2,9,1,27,},
{1,28,2,10,1,26,},
{1,27,2,11,1,26,},
{1,27,2,12,1,25,},
{1,26,2,13,1,25,},
{1,26,2,14,1,24,},
{1,25,2,15,1,24,},
{1,24,2,17,1,23,},
{1,24,2,18,1,22,},
{1,23,2,19,1,22,},
{1,23,2,20,1,21,},
{1,22,2,21,1,21,},
{1,22,2,22,1,20,},
{1,21,2,6,1,3,2,6,1,2,2,6,1,20,},
{1,21,2,6,1,3,2,5,1,4,2,6,1,19,},
{1,20,2,7,1,3,2,5,1,4,2,7,1,18,},
{1,19,2,8,1,3,2,5,1,4,2,7,1,18,},
{1,19,2,8,1,3,2,5,1,4,2,8,1,17,},
{1,18,2,9,1,3,2,5,1,4,2,8,1,17,},
{1,18,2,9,1,4,2,4,1,4,2,9,1,16,},
{1,17,2,6,1,20,2,5,1,16,},
{1,17,2,6,1,20,2,6,1,15,},
{1,16,2,8,1,18,2,8,1,14,},
{1,15,2,9,1,17,2,9,1,14,},
{1,15,2,9,1,17,2,10,1,13,},
{1,14,2,10,1,17,2,10,1,13,},
{1,14,2,10,1,17,2,11,1,12,},
{1,13,2,11,1,17,2,11,1,12,},
{1,13,2,11,1,17,2,12,1,11,},
{1,12,2,13,1,16,2,13,1,10,},
{1,11,2,14,1,15,2,14,1,10,},
{1,11,2,20,1,4,2,20,1,9,},
{1,10,2,21,1,3,2,21,1,9,},
{1,10,2,21,1,3,2,22,1,8,},
{1,9,2,22,1,3,2,22,1,8,},
{1,9,2,22,1,3,2,23,1,7,},
{1,8,2,23,1,3,2,23,1,7,},
{1,7,2,24,1,3,2,24,1,6,},
{1,7,2,24,1,3,2,25,1,5,},
{1,6,2,25,1,3,2,25,1,5,},
{1,6,2,25,1,3,2,26,1,4,},
{1,5,2,26,1,3,2,10,1,3,2,13,1,4,},
{1,5,2,26,1,4,2,8,1,4,2,14,1,3,},
{1,4,2,27,1,4,2,8,1,4,2,14,1,3,},
{1,3,2,29,1,5,2,4,1,5,2,16,1,2,},
{1,3,2,29,1,14,2,17,1,1,},
{1,2,2,31,1,12,2,18,1,1,},
{1,2,2,32,1,10,2,20,},
{1,1,2,35,1,6,2,22,},
{1,1,2,63,},
{1,1,2,63,},
{1,1,2,63,},
{1,1,2,63,},
{1,2,2,62,},
{1,4,2,58,1,2,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,64,},
{1,29,2,6,1,29,},
{1,28,2,8,1,28,},
{1,28,2,8,1,28,},
{1,27,2,10,1,27,},
{1,27,2,11,1,26,},
{1,26,2,12,1,26,},
{1,26,2,13,1,25,},
{1,25,2,14,1,25,},
{1,24,2,16,1,24,},
{1,24,2,16,1,24,},
{1,23,2,18,1,23,},
{1,23,2,18,1,23,},
{1,22,2,20,1,22,},
{1,22,2,21,1,21,},
{1,21,2,22,1,21,},
{1,20,2,24,1,20,},
{1,20,2,24,1,20,},
{1,19,2,26,1,19,},
{1,19,2,26,1,19,},
{1,18,2,11,1,8,2,9,1,18,},
{1,18,2,11,1,9,2,9,1,17,},
{1,17,2,11,1,9,2,10,1,17,},
{1,16,2,12,1,9,2,11,1,16,},
{1,16,2,12,1,8,2,12,1,16,},
{1,15,2,12,1,9,2,13,1,15,},
{1,15,2,12,1,8,2,14,1,15,},
{1,14,2,12,1,9,2,15,1,14,},
{1,14,2,12,1,8,2,16,1,14,},
{1,13,2,13,1,8,2,17,1,13,},
{1,13,2,12,1,8,2,19,1,12,},
{1,12,2,13,1,16,2,11,1,12,},
{1,11,2,14,1,15,2,13,1,11,},
{1,11,2,13,1,15,2,14,1,11,},
{1,10,2,14,1,14,2,16,1,10,},
{1,10,2,14,1,14,2,16,1,10,},
{1,9,2,14,1,14,2,18,1,9,},
{1,9,2,21,1,6,2,20,1,8,},
{1,8,2,21,1,6,2,21,1,8,},
{1,7,2,22,1,6,2,22,1,7,},
{1,7,2,22,1,5,2,23,1,7,},
{1,6,2,22,1,5,2,25,1,6,},
{1,6,2,22,1,4,2,26,1,6,},
{1,5,2,23,1,4,2,27,1,5,},
{1,5,2,23,1,3,2,28,1,5,},
{1,4,2,23,1,3,2,30,1,4,},
{1,3,2,24,1,2,2,32,1,3,},
{1,3,2,24,1,2,2,32,1,3,},
{1,2,2,24,1,2,2,34,1,2,},
{1,2,2,24,1,1,2,35,1,2,},
{1,1,2,62,1,1,},
{1,1,2,62,1,1,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{1,1,2,62,1,1,},
{1,2,2,60,1,2,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,30,2,4,1,30,},
{1,29,2,6,1,29,},
{1,28,2,8,1,28,},
{1,28,2,9,1,27,},
{1,27,2,10,1,27,},
{1,26,2,12,1,26,},
{1,26,2,12,1,26,},
{1,25,2,14,1,25,},
{1,25,2,14,1,25,},
{1,24,2,16,1,24,},
{1,24,2,17,1,23,},
{1,23,2,18,1,23,},
{1,23,2,19,1,22,},
{1,22,2,20,1,22,},
{1,21,2,22,1,21,},
{1,21,2,22,1,21,},
{1,20,2,24,1,20,},
{1,20,2,25,1,19,},
{1,19,2,26,1,19,},
{1,19,2,27,1,18,},
{1,18,2,28,1,18,},
{1,17,2,14,1,2,2,14,1,17,},
{1,17,2,13,1,4,2,13,1,17,},
{1,16,2,14,1,4,2,14,1,16,},
{1,16,2,14,1,5,2,13,1,16,},
{1,15,2,14,1,6,2,14,1,15,},
{1,15,2,14,1,6,2,15,1,14,},
{1,14,2,14,1,8,2,14,1,14,},
{1,13,2,15,1,8,2,15,1,13,},
{1,13,2,14,1,3,2,1,1,6,2,14,1,13,},
{1,12,2,15,1,3,2,1,1,6,2,15,1,12,},
{1,12,2,14,1,3,2,2,1,7,2,14,1,12,},
{1,11,2,15,1,3,2,2,1,7,2,15,1,11,},
{1,11,2,14,1,3,2,2,1,9,2,15,1,10,},
{1,10,2,15,1,3,2,2,1,10,2,14,1,10,},
{1,10,2,14,1,3,2,3,1,10,2,15,1,9,},
{1,9,2,15,1,3,2,3,1,11,2,14,1,9,},
{1,8,2,15,1,4,2,3,1,11,2,15,1,8,},
{1,8,2,15,1,3,2,4,1,11,2,15,1,8,},
{1,7,2,16,1,3,2,5,1,11,2,15,1,7,},
{1,7,2,16,1,3,2,5,1,11,2,15,1,7,},
{1,6,2,17,1,3,2,5,1,10,2,17,1,6,},
{1,6,2,17,1,4,2,4,1,10,2,18,1,5,},
{1,5,2,18,1,4,2,3,1,11,2,18,1,5,},
{1,4,2,20,1,16,2,20,1,4,},
{1,4,2,21,1,15,2,20,1,4,},
{1,3,2,23,1,13,2,22,1,3,},
{1,3,2,24,1,10,2,24,1,3,},
{1,2,2,27,1,6,2,27,1,2,},
{1,2,2,61,1,1,},
{1,1,2,62,1,1,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{1,1,2,62,1,1,},
{1,2,2,60,1,2,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,30,2,4,1,30,},
{1,29,2,6,1,29,},
{1,28,2,8,1,28,},
{1,28,2,9,1,27,},
{1,27,2,10,1,27,},
{1,27,2,11,1,26,},
{1,26,2,12,1,26,},
{1,25,2,14,1,25,},
{1,25,2,14,1,25,},
{1,24,2,16,1,24,},
{1,24,2,16,1,24,},
{1,23,2,18,1,23,},
{1,23,2,19,1,22,},
{1,22,2,20,1,22,},
{1,21,2,22,1,21,},
{1,21,2,22,1,21,},
{1,20,2,24,1,20,},
{1,20,2,24,1,20,},
{1,19,2,26,1,19,},
{1,19,2,27,1,18,},
{1,18,2,28,1,18,},
{1,17,2,6,1,15,2,9,1,17,},
{1,17,2,5,1,17,2,2,1,2,2,4,1,17,},
{1,16,2,6,1,17,2,3,1,2,2,4,1,16,},
{1,16,2,6,1,17,2,3,1,3,2,3,1,16,},
{1,15,2,7,1,3,2,11,1,3,2,4,1,3,2,3,1,15,},
{1,15,2,7,1,3,2,11,1,3,2,4,1,4,2,2,1,15,},
{1,14,2,8,1,3,2,11,1,3,2,4,1,4,2,3,1,14,},
{1,14,2,8,1,3,2,11,1,3,2,4,1,4,2,4,1,13,},
{1,13,2,9,1,3,2,11,1,3,2,5,1,3,2,4,1,13,},
{1,12,2,10,1,3,2,11,1,3,2,6,1,2,2,5,1,12,},
{1,12,2,10,1,3,2,11,1,5,2,5,1,1,2,5,1,12,},
{1,11,2,11,1,20,2,4,1,1,2,6,1,11,},
{1,11,2,11,1,17,2,1,1,2,2,4,1,1,2,6,1,11,},
{1,10,2,12,1,17,2,2,1,1,2,4,1,1,2,7,1,10,},
{1,10,2,12,1,17,2,2,1,1,2,4,1,1,2,8,1,9,},
{1,9,2,13,1,17,2,2,1,1,2,4,1,1,2,8,1,9,},
{1,8,2,14,1,17,2,2,1,1,2,4,1,1,2,9,1,8,},
{1,8,2,14,1,17,2,2,1,1,2,4,1,1,2,9,1,8,},
{1,7,2,15,1,17,2,2,1,1,2,4,1,1,2,10,1,7,},
{1,7,2,15,1,17,2,2,1,1,2,4,1,1,2,10,1,7,},
{1,6,2,16,1,17,2,2,1,1,2,4,1,1,2,11,1,6,},
{1,6,2,16,1,17,2,2,1,1,2,4,1,1,2,11,1,6,},
{1,5,2,17,1,17,2,2,1,2,2,2,1,2,2,12,1,5,},
{1,4,2,18,1,17,2,3,1,4,2,14,1,4,},
{1,4,2,18,1,17,2,21,1,4,},
{1,3,2,19,1,17,2,22,1,3,},
{1,3,2,17,1,21,2,20,1,3,},
{1,2,2,18,1,21,2,21,1,2,},
{1,2,2,18,1,21,2,21,1,2,},
{1,1,2,19,1,21,2,22,1,1,},
{1,1,2,63,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{1,1,2,62,1,1,},
{1,3,2,58,1,3,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,30,2,4,1,30,},
{1,29,2,6,1,29,},
{1,28,2,8,1,28,},
{1,28,2,9,1,27,},
{1,27,2,10,1,27,},
{1,27,2,11,1,26,},
{1,26,2,12,1,26,},
{1,25,2,14,1,25,},
{1,25,2,14,1,25,},
{1,24,2,16,1,24,},
{1,24,2,16,1,24,},
{1,23,2,18,1,23,},
{1,23,2,19,1,22,},
{1,22,2,20,1,22,},
{1,21,2,22,1,21,},
{1,21,2,22,1,21,},
{1,20,2,24,1,20,},
{1,20,2,24,1,20,},
{1,19,2,26,1,19,},
{1,19,2,27,1,18,},
{1,18,2,28,1,18,},
{1,17,2,30,1,17,},
{1,17,2,13,1,4,2,13,1,17,},
{1,16,2,14,1,4,2,14,1,16,},
{1,16,2,14,1,4,2,14,1,16,},
{1,15,2,7,1,3,2,3,1,8,2,4,1,2,2,7,1,15,},
{1,15,2,6,1,22,2,6,1,15,},
{1,14,2,7,1,22,2,7,1,14,},
{1,14,2,8,1,20,2,9,1,13,},
{1,13,2,10,1,18,2,10,1,13,},
{1,12,2,10,1,20,2,10,1,12,},
{1,12,2,10,1,20,2,10,1,12,},
{1,11,2,10,1,8,2,6,1,8,2,10,1,11,},
{1,11,2,10,1,7,2,8,1,7,2,10,1,11,},
{1,10,2,8,1,10,2,8,1,10,2,8,1,10,},
{1,10,2,8,1,10,2,8,1,10,2,9,1,9,},
{1,9,2,9,1,10,2,8,1,10,2,9,1,9,},
{1,8,2,10,1,10,2,8,1,10,2,10,1,8,},
{1,8,2,14,1,7,2,7,1,7,2,13,1,8,},
{1,7,2,15,1,8,2,4,1,8,2,15,1,7,},
{1,7,2,15,1,20,2,15,1,7,},
{1,6,2,17,1,18,2,17,1,6,},
{1,6,2,16,1,20,2,16,1,6,},
{1,5,2,17,1,21,2,16,1,5,},
{1,4,2,17,1,22,2,17,1,4,},
{1,4,2,18,1,3,2,2,1,10,2,2,1,3,2,18,1,4,},
{1,3,2,20,1,1,2,6,1,5,2,5,1,1,2,20,1,3,},
{1,3,2,27,1,4,2,27,1,3,},
{1,2,2,28,1,4,2,28,1,2,},
{1,2,2,28,1,4,2,28,1,2,},
{1,1,2,62,1,1,},
{1,1,2,63,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{1,1,2,62,1,1,},
{1,3,2,58,1,3,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,30,2,5,1,29,},
{1,29,2,6,1,29,},
{1,28,2,8,1,28,},
{1,28,2,9,1,27,},
{1,27,2,10,1,27,},
{1,26,2,12,1,26,},
{1,26,2,12,1,26,},
{1,25,2,14,1,25,},
{1,25,2,14,1,25,},
{1,24,2,16,1,24,},
{1,24,2,17,1,23,},
{1,23,2,18,1,23,},
{1,22,2,20,1,22,},
{1,22,2,20,1,22,},
{1,21,2,22,1,21,},
{1,21,2,22,1,21,},
{1,20,2,24,1,20,},
{1,20,2,25,1,19,},
{1,19,2,26,1,19,},
{1,19,2,27,1,18,},
{1,18,2,28,1,18,},
{1,17,2,30,1,17,},
{1,17,2,30,1,17,},
{1,16,2,32,1,16,},
{1,16,2,32,1,16,},
{1,15,2,34,1,15,},
{1,15,2,11,1,1,2,23,1,14,},
{1,14,2,8,1,1,2,3,1,13,2,2,1,2,2,7,1,14,},
{1,13,2,8,1,2,2,3,1,13,2,2,1,2,2,8,1,13,},
{1,13,2,7,1,3,2,3,1,3,2,6,1,3,2,3,1,3,2,7,1,13,},
{1,12,2,8,1,3,2,3,1,3,2,7,1,2,2,4,1,2,2,8,1,12,},
{1,12,2,7,1,4,2,3,1,2,2,8,1,2,2,4,1,3,2,7,1,12,},
{1,11,2,8,1,4,2,3,1,2,2,8,1,2,2,4,1,4,2,7,1,11,},
{1,11,2,7,1,4,2,4,1,3,2,6,1,3,2,4,1,4,2,8,1,10,},
{1,10,2,8,1,4,2,4,1,5,2,2,1,5,2,4,1,5,2,7,1,10,},
{1,9,2,8,1,5,2,4,1,12,2,4,1,5,2,8,1,9,},
{1,9,2,8,1,5,2,4,1,12,2,4,1,5,2,8,1,9,},
{1,8,2,9,1,5,2,4,1,12,2,4,1,5,2,9,1,8,},
{1,8,2,9,1,5,2,4,1,13,2,3,1,5,2,9,1,8,},
{1,7,2,10,1,5,2,3,1,14,2,3,1,5,2,10,1,7,},
{1,7,2,10,1,5,2,3,1,14,2,4,1,4,2,10,1,7,},
{1,6,2,11,1,4,2,4,1,14,2,4,1,4,2,11,1,6,},
{1,5,2,12,1,4,2,4,1,14,2,4,1,4,2,12,1,5,},
{1,5,2,12,1,4,2,4,1,15,2,3,1,4,2,12,1,5,},
{1,4,2,13,1,3,2,5,1,15,2,4,1,3,2,13,1,4,},
{1,4,2,13,1,3,2,4,1,16,2,4,1,3,2,13,1,4,},
{1,3,2,14,1,3,2,4,1,16,2,4,1,3,2,14,1,3,},
{1,3,2,14,1,3,2,4,1,16,2,4,1,3,2,14,1,3,},
{1,2,2,15,1,2,2,5,1,17,2,4,1,2,2,15,1,2,},
{1,1,2,16,1,2,2,5,1,17,2,4,1,2,2,16,1,1,},
{1,1,2,16,1,2,2,4,1,2,2,15,1,1,2,4,1,2,2,16,1,1,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{1,1,2,62,1,1,},
{1,2,2,60,1,2,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,30,2,5,1,29,},
{1,29,2,7,1,28,},
{1,28,2,8,1,28,},
{1,28,2,9,1,27,},
{1,27,2,10,1,27,},
{1,26,2,12,1,26,},
{1,26,2,12,1,26,},
{1,25,2,14,1,25,},
{1,25,2,15,1,24,},
{1,24,2,16,1,24,},
{1,24,2,17,1,23,},
{1,23,2,18,1,23,},
{1,22,2,20,1,22,},
{1,22,2,20,1,22,},
{1,21,2,22,1,21,},
{1,21,2,22,1,21,},
{1,20,2,24,1,20,},
{1,20,2,25,1,19,},
{1,19,2,26,1,19,},
{1,18,2,28,1,18,},
{1,18,2,28,1,18,},
{1,17,2,8,1,11,2,11,1,17,},
{1,17,2,6,1,13,2,11,1,17,},
{1,16,2,7,1,13,2,12,1,16,},
{1,16,2,7,1,13,2,13,1,15,},
{1,15,2,8,1,14,2,12,1,15,},
{1,15,2,7,1,18,2,10,1,14,},
{1,14,2,6,1,9,2,6,1,6,2,9,1,14,},
{1,13,2,6,1,8,2,10,1,5,2,9,1,13,},
{1,13,2,6,1,8,2,11,1,4,2,9,1,13,},
{1,12,2,7,1,16,2,3,1,4,2,10,1,12,},
{1,12,2,7,1,16,2,3,1,4,2,11,1,11,},
{1,11,2,8,1,22,2,12,1,11,},
{1,11,2,8,1,22,2,13,1,10,},
{1,10,2,9,1,27,2,8,1,10,},
{1,9,2,13,1,25,2,8,1,9,},
{1,9,2,13,1,25,2,8,1,9,},
{1,8,2,14,1,21,2,1,1,3,2,9,1,8,},
{1,8,2,14,1,18,2,5,1,2,2,9,1,8,},
{1,7,2,15,1,17,2,6,1,1,2,11,1,7,},
{1,7,2,15,1,17,2,19,1,6,},
{1,6,2,16,1,16,2,20,1,6,},
{1,5,2,17,1,17,2,20,1,5,},
{1,5,2,17,1,17,2,3,1,2,2,15,1,5,},
{1,4,2,18,1,22,2,16,1,4,},
{1,4,2,19,1,12,2,1,1,7,2,17,1,4,},
{1,3,2,21,1,6,2,7,1,5,2,19,1,3,},
{1,3,2,22,1,4,2,9,1,2,2,22,1,2,},
{1,2,2,60,1,2,},
{1,1,2,62,1,1,},
{1,1,2,62,1,1,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{1,1,2,62,1,1,},
{1,2,2,59,1,3,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,29,2,6,1,29,},
{1,28,2,8,1,28,},
{1,28,2,8,1,28,},
{1,27,2,10,1,27,},
{1,27,2,11,1,26,},
{1,26,2,12,1,26,},
{1,26,2,13,1,25,},
{1,25,2,14,1,25,},
{1,24,2,16,1,24,},
{1,24,2,16,1,24,},
{1,23,2,18,1,23,},
{1,23,2,18,1,23,},
{1,22,2,20,1,22,},
{1,22,2,21,1,21,},
{1,21,2,22,1,21,},
{1,21,2,23,1,20,},
{1,20,2,24,1,20,},
{1,19,2,26,1,19,},
{1,19,2,26,1,19,},
{1,18,2,8,1,2,2,8,1,2,2,8,1,18,},
{1,18,2,8,1,2,2,8,1,2,2,9,1,17,},
{1,17,2,8,1,3,2,8,1,3,2,8,1,17,},
{1,17,2,8,1,3,2,8,1,3,2,9,1,16,},
{1,16,2,9,1,4,2,6,1,4,2,9,1,16,},
{1,15,2,10,1,14,2,10,1,15,},
{1,15,2,10,1,14,2,10,1,15,},
{1,14,2,11,1,14,2,11,1,14,},
{1,14,2,12,1,12,2,12,1,14,},
{1,13,2,14,1,10,2,14,1,13,},
{1,13,2,15,1,8,2,16,1,12,},
{1,12,2,16,1,8,2,16,1,12,},
{1,11,2,17,1,8,2,17,1,11,},
{1,11,2,17,1,8,2,17,1,11,},
{1,10,2,18,1,8,2,18,1,10,},
{1,10,2,18,1,8,2,18,1,10,},
{1,9,2,19,1,8,2,19,1,9,},
{1,9,2,19,1,8,2,20,1,8,},
{1,8,2,20,1,8,2,20,1,8,},
{1,8,2,20,1,8,2,21,1,7,},
{1,7,2,21,1,8,2,21,1,7,},
{1,6,2,22,1,8,2,22,1,6,},
{1,6,2,21,1,10,2,21,1,6,},
{1,5,2,21,1,12,2,21,1,5,},
{1,5,2,21,1,12,2,21,1,5,},
{1,4,2,21,1,14,2,21,1,4,},
{1,4,2,21,1,14,2,22,1,3,},
{1,3,2,22,1,4,2,6,1,4,2,22,1,3,},
{1,2,2,23,1,4,2,7,1,3,2,23,1,2,},
{1,2,2,23,1,3,2,8,1,3,2,23,1,2,},
{1,1,2,24,1,3,2,8,1,3,2,24,1,1,},
{1,1,2,25,1,2,2,8,1,2,2,25,1,1,},
{2,27,1,1,2,8,1,1,2,27,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{1,1,2,62,1,1,},
{1,2,2,60,1,2,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,30,2,4,1,30,},
{1,29,2,6,1,29,},
{1,28,2,8,1,28,},
{1,28,2,9,1,27,},
{1,27,2,10,1,27,},
{1,26,2,12,1,26,},
{1,26,2,12,1,26,},
{1,25,2,14,1,25,},
{1,25,2,14,1,25,},
{1,24,2,16,1,24,},
{1,24,2,17,1,23,},
{1,23,2,18,1,23,},
{1,22,2,20,1,22,},
{1,22,2,20,1,22,},
{1,21,2,22,1,21,},
{1,21,2,22,1,21,},
{1,20,2,24,1,20,},
{1,20,2,25,1,19,},
{1,19,2,26,1,19,},
{1,19,2,11,1,5,2,11,1,18,},
{1,18,2,12,1,5,2,11,1,18,},
{1,17,2,13,1,5,2,12,1,17,},
{1,17,2,10,1,10,2,10,1,17,},
{1,16,2,8,1,16,2,8,1,16,},
{1,16,2,7,1,18,2,7,1,16,},
{1,15,2,8,1,18,2,8,1,15,},
{1,15,2,8,1,8,2,5,1,5,2,9,1,14,},
{1,14,2,9,1,7,2,6,1,5,2,9,1,14,},
{1,13,2,10,1,7,2,5,1,6,2,10,1,13,},
{1,13,2,10,1,6,2,6,1,6,2,10,1,13,},
{1,12,2,11,1,6,2,5,1,7,2,11,1,12,},
{1,12,2,11,1,6,2,5,1,7,2,11,1,12,},
{1,11,2,12,1,5,2,6,1,7,2,12,1,11,},
{1,11,2,12,1,5,2,5,1,8,2,13,1,10,},
{1,10,2,13,1,5,2,10,1,3,2,13,1,10,},
{1,9,2,14,1,4,2,10,1,4,2,14,1,9,},
{1,9,2,14,1,4,2,9,1,5,2,14,1,9,},
{1,8,2,15,1,4,2,9,1,5,2,15,1,8,},
{1,8,2,15,1,8,2,4,1,6,2,15,1,8,},
{1,7,2,16,1,7,2,4,1,7,2,16,1,7,},
{1,7,2,16,1,7,2,3,1,8,2,16,1,7,},
{1,6,2,17,1,7,2,2,1,9,2,17,1,6,},
{1,5,2,18,1,6,2,3,1,9,2,18,1,5,},
{1,5,2,18,1,6,2,2,1,10,2,18,1,5,},
{1,4,2,19,1,6,2,1,1,11,2,19,1,4,},
{1,4,2,19,1,5,2,1,1,12,2,19,1,4,},
{1,3,2,20,1,5,2,1,1,12,2,20,1,3,},
{1,3,2,20,1,18,2,20,1,3,},
{1,2,2,22,1,17,2,21,1,2,},
{1,1,2,23,1,16,2,23,1,1,},
{1,1,2,24,1,14,2,24,1,1,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{2,64,},
{1,1,2,62,1,1,},
{1,2,2,60,1,2,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,71 @@
local b = require 'map_gen.shared.builders'
return b.decompress({
height = 64,
width = 64,
data = {
{1,64,},
{1,64,},
{1,64,},
{1,31,2,3,1,30,},
{1,29,2,6,1,29,},
{1,29,2,7,1,28,},
{1,28,2,9,1,27,},
{1,27,2,10,1,27,},
{1,27,2,11,1,26,},
{1,26,2,12,1,26,},
{1,26,2,13,1,25,},
{1,25,2,15,1,24,},
{1,25,2,15,1,24,},
{1,24,2,17,1,23,},
{1,24,2,17,1,23,},
{1,23,2,19,1,22,},
{1,22,2,6,1,10,2,4,1,22,},
{1,22,2,4,1,14,2,3,1,21,},
{1,21,2,4,1,3,2,10,1,3,2,3,1,20,},
{1,21,2,4,1,2,2,12,1,2,2,3,1,20,},
{1,20,2,10,1,6,2,9,1,19,},
{1,20,2,8,1,9,2,8,1,19,},
{1,19,2,9,1,2,2,6,1,1,2,9,1,18,},
{1,18,2,28,1,18,},
{1,18,2,13,1,3,2,13,1,17,},
{1,17,2,14,1,3,2,14,1,16,},
{1,17,2,31,1,16,},
{1,16,2,33,1,15,},
{1,16,2,8,1,1,2,14,1,1,2,9,1,15,},
{1,15,2,8,1,2,2,14,1,2,2,9,1,14,},
{1,15,2,7,1,2,2,16,1,2,2,8,1,14,},
{1,14,2,7,1,2,2,18,1,2,2,8,1,13,},
{1,13,2,7,1,3,2,18,1,3,2,8,1,12,},
{1,13,2,6,1,4,2,3,1,13,2,2,1,4,2,7,1,12,},
{1,12,2,8,1,3,2,2,1,5,2,3,1,7,2,1,1,3,2,9,1,11,},
{1,12,2,9,1,7,2,4,1,2,2,3,1,6,2,10,1,11,},
{1,11,2,10,1,6,2,4,1,2,2,5,1,5,2,11,1,10,},
{1,11,2,4,1,2,2,5,1,6,2,3,1,2,2,6,1,3,2,12,1,10,},
{1,10,2,6,1,2,2,4,1,4,2,2,1,9,2,2,1,4,2,4,1,1,2,7,1,9,},
{1,10,2,7,1,2,2,2,1,5,2,6,1,1,2,3,1,8,2,2,1,2,2,8,1,8,},
{1,9,2,9,1,1,2,2,1,5,2,6,1,2,2,4,1,6,2,1,1,2,2,9,1,8,},
{1,8,2,10,1,2,2,1,1,6,2,4,1,2,2,4,1,9,2,11,1,7,},
{1,8,2,10,1,11,2,1,1,2,2,4,1,10,2,11,1,7,},
{1,7,2,11,1,29,2,11,1,6,},
{1,7,2,11,1,29,2,11,1,6,},
{1,6,2,12,1,29,2,12,1,5,},
{1,6,2,13,1,27,2,13,1,5,},
{1,5,2,17,1,21,2,17,1,4,},
{1,4,2,18,1,21,2,18,1,3,},
{1,4,2,18,1,20,2,19,1,3,},
{1,3,2,19,1,20,2,20,1,2,},
{1,3,2,19,1,20,2,20,1,2,},
{1,2,2,21,1,19,2,21,1,1,},
{1,2,2,21,1,19,2,21,1,1,},
{1,1,2,23,1,17,2,23,},
{2,25,1,15,2,24,},
{2,26,1,13,2,25,},
{2,26,1,12,2,26,},
{2,27,1,10,2,27,},
{1,1,2,63,},
{1,2,2,61,1,1,},
{1,64,},
{1,64,},
{1,64,},
}
})

View File

@ -0,0 +1,286 @@
local b = require 'map_gen.shared.builders'
local Random = require 'map_gen.shared.random'
local Perlin = require 'map_gen.shared.perlin_noise'
local Token = require 'utils.global_token'
-- change these to change the pattern.
local seed1 = 6000
local seed2 = 12000
local perlin_seed = 420420
local function square(x, y)
return x > 0 and y > 0
end
square = b.rotate(square, degrees(-45))
square = b.scale(square, 5 / 12, 1)
local map = b.translate(square, 0, -10)
local sea = b.translate(map, 0, -6)
sea = b.change_tile(sea, true, 'water')
sea = b.fish(sea, 0.075)
map = b.any {map, sea}
local icons = {
b.picture(require 'map_gen.data.presets.ammo-icon'),
b.picture(require 'map_gen.data.presets.danger-icon'),
b.picture(require 'map_gen.data.presets.destroyed-icon'),
b.picture(require 'map_gen.data.presets.electricity-icon'),
b.picture(require 'map_gen.data.presets.electricity-icon-unplugged'),
b.picture(require 'map_gen.data.presets.fluid-icon'),
b.picture(require 'map_gen.data.presets.fuel-icon'),
b.picture(require 'map_gen.data.presets.no-building-material-icon'),
b.picture(require 'map_gen.data.presets.no-storage-space-icon'),
b.picture(require 'map_gen.data.presets.not-enough-construction-robots-icon'),
b.picture(require 'map_gen.data.presets.not-enough-repair-packs-icon'),
b.picture(require 'map_gen.data.presets.recharge-icon'),
b.picture(require 'map_gen.data.presets.too-far-from-roboport-icon')
}
local icons_count = #icons
local value = b.manhattan_value
local function non_transform(shape)
return shape
end
local function uranium_transform(shape)
return b.scale(shape, 0.5)
end
local function oil_transform(shape)
shape = b.scale(shape, 0.5)
return b.throttle_world_xy(shape, 1, 4, 1, 4)
end
local function empty_transform()
return b.empty_shape
end
local ores = {
{transform = non_transform, resource = 'iron-ore', value = value(500, 0.1), weight = 16},
{transform = non_transform, resource = 'copper-ore', value = value(400, 0.1), weight = 10},
{transform = non_transform, resource = 'stone', value = value(250, 0.1), weight = 3},
{transform = non_transform, resource = 'coal', value = value(400, 0.1), weight = 5},
{transform = uranium_transform, resource = 'uranium-ore', value = value(200, 0.1), weight = 3},
{transform = oil_transform, resource = 'crude-oil', value = value(100000, 50), weight = 6},
{transform = empty_transform, weight = 100}
}
local random = Random.new(seed1, seed2)
local total_weights = {}
local t = 0
for _, v in ipairs(ores) do
t = t + v.weight
table.insert(total_weights, t)
end
local p_cols = 50
local p_rows = 50
local pattern = {}
for _ = 1, p_rows do
local row = {}
table.insert(pattern, row)
for _ = 1, p_cols do
local shape = icons[random:next_int(1, icons_count)]
local i = random:next_int(1, t)
local index = table.binary_search(total_weights, i)
if (index < 0) then
index = bit32.bnot(index)
end
local ore_data = ores[index]
shape = ore_data.transform(shape)
local ore = b.resource(shape, ore_data.resource, ore_data.value)
table.insert(row, ore)
end
end
local ore_shape = b.project_pattern(pattern, 96, 1.1, 50, 50)
ore_shape = b.scale(ore_shape, 0.2)
local start_ore = icons[2]
local start_iron = b.resource(start_ore, 'iron-ore', value(600, 0))
local start_copper = b.resource(start_ore, 'copper-ore', value(600, 0))
local start_coal = b.resource(start_ore, 'coal', value(1300, 0))
local start_stone = b.resource(start_ore, 'stone', value(900, 0))
start_ore = b.segment_pattern({start_coal, start_stone, start_copper, start_iron})
start_ore = b.translate(start_ore, 0, 64)
ore_shape = b.choose(b.rectangle(224, 224), start_ore, ore_shape)
local item_pool = {
{name = 'firearm-magazine', count = 200, weight = 1250},
{name = 'land-mine', count = 100, weight = 250},
{name = 'shotgun-shell', count = 200, weight = 1250},
{name = 'piercing-rounds-magazine', count = 200, weight = 833.3333},
{name = 'science-pack-1', count = 200, weight = 100},
{name = 'science-pack-2', count = 200, weight = 100},
{name = 'grenade', count = 100, weight = 500},
{name = 'defender-capsule', count = 50, weight = 500},
{name = 'railgun-dart', count = 100, weight = 500},
{name = 'piercing-shotgun-shell', count = 200, weight = 312.5},
{name = 'steel-axe', count = 5, weight = 166.6667},
{name = 'submachine-gun', count = 1, weight = 166.6667},
{name = 'shotgun', count = 1, weight = 166.6667},
{name = 'uranium-rounds-magazine', count = 200, weight = 166.6667},
{name = 'cannon-shell', count = 100, weight = 166.6667},
{name = 'rocket', count = 100, weight = 166.6667},
{name = 'distractor-capsule', count = 25, weight = 166.6667},
{name = 'railgun', count = 1, weight = 100},
{name = 'flamethrower-ammo', count = 50, weight = 100},
{name = 'military-science-pack', count = 200, weight = 100},
{name = 'science-pack-3', count = 200, weight = 100},
{name = 'explosive-rocket', count = 100, weight = 100},
{name = 'explosive-cannon-shell', count = 100, weight = 100},
{name = 'cluster-grenade', count = 100, weight = 100},
{name = 'poison-capsule', count = 100, weight = 100},
{name = 'slowdown-capsule', count = 100, weight = 100},
{name = 'construction-robot', count = 50, weight = 100},
{name = 'solar-panel-equipment', count = 5, weight = 833.3333},
{name = 'artillery-targeting-remote', count = 1, weight = 50},
{name = 'tank-flamethrower', count = 1, weight = 33.3333},
{name = 'explosive-uranium-cannon-shell', count = 100, weight = 33.3333},
{name = 'destroyer-capsule', count = 10, weight = 33.3333},
{name = 'artillery-shell', count = 10, weight = 25},
{name = 'battery-equipment', count = 5, weight = 25},
{name = 'night-vision-equipment', count = 2, weight = 25},
{name = 'exoskeleton-equipment', count = 2, weight = 166.6667},
{name = 'rocket-launcher', count = 1, weight = 14.2857},
{name = 'combat-shotgun', count = 1, weight = 10},
{name = 'flamethrower', count = 1, weight = 10},
{name = 'tank-cannon', count = 1, weight = 10},
{name = 'modular-armor', count = 1, weight = 100},
{name = 'belt-immunity-equipment', count = 1, weight = 10},
{name = 'personal-roboport-equipment', count = 1, weight = 100},
{name = 'energy-shield-equipment', count = 2, weight = 100},
{name = 'personal-laser-defense-equipment', count = 2, weight = 100},
{name = 'battery-mk2-equipment', count = 1, weight = 40},
{name = 'tank-machine-gun', count = 1, weight = 3.3333},
{name = 'power-armor', count = 1, weight = 33.3333},
{name = 'fusion-reactor-equipment', count = 1, weight = 33.3333},
{name = 'production-science-pack', count = 200, weight = 100},
{name = 'high-tech-science-pack', count = 200, weight = 100},
{name = 'artillery-turret', count = 1, weight = 2.5},
{name = 'artillery-wagon-cannon', count = 1, weight = 1},
{name = 'atomic-bomb', count = 1, weight = 1},
{name = 'space-science-pack', count = 200, weight = 10}
}
local total_weights = {}
local t = 0
for _, v in ipairs(item_pool) do
t = t + v.weight
table.insert(total_weights, t)
end
local callback =
Token.register(
function(entity, data)
local count = math.random(3, 8)
for _ = 1, count do
local i = math.random() ^ data * t
local index = table.binary_search(total_weights, i)
if (index < 0) then
index = bit32.bnot(index)
end
local loot = item_pool[index]
entity.insert(loot)
end
end
)
local loot_power = 500
local function loot(x, y)
if math.random(4096) ~= 1 then
return nil
end
local d = math.sqrt(x * x + y * y)
local name
if d < 600 then
name = 'car'
else
if math.random(5) == 1 then
name = 'tank'
else
name = 'car'
end
end
-- neutral stops the biters attacking them.
local entity = {name = name, force = 'neutral', callback = callback, data = loot_power / d}
return entity
end
local worm_names = {'small-worm-turret', 'medium-worm-turret', 'big-worm-turret'}
local spawner_names = {'biter-spawner', 'spitter-spawner'}
local factor = 8 / (1024 * 32)
local max_chance = 1 / 8
local scale_factor = 32
local sf = 1 / scale_factor
local m = 1.125 / 1000
local function enemy(x, y, world)
local d = math.sqrt(world.x * world.x + world.y * world.y)
if d < 300 then
return nil
end
local threshold = 1 - d * m
threshold = math.max(threshold, -0.125)
x, y = x * sf, y * sf
if Perlin.noise(x, y, perlin_seed) > threshold then
if math.random(8) == 1 then
local lvl
if d < 400 then
lvl = 1
elseif d < 650 then
lvl = 2
else
lvl = 3
end
local chance = math.min(max_chance, d * factor)
if math.random() < chance then
local worm_id
if d > 1000 then
local power = 1000 / d
worm_id = math.ceil((math.random() ^ power) * lvl)
else
worm_id = math.random(lvl)
end
return {name = worm_names[worm_id]}
end
else
local chance = math.min(max_chance, d * factor)
if math.random() < chance then
local spawner_id = math.random(2)
return {name = spawner_names[spawner_id]}
end
end
end
end
map = b.apply_entity(map, ore_shape)
map = b.apply_entity(map, loot)
map = b.apply_entity(map, enemy)
map = b.change_map_gen_collision_tile(map, 'water-tile', 'grass-1')
return map

View File

@ -483,6 +483,38 @@ function Builders.project(shape, size, r)
end
end
function Builders.project_pattern(pattern, size, r, columns, rows)
local ln_r = math.log(r)
local r2 = 1 / (r - 1)
local a = 1 / size
local half_size = size / 2
return function(x, y, world)
local offset = 0.5 * size
local sn = math.ceil(y + offset)
local n = math.ceil(math.log((r - 1) * sn * a + 1) / ln_r - 1)
local rn = r ^ n
local rn2 = 1 / rn
local c = size * rn
local sn_upper = size * (r ^ (n + 1) - 1) * r2
x = x * rn2
y = (y - (sn_upper - 0.5 * c) + offset) * rn2
local row_i = n % rows + 1
local row = pattern[row_i]
local x2 = ((x + half_size) % size) - half_size
local col_pos = math.floor(x / size + 0.5)
local col_i = col_pos % columns + 1
local shape = row[col_i]
return shape(x2, y, world)
end
end
function Builders.project_overlap(shape, size, r)
local ln_r = math.log(r)
local r2 = 1 / (r - 1)

View File

@ -86,7 +86,7 @@ local function do_place_entities(data)
local entity = surface.create_entity(e)
if entity and e.callback then
local callback = Token.get(e.callback)
callback(entity)
callback(entity, e.data)
end
end
end

View File

@ -90,7 +90,7 @@ local function do_place_entities(data)
local entity = surface.create_entity(e)
if entity and e.callback then
local callback = Token.get(e.callback)
callback(entity)
callback(entity, e.data)
end
end
end

View File

@ -65,6 +65,7 @@ local tiles_per_tick = 32
--shape = require "map_gen.presets.square_spiral"
--shape = require "map_gen.presets.beach"
--shape = require "map_gen.presets.factory"
shape = require "map_gen.presets.bermuda_triangle"
--shape = require "map_gen.presets.test"
--shapes--
@ -133,6 +134,6 @@ if shape then
['nauvis'] = shape,
}
require('map_gen.shared.generate')({surfaces = surfaces, regen_decoratives = regen_decoratives, tiles_per_tick = tiles_per_tick})
--require ("map_gen.shared.generate_not_threaded")({surfaces = surfaces, regen_decoratives = regen_decoratives})
--require('map_gen.shared.generate')({surfaces = surfaces, regen_decoratives = regen_decoratives, tiles_per_tick = tiles_per_tick})
require ("map_gen.shared.generate_not_threaded")({surfaces = surfaces, regen_decoratives = regen_decoratives})
end

View File

@ -19,17 +19,17 @@ return {
{price = {{'raw-fish', 75}}, offer = {type = 'give-item', item = 'tank-flamethrower'}},
{price = {{'raw-fish', 2500}}, offer = {type = 'give-item', item = 'artillery-wagon-cannon'}},
{price = {{'raw-fish', 1}}, offer = {type = 'give-item', item = 'firearm-magazine'}},
{price = {{'raw-fish', 3}}, offer = {type = 'give-item', item = 'piercing-rounds-magazine'}},
{price = {{'raw-fish', 15}}, offer = {type = 'give-item', item = 'uranium-rounds-magazine'}},
{price = {{'raw-fish', 5}}, offer = {type = 'give-item', item = 'piercing-rounds-magazine'}},
{price = {{'raw-fish', 20}}, offer = {type = 'give-item', item = 'uranium-rounds-magazine'}},
{price = {{'raw-fish', 2}}, offer = {type = 'give-item', item = 'shotgun-shell'}},
{price = {{'raw-fish', 8}}, offer = {type = 'give-item', item = 'piercing-shotgun-shell'}},
{price = {{'raw-fish', 10}}, offer = {type = 'give-item', item = 'piercing-shotgun-shell'}},
{price = {{'raw-fish', 5}}, offer = {type = 'give-item', item = 'railgun-dart'}},
{price = {{'raw-fish', 25}}, offer = {type = 'give-item', item = 'flamethrower-ammo'}},
{price = {{'raw-fish', 15}}, offer = {type = 'give-item', item = 'rocket'}},
{price = {{'raw-fish', 25}}, offer = {type = 'give-item', item = 'explosive-rocket'}},
{price = {{'raw-fish', 2500}}, offer = {type = 'give-item', item = 'atomic-bomb'}},
{price = {{'raw-fish', 15}}, offer = {type = 'give-item', item = 'cannon-shell'}},
{price = {{'raw-fish', 25}}, offer = {type = 'give-item', item = 'explosive-cannon-shell'}},
{price = {{'raw-fish', 20}}, offer = {type = 'give-item', item = 'cannon-shell'}},
{price = {{'raw-fish', 30}}, offer = {type = 'give-item', item = 'explosive-cannon-shell'}},
{price = {{'raw-fish', 75}}, offer = {type = 'give-item', item = 'explosive-uranium-cannon-shell'}},
{price = {{'raw-fish', 100}}, offer = {type = 'give-item', item = 'artillery-shell'}},
{price = {{'raw-fish', 1}}, offer = {type = 'give-item', item = 'land-mine'}},
@ -38,14 +38,14 @@ return {
{price = {{'raw-fish', 5}}, offer = {type = 'give-item', item = 'defender-capsule'}},
--{price = {{'raw-fish', 15}}, offer = {type = 'give-item', item = 'distractor-capsule'}}, Removed so we dont have 51 items and they are useless anyways
{price = {{'raw-fish', 75}}, offer = {type = 'give-item', item = 'destroyer-capsule'}},
{price = {{'raw-fish', 25}}, offer = {type = 'give-item', item = 'poison-capsule'}},
{price = {{'raw-fish', 25}}, offer = {type = 'give-item', item = 'slowdown-capsule'}},
{price = {{'raw-fish', 35}}, offer = {type = 'give-item', item = 'poison-capsule'}},
{price = {{'raw-fish', 35}}, offer = {type = 'give-item', item = 'slowdown-capsule'}},
{price = {{'raw-fish', 50}}, offer = {type = 'give-item', item = 'artillery-targeting-remote'}},
{price = {{'raw-fish', 1000}}, offer = {type = 'give-item', item = 'artillery-turret'}},
{price = {{'raw-fish', 250}}, offer = {type = 'give-item', item = 'modular-armor'}},
{price = {{'raw-fish', 750}}, offer = {type = 'give-item', item = 'power-armor'}},
{price = {{'raw-fish', 30}}, offer = {type = 'give-item', item = 'solar-panel-equipment'}},
{price = {{'raw-fish', 750}}, offer = {type = 'give-item', item = 'fusion-reactor-equipment'}},
{price = {{'raw-fish', 350}}, offer = {type = 'give-item', item = 'modular-armor'}},
{price = {{'raw-fish', 875}}, offer = {type = 'give-item', item = 'power-armor'}},
{price = {{'raw-fish', 40}}, offer = {type = 'give-item', item = 'solar-panel-equipment'}},
{price = {{'raw-fish', 875}}, offer = {type = 'give-item', item = 'fusion-reactor-equipment'}},
{price = {{'raw-fish', 100}}, offer = {type = 'give-item', item = 'battery-equipment'}},
{price = {{'raw-fish', 625}}, offer = {type = 'give-item', item = 'battery-mk2-equipment'}},
{price = {{'raw-fish', 250}}, offer = {type = 'give-item', item = 'belt-immunity-equipment'}},
@ -53,7 +53,14 @@ return {
{price = {{'raw-fish', 150}}, offer = {type = 'give-item', item = 'exoskeleton-equipment'}},
{price = {{'raw-fish', 250}}, offer = {type = 'give-item', item = 'personal-roboport-equipment'}},
{price = {{'raw-fish', 25}}, offer = {type = 'give-item', item = 'construction-robot'}},
{price = {{'raw-fish', 250}}, offer = {type = 'give-item', item = 'energy-shield-equipment'}},
{price = {{'raw-fish', 250}}, offer = {type = 'give-item', item = 'personal-laser-defense-equipment'}},
{price = {{'raw-fish', 1}}, offer = {type = 'give-item', item = 'refined-hazard-concrete'}}
{price = {{'raw-fish', 350}}, offer = {type = 'give-item', item = 'energy-shield-equipment'}},
{price = {{'raw-fish', 350}}, offer = {type = 'give-item', item = 'personal-laser-defense-equipment'}},
{price = {{'raw-fish', 1}}, offer = {type = 'give-item', item = 'refined-hazard-concrete'}},
{price = {{'raw-fish', 5}}, offer = {type = 'give-item', item = 'science-pack-1'}},
{price = {{'raw-fish', 10}}, offer = {type = 'give-item', item = 'science-pack-2'}},
{price = {{'raw-fish', 15}}, offer = {type = 'give-item', item = 'science-pack-3'}},
{price = {{'raw-fish', 15}}, offer = {type = 'give-item', item = 'military-science-pack'}},
{price = {{'raw-fish', 20}}, offer = {type = 'give-item', item = 'production-science-pack'}},
{price = {{'raw-fish', 25}}, offer = {type = 'give-item', item = 'high-tech-science-pack'}},
}