diff --git a/lignumis/prototypes/content/gold.lua b/lignumis/prototypes/content/gold.lua index 0910494..fe0e553 100644 --- a/lignumis/prototypes/content/gold.lua +++ b/lignumis/prototypes/content/gold.lua @@ -5,16 +5,62 @@ local tile_trigger_effects = require("__base__.prototypes.tile.tile-trigger-effe local semi_wet_sound = sound_variations("__space-age__/sound/walking/semi-wet-rock", 10, 0.7) local tile_sounds = require("__space-age__/prototypes/tile/tile-sounds") local resource_autoplace = require("resource-autoplace") +local meld = require("meld") resource_autoplace.initialize_patch_set("gold-patch", true) + +--* control:lignumis_gold:size + +--local function gold_autoplace(settings) +-- settings = settings or {} +-- return resource_autoplace.resource_autoplace_settings({ +-- name = "gold-patch", +-- order = "b", +-- base_density = 1, +-- richness_multiplier = 1, +-- richness_multiplier_distance_bonus = 1.5, +-- base_spots_per_km2 = 20, +-- has_starting_area_placement = true, +-- random_spot_size_minimum = 0.01, +-- random_spot_size_maximum = 0.1, +-- regular_blob_amplitude_multiplier = 1, +-- richness_post_multiplier = 1.0, +-- additional_richness = 350000, +-- regular_rq_factor_multiplier = 0.1, +-- candidate_spot_count = 22, +-- tile_restriction = settings.tile_restriction, +-- }) +--end +local function gold_autoplace(settings) + settings = settings or {} + return { + probability_expression = "lignumis_gold / 2000 * control:lignumis_gold:frequency", + richness_expression = "lignumis_gold * control:lignumis_gold:richness * 2000000", + tile_restriction = settings.tile_restriction + } +end + +data:extend({ + { + type = "noise-expression", + name = "lignumis_gold", + expression = + "clamp(1 - 2 * abs(multioctave_noise{x = x, y = y, persistence = 0.75, seed0 = map_seed, seed1 = 1000000, octaves = 4, input_scale = 1/45}), 0, 1)\z + * (1 + (gold_mask_noise - 1) / 10)", + local_expressions = { + gold_mask_noise = + "abs(multioctave_noise{x = x, y = y, persistence = 0.7, seed0 = map_seed, seed1 = 1000000, octaves = 3, input_scale = 1/75})" + } + } +}) + local gold_stromatolite = util.copy(data.raw["simple-entity"]["copper-stromatolite"]) gold_stromatolite.name = "gold-stromatolite" gold_stromatolite.icon = "__lignumis__/graphics/icons/gold-stromatolite.png" -gold_stromatolite.autoplace = { - probability_expression = "min(0.2, 0.3 * (1 - gleba_plants_noise) * control:gleba_plants:size)", +gold_stromatolite.autoplace = gold_autoplace({ tile_restriction = { "natural-gold-soil" } -} +}) gold_stromatolite.collision_mask = util.copy(data.raw["plant"]["tree-plant"].collision_mask) gold_stromatolite.minable.results = { { type = "item", name = "gold-ore", amount_min = 13, amount_max = 17 }, @@ -163,10 +209,9 @@ gold_stromatolite_plant.collision_box = { { -0.5, -0.5 }, { 0.5, 0.5 } } gold_stromatolite_plant.selection_box = { { -0.7, -0.7 }, { 0.7, 0.7 } } gold_stromatolite_plant.remains_when_mined = nil gold_stromatolite_plant.pictures = util.copy(gold_stromatolite.pictures) -gold_stromatolite_plant.autoplace = { - probability_expression = "min(0.2, 0.3 * (1 - gleba_plants_noise) * control:gleba_plants:size)", +gold_stromatolite_plant.autoplace = gold_autoplace({ tile_restriction = { "natural-gold-soil" } -} +}) data:extend({ gold_stromatolite, @@ -255,12 +300,15 @@ data:extend({ [4] = { probability = 0.1, weights = { 0.018, 0.020, 0.015, 0.025, 0.015, 0.020, 0.025, 0.015, 0.025, 0.025, 0.010, 0.025, 0.020, 0.025, 0.025, 0.010 }, }, } ), - walking_sound = semi_wet_sound, landing_steps_sound = tile_sounds.landing.semi_wet, build_sound = data.raw["tile"]["landfill"].build_sound, map_color = { 185, 166, 5 }, - scorch_mark_color = { r = 0.329, g = 0.242 * 2, b = 0.177, a = 1.000 } + scorch_mark_color = { r = 0.329, g = 0.242 * 2, b = 0.177, a = 1.000 }, + autoplace = { + probability_expression = "lignumis_gold / 2000 * control:lignumis_gold:frequency", + richness_expression = "lignumis_gold * control:lignumis_gold:richness" + }, }, { type = "item-subgroup", @@ -274,13 +322,10 @@ data:extend({ icon = "__lignumis__/graphics/icons/gold-patch.png", icon_size = 64, flags = { "placeable-neutral" }, - category = "drilling", + category = "deep-mining", order = "a-b-a", infinite = false, highlight = true, - minimum = 600000, - normal = 1200000, - --infinite_depletion_amount = 10, resource_patch_search_radius = 12, tree_removal_probability = 1, tree_removal_max_distance = 32 * 32, @@ -292,13 +337,9 @@ data:extend({ --collision_mask = {"item-layer", "water-tile"}, selection_box = { { -3.5, -3.5 }, { 3.5, 3.5 } }, autoplace = { - base_density = 2, - base_spots_per_km2 = 5, - has_starting_area_placement = true, - regular_rq_factor_multiplier = 1, - starting_rq_factor_multiplier = 1, - candidate_spot_count = 21, - probability_expression = "min(0.2, 0.3 * (1 - gleba_plants_noise) * control:gleba_plants:size)", + probability_expression = "lignumis_gold / 2000 * control:lignumis_gold:frequency", + richness_expression = "lignumis_gold * 2000000 * control:lignumis_gold:richness", + tile_restriction = { "natural-gold-soil" } }, stage_counts = { 0 }, stages = { @@ -316,7 +357,7 @@ data:extend({ map_grid = false }, { - name = "drilling", + name = "deep-mining", type = "resource-category", }, {