get working in 2.0

This commit is contained in:
Brevven 2025-01-07 04:45:50 -08:00
parent 00cc9df72c
commit d0aaba1d07
6 changed files with 68 additions and 60 deletions

View file

@ -1,3 +1,7 @@
local util = require("control-util")
script.on_configuration_changed(util.ore_fix)
util.add_regenerate_command_handler()
script.on_event( defines.events.on_console_chat, function(event) script.on_event( defines.events.on_console_chat, function(event)
-- refresh recipes, in case of settings change -- refresh recipes, in case of settings change
if event.message and event.message == "ZirconiumRecipes" and (not event.player_index or not game.players[event.player_index] or game.players[event.player_index].admin) then if event.message and event.message == "ZirconiumRecipes" and (not event.player_index or not game.players[event.player_index] or game.players[event.player_index].admin) then

View file

@ -1,13 +1,14 @@
{ {
"name": "bzzirconium", "name": "bzzirconium",
"version": "0.7.3", "version": "2.0.0",
"factorio_version": "1.1", "factorio_version": "2.0",
"title": "Zirconium", "title": "Zirconium",
"author": "Brevven", "author": "Brevven",
"contact": "", "contact": "",
"homepage": "", "homepage": "",
"dependencies": [ "dependencies": [
"base >= 1.1.0", "base >= 1.1.0",
"? space-age",
"? space-exploration", "? space-exploration",
"? aai-industry", "? aai-industry",
"? Krastorio2", "? Krastorio2",
@ -19,6 +20,6 @@
"? bztitanium >= 0.12.4", "? bztitanium >= 0.12.4",
"? bztungsten >= 0.5.0" "? bztungsten >= 0.5.0"
], ],
"description": "Adds zircon, zirconia, zirconium, and cermet to the base game.\n\nCompatible with Krastorio 2, Space Exploration, FE+, and more. A standalone piece of BZ Mods." "description": "Adds zircon, zirconia, zirconium, and cermet to the base game.\n\nCompatible with Space Age and more. A standalone piece of BZ Mods."
} }

View file

@ -3,21 +3,21 @@ local util = require("data-util");
if util.me.ammo() then if util.me.ammo() then
local mag = { local mag = {
{"zirconium-plate", 1}, util.item("zirconium-plate", 1),
} }
local ct = 1 local ct = 1
if mods.bztungsten then if mods.bztungsten then
table.insert(mag, {"tungsten-carbide", 1}) table.insert(mag, util.item("tungsten-carbide", 1))
ct = ct + 1 ct = ct + 1
end end
-- add any other count-incrementing ingredients before silica, oil, and magazine -- add any other count-incrementing ingredients before silica, oil, and magazine
if mods.bzsilicon then if mods.bzsilicon then
table.insert(mag, {"silica", ct}) table.insert(mag, util.item("silica", ct))
end end
table.insert(mag, {type="fluid", name="heavy-oil", amount=ct}) table.insert(mag, {type="fluid", name="heavy-oil", amount=ct})
if not mods.Krastorio2 or not util.get_setting("kr-more-realistic-weapon") then if not mods.Krastorio2 or not util.get_setting("kr-more-realistic-weapon") then
table.insert(mag, {"piercing-rounds-magazine", ct}) table.insert(mag, util.item("piercing-rounds-magazine", ct))
data:extend({ data:extend({
{ {
@ -25,6 +25,7 @@ if util.me.ammo() then
name = "explosive-rounds-magazine", name = "explosive-rounds-magazine",
icon = "__bzzirconium__/graphics/icons/magazine.png", icon = "__bzzirconium__/graphics/icons/magazine.png",
icon_size = 64, icon_mipmaps = 4, icon_size = 64, icon_mipmaps = 4,
ammo_category = "bullet",
ammo_type = ammo_type =
{ {
category = "bullet", category = "bullet",
@ -90,8 +91,7 @@ if util.me.ammo() then
enabled = false, enabled = false,
energy_required = 6 * ct, energy_required = 6 * ct,
ingredients = mag, ingredients = mag,
result = "explosive-rounds-magazine", results = {util.item("explosive-rounds-magazine", ct)},
result_count = ct,
}, },
}) })
@ -104,9 +104,9 @@ if util.me.ammo() then
end end
rmag = futil.table.deepcopy(mag) rmag = futil.table.deepcopy(mag)
table.insert(rmag, {"armor-piercing-rifle-magazine", ct}) table.insert(rmag, util.item("armor-piercing-rifle-magazine", ct))
ammag = futil.table.deepcopy(mag) ammag = futil.table.deepcopy(mag)
table.insert(ammag, {"armor-piercing-anti-material-rifle-magazine", ct}) table.insert(ammag, util.item("armor-piercing-anti-material-rifle-magazine", ct))
data:extend({ data:extend({
@ -220,8 +220,7 @@ if util.me.ammo() then
energy_required = 2.5*ct, energy_required = 2.5*ct,
enabled = false, enabled = false,
ingredients = rmag, ingredients = rmag,
result = "explosive-rounds-rifle-magazine", results = {util.item("explosive-rounds-rifle-magazine", ct)},
result_count = ct,
}, },
------------------------ ------------------------
@ -330,8 +329,7 @@ if util.me.ammo() then
energy_required = 6*ct, energy_required = 6*ct,
enabled = false, enabled = false,
ingredients = ammag, ingredients = ammag,
result = "explosive-rounds-anti-material-rifle-magazine", results = {util.item("explosive-rounds-anti-material-rifle-magazine", ct)},
result_count = ct,
}, },
}) })

1
me.lua
View file

@ -1,6 +1,7 @@
local me = {} local me = {}
me.name = "bzzirconium" me.name = "bzzirconium"
me.resources = {"zircon"}
me.recipes = {"zirconium-plate", "zirconia", "cermet", me.recipes = {"zirconium-plate", "zirconia", "cermet",
"enriched-zirconia-smelting", "enriched-zirconia-smelting",
"enriched-zircon", "enriched-zircon",

View file

@ -1,19 +1,24 @@
local resource_autoplace = require('resource-autoplace'); local resource_autoplace = require('resource-autoplace');
local noise = require('noise');
local util = require("data-util"); local util = require("data-util");
data.raw.planet.nauvis.map_gen_settings.autoplace_controls["zircon"] = {}
data.raw.planet.nauvis.map_gen_settings.autoplace_settings.entity.settings["zircon"] = {}
resource_autoplace.initialize_patch_set("zircon", true)
if mods.tenebris then
data.raw.planet.tenebris.map_gen_settings.autoplace_controls["zircon"] = {}
data.raw.planet.tenebris.map_gen_settings.autoplace_settings.entity.settings["zircon"] = {}
end
data:extend({ data:extend({
{ {
type = "autoplace-control", type = "autoplace-control",
category = "resource", category = "resource",
name = "zircon", name = "zircon",
richness = true, richness = true,
order = "b-e" order = "a-z"
},
{
type = "noise-layer",
name = "zircon"
}, },
{ {
type = "resource", type = "resource",
@ -37,7 +42,7 @@ data:extend({
autoplace = resource_autoplace.resource_autoplace_settings{ autoplace = resource_autoplace.resource_autoplace_settings{
name = "zircon", name = "zircon",
order = "b-z", order = "a-z",
base_density = 4, base_density = 4,
has_starting_area_placement = true, has_starting_area_placement = true,
regular_rq_factor_multiplier = 1.2, regular_rq_factor_multiplier = 1.2,
@ -80,8 +85,12 @@ local richness = data.raw.resource["zircon"].autoplace.richness_expression
-- Modify zircon autoplace richness: -- Modify zircon autoplace richness:
-- After 500 tiles it's standard -- After 500 tiles it's standard
-- Up to 500 tiles, it scales up -- Up to 500 tiles, it scales up
data.raw.resource["zircon"].autoplace.richness_expression = data.raw.resource["zircon"].autoplace.richness_expression = richness..[[*
richness * noise.if_else_chain( if(distance_from_nearest_point{x = x, y = y, points = starting_positions} < 500,
noise.less_than(noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")), noise.to_noise_expression(500)), (distance_from_nearest_point{x = x, y = y, points = starting_positions} + 25)/525,
(noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")) + 25)/525, 1)
1) ]]
-- 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(500)),
-- (noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")) + 25)/525,
-- 1)

View file

@ -35,31 +35,31 @@ data:extend({
main_product = "zirconia", main_product = "zirconia",
enabled = false, enabled = false,
energy_required = 8, energy_required = 8,
ingredients = {{"zircon", 5}}, ingredients = {util.item("zircon", 5)},
results = mods.bztitanium and util.me.byproduct() and { results = mods.bztitanium and util.me.byproduct() and {
{name="zirconia", amount_min=4, amount_max=5}, {name="zirconia", amount_min=4, amount_max=5},
{name="titanium-ore", amount=1, probability=.5} {name="titanium-ore", amount=1, probability=.5}
} or {{"zirconia", 5}} } or {util.item("zirconia", 5)}
} or } or
{ {
main_product = "zirconia", main_product = "zirconia",
enabled = false, enabled = false,
energy_required = 3.2, energy_required = 3.2,
ingredients = {{"zircon", 1}}, ingredients = {util.item("zircon", 1)},
results = mods.bztitanium and util.me.byproduct() and { results = mods.bztitanium and util.me.byproduct() and {
{name="zirconia", amount=2, probability=.95}, {name="zirconia", amount=2, probability=.95},
{name="titanium-ore", amount=1, probability=.1} {name="titanium-ore", amount=1, probability=.1}
} or {{"zirconia", 2}} } or {util.item("zirconia", 2)}
}), }),
expensive = expensive =
{ {
main_product = "zirconia", main_product = "zirconia",
enabled = false, enabled = false,
energy_required = 3.2, energy_required = 3.2,
ingredients = {{"zircon", 1}}, ingredients = {util.item("zircon", 1)},
results = mods.bztitanium and util.me.byproduct() and { results = mods.bztitanium and util.me.byproduct() and {
{"zirconia", 1}, {name="titanium-ore", amount=1, probability=.05} util.item("zirconia", 1), {name="titanium-ore", amount=1, probability=.05}
} or {{"zirconia", 2}} } or {util.item("zirconia", 2)}
} }
}, },
{ {
@ -89,22 +89,20 @@ data:extend({
{ {
enabled = false, enabled = false,
energy_required = 8, energy_required = 8,
ingredients = {{"zirconia", 15}}, ingredients = {util.item("zirconia", 15)},
result = "zirconium-plate", results = {util.item("zirconium-plate", 5)},
result_count = 5,
} or } or
{ {
enabled = false, enabled = false,
energy_required = 9.6, energy_required = 9.6,
ingredients = {{"zirconia", 3}}, ingredients = {util.item("zirconia", 3)},
result = "zirconium-plate", results = {util.item("zirconium-plate", 1)},
result_count = 1,
}), }),
expensive = expensive =
{ {
enabled = false, enabled = false,
energy_required = 9.6, energy_required = 9.6,
ingredients = {{"zirconia", 6}}, ingredients = {util.item("zirconia", 6)},
result = "zirconium-plate", result = "zirconium-plate",
} }
}, },
@ -149,16 +147,16 @@ data:extend({
-- cermet only if setting enabled -- cermet only if setting enabled
if util.me.use_cermet() then if util.me.use_cermet() then
local cermet_i = {{"zirconia", 2}, {"copper-plate", 1}} local cermet_i = {util.item("zirconia", 2), util.item("copper-plate", 1)}
if mods.bztitanium then if mods.bztitanium then
local tme = require("__bztitanium__.me"); local tme = require("__bztitanium__.me");
table.insert(cermet_i, {tme.titanium_plate, 1}) table.insert(cermet_i, util.item(tme.titanium_plate, 1))
end end
if mods.bzsilicon then if mods.bzsilicon then
table.insert(cermet_i, {"silica", 1}) table.insert(cermet_i, util.item("silica", 1))
end end
if mods.bzaluminum then if mods.bzaluminum then
table.insert(cermet_i, {"alumina", 1}) table.insert(cermet_i, util.item("alumina", 1))
end end
data:extend({ data:extend({
{ {
@ -187,8 +185,7 @@ data:extend({
enabled = false, enabled = false,
energy_required = #cermet_i + 1, energy_required = #cermet_i + 1,
ingredients = cermet_i, ingredients = cermet_i,
result = "cermet", results = {util.item("cermet", #cermet_i + 1)},
result_count = #cermet_i + 1,
}, },
{ {
type = "technology", type = "technology",
@ -237,7 +234,7 @@ data:extend({
}, },
enabled = true, enabled = true,
energy_required = 1, energy_required = 1,
ingredients = {{"stone", 2}}, ingredients = {util.item("stone", 2)},
results = { results = {
{type="item", name="zircon", amount=1, probability=.999999}, {type="item", name="zircon", amount=1, probability=.999999},
{type="item", name="stone", amount=1, probability=0.5}, {type="item", name="stone", amount=1, probability=0.5},
@ -255,7 +252,7 @@ data:extend({
}, },
enabled = true, enabled = true,
energy_required = 1, energy_required = 1,
ingredients = {{"zircon", 2}}, ingredients = {util.item("zircon", 2)},
results = { results = {
{type="item", name="stone", amount=1, probability=.999999}, {type="item", name="stone", amount=1, probability=.999999},
{type="item", name="zircon", amount=1, probability=0.5}, {type="item", name="zircon", amount=1, probability=0.5},
@ -265,7 +262,7 @@ data:extend({
end end
-- Zirconium Tungstate, only if needed -- Zirconium Tungstate, only if needed
if mods.bztungsten and (mods["Krastorio2"] or mods["space-exploration"]) then if mods["space-age"] or (mods.bztungsten and (mods["Krastorio2"] or mods["space-exploration"])) then
data:extend({ data:extend({
{ {
type = "item", type = "item",
@ -284,9 +281,8 @@ data:extend({
order = "z[zz]", order = "z[zz]",
enabled = false, enabled = false,
energy_required = 2, energy_required = 2,
ingredients = {{"zirconium-plate", 1}, {"tungsten-plate", 1},}, ingredients = {util.item("zirconium-plate", 1), util.item("tungsten-plate", 1),},
result = "zirconium-tungstate", results = {util.item("zirconium-tungstate", 2)},
result_count = 2,
}, },
}) })
util.add_effect("zirconia-processing", { type = "unlock-recipe", recipe = "zirconium-tungstate" }) util.add_effect("zirconia-processing", { type = "unlock-recipe", recipe = "zirconium-tungstate" })
@ -295,9 +291,9 @@ end
-- Zircaloy-4 only if needed -- Zircaloy-4 only if needed
if mods.bztin then if mods.bztin then
local zircaloyi = { local zircaloyi = {
{"zirconium-plate", 17}, util.item("zirconium-plate", 17),
{"tin-plate", 2}, util.item("tin-plate", 2),
{"iron-plate", 1}, util.item("iron-plate", 1),
} }
data:extend({ data:extend({
{ {
@ -316,8 +312,7 @@ data:extend({
enabled = false, enabled = false,
energy_required = 60, energy_required = 60,
ingredients = zircaloyi, ingredients = zircaloyi,
result = "zircaloy-4", results = {util.item("zircaloy-4", 20)},
result_count = 20,
}, },
}) })
util.add_effect("zirconia-processing", { type = "unlock-recipe", recipe = "zircaloy-4" }) util.add_effect("zirconia-processing", { type = "unlock-recipe", recipe = "zircaloy-4" })
@ -331,8 +326,8 @@ data:extend({
category = "double-smelting", category = "double-smelting",
enabled = false, enabled = false,
energy_required = 19.2, energy_required = 19.2,
ingredients = {{"zircon", 3}}, ingredients = {util.item("zircon", 3)},
results = {{"zirconium-plate", 2}}, results = {util.item("zirconium-plate", 2)},
} }
}) })
util.add_effect("zirconia-processing", {type = "unlock-recipe", recipe = "double-zirconium"}) util.add_effect("zirconia-processing", {type = "unlock-recipe", recipe = "double-zirconium"})