update for 2.0 mostly done

This commit is contained in:
Brevven 2024-12-27 23:00:07 -08:00
parent cb0b405a73
commit 72e53ff4e3
17 changed files with 396 additions and 113 deletions

View file

@ -1,14 +1,12 @@
require("lead-recipe-modules")
require("lead-recipe-colors")
require("lead-recipe-final-5d")
require("lead-recipe-final-rrr")
require("lead-recipe-final-stacking")
----
local util = require("__bzlead__.data-util");
if (not mods["pyrawores"] and not mods["bobplates"] and not mods["angelssmelting"]) then
-- If furnaces are treated as furnaces, we need 2 outputs
for i, entity in pairs(data.raw.furnace) do

View file

@ -1,3 +1,4 @@
require("lead-asteroid-updates")
require("lead-recipe-updates")
require("lead-matter")
require("omni")
@ -7,4 +8,5 @@ require("compatibility/248k")
require("compatibility/sciencecosttweakerm")
require("compatibility/crafting-efficiency")
require("lead-recipe-modules")
local util = require("data-util")
util.redo_recycling()

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

View file

@ -1,13 +1,14 @@
{
"name": "bzlead",
"version": "1.2.20",
"factorio_version": "1.1",
"version": "2.0.0",
"factorio_version": "2.0",
"title": "Lead",
"author": "Brevven",
"contact": "",
"homepage": "",
"dependencies": [
"base >= 1.1.0",
"? space-age",
"? bzsilicon",
"? space-exploration",
"? Krastorio2",
@ -16,6 +17,5 @@
"? deadlock-beltboxes-loaders",
"? DeadlockCrating"
],
"description": "Adds lead ore and plates to the base game as an early game resource.\n\nLead is used in ammunition, pipes, batteries and a few other places.\nCompatible with RSO, Krastorio 2, Space Exploration and other mods. A standalone piece of BZ Mods.\n\nWith graphics by snouz."
"description": "Adds lead ore to the base game as an early game resource.\n\nLead is used in ammunition, pipes, batteries and more. Compatible with Space Age, RSO, and other mods.\n\nA standalone piece of BZ Mods. With graphics by snouz."
}

48
lead-asteroid-updates.lua Normal file
View file

@ -0,0 +1,48 @@
local util = require("data-util");
if mods["space-age"] then
-- Due to ammunition changes, we have to make some changes to asteroid processing
util.replace_ingredient("space-science-pack", "iron-plate", "lead-plate")
util.replace_product("metallic-asteroid-crushing", "iron-ore", "lead-ore")
util.add_product("advanced-metallic-asteroid-crushing", util.item("lead-ore", 8))
util.set_product_amount("advanced-metallic-asteroid-crushing", "iron-ore", 3)
util.set_product_amount("advanced-metallic-asteroid-crushing", "copper-ore", 3)
data:extend({
{
type = "recipe",
name = "alternative-metallic-asteroid-crushing",
-- localised_name = {"recipe-name.alternative-metallic-asteroid-crushing"},
icons =
{
{icon="__space-age__/graphics/icons/metallic-asteroid-crushing.png", size=64},
{icon="__base__/graphics/icons/iron-ore.png", size=64, scale=0.25, shift={-8,0}},
{icon="__bzlead__/graphics/icons/lead-ore.png", size=64, scale=0.25, shift={8,0}},
},
category = "crushing",
subgroup="space-crushing",
order = "c-a-b",
auto_recycle = false,
enabled = false,
ingredients =
{
{type = "item", name = "metallic-asteroid-chunk", amount = 1}
},
energy_required = 5,
results =
{
{type = "item", name = "lead-ore", amount = 10},
{type = "item", name = "iron-ore", amount = 7},
{type = "item", name = "metallic-asteroid-chunk", amount = 1, probability = 0.1}
},
allow_productivity = true,
allow_decomposition = false
},
})
util.add_unlock("advanced-asteroid-processing", "alternative-metallic-asteroid-crushing")
end

View file

@ -1,23 +1,29 @@
local resource_autoplace = require('resource-autoplace');
local noise = require('noise');
local util = require("__bzlead__.data-util");
data.raw.planet.nauvis.map_gen_settings.autoplace_controls["lead-ore"] = {}
data.raw.planet.nauvis.map_gen_settings.autoplace_settings.entity.settings["lead-ore"] = {}
resource_autoplace.initialize_patch_set("lead-ore", true)
data:extend({
{
type = "autoplace-control",
category = "resource",
name = "lead-ore",
richness = true,
order = "b-e"
},
{
type = "noise-layer",
name = "lead-ore"
order = "a-l"
},
--{
-- type = "noise-layer",
-- name = "lead-ore"
--},
{
type = "resource",
icon_size = 64, icon_mipmaps = 3,
category="basic-solid",
name = "lead-ore",
icon = "__bzlead__/graphics/icons/lead-ore.png",
flags = {"placeable-neutral"},
@ -35,7 +41,7 @@ data:extend({
autoplace = resource_autoplace.resource_autoplace_settings{
name = "lead-ore",
order = "b-z",
order = "a-t",
base_density = 6,
base_spots_per_km2 = 1,
has_starting_area_placement = true,
@ -71,10 +77,10 @@ data:extend({
icon_size = 64, icon_mipmaps = 3,
icon = "__bzlead__/graphics/icons/lead-ore.png",
pictures = {
{filename="__bzlead__/graphics/icons/lead-ore.png", size=64, scale=0.25},
{filename="__bzlead__/graphics/icons/lead-ore-1.png", size=64, scale=0.25},
{filename="__bzlead__/graphics/icons/lead-ore-2.png", size=64, scale=0.25},
{filename="__bzlead__/graphics/icons/lead-ore-3.png", size=64, scale=0.25},
{filename="__bzlead__/graphics/icons/lead-ore.png", size=64, scale=0.5},
{filename="__bzlead__/graphics/icons/lead-ore-1.png", size=64, scale=0.5},
{filename="__bzlead__/graphics/icons/lead-ore-2.png", size=64, scale=0.5},
{filename="__bzlead__/graphics/icons/lead-ore-3.png", size=64, scale=0.5},
},
subgroup = "raw-resource",
order = "t-c-a",
@ -82,15 +88,24 @@ data:extend({
},
})
local richness = data.raw.resource["lead-ore"].autoplace.richness_expression
-- Modify lead autoplace richness:
-- Up to 200 tiles it's standard
-- From 200 to 700 tiles, richness scales linearly down, until
-- From 700 tiles onward, it's about 1/6th the richness.
data.raw.resource["lead-ore"].autoplace.richness_expression =
richness * noise.if_else_chain(
noise.less_than(noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")), noise.to_noise_expression(200)), 1,
noise.less_than(noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")), noise.to_noise_expression(700)),
100 / (noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")) - 100),
0.17)
local richness = data.raw.resource["lead-ore"].autoplace.richness_expression
log("Lead richness pre")
log(richness)
data.raw.resource["lead-ore"].autoplace.richness_expression = richness..[[*
if(distance_from_nearest_point{x = x, y = y, points = starting_positions} < 200, 1,
if(distance_from_nearest_point{x = x, y = y, points = starting_positions} < 700,
100/(distance_from_nearest_point{x = x, y = y, points = starting_positions} - 100), 0.17))
]]
local richness = data.raw.resource["lead-ore"].autoplace.richness_expression
log("Lead richness post")
log(richness)
-- richness * noise.if_else_chain(
-- noise.less_than(noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")), noise.to_noise_expression(200)), 1,
-- noise.less_than(noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")), noise.to_noise_expression(700)),
-- 100 / (noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")) - 100),
-- 0.17)

View file

@ -1,16 +0,0 @@
local util = require("data-util");
-- Enable prod modules for all lead plate and ore recipes
for i, recipe in pairs(util.me.recipes) do
if data.raw.recipe[recipe] then
for j, module in pairs(data.raw.module) do
if module.effect then
for effect_name, effect in pairs(module.effect) do
if effect_name == "productivity" and effect.bonus > 0 and module.limitation and #module.limitation > 0 then
table.insert(module.limitation, recipe)
end
end
end
end
end
end

View file

@ -5,6 +5,8 @@ local util = require("__bzlead__.data-util");
if (not mods["pyrawores"] and not mods["bobplates"] and not mods["angelssmelting"] and not mods["IndustrialRevolution"]) then
util.replace_ingredient("pipe", "iron-plate", "lead-plate")
util.replace_ingredient("pipe-to-ground", "iron-plate", "lead-plate")
util.replace_ingredient("casting-pipe", "molten-iron", "molten-lead")
util.replace_ingredient("casting-pipe-to-ground", "molten-iron", "molten-lead")
util.replace_some_ingredient("storage-tank", "iron-plate", 10, "lead-plate", 10)
util.replace_ingredient("battery", "iron-plate", "lead-plate")

View file

@ -17,44 +17,42 @@ data:extend({
{ icon = "__bzlead__/graphics/icons/lead-plate.png", icon_size = 64, icon_mipmaps = 3, },
}
),
normal = (mods["Krastorio2"] and
{
main_product = util.me.lead_plate,
enabled = true,
energy_required = 16,
ingredients = {{"lead-ore", 10}},
results = util.me.byproduct() and {
{type="item", name = util.me.lead_plate, amount_min=4, amount_max=5},
{type="item", name = "copper-ore", amount_min=1, amount_max=2},
} or {
{type="item", name = util.me.lead_plate, amount=5},
},
} or
{
main_product = util.me.lead_plate,
enabled = true,
energy_required = 6.4,
ingredients = {{"lead-ore", 2}},
results = util.me.byproduct() and {
{type="item", name = util.me.lead_plate, amount=2, probability=5/6},
{type="item", name = "copper-ore", amount=1, probability=1/3},
} or {
{type="item", name = util.me.lead_plate, amount=2},
},
}),
expensive =
{
main_product = util.me.lead_plate,
enabled = true,
energy_required = 12.8,
ingredients = {{"lead-ore", 4}},
results = util.me.byproduct() and {
{type="item", name = util.me.lead_plate, amount=2, probability=5/6},
{type="item", name = "copper-ore", amount=1, probability=1/3},
} or {
{type="item", name = util.me.lead_plate, amount=2},
},
}
main_product = util.me.lead_plate,
-- (mods["Krastorio2"] and
-- {
-- enabled = true,
-- energy_required = 16,
-- ingredients = {{"lead-ore", 10}},
-- results = util.me.byproduct() and {
-- {type="item", name = util.me.lead_plate, amount_min=4, amount_max=5},
-- {type="item", name = "copper-ore", amount_min=1, amount_max=2},
-- } or {
-- {type="item", name = util.me.lead_plate, amount=5},
-- },
-- } or
enabled = true,
energy_required = 6.4,
ingredients = {util.item("lead-ore", 2)},
results = util.me.byproduct() and {
{type="item", name = util.me.lead_plate, amount=2, probability=5/6},
{type="item", name = "copper-ore", amount=1, probability=1/3},
} or {
{type="item", name = util.me.lead_plate, amount=2},
},
-- expensive =
-- {
-- main_product = util.me.lead_plate,
-- enabled = true,
-- energy_required = 12.8,
-- ingredients = {{"lead-ore", 4}},
-- results = util.me.byproduct() and {
-- {type="item", name = util.me.lead_plate, amount=2, probability=5/6},
-- {type="item", name = "copper-ore", amount=1, probability=1/3},
-- } or {
-- {type="item", name = util.me.lead_plate, amount=2},
-- },
-- }
},
{
type = "item",
@ -65,36 +63,262 @@ data:extend({
order = "b[lead-plate]",
stack_size = util.get_stack_size(100)
},
mods["TheBigFurnace"] and {
type = "recipe",
name = "big-lead-plate",
icons = { { icon = "__bzlead__/graphics/icons/lead-plate.png", icon_size = 64 }, },
subgroup = "raw-material",
category = "big-smelting",
order = "d[lead-plate]",
normal =
{
enabled = true,
energy_required = 7,
ingredients = {{"lead-ore", 100}},
results = {
{type="item", name = util.me.lead_plate, amount=100, probability=5/6},
{type="item", name = "copper-ore", amount=50, probability=1/3},
}
},
expensive =
{
enabled = true,
energy_required = 17.5,
ingredients = {{"lead-ore", 100}},
results = {
{type="item", name = util.me.lead_plate, amount=50, probability=5/6},
{type="item", name = "copper-ore", amount=25, probability=1/3},
}
}
} or nil,
-- mods["TheBigFurnace"] and {
-- type = "recipe",
-- name = "big-lead-plate",
-- icons = { { icon = "__bzlead__/graphics/icons/lead-plate.png", icon_size = 64 }, },
-- subgroup = "raw-material",
-- category = "big-smelting",
-- order = "d[lead-plate]",
-- normal =
-- {
-- enabled = true,
-- energy_required = 7,
-- ingredients = {{"lead-ore", 100}},
-- results = {
-- {type="item", name = util.me.lead_plate, amount=100, probability=5/6},
-- {type="item", name = "copper-ore", amount=50, probability=1/3},
-- }
-- },
-- expensive =
-- {
-- enabled = true,
-- energy_required = 17.5,
-- ingredients = {{"lead-ore", 100}},
-- results = {
-- {type="item", name = util.me.lead_plate, amount=50, probability=5/6},
-- {type="item", name = "copper-ore", amount=25, probability=1/3},
-- }
-- }
-- } or nil,
})
end
if util.me.more_entities() then
data:extend({
{
type = "item",
name = "lead-expansion-bolt",
group = "intermediate-products",
subgroup = "intermediate-product",
rocket_capacity = 1000,
stack_size=100,
icon = "__bzlead__/graphics/icons/lead-expansion-bolt.png",
icon_size = 128,
pictures = {
{filename="__bzlead__/graphics/icons/lead-expansion-bolt.png", size=128, scale=0.25},
},
order = "a[basic-intermediates]-e[expansion-bolt]",
},
{
type = "recipe",
name = "lead-expansion-bolt",
order = "a[basic-intermediates]-e[expansion-bolt]",
category = "crafting",
enabled = true,
ingredients = {util.item("lead-plate"), util.item("iron-plate")},
energy_required = 1,
results = {util.item("lead-expansion-bolt", 2)},
allow_productivity = true,
},
})
end
-- vulcanus
if mods["space-age"] then
data:extend({
{
type = "fluid",
name = "molten-lead",
icon = "__bzlead__/graphics/icons/molten-lead-sa.png",
subgroup = "fluid",
order = "b[new-fluid]-b[vulcanus]-d[molten-lead]",
default_temperature = 1500,
max_temperature = 2000,
heat_capacity = "0.01kJ",
base_color = {.6, 0.4, 0.23},
flow_color = {0.6, 0.4, 0.23},
auto_barrel = false
},
{
type = "recipe",
name = "molten-lead-from-lava",
icons = {
{icon = "__base__/graphics/icons/stone.png", icon_size=64, shift={-8,8}},
{icon = "__bzlead__/graphics/icons/molten-lead-sa.png", icon_size=64, shift={8,8}},
{icon = "__space-age__/graphics/icons/fluid/lava.png", icon_size=64, shift={0,-8}},
},
category = "metallurgy",
subgroup = "vulcanus-processes",
order = "a[melting]-a[lava-d]",
auto_recycle = false,
enabled = false,
ingredients =
{
{type = "fluid", name = "lava", amount = 500},
{type = "item", name = "calcite", amount = 1},
},
energy_required = 16,
results = util.me.byproduct() and {
{type = "fluid", name = "molten-lead", amount = 225},
{type = "item", name = "copper-ore", amount_min = 2, amount_max=3},
{type = "item", name = "stone", amount = 10},
} or {
{type = "fluid", name = "molten-lead", amount = 250},
{type = "item", name = "stone", amount = 10},
},
allow_productivity = true,
main_product = "molten-lead",
},
{
type = "recipe",
name = "molten-lead",
category = "metallurgy",
subgroup = "vulcanus-processes",
order = "a[melting]-d[molten-lead]",
auto_recycle = false,
enabled = false,
ingredients =
{
{type = "item", name = "lead-ore", amount = 50},
{type = "item", name = "calcite", amount = 1},
},
energy_required = 32,
results = util.me.byproduct() and {
{type = "fluid", name = "molten-lead", amount = 450},
{type = "item", name = "copper-ore", amount = 5},
} or {{type = "fluid", name = "molten-lead", amount = 500}},
allow_productivity = true,
hide_from_signal_gui = false,
main_product = "molten-lead",
},
{
type = "recipe",
name = "casting-lead",
category = "metallurgy",
subgroup = "vulcanus-processes",
order = "b[casting]-d[casting-lead]",
icons = {
{icon = "__bzlead__/graphics/icons/lead-plate.png", size = 64, shift={-4,4}},
{icon = "__bzlead__/graphics/icons/molten-lead-sa.png", size = 64, shift={4,-4}},
},
enabled = false,
ingredients =
{
{type = "fluid", name = "molten-lead", amount = 20, fluidbox_multiplier = 10},
},
energy_required = 3.2,
allow_decomposition = false,
results = {{type = "item", name = "lead-plate", amount = 2}},
allow_productivity = true
},
})
util.add_unlock("foundry", "casting-lead")
util.add_unlock("foundry", "molten-lead")
util.add_unlock("foundry", "molten-lead-from-lava")
local space_age_item_sounds = require("__space-age__.prototypes.item_sounds")
-- gleba
data:extend({
{
type = "item",
name = "chelated-lead",
icons = {
{icon="__bzlead__/graphics/icons/lead-powder.png", icon_size = 64}
},
subgroup = "agriculture-processes",
order = "b[agriculture]-c[lead]",
inventory_move_sound = space_age_item_sounds.agriculture_inventory_move,
pick_sound = space_age_item_sounds.agriculture_inventory_pickup,
drop_sound = space_age_item_sounds.agriculture_inventory_move,
stack_size = 50,
default_import_location = "gleba",
weight = 1 * kg,
},
{
type = "recipe",
name = "chelated-lead",
category = "organic-or-hand-crafting",
subgroup = "agriculture-processes",
order = "e[chelation]-a[lead]",
icons = {
{icon = "__space-age__/graphics/icons/yumako-mash.png", size=64, shift={-4,-4}},
{icon="__bzlead__/graphics/icons/lead-powder.png", icon_size = 64, shift={4,4}},
},
enabled = false,
allow_productivity = true,
ingredients =
{
util.item("yumako-mash", 1),
},
energy_required = 1,
allow_decomposition = false,
results = {
util.item("chelated-lead", 1),
util.item("yumako-mash", 1, .25),
},
main_product="chelated-lead",
},
{
type = "recipe",
name = "lead-dechelation",
category = "organic-or-hand-crafting",
subgroup = "agriculture-processes",
order = "e[chelation]-a[lead]",
icons = {
{icon = "__base__/graphics/icons/fluid/sulfuric-acid.png", size = 64, shift={-4,-4}},
{icon = "__bzlead__/graphics/icons/lead-ore.png", size = 64, shift={4,4}},
},
enabled = false,
allow_productivity = true,
ingredients =
{
util.item("chelated-lead", 1),
util.fluid("sulfuric-acid", 5),
},
energy_required = 2,
allow_decomposition = false,
results = {util.item("lead-ore", 1)},
},
})
util.add_unlock("bioflux-processing", "chelated-lead")
util.add_unlock("bioflux-processing", "lead-dechelation")
-- gleba
data:extend({
{
type = "item",
name = "lead-lithium-eutectic",
icons = {
{icon="__space-age__/graphics/icons/lithium-plate.png", icon_size = 64, tint={.5,.3,.25}},
},
group = "intermediate-products",
subgroup = "aquilo-processes",
order = "c[lithium]-c[lead-lithium-eutectic]",
inventory_move_sound = space_age_item_sounds.metal_small_inventory_move,
pick_sound = space_age_item_sounds.metal_small_inventory_pickup,
drop_sound = space_age_item_sounds.metal_small_inventory_move,
stack_size = 100,
default_import_location = "aquilo",
weight = 1 * kg,
},
{
type = "recipe",
name = "lead-lithium-eutectic",
category = "metallurgy",
auto_recycle = false,
energy_required = 10,
ingredients = {
util.item("lead-plate", 4),
util.item("lithium-plate", 1),
},
results = {
util.item("lead-lithium-eutectic", 5),
},
allow_productivity = true,
enabled = false,
},
})
util.add_unlock("fusion-reactor", "lead-lithium-eutectic")
end
if mods["IndustrialRevolution"] then
data:extend({

View file

@ -14,10 +14,15 @@ lead-alloy=__ITEM__lead-plate__
enriched-lead=Enriched lead
lead-chest=Lead chest
compressed-lead-ore=Compressed lead ore
chelated-lead=Chelated lead
lead-expansion-bolt=Lead expansion bolt
lead-lithium-eutectic=Lead-lithium eutectic
[item-description]
lead-ore=Can be smelted into lead plates
enriched-lead=Can be efficiently smelted into lead plates
lead-lithium-eutectic=Lead-lithium alloy with a low melting point, ideal for tritium breeding.
[fluid-name]
molten-lead=Molten lead
@ -36,6 +41,9 @@ smelt-compressed-lead-ore=__ITEM__lead-plate__
lead-dust=__ITEM__lead-dust__
dirty-water-filtration-lead=Filter dirty water [item=lead-ore]
bz-lead-ingot=Lead ingot
casting-lead=Casting lead
molten-lead-from-lava=Molten lead from lava
lead-dechelation=Lead dechelation
[recipe-description]
enriched-lead=Enrich lead ore, purifying with sulfuric acid [fluid=sulfuric-acid] and water [fluid=water], improving the final yield. Produce dirty water [fluid=dirty-water] as a byproduct.
@ -47,11 +55,11 @@ dirty-water-filtration-lead=Filter dirty water, giving lead ore [item=lead-ore],
[mod-setting-name]
bzlead-recipe-bypass=Bypass recipes
bzlead-byproduct=Output byproducts
bzlead-more-entities=Lead entities
bzlead-more-entities=Add more items and entities
bzlead-more-ammo=More recipes for ammunition.
[mod-setting-description]
bzlead-recipe-bypass=Skip modifying these recipes (comma-separated list).
bzlead-byproduct=If enabled, lead production will output copper as a byproduct.
bzlead-more-entities=Adds lead entities (currently just a lead chest).
bzlead-more-entities=Adds the lead expansion bolt intermediate and lead chest entity.
bzlead-more-ammo=Default is lead-only. This adds other options.

2
me.lua
View file

@ -1,6 +1,8 @@
local me = {}
me.name = "bzlead"
me.resources = {"lead-ore"}
me.fluid_mining = false
me.lead_ore = "lead-ore"
me.lead_plate = "lead-plate"
me.recipes = {me.lead_plate, "enriched-lead-plate", "enriched-lead", "lead-smelting-vulcanite", "molten-lead", "enriched-lead-smelting-vulcanite"}

View file

@ -18,8 +18,8 @@ data:extend({
type = "recipe",
name = "lead-chest",
enabled = true,
ingredients = {{"lead-plate", 8}},
result = "lead-chest"
ingredients = {leadutil.item("lead-plate", 8)},
results = {leadutil.item("lead-chest")},
},
{
type = "container",

View file

@ -16,7 +16,7 @@ data:extend({
type = "string-setting",
name = "bzlead-more-entities",
setting_type = "startup",
default_value = "no",
default_value = "yes",
allowed_values = {"yes", "no"},
},
{