mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2024-12-30 23:17:53 +02:00
83 lines
3.0 KiB
Lua
83 lines
3.0 KiB
Lua
-- DISABLE WATER IN INGAME MAP GEN SETTINGS FOR BEST LOOKS
|
|
--[[
|
|
>>>eNpjYBBi4GVgZACCBnsQycOXmJeemlOsm5ZZXFxalMrA4OAAk
|
|
XOwF4JK5SWWlBYl5uimJxYjS3NDpfOLUg1xiBvhEDfGIW6CQ9wUh
|
|
7gZsjhLcn5iDrIAZ3JRaUqqbn4miihXal5qbqVuUmIx0LMHgMIMY
|
|
CnWkqLU1GKIIihmPLlZi7mhRY4BhP/XMyj8/w/CQNYDoC4QZmBsA
|
|
JoBVAkUgwHW5JzMtDQGBgVHIHYCGcTIyFgtss79YdUUe0aIGj0HK
|
|
OMDVORAEkzEE8bwc8AppQJjmMAYF+wZjcHgMxIDYmkJ0AqoKg4HB
|
|
AMi2QKSZGTsfbt1wfdjF+wY/6z8eMk3KcGe0dBV5N0Ho3V2QEkBk
|
|
D+Z4MSsmSCwE+YVBpiZD+yhUjftGc+eAYE39oysIB0iIEJBBkgEu
|
|
AEJAT4gsaAHJgbRbQczRsSBMQ0MvsF88hjGuGyP7g9gQNiADJcDE
|
|
SdABNhCuMsYIUyHfgdGB3mYrCRCCVC/EQOyG1IQPjwJs/Ywkv1oD
|
|
sGMCGR/oImoOGCJBi6QhSlw4gUz3DXA8LzADuM5zHdgZAYxQKq+A
|
|
MUgPEjihRgFoQUcmBkQAJi8BPc6XQMAy367Og==<<<
|
|
]]
|
|
local get_noise = require 'utils.get_noise'
|
|
local math_random = math.random
|
|
local math_floor = math.floor
|
|
local math_abs = math.abs
|
|
|
|
local spawn_size = 160
|
|
local spawn_check = spawn_size + 96
|
|
|
|
local waters = {'deepwater', 'water'}
|
|
|
|
local function is_water(position, noise, seed)
|
|
if math_abs(position.y) <= spawn_check or math_abs(position.x) <= spawn_check then
|
|
local border_noise = get_noise('cave_ponds', position, seed)
|
|
if math_abs(position.x) + border_noise * 10 < spawn_size and math_abs(position.y) + border_noise * 10 < spawn_size then
|
|
return false
|
|
end
|
|
if math_abs(position.x) + border_noise * 10 < spawn_size + 32 and math_abs(position.y) + border_noise * 10 < spawn_size + 32 then
|
|
return true
|
|
end
|
|
end
|
|
if math_abs(noise) < 0.15 then
|
|
return
|
|
end
|
|
if math_abs(noise) > 0.80 then
|
|
return
|
|
end
|
|
return true
|
|
end
|
|
|
|
local function on_chunk_generated(event)
|
|
local surface = event.surface
|
|
local seed = surface.map_gen_settings.seed
|
|
local left_top_x = event.area.left_top.x
|
|
local left_top_y = event.area.left_top.y
|
|
local set_tiles = surface.set_tiles
|
|
local get_tile = surface.get_tile
|
|
local position
|
|
local noise
|
|
|
|
for x = 0, 31, 1 do
|
|
for y = 0, 31, 1 do
|
|
position = {x = left_top_x + x, y = left_top_y + y}
|
|
if not get_tile(position).collides_with('resource-layer') then
|
|
noise = get_noise('watery_world', position, seed)
|
|
if is_water(position, noise, seed) then
|
|
set_tiles({{name = waters[math_floor(noise * 10 % 2 + 1)], position = position}}, true)
|
|
if math_random(1, 128) == 1 then
|
|
surface.create_entity({name = global.watery_world_fishes[math_random(1, #global.watery_world_fishes)], position = position})
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
local function on_init()
|
|
global.watery_world_fishes = {}
|
|
for _, prototype in pairs(game.entity_prototypes) do
|
|
if prototype.type == 'fish' then
|
|
table.insert(global.watery_world_fishes, prototype.name)
|
|
end
|
|
end
|
|
end
|
|
|
|
local Event = require 'utils.event'
|
|
Event.on_init(on_init)
|
|
Event.add(defines.events.on_chunk_generated, on_chunk_generated)
|