This commit is contained in:
Brevven 2025-04-07 21:14:21 -07:00
parent 6d4513d783
commit 7d383717d1
13 changed files with 181 additions and 96 deletions

View file

@ -12,6 +12,30 @@ util.get_setting = util.me.get_setting
util.titanium_plate = ""
util.titanium_processing = ""
local item_sounds_helper = [[
local item_sounds = require('__base__.prototypes.item_sounds')
inventory_move_sound = item_sounds.wire_inventory_move,
pick_sound = item_sounds.wire_inventory_pickup,
drop_sound = item_sounds.wire_inventory_move,
inventory_move_sound = item_sounds.metal_small_inventory_move,
pick_sound = item_sounds.metal_small_inventory_pickup,
drop_sound = item_sounds.metal_small_inventory_move,
inventory_move_sound = item_sounds.resource_inventory_move,
pick_sound = item_sounds.resource_inventory_pickup,
drop_sound = item_sounds.resource_inventory_move,
inventory_move_sound = item_sounds.brick_inventory_move,
pick_sound = item_sounds.brick_inventory_pickup,
drop_sound = item_sounds.brick_inventory_move,
inventory_move_sound = item_sounds.sulfur_inventory_move,
pick_sound = item_sounds.resource_inventory_pickup,
drop_sound = item_sounds.sulfur_inventory_move,
]]
util.A = {{"automation-science-pack", 1}}
util.AL = {{"automation-science-pack", 1}, {"logistic-science-pack", 1}}
util.ALC = {{"automation-science-pack", 1}, {"logistic-science-pack", 1}, {"chemical-science-pack", 1}}
@ -157,6 +181,7 @@ function util.add_shiftite_recipe(item, shiftites, quantity)
end
-- Add the gleba rock. If it exists, still add resource to mine from it
local gleba_tint = {.6, .8, 1}
function util.add_gleba_rock(resource, amount_min, amount_max)
if (not data.raw.planet.gleba or
not data.raw.planet.gleba.map_gen_settings or -- attempted compatibility fixes
@ -176,7 +201,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
name = "gleba-rock",
localised_name = {"entity-name.big-rock"},
flags = {"placeable-neutral", "placeable-off-grid"},
icon = "__base__/graphics/icons/big-sand-rock.png",
icons = {{icon = "__base__/graphics/icons/big-sand-rock.png", tint=gleba_tint}},
subgroup = "grass",
order = "b[decorative]-l[rock]-a[big]",
deconstruction_alternative = "big-rock",
@ -227,6 +252,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
{
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-01.png",
tint = gleba_tint,
width = 209,
height = 138,
shift = {0.304688, -0.4},
@ -234,6 +260,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-02.png",
tint = gleba_tint,
width = 165,
height = 129,
shift = {0.0, 0.0390625},
@ -241,6 +268,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-03.png",
tint = gleba_tint,
width = 151,
height = 139,
shift = {0.151562, 0.0},
@ -248,6 +276,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-04.png",
tint = gleba_tint,
width = 216,
height = 110,
shift = {0.390625, 0.0},
@ -255,6 +284,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-05.png",
tint = gleba_tint,
width = 154,
height = 147,
shift = {0.328125, 0.0703125},
@ -262,6 +292,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-06.png",
tint = gleba_tint,
width = 154,
height = 132,
shift = {0.16875, -0.1},
@ -269,6 +300,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-07.png",
tint = gleba_tint,
width = 193,
height = 130,
shift = {0.3, -0.2},
@ -276,6 +308,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-08.png",
tint = gleba_tint,
width = 136,
height = 117,
shift = {0.0, 0.0},
@ -283,6 +316,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-09.png",
tint = gleba_tint,
width = 157,
height = 115,
shift = {0.1, 0.0},
@ -290,6 +324,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-10.png",
tint = gleba_tint,
width = 198,
height = 153,
shift = {0.325, -0.1},
@ -297,6 +332,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-11.png",
tint = gleba_tint,
width = 190,
height = 115,
shift = {0.453125, 0.0},
@ -304,6 +340,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-12.png",
tint = gleba_tint,
width = 229,
height = 126,
shift = {0.539062, -0.015625},
@ -311,6 +348,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-13.png",
tint = gleba_tint,
width = 151,
height = 125,
shift = {0.0703125, 0.179688},
@ -318,6 +356,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-14.png",
tint = gleba_tint,
width = 137,
height = 117,
shift = {0.160938, 0.0},
@ -325,6 +364,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-15.png",
tint = gleba_tint,
width = 201,
height = 141,
shift = {0.242188, -0.195312},
@ -332,6 +372,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
},
{
filename = "__base__/graphics/decorative/sand-rock/big-sand-rock-16.png",
tint = gleba_tint,
width = 209,
height = 154,
shift = {0.351562, -0.1},
@ -571,7 +612,7 @@ function util.se_matter(params)
{"se-contaminated-scrap", 1},
{type=item, name=sedata, amount=1, probability=.99},
{type=item, name=sejunk, amount=1, probability=.01},
{type="fluid", name="se-space-coolant-hot", amount=25, catalyst_amount=25},
{type="fluid", name="se-space-coolant-hot", amount=25, ignored_by_stats=25, ignored_by_productivity=25},
}
}
})
@ -608,7 +649,7 @@ function util.se_matter(params)
results = {
{type=item, name="se-kr-matter-liberation-data", amount=1, probability=.99},
{type=item, name=sejunk, amount=1, probability=.01},
{type="fluid", name="se-particle-stream", amount=params.stream_out, catalyst_amount=50},
{type="fluid", name="se-particle-stream", amount=params.stream_out, ignored_by_stats=50, ignored_by_productivity=50},
}
}
})
@ -1187,8 +1228,11 @@ function multiply_recipe(recipe, multiple)
result.amount_min = result.amount_min * multiple
result.amount_max = result.amount_max * multiple
end
if result.catalyst_amount then
result.catalyst_amount = result.catalyst_amount * multiple
if result.ignored_by_stats then
result.ignored_by_stats = result.ignored_by_stats * multiple
end
if result.ignored_by_productivity then
result.ignored_by_productivity = result.ignored_by_productivity * multiple
end
end
end
@ -1483,6 +1527,12 @@ function util.set_to_founding(recipe, options)
util.set_subgroup(recipe, "foundry-intermediate", options)
end
function util.add_asteroid_to_planet(planet, spawn_def)
if data.raw.planet[planet] and data.raw[spawn_def.type][spawn_def.asteroid] then
table.insert(data.raw.planet[planet].asteroid_spawn_definitions, spawn_def)
end
end
-- Add crafting category to an entity
function util.add_crafting_category(entity_type, entity, category)
if data.raw[entity_type][entity] and data.raw["recipe-category"][category] then
@ -1663,12 +1713,17 @@ end
function util.remove_prior_unlocks(tech, recipe)
if data.raw.technology[tech].prerequisites then
for i, prerequisite in pairs(data.raw.technology[tech].prerequisites) do
remove_prior_unlocks(prerequisite, recipe)
remove_prior_unlocks(prerequisite, recipe, {})
end
end
end
function remove_prior_unlocks(tech, recipe)
function remove_prior_unlocks(tech, recipe, processed)
if processed[tech] then
print("Already processed ".. tech .. " returning")
return
end
processed[tech] = true
local technology = data.raw.technology[tech]
if technology then
log("Removing prior unlocks for ".. tech)
@ -1677,7 +1732,7 @@ function remove_prior_unlocks(tech, recipe)
for i, prerequisite in pairs(technology.prerequisites) do
if string.sub(prerequisite, 1, 3) ~= 'ei_' then
-- log("BZZZ removing prior unlocks for " .. recipe .. " from " .. tech ..", checking " .. prerequisite) -- Handy Debug :|
remove_prior_unlocks(prerequisite, recipe)
remove_prior_unlocks(prerequisite, recipe, processed)
end
end
end
@ -1701,12 +1756,17 @@ function util.replace_ingredients_prior_to(tech, old, new, multiplier)
end
if data.raw.technology[tech].prerequisites then
for i, prerequisite in pairs(data.raw.technology[tech].prerequisites) do
replace_ingredients_prior_to(prerequisite, old, new, multiplier)
replace_ingredients_prior_to(prerequisite, old, new, multiplier, {})
end
end
end
function replace_ingredients_prior_to(tech, old, new, multiplier)
function replace_ingredients_prior_to(tech, old, new, multiplier, processed)
if processed[tech] then
print("Already processed ".. tech .. " returning")
return
end
processed[tech] = true
log("Replacing for tech "..tech)
local technology = data.raw.technology[tech]
if technology then
@ -1722,7 +1782,7 @@ function replace_ingredients_prior_to(tech, old, new, multiplier)
for i, prerequisite in pairs(technology.prerequisites) do
-- log("BZZZ checking " .. prerequisite) -- Handy Debug :|
if string.sub(prerequisite, 1, 3) ~= 'ei_' then
replace_ingredients_prior_to(prerequisite, old, new, multiplier)
replace_ingredients_prior_to(prerequisite, old, new, multiplier, processed)
end
end
end
@ -1803,11 +1863,7 @@ end
-- Save recycling metadata that is later removed by quality mod. Call near end of data.lua
function util.prepare_recycling_helper()
if mods.quality then
for _, recipe in pairs(data.raw.recipe) do
recipe.auto_recycle_helper = recipe.auto_recycle
end
end
-- DEPRECATED
end
-- Recalculate recycling recipes, call near end of data-updates.lua, after calling
@ -1816,7 +1872,6 @@ function util.redo_recycling()
if mods.quality then
local recycling = require("__quality__.prototypes.recycling")
for _, recipe in pairs(data.raw.recipe) do
recipe.auto_recycle = recipe.auto_recycle_helper -- keeping this outside conditional to improve fidelity across multiple mods
if recipe.redo_recycling then
recycling.generate_recycling_recipe(recipe)
end