1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2024-12-30 23:17:53 +02:00
ComfyFactorio/utils/math/get_perlin.lua
danielmartin0 358160c247 v1
Revert "Fix 'player' shadowing in flying_texts.lua"

This reverts commit 40805e68e3c0bf588b40f510d5c32b66ecca4717.

Fix 'player' shadowing in flying_texts.lua

all_central_positions_within_area

utils/math/raffle
2024-10-22 21:47:11 +02:00

150 lines
4.4 KiB
Lua

local simplex_noise = require('utils.math.simplex_noise').d2
--add or use noise templates from here
local noises = {
['bb_biterland'] = {
{ modifier = 0.001, weight = 1 },
{ modifier = 0.01, weight = 0.35 },
{ modifier = 0.1, weight = 0.015 },
},
['bb_ore'] = {
{ modifier = 0.0042, weight = 1 },
{ modifier = 0.031, weight = 0.08 },
{ modifier = 0.1, weight = 0.025 },
},
['cave_ponds'] = { { modifier = 0.01, weight = 1 }, { modifier = 0.1, weight = 0.06 } },
['smol_areas'] = { { modifier = 0.01, weight = 1 }, { modifier = 0.1, weight = 0.02 }, {
modifier = 0.1,
weight = 0.03,
} },
['cave_worms'] = { { modifier = 0.001, weight = 1 }, { modifier = 0.1, weight = 0.06 } },
['cave_rivers'] = {
{ modifier = 0.005, weight = 1 },
{ modifier = 0.01, weight = 0.25 },
{ modifier = 0.05, weight = 0.01 },
},
['cave_rivers_2'] = {
{ modifier = 0.003, weight = 1 },
{ modifier = 0.01, weight = 0.21 },
{ modifier = 0.05, weight = 0.01 },
},
['cave_rivers_3'] = {
{ modifier = 0.002, weight = 1 },
{ modifier = 0.01, weight = 0.15 },
{ modifier = 0.05, weight = 0.01 },
},
['cave_rivers_4'] = {
{ modifier = 0.001, weight = 1 },
{ modifier = 0.01, weight = 0.11 },
{ modifier = 0.05, weight = 0.01 },
},
['decoratives'] = {
{ modifier = 0.03, weight = 1 },
{ modifier = 0.05, weight = 0.25 },
{ modifier = 0.1, weight = 0.05 },
},
['dungeons'] = { { modifier = 0.0025, weight = 1 }, { modifier = 0.005, weight = 0.25 } },
['dungeon_sewer'] = {
{ modifier = 0.0005, weight = 1 },
{ modifier = 0.005, weight = 0.015 },
{ modifier = 0.025, weight = 0.0015 },
},
['large_caves'] = {
{ modifier = 0.0033, weight = 1 },
{ modifier = 0.01, weight = 0.22 },
{ modifier = 0.05, weight = 0.05 },
{ modifier = 0.1, weight = 0.04 },
},
['n1'] = { { modifier = 0.0001, weight = 1 } },
['n2'] = { { modifier = 0.001, weight = 1 } },
['n3'] = { { modifier = 0.01, weight = 1 } },
['n4'] = { { modifier = 0.1, weight = 1 } },
['n5'] = { { modifier = 0.07, weight = 1 } },
['watery_world'] = {
{ modifier = 0.0007, weight = 1 },
{ modifier = 0.01, weight = 0.02 },
{ modifier = 0.1, weight = 0.005 },
},
['no_rocks'] = {
{ modifier = 0.0033, weight = 1 },
{ modifier = 0.01, weight = 0.22 },
{ modifier = 0.05, weight = 0.05 },
{ modifier = 0.1, weight = 0.04 },
},
['no_rocks_2'] = { { modifier = 0.013, weight = 1 }, { modifier = 0.1, weight = 0.1 } },
['oasis'] = {
{ modifier = 0.0015, weight = 1 },
{ modifier = 0.0025, weight = 0.5 },
{ modifier = 0.01, weight = 0.15 },
{ modifier = 0.1, weight = 0.017 },
},
['scrapyard'] = {
{ modifier = 0.005, weight = 1 },
{ modifier = 0.01, weight = 0.35 },
{ modifier = 0.05, weight = 0.23 },
{ modifier = 0.1, weight = 0.11 },
},
['big_cave'] = {
{ modifier = 0.003, weight = 1 },
{ modifier = 0.02, weight = 0.05 },
{ modifier = 0.15, weight = 0.02 },
},
['small_caves'] = {
{ modifier = 0.008, weight = 1 },
{ modifier = 0.03, weight = 0.15 },
{ modifier = 0.25, weight = 0.05 },
},
['small_caves_2'] = {
{ modifier = 0.009, weight = 1 },
{ modifier = 0.05, weight = 0.25 },
{ modifier = 0.25, weight = 0.05 },
},
['forest_location'] = {
{ modifier = 0.006, weight = 1 },
{ modifier = 0.01, weight = 0.25 },
{ modifier = 0.05, weight = 0.15 },
{ modifier = 0.1, weight = 0.05 },
},
['forest_density'] = {
{ modifier = 0.01, weight = 1 },
{ modifier = 0.05, weight = 0.5 },
{ modifier = 0.1, weight = 0.025 },
},
['cave_miner_01'] = {
{ modifier = 0.002, weight = 1 },
{ modifier = 0.003, weight = 0.5 },
{ modifier = 0.01, weight = 0.01 },
{ modifier = 0.1, weight = 0.015 },
},
['cave_miner_02'] = {
{ modifier = 0.006, weight = 1 },
{ modifier = 0.02, weight = 0.15 },
{ modifier = 0.25, weight = 0.025 },
},
['cm_ponds'] = { { modifier = 0.025, weight = 1 }, { modifier = 0.05, weight = 0.25 }, {
modifier = 0.1,
weight = 0.05,
} },
['cm_ocean'] = {
{ modifier = 0.002, weight = 1 },
{ modifier = 0.004, weight = 1 },
{ modifier = 0.02, weight = 0.05 },
},
}
--returns a float number between -1 and 1
local function get_noise(name, pos, seed)
local noise = 0
local d = 0
for i = 1, #noises[name] do
local mod = noises[name]
noise = noise + simplex_noise(pos.x * mod[i].modifier, pos.y * mod[i].modifier, seed, 0xF) * mod[i].weight
d = d + mod[i].weight
seed = seed + seed / seed
end
noise = noise / d
return noise
end
return get_noise