1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2024-12-16 10:19:27 +02:00
RedMew/map_gen/maps/crash_site/presets/world.lua
2020-02-08 13:47:51 +00:00

73 lines
1.7 KiB
Lua

local b = require 'map_gen.shared.builders'
local MGSP = require 'resources.map_gen_settings'
local type = type
local water_tiles = b.water_tiles
local path_tiles = b.path_tiles
local pic = require 'map_gen.data.presets.world-map'
local world_map = b.picture(pic)
local x_offset, y_offset = -369, 46
world_map = b.translate(world_map, x_offset, y_offset)
local scale = 0.75
local height = 2653 * scale
local width = 3820 * scale
world_map = b.scale(world_map, scale)
local bounds = b.rectangle(width, height)
bounds = b.translate(bounds, x_offset * scale, y_offset * scale)
local config = {
scenario_name = 'crashsite-world',
map_gen_settings = {
MGSP.starting_area_very_low,
MGSP.ore_oil_none,
MGSP.enemy_none,
MGSP.cliff_none
},
grid_number_of_blocks = 15,
mini_grid_number_of_blocks = 29,
bounds_shape = bounds
}
local Scenario = require 'map_gen.maps.crash_site.scenario'
local crashsite = Scenario.init(config)
local function get_tile_name(tile)
if type(tile) == 'table' then
return tile.tile
else
return tile
end
end
local function map(x, y, world)
local tile = world_map(x, y, world)
if not tile then
return tile
end
local world_tile_name = get_tile_name(tile)
if not world_tile_name or water_tiles[world_tile_name] then
return tile
end
local crashsite_tile = crashsite(x, y, world)
local crashsite_tile_name = get_tile_name(crashsite_tile)
if path_tiles[crashsite_tile_name] then
return crashsite_tile
end
if type(crashsite_tile) == 'table' then
crashsite_tile.tile = world_tile_name
return crashsite_tile
end
return tile
end
return map