From bd96ca74645905536fc546fee6bc56b1c9369ab5 Mon Sep 17 00:00:00 2001 From: Brevven Date: Mon, 7 Apr 2025 20:10:44 -0700 Subject: [PATCH] updates --- changelog.txt | 8 ++- compatibility/crafting-efficiency.lua | 39 --------------- data-updates.lua | 1 - data-util.lua | 72 ++++++++++++++++++++------- magazine.lua | 3 ++ zircon.lua | 5 +- zirconium-recipe.lua | 23 +++++++-- 7 files changed, 87 insertions(+), 64 deletions(-) delete mode 100644 compatibility/crafting-efficiency.lua diff --git a/changelog.txt b/changelog.txt index cc326e4..31c3b5a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,8 +1,12 @@ --------------------------------------------------------------------------------------------------- Version: 2.1.7 -Date: 2025-03-03 +Date: 2025-03-22 Changes: - - Compatibility tweaks for Tungsten mod + - Set inventory sounds for some items + - Minor compatibility tweaks + Fixes: + - Loads with Crafting Efficiency mod + - Improved compatibility with muluna - Other incidental fixes --------------------------------------------------------------------------------------------------- Version: 2.1.6 diff --git a/compatibility/crafting-efficiency.lua b/compatibility/crafting-efficiency.lua deleted file mode 100644 index 4c5c59a..0000000 --- a/compatibility/crafting-efficiency.lua +++ /dev/null @@ -1,39 +0,0 @@ -local util = require("data-util"); - -if mods["crafting-efficiency-2"] then - - local eff_data = { - } - - for i, recipe in pairs(util.me.recipes) do - -- add remaining recipes with direct items to find the icons - if data.raw.recipe[recipe] and (data.raw.item[recipe] or data.raw.fluid[recipe]) - and not eff_data[recipe] then - local research_level = 1 - if not data.raw.recipe[recipe].enabled then - for tech, tbl in pairs(data.raw.technology) do - for _, effect in pairs(tbl.effects or {}) do - if effect.type == "unlock-recipe" and effect.recipe == recipe then - research_level = math.min(#tbl.unit.ingredients, 6) - end - end - end - end - eff_data[recipe] = { - max = 15, - icon = util.get_item_or_fluid_icon(recipe), - crafting = { efficiency = 10 }, - research = { level = research_level }, - } - if recipe:find("smelting") then - eff_data[recipe].crafting.efficiency = 20 - eff_data[recipe].crafting.category = "smelting" - end - end - end - for recipe, d in pairs(eff_data) do - log("Adding "..recipe.." crafting efficiency") - d.name = recipe:gsub("^%l", string.upper).." efficiency" - CE_Add_Recipe(d, recipe) - end -end diff --git a/data-updates.lua b/data-updates.lua index 6c1b9e7..d099fb6 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -6,7 +6,6 @@ require("map-gen-preset-updates") require("omni") require("strange-matter") require("zircon-rocks") -require("compatibility/crafting-efficiency") local util = require("data-util"); diff --git a/data-util.lua b/data-util.lua index 2ab6faf..2ab06b4 100644 --- a/data-util.lua +++ b/data-util.lua @@ -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}, @@ -1672,16 +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, 0) + remove_prior_unlocks(prerequisite, recipe, {}) end end end -function remove_prior_unlocks(tech, recipe, depth) - if depth > 10000 then - log("Infinite recursion detected, backing out.") +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) @@ -1690,7 +1732,7 @@ function remove_prior_unlocks(tech, recipe, depth) 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, depth+1) + remove_prior_unlocks(prerequisite, recipe, processed) end end end @@ -1714,16 +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, 0) + replace_ingredients_prior_to(prerequisite, old, new, multiplier, {}) end end end -function replace_ingredients_prior_to(tech, old, new, multiplier, depth) - if depth > 10000 then - log("Infinite recursion detected, backing out.") +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 @@ -1739,7 +1782,7 @@ function replace_ingredients_prior_to(tech, old, new, multiplier, depth) 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, depth + 1) + replace_ingredients_prior_to(prerequisite, old, new, multiplier, processed) end end end @@ -1820,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 @@ -1833,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 diff --git a/magazine.lua b/magazine.lua index 0194861..020eb14 100644 --- a/magazine.lua +++ b/magazine.lua @@ -114,6 +114,9 @@ if util.me.ammo() then type = "ammo", name = "explosive-rounds-rifle-magazine", icon = "__bzzirconium__/graphics/icons/r-magazine.png", + inventory_move_sound = item_sounds.ammo_small_inventory_move, + pick_sound = item_sounds.ammo_small_inventory_pickup, + drop_sound = item_sounds.ammo_small_inventory_move, icon_size = 64, icon_mipmaps = 4, ammo_type = { diff --git a/zircon.lua b/zircon.lua index 0c8449d..d80a653 100644 --- a/zircon.lua +++ b/zircon.lua @@ -1,5 +1,5 @@ local resource_autoplace = require('resource-autoplace'); - +local item_sounds = require('__base__.prototypes.item_sounds') local util = require("data-util"); @@ -75,6 +75,9 @@ data:extend({ {filename="__bzzirconium__/graphics/icons/zircon-3.png", size=128, scale=0.25}, {filename="__bzzirconium__/graphics/icons/zircon-4.png", size=128, scale=0.25}, }, + inventory_move_sound = item_sounds.resource_inventory_move, + pick_sound = item_sounds.resource_inventory_pickup, + drop_sound = item_sounds.resource_inventory_move, subgroup = "raw-resource", order = "t-c-a", weight = 1*kg, diff --git a/zirconium-recipe.lua b/zirconium-recipe.lua index 17e3b66..c6041e6 100644 --- a/zirconium-recipe.lua +++ b/zirconium-recipe.lua @@ -1,10 +1,7 @@ -- Zirconium smelting, etc local util = require("data-util"); - --- data:extend({ --- --- }) +local item_sounds = require('__base__.prototypes.item_sounds') data:extend({ { @@ -12,6 +9,9 @@ data:extend({ name = "zirconia", icon = "__bzzirconium__/graphics/icons/zirconia.png", icon_size = 128, + inventory_move_sound = item_sounds.brick_inventory_move, + pick_sound = item_sounds.brick_inventory_pickup, + drop_sound = item_sounds.brick_inventory_move, subgroup = "raw-material", order = "z[zirconia]", weight = 1*kg, @@ -72,6 +72,9 @@ data:extend({ {filename = "__bzzirconium__/graphics/icons/zirconium-sponge-1.png", size=128, scale=0.25}, {filename = "__bzzirconium__/graphics/icons/zirconium-sponge-2.png", size=128, scale=0.25}, }, + inventory_move_sound = item_sounds.wire_inventory_move, + pick_sound = item_sounds.wire_inventory_pickup, + drop_sound = item_sounds.wire_inventory_move, subgroup = "raw-material", order = "z[zirconia]", weight = 1*kg, @@ -98,6 +101,9 @@ data:extend({ icon_size = 128, subgroup = "raw-material", order = "d[zirconium-plate]", + 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, weight = 1*kg, stack_size = util.get_stack_size(100) }, @@ -208,6 +214,9 @@ data:extend({ {filename = "__bzzirconium__/graphics/icons/cermet-3.png", size=128, scale=0.125}, {filename = "__bzzirconium__/graphics/icons/cermet-4.png", size=128, scale=0.125}, }, + inventory_move_sound = item_sounds.wire_inventory_move, + pick_sound = item_sounds.wire_inventory_pickup, + drop_sound = item_sounds.wire_inventory_move, subgroup = "intermediate-product", order = "z[cermet]", weight = 0.5*kg, @@ -411,6 +420,9 @@ data:extend({ name = "zirconium-tungstate", icons = {{icon = "__bzzirconium__/graphics/icons/zircon-powder.png", icon_size = 64, tint = {a=1, r=.95, g=.75, b=0}}}, + inventory_move_sound = item_sounds.sulfur_inventory_move, + pick_sound = item_sounds.resource_inventory_pickup, + drop_sound = item_sounds.sulfur_inventory_move, subgroup = "intermediate-product", order = "z[zz]", weight = 2*kg, @@ -449,6 +461,9 @@ data:extend({ type = "item", name = "zircaloy-4", icons = {{icon = "__bzzirconium__/graphics/icons/zircaloy-4.png", icon_size = 128}}, + 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, subgroup = "intermediate-product", order = "z[zz]", weight = 5*kg,