711 lines
20 KiB
Lua
711 lines
20 KiB
Lua
if not bobmods.lib.resource then
|
|
bobmods.lib.resource = {}
|
|
end
|
|
|
|
bobmods.lib.resource_autoplace = require("resource-autoplace")
|
|
|
|
function bobmods.lib.resource.create_autoplace(inputs)
|
|
local autoplace = { control = inputs.control or inputs.name }
|
|
local richness = inputs.richness or 1
|
|
local size = inputs.size and inputs.size or 1.2
|
|
autoplace.sharpness = 1
|
|
autoplace.richness_multiplier = 1250 * richness
|
|
autoplace.richness_base = 8 * richness
|
|
autoplace.richness_multiplier_distance_bonus = 20
|
|
autoplace.coverage = size / 600
|
|
|
|
autoplace.peaks = {}
|
|
if inputs.starting_area == 1 then
|
|
autoplace.starting_area_size = 5500 * size / 600
|
|
autoplace.starting_area_amount = 1300 * size
|
|
end
|
|
if inputs.starting_area then
|
|
table.insert(
|
|
autoplace.peaks,
|
|
bobmods.lib.resource.autoplace_peak({
|
|
starting_area = 1,
|
|
noise = { layer = inputs.name, octaves = -0.85, persistance = 0.4 },
|
|
})
|
|
)
|
|
end
|
|
table.insert(
|
|
autoplace.peaks,
|
|
bobmods.lib.resource.autoplace_peak({
|
|
starting_area = 0,
|
|
noise = { layer = inputs.name, octaves = -0.85, persistance = 0.4 },
|
|
})
|
|
)
|
|
return autoplace
|
|
end
|
|
|
|
function bobmods.lib.resource.autoplace_peak(inputs)
|
|
local peak = {}
|
|
if inputs.influence then
|
|
influence = inputs.influence
|
|
end
|
|
if inputs.starting_area ~= nil then
|
|
peak.starting_area_weight_optimal = inputs.starting_area
|
|
peak.starting_area_weight_range = 0
|
|
peak.starting_area_weight_max_range = 2
|
|
end
|
|
if inputs.noise then
|
|
peak.noise_layer = inputs.noise.layer
|
|
peak.noise_octaves_difference = inputs.noise.octaves
|
|
peak.noise_persistence = inputs.noise.persistance
|
|
end
|
|
return peak
|
|
end
|
|
|
|
function bobmods.lib.resource.add_autoplace_peak(inputs)
|
|
table.insert(data.raw.resource[inputs.resource].autoplace.peaks, bobmods.lib.resource.autoplace_peak(inputs))
|
|
end
|
|
|
|
function bobmods.lib.resource.add_result(resource, item_in)
|
|
local item = bobmods.lib.item.result(item_in)
|
|
if item and type(resource) == "string" and data.raw.resource[resource] and bobmods.lib.item.get_type(item.name) then
|
|
bobmods.lib.result_check(data.raw.resource[resource].minable)
|
|
bobmods.lib.item.add_new(data.raw.resource[resource].minable.results, item)
|
|
else
|
|
log(debug.traceback())
|
|
bobmods.lib.error.resource(resource)
|
|
end
|
|
end
|
|
|
|
function bobmods.lib.resource.remove_result(resource, item)
|
|
if type(resource) == "string" and type(item) == "string" and data.raw.resource[resource] then
|
|
bobmods.lib.result_check(data.raw.resource[resource].minable)
|
|
bobmods.lib.item.remove(data.raw.resource[resource].minable.results, item)
|
|
else
|
|
log(debug.traceback())
|
|
bobmods.lib.error.resource(resource)
|
|
bobmods.lib.error.item(item)
|
|
end
|
|
end
|
|
|
|
function bobmods.lib.resource.stage_counts(stages, mult)
|
|
local stage_counts = {}
|
|
local stage = stages
|
|
while stage > 0 do
|
|
stage = stage - 1
|
|
table.insert(stage_counts, mult * (2 ^ stage))
|
|
end
|
|
return stage_counts
|
|
end
|
|
|
|
function bobmods.lib.resource.sprite(inputs)
|
|
local filename
|
|
local width = 38
|
|
local height = 38
|
|
local frame_count = 4
|
|
local variation_count = 8
|
|
local hr_version = nil
|
|
if inputs.width then
|
|
width = inputs.width
|
|
end
|
|
if inputs.height then
|
|
height = inputs.height
|
|
end
|
|
if inputs.frame_count then
|
|
frame_count = inputs.frame_count
|
|
end
|
|
if inputs.variation_count then
|
|
variation_count = inputs.variation_count
|
|
end
|
|
if inputs.hr_version then
|
|
hr_version = bobmods.lib.resource.hr_sprite(inputs.hr_version)
|
|
end
|
|
if inputs.filename then
|
|
filename = inputs.filename
|
|
else
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-1.png"
|
|
width = 64
|
|
height = 64
|
|
frame_count = 8
|
|
variation_count = 8
|
|
hr_version = bobmods.lib.resource.hr_sprite({ sheet = 1, tint = inputs.tint })
|
|
if inputs.sheet == 2 then
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-2.png"
|
|
hr_version = bobmods.lib.resource.hr_sprite({ sheet = 2, tint = inputs.tint })
|
|
end
|
|
if inputs.sheet == 3 then
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-3.png"
|
|
hr_version = bobmods.lib.resource.hr_sprite({ sheet = 3, tint = inputs.tint })
|
|
end
|
|
if inputs.sheet == 4 then
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-4.png"
|
|
hr_version = bobmods.lib.resource.hr_sprite({ sheet = 4, tint = inputs.tint })
|
|
end
|
|
if inputs.sheet == 5 then
|
|
filename = "__boblibrary__/graphics/entity/liquid.png"
|
|
width = 75
|
|
height = 61
|
|
frame_count = 4
|
|
variation_count = 1
|
|
hr_version = nil
|
|
end
|
|
if inputs.sheet == 6 then
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-5.png"
|
|
hr_version = bobmods.lib.resource.hr_sprite({ sheet = 5, tint = inputs.tint })
|
|
end
|
|
end
|
|
|
|
local sheet = {
|
|
filename = filename,
|
|
priority = "extra-high",
|
|
width = width,
|
|
height = height,
|
|
frame_count = frame_count,
|
|
variation_count = variation_count,
|
|
tint = inputs.tint,
|
|
scale = inputs.scale or 1,
|
|
}
|
|
if hr_version then
|
|
sheet.hr_version = hr_version
|
|
end
|
|
|
|
return {
|
|
sheet = sheet,
|
|
}
|
|
end
|
|
|
|
function bobmods.lib.resource.hr_sprite(inputs)
|
|
local filename
|
|
local width = 128
|
|
local height = 128
|
|
local frame_count = 8
|
|
local variation_count = 8
|
|
local scale = 0.5
|
|
if inputs.width then
|
|
width = inputs.width
|
|
end
|
|
if inputs.height then
|
|
height = inputs.height
|
|
end
|
|
if inputs.frame_count then
|
|
frame_count = inputs.frame_count
|
|
end
|
|
if inputs.variation_count then
|
|
variation_count = inputs.variation_count
|
|
end
|
|
if inputs.scale then
|
|
scale = inputs.scale
|
|
end
|
|
if inputs.filename then
|
|
filename = inputs.filename
|
|
else
|
|
filename = "__boblibrary__/graphics/entity/ores/hr-ore-1.png"
|
|
width = 128
|
|
height = 128
|
|
frame_count = 8
|
|
variation_count = 8
|
|
scale = 0.5
|
|
if inputs.sheet == 2 then
|
|
filename = "__boblibrary__/graphics/entity/ores/hr-ore-2.png"
|
|
end
|
|
if inputs.sheet == 3 then
|
|
filename = "__boblibrary__/graphics/entity/ores/hr-ore-3.png"
|
|
end
|
|
if inputs.sheet == 4 then
|
|
filename = "__boblibrary__/graphics/entity/ores/hr-ore-4.png"
|
|
end
|
|
if inputs.sheet == 5 then
|
|
filename = "__boblibrary__/graphics/entity/ores/hr-ore-5.png"
|
|
end
|
|
end
|
|
|
|
return {
|
|
filename = filename,
|
|
priority = "extra-high",
|
|
width = width,
|
|
height = height,
|
|
frame_count = frame_count,
|
|
variation_count = variation_count,
|
|
tint = inputs.tint,
|
|
scale = scale,
|
|
}
|
|
end
|
|
|
|
function bobmods.lib.resource.effect(inputs)
|
|
local filename
|
|
local width = 64
|
|
local height = 64
|
|
local frame_count = 8
|
|
local variation_count = 8
|
|
local hr_version = nil
|
|
if inputs.width then
|
|
width = inputs.width
|
|
end
|
|
if inputs.height then
|
|
height = inputs.height
|
|
end
|
|
if inputs.frame_count then
|
|
frame_count = inputs.frame_count
|
|
end
|
|
if inputs.variation_count then
|
|
variation_count = inputs.variation_count
|
|
end
|
|
if inputs.hr_version then
|
|
hr_version = bobmods.lib.resource.hr_effect(inputs.hr_version)
|
|
end
|
|
if inputs.filename then
|
|
filename = inputs.filename
|
|
else
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-5-glow.png"
|
|
width = 64
|
|
height = 64
|
|
frame_count = 8
|
|
variation_count = 8
|
|
hr_version = bobmods.lib.resource.hr_effect({ sheet = 5, tint = inputs.tint })
|
|
end
|
|
|
|
local sheet = {
|
|
filename = filename,
|
|
priority = "extra-high",
|
|
width = width,
|
|
height = height,
|
|
frame_count = frame_count,
|
|
variation_count = variation_count,
|
|
tint = inputs.tint,
|
|
scale = inputs.scale or 1,
|
|
blend_mode = "additive",
|
|
flags = { "light" },
|
|
}
|
|
if hr_version then
|
|
sheet.hr_version = hr_version
|
|
end
|
|
|
|
return {
|
|
sheet = sheet,
|
|
}
|
|
end
|
|
|
|
function bobmods.lib.resource.hr_effect(inputs)
|
|
local filename
|
|
local width = 128
|
|
local height = 128
|
|
local frame_count = 8
|
|
local variation_count = 8
|
|
local scale = 0.5
|
|
if inputs.width then
|
|
width = inputs.width
|
|
end
|
|
if inputs.height then
|
|
height = inputs.height
|
|
end
|
|
if inputs.frame_count then
|
|
frame_count = inputs.frame_count
|
|
end
|
|
if inputs.variation_count then
|
|
variation_count = inputs.variation_count
|
|
end
|
|
if inputs.scale then
|
|
scale = inputs.scale
|
|
end
|
|
if inputs.filename then
|
|
filename = inputs.filename
|
|
else
|
|
filename = "__boblibrary__/graphics/entity/ores/hr-ore-5-glow.png"
|
|
width = 128
|
|
height = 128
|
|
frame_count = 8
|
|
variation_count = 8
|
|
scale = 0.5
|
|
end
|
|
|
|
return {
|
|
filename = filename,
|
|
priority = "extra-high",
|
|
width = width,
|
|
height = height,
|
|
frame_count = frame_count,
|
|
variation_count = variation_count,
|
|
tint = inputs.tint,
|
|
blend_mode = "additive",
|
|
flags = { "light" },
|
|
scale = scale,
|
|
}
|
|
end
|
|
|
|
function bobmods.lib.resource.create_item(inputs)
|
|
data:extend({
|
|
{
|
|
type = "item",
|
|
name = inputs.name,
|
|
subgroup = inputs.subgroup or "raw-resource",
|
|
order = "b-d[" .. inputs.name .. "]",
|
|
stack_size = inputs.stack_size or 200,
|
|
},
|
|
})
|
|
if inputs.icon then
|
|
data.raw.item[inputs.name].icon = inputs.icon
|
|
data.raw.item[inputs.name].icon_size = inputs.icon_size or 32
|
|
data.raw.item[inputs.name].icon_mipmaps = inputs.icon_mipmaps
|
|
elseif inputs.icons then
|
|
data.raw.item[inputs.name].icon = inputs.icons
|
|
else
|
|
data.raw.item[inputs.name].icons = bobmods.lib.resource.create_icon(inputs)
|
|
end
|
|
|
|
if inputs.create_variations then
|
|
local type = 1
|
|
if inputs.sprite and inputs.sprite.sheet then
|
|
if inputs.sprite.sheet >= 1 and inputs.sprite.sheet <= 4 then
|
|
type = inputs.sprite.sheet
|
|
elseif inputs.sprite.sheet == 6 then
|
|
type = 5
|
|
end
|
|
end
|
|
data.raw.item[inputs.name].pictures = {}
|
|
for i = 16, 1, -1 do --do it 16 times
|
|
table.insert(
|
|
data.raw.item[inputs.name].pictures,
|
|
bobmods.lib.resource.get_icon_variation_single(type, inputs.tint)
|
|
)
|
|
end
|
|
end
|
|
end
|
|
|
|
function bobmods.lib.resource.create(inputs)
|
|
local sprite = {}
|
|
local minimum = 35
|
|
local normal = 350
|
|
if inputs.sprite then
|
|
sprite = inputs.sprite
|
|
end
|
|
sprite.tint = inputs.tint
|
|
if inputs.minimum then
|
|
minimum = inputs.minimum
|
|
elseif inputs.autoplace and inputs.autoplace.richness_base then
|
|
minimum = inputs.autoplace.richness_base * 5
|
|
end
|
|
if inputs.normal then
|
|
normal = inputs.normal
|
|
elseif inputs.autoplace and inputs.autoplace.richness_base then
|
|
normal = inputs.autoplace.richness_base * 50
|
|
end
|
|
|
|
if minimum < 1 then
|
|
minimum = 1
|
|
end
|
|
if normal < 1 then
|
|
normal = 1
|
|
end
|
|
|
|
local sheet = bobmods.lib.resource.sprite(sprite)
|
|
data:extend({
|
|
{
|
|
type = "resource",
|
|
name = inputs.name,
|
|
flags = { "placeable-neutral" },
|
|
category = inputs.category,
|
|
order = "b-d-" .. inputs.name,
|
|
minimum = minimum,
|
|
normal = normal,
|
|
resource_patch_search_radius = inputs.resource_patch_search_radius,
|
|
infinite = inputs.infinite,
|
|
collision_box = inputs.collision_box or { { -0.1, -0.1 }, { 0.1, 0.1 } },
|
|
selection_box = inputs.selection_box or { { -0.5, -0.5 }, { 0.5, 0.5 } },
|
|
stages = sheet,
|
|
stage_counts = inputs.stage_counts
|
|
or bobmods.lib.resource.stage_counts(sheet.sheet.variation_count, inputs.stage_mult or 100),
|
|
map_color = inputs.map_color,
|
|
minable = {
|
|
mining_particle = inputs.particle,
|
|
mining_time = inputs.mining_time or 2,
|
|
},
|
|
},
|
|
})
|
|
if inputs.disable_map_grid then
|
|
data.raw.resource[inputs.name].map_grid = false
|
|
end
|
|
if inputs.infinite then
|
|
local infinite_depletion_amount = inputs.infinite_depletion_amount or 10
|
|
data.raw.resource[inputs.name].infinite_depletion_amount = infinite_depletion_amount
|
|
end
|
|
if inputs.icon then
|
|
data.raw.resource[inputs.name].icon = inputs.icon
|
|
data.raw.resource[inputs.name].icon_size = inputs.icon_size or 32
|
|
data.raw.resource[inputs.name].icon_mipmaps = inputs.icon_mipmaps
|
|
else
|
|
data.raw.resource[inputs.name].icons = bobmods.lib.resource.create_icon(inputs)
|
|
end
|
|
|
|
if inputs.required_fluid then
|
|
data.raw.resource[inputs.name].minable.required_fluid = inputs.required_fluid
|
|
data.raw.resource[inputs.name].minable.fluid_amount = inputs.fluid_amount or 10
|
|
end
|
|
|
|
if inputs.effect then
|
|
local effect = inputs.effect
|
|
effect.tint = inputs.tint
|
|
data.raw.resource[inputs.name].stages_effect = bobmods.lib.resource.effect(effect)
|
|
data.raw.resource[inputs.name].effect_animation_period = inputs.effect.animation_period or 5
|
|
data.raw.resource[inputs.name].effect_animation_period_deviation = inputs.effect.animation_period_deviation or 1
|
|
data.raw.resource[inputs.name].effect_darkness_multiplier = inputs.effect.darkness_multiplier or 3.6
|
|
data.raw.resource[inputs.name].min_effect_alpha = inputs.effect.min_alpha or 0.2
|
|
data.raw.resource[inputs.name].max_effect_alpha = inputs.effect.max_alpha or 0.3
|
|
end
|
|
end
|
|
|
|
function bobmods.lib.resource.create_icon(inputs)
|
|
local icon = { icon = "__boblibrary__/graphics/icons/ore-1.png", tint = inputs.tint, icon_size = 32 }
|
|
if inputs.sprite then
|
|
if inputs.sprite.sheet == 2 then
|
|
icon.icon = "__boblibrary__/graphics/icons/ore-2.png"
|
|
end
|
|
if inputs.sprite.sheet == 3 then
|
|
icon.icon = "__boblibrary__/graphics/icons/ore-3.png"
|
|
end
|
|
if inputs.sprite.sheet == 4 then
|
|
icon.icon = "__boblibrary__/graphics/icons/ore-4.png"
|
|
end
|
|
if inputs.sprite.sheet == 5 then
|
|
icon.icon = "__boblibrary__/graphics/icons/liquid.png"
|
|
end
|
|
if inputs.sprite.sheet == 6 then
|
|
icon.icon = "__boblibrary__/graphics/icons/ore-5.png"
|
|
end
|
|
end
|
|
return { icon }
|
|
end
|
|
|
|
function bobmods.lib.resource.create_particle(inputs)
|
|
data:extend({
|
|
{
|
|
type = "optimized-particle",
|
|
name = inputs.name,
|
|
life_time = 180,
|
|
pictures = {
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-1.png",
|
|
priority = "extra-high",
|
|
tint = inputs.tint,
|
|
width = 5,
|
|
height = 5,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-2.png",
|
|
priority = "extra-high",
|
|
tint = inputs.tint,
|
|
width = 7,
|
|
height = 5,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-3.png",
|
|
priority = "extra-high",
|
|
tint = inputs.tint,
|
|
width = 6,
|
|
height = 7,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-4.png",
|
|
priority = "extra-high",
|
|
tint = inputs.tint,
|
|
width = 9,
|
|
height = 8,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-5.png",
|
|
priority = "extra-high",
|
|
tint = inputs.tint,
|
|
width = 5,
|
|
height = 5,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-6.png",
|
|
priority = "extra-high",
|
|
tint = inputs.tint,
|
|
width = 6,
|
|
height = 4,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-7.png",
|
|
priority = "extra-high",
|
|
tint = inputs.tint,
|
|
width = 7,
|
|
height = 8,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-8.png",
|
|
priority = "extra-high",
|
|
tint = inputs.tint,
|
|
width = 6,
|
|
height = 5,
|
|
frame_count = 1,
|
|
},
|
|
},
|
|
shadows = {
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-1.png",
|
|
priority = "extra-high",
|
|
width = 5,
|
|
height = 5,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-2.png",
|
|
priority = "extra-high",
|
|
width = 7,
|
|
height = 5,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-3.png",
|
|
priority = "extra-high",
|
|
width = 6,
|
|
height = 7,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-4.png",
|
|
priority = "extra-high",
|
|
width = 9,
|
|
height = 8,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-5.png",
|
|
priority = "extra-high",
|
|
width = 5,
|
|
height = 5,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-6.png",
|
|
priority = "extra-high",
|
|
width = 6,
|
|
height = 4,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-7.png",
|
|
priority = "extra-high",
|
|
width = 7,
|
|
height = 8,
|
|
frame_count = 1,
|
|
},
|
|
{
|
|
filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-8.png",
|
|
priority = "extra-high",
|
|
width = 6,
|
|
height = 5,
|
|
frame_count = 1,
|
|
},
|
|
},
|
|
},
|
|
})
|
|
end
|
|
|
|
function bobmods.lib.resource.generate_data_stage(inputs)
|
|
if inputs.name then
|
|
if not inputs.particle then
|
|
inputs.particle = inputs.name .. "-particle"
|
|
bobmods.lib.resource.create_particle({ name = inputs.particle, tint = inputs.tint })
|
|
end
|
|
|
|
if inputs.item and inputs.item.create then
|
|
if not inputs.items then
|
|
inputs.items = {}
|
|
end
|
|
local item = {
|
|
name = inputs.name,
|
|
icon = inputs.icon,
|
|
subgroup = inputs.item.subgroup,
|
|
stack_size = inputs.item.stack_size,
|
|
tint = inputs.tint,
|
|
create_variations = inputs.item.create_variations,
|
|
}
|
|
if inputs.sprite then
|
|
item.sprite = inputs.sprite
|
|
end
|
|
bobmods.lib.resource.create_item(item)
|
|
table.insert(inputs.items, { name = inputs.name })
|
|
end
|
|
|
|
if inputs.autoplace == nil then
|
|
inputs.autoplace = bobmods.lib.resource.create_autoplace({
|
|
control = inputs.name or inputs.name,
|
|
name = inputs.name,
|
|
starting_area = true,
|
|
size = 1,
|
|
richness = 1,
|
|
})
|
|
elseif type(inputs.autoplace) == "table" then
|
|
if inputs.autoplace.create then
|
|
local autoplace = bobmods.lib.resource.create_autoplace({
|
|
control = inputs.autoplace.control or inputs.name,
|
|
name = inputs.name,
|
|
starting_area = inputs.autoplace.starting_area,
|
|
size = inputs.autoplace.size,
|
|
richness = inputs.autoplace.richness,
|
|
})
|
|
inputs.autoplace = autoplace
|
|
end
|
|
end
|
|
|
|
bobmods.lib.resource.create(inputs)
|
|
|
|
if inputs.items then
|
|
for i, item in pairs(inputs.items) do
|
|
bobmods.lib.resource.add_result(inputs.name, item)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function bobmods.lib.resource.generate_autoplace_control(control)
|
|
if not data.raw["autoplace-control"][control] then
|
|
data:extend({
|
|
{
|
|
type = "autoplace-control",
|
|
name = control,
|
|
richness = true,
|
|
order = "b-d-" .. control,
|
|
category = "resource",
|
|
},
|
|
})
|
|
data.raw["map-gen-presets"].default["rich-resources"].basic_settings.autoplace_controls[control] =
|
|
{ richness = "very-good" }
|
|
data.raw["map-gen-presets"].default["rail-world"].basic_settings.autoplace_controls[control] =
|
|
{ frequency = 0.33333333333, size = 3 }
|
|
data.raw["map-gen-presets"].default["ribbon-world"].basic_settings.autoplace_controls[control] =
|
|
{ frequency = 3, size = 0.5, richness = 2 }
|
|
end
|
|
end
|
|
|
|
function bobmods.lib.resource.generate_updates_stage(inputs)
|
|
if data.raw.resource[inputs.name] and inputs.autoplace then
|
|
local control = inputs.name
|
|
if type(inputs.autoplace) == "table" and inputs.autoplace.control then
|
|
control = inputs.autoplace.control
|
|
log(inputs.autoplace.control)
|
|
end
|
|
bobmods.lib.resource.generate_autoplace_control(control)
|
|
data.raw["autoplace-control"][control].localised_name =
|
|
{ "", "[entity=" .. inputs.name .. "] ", { "entity-name." .. inputs.name } }
|
|
if not data.raw["noise-layer"][inputs.name] and inputs.autoplace ~= "control-only" then
|
|
data:extend({
|
|
{
|
|
type = "noise-layer",
|
|
name = inputs.name,
|
|
},
|
|
})
|
|
end
|
|
if inputs.autoplace ~= "control-only" then
|
|
data.raw.resource[inputs.name].autoplace = inputs.autoplace
|
|
end
|
|
end
|
|
end
|
|
|
|
function bobmods.lib.resource.generate(inputs)
|
|
bobmods.lib.resource.generate_data_stage(inputs)
|
|
bobmods.lib.resource.generate_updates_stage(inputs)
|
|
end
|