local function autoplace_settings(name, coverage) local ret = { control = name, sharpness = 1, richness_multiplier = 1000, richness_multiplier_distance_bonus = 20, richness_base = 200, coverage = coverage, peaks = { { noise_layer = name, noise_octaves_difference = -1.5, noise_persistence = 0.3, }, } } for i, resource in ipairs({ "uraninite", "fluorite" }) do if resource ~= name then ret.starting_area_size = 600 * coverage ret.starting_area_amount = 1500 end end return ret end local function resource(name, map_color, hardness, coverage) if hardness == nil then hardness = 0.4 end if coverage == nil then coverage = 0.01 end return { type = "resource", name = name, icon = "__UraniumPower__/graphics/icons/" .. name .. ".png", flags = {"placeable-neutral"}, order="a-b-e", minable = { hardness = hardness, --mining_particle = name .. "-particle", mining_particle = "stone-particle", mining_time = 2, result = name }, collision_box = {{ -0.1, -0.1}, {0.1, 0.1}}, selection_box = {{ -0.5, -0.5}, {0.5, 0.5}}, autoplace = autoplace_settings(name, coverage), stage_counts = {1000, 600, 400, 200, 100, 50, 20, 1}, stages = { sheet = { filename = "__UraniumPower__/graphics/entity/" .. name .. "/" .. name .. ".png", priority = "extra-high", width = 38, height = 38, frame_count = 4, variation_count = 8 } }, map_color = map_color } end data:extend( { resource("uraninite", {r=0.000, g=0.238, b=0.118}), resource("fluorite", {r=0.205, g=0.000, b=0.205}), } )