forked from cacklingfiend/bzlib
Compare commits
9 commits
hyperspace
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
48fb18d37a | ||
|
|
9a934f3544 | ||
|
|
0945cb9773 | ||
|
|
fe85b07625 | ||
|
|
ae38826a2e | ||
|
|
0f8cf2c93d | ||
|
|
dc284a4e5e | ||
|
|
d46f8896cf | ||
|
|
95f6b5e744 |
3 changed files with 61 additions and 33 deletions
12
bzlib/changelog.txt
Normal file
12
bzlib/changelog.txt
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.0
|
||||
Date: 13.03.2026
|
||||
Changes:
|
||||
- Add get_setting
|
||||
- Make `me` optional
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.1
|
||||
Date: 11.03.2026
|
||||
Bug Fixes:
|
||||
- K2: Fix bug in matter recipe generation
|
||||
- Fix bug in add_icon when icons table is nil
|
||||
|
|
@ -3,11 +3,10 @@
|
|||
-- WARNING WARNING WARNING
|
||||
|
||||
local futil = require("util")
|
||||
local me = require("me")
|
||||
local me
|
||||
local util = {}
|
||||
|
||||
util.me = me
|
||||
util.get_setting = util.me.get_setting
|
||||
util.me = nil
|
||||
|
||||
util.bz = {}
|
||||
util.bz.carbon = mods["bzcarbon"] and "bzcarbon" or mods["bzcarbon2"] and "bzcarbon2"
|
||||
|
|
@ -76,6 +75,18 @@ util.vacuum_icon = { icon = "__base__/graphics/icons/fluid/steam.png", tint = {
|
|||
util.vacuum_icon_small = { icon = "__base__/graphics/icons/fluid/steam.png", tint = { r = .1, g = .1, b = .5, a = .5 }, scale = 0.25, shift = { -8, -8 }, }
|
||||
util.vacuum_vis = { r = .1, g = .1, b = .5 }
|
||||
|
||||
function util.initialize(them)
|
||||
me = them
|
||||
util.me = me
|
||||
end
|
||||
|
||||
function util.get_setting(name)
|
||||
if settings.startup[name] == nil then
|
||||
return nil
|
||||
end
|
||||
return settings.startup[name].value
|
||||
end
|
||||
|
||||
function util.item(item, quantity, probability)
|
||||
if not quantity then
|
||||
quantity = 1
|
||||
|
|
@ -113,13 +124,13 @@ end
|
|||
|
||||
allbypass = {}
|
||||
if get_setting("bz-recipe-bypass") then
|
||||
for recipe in string.gmatch(me.get_setting("bz-recipe-bypass"), '[^",%s]+') do
|
||||
for recipe in string.gmatch(util.get_setting("bz-recipe-bypass"), '[^",%s]+') do
|
||||
allbypass[recipe] = true
|
||||
end
|
||||
end
|
||||
|
||||
function util.is_foundry()
|
||||
return mods.bzfoundry2 and not me.get_setting("bzfoundry-minimal")
|
||||
return util.bz.foundry and not util.get_setting("bzfoundry-minimal")
|
||||
end
|
||||
|
||||
function should_force(options)
|
||||
|
|
@ -127,7 +138,7 @@ function should_force(options)
|
|||
end
|
||||
|
||||
function bypass(recipe_name)
|
||||
if me.bypass[recipe_name] then
|
||||
if me and me.bypass[recipe_name] then
|
||||
return true
|
||||
end
|
||||
if allbypass[recipe_name] then
|
||||
|
|
@ -412,7 +423,7 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
|
|||
})
|
||||
local probability = data.raw["simple-entity"]["gleba-rock"].autoplace.probability_expression
|
||||
-- A lot more common near starting point when aps gleba
|
||||
local factor = (mods["any-planet-start"] and me.get_setting("aps-planet") == "gleba" and 20) or 1
|
||||
local factor = (mods["any-planet-start"] and util.get_setting("aps-planet") == "gleba" and 20) or 1
|
||||
data.raw["simple-entity"]["gleba-rock"].autoplace.probability_expression = probability .. [[*
|
||||
if(distance_from_nearest_point{x = x, y = y, points = starting_positions} < 200, ]] .. factor .. [[,
|
||||
if(distance_from_nearest_point{x = x, y = y, points = starting_positions} < 700,
|
||||
|
|
@ -421,8 +432,8 @@ function util.add_gleba_rock(resource, amount_min, amount_max)
|
|||
|
||||
end
|
||||
if data.raw.item[resource] then
|
||||
amount_min = (amount_min or 10) * ((mods["any-planet-start"] and me.get_setting("aps-planet") == "gleba" and 4) or 1)
|
||||
amount_max = (amount_max or 20) * ((mods["any-planet-start"] and me.get_setting("aps-planet") == "gleba" and 4) or 1)
|
||||
amount_min = (amount_min or 10) * ((mods["any-planet-start"] and util.get_setting("aps-planet") == "gleba" and 4) or 1)
|
||||
amount_max = (amount_max or 20) * ((mods["any-planet-start"] and util.get_setting("aps-planet") == "gleba" and 4) or 1)
|
||||
util.add_minable_result(
|
||||
"simple-entity", "gleba-rock",
|
||||
{ type = "item", name = resource, amount_min = amount_min, amount_max = amount_max })
|
||||
|
|
@ -525,7 +536,7 @@ function util.se_landfill(params)
|
|||
type = "recipe",
|
||||
icons = {
|
||||
{ icon = "__base__/graphics/icons/landfill.png", icon_size = 64, icon_mipmaps = 3 },
|
||||
{ icon = "__" .. me.name .. "__/graphics/icons/" .. params.ore .. ".png", icon_size = params.icon_size, scale = 0.33 * 64 / params.icon_size },
|
||||
{ icon = "__" .. (me and me.name or params.ore) .. "__/graphics/icons/" .. params.ore .. ".png", icon_size = params.icon_size, scale = 0.33 * 64 / params.icon_size },
|
||||
},
|
||||
energy_required = 1,
|
||||
enabled = false,
|
||||
|
|
@ -596,7 +607,7 @@ function util.k2matter(params)
|
|||
time = 45,
|
||||
},
|
||||
effects = {},
|
||||
localised_name = { "technology-name.k2-conversion", { "item-name." .. params.k2matter.item_name } },
|
||||
localised_name = { "technology-name.k2-conversion", { "item-name." .. params.k2matter.material.name } },
|
||||
},
|
||||
})
|
||||
end
|
||||
|
|
@ -633,7 +644,7 @@ function util.se_matter(params)
|
|||
icon_size = 64, scale = 0.5 },
|
||||
{ icon = "__space-exploration-graphics__/graphics/icons/fluid/particle-stream.png",
|
||||
icon_size = 64, scale = 0.33, shift = { 8, -8 } },
|
||||
{ icon = "__" .. util.me.name .. "__/graphics/icons/" .. params.ore .. ".png",
|
||||
{ icon = "__" .. (me and me.name or params.ore) .. "__/graphics/icons/" .. params.ore .. ".png",
|
||||
icon_size = params.icon_size, scale = 0.33 * 64 / params.icon_size, shift = { -8, 8 } },
|
||||
{ icon = "__space-exploration-graphics__/graphics/icons/transition-arrow.png",
|
||||
icon_size = 64, scale = 0.5 },
|
||||
|
|
@ -672,7 +683,7 @@ function util.se_matter(params)
|
|||
icon_size = 64, scale = 0.5 },
|
||||
{ icon = "__space-exploration-graphics__/graphics/icons/fluid/particle-stream.png",
|
||||
icon_size = 64, scale = 0.33, shift = { -8, 8 } },
|
||||
{ icon = "__" .. util.me.name .. "__/graphics/icons/" .. params.ore .. ".png",
|
||||
{ icon = "__" .. (me and me.name or params.ore) .. "__/graphics/icons/" .. params.ore .. ".png",
|
||||
icon_size = params.icon_size, scale = 0.33 * 64 / params.icon_size, shift = { 8, -8 } },
|
||||
{ icon = "__space-exploration-graphics__/graphics/icons/transition-arrow.png",
|
||||
icon_size = 64, scale = 0.5 },
|
||||
|
|
@ -956,7 +967,7 @@ function util.add_ingredient(recipe_name, ingredient, quantity, options)
|
|||
end
|
||||
local is_fluid = not not data.raw.fluid[ingredient]
|
||||
if data.raw.recipe[recipe_name] and (util.get_item(ingredient) or is_fluid) then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
add_ingredient(data.raw.recipe[recipe_name], ingredient, quantity, is_fluid)
|
||||
end
|
||||
|
|
@ -1007,7 +1018,7 @@ function util.set_ingredient(recipe_name, ingredient, quantity, options)
|
|||
end
|
||||
if data.raw.recipe[recipe_name] and data.raw.item[ingredient] then
|
||||
local is_fluid = not not data.raw.fluid[ingredient]
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
set_ingredient(data.raw.recipe[recipe_name], ingredient, quantity, is_fluid)
|
||||
end
|
||||
|
|
@ -1119,7 +1130,7 @@ function util.replace_ingredient(recipe_name, old, new, amount, multiply, option
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] and (data.raw.item[new] or data.raw.fluid[new]) and (data.raw.item[old] or data.raw.fluid[old]) then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
replace_ingredient(data.raw.recipe[recipe_name], old, new, amount, multiply)
|
||||
end
|
||||
|
|
@ -1153,7 +1164,7 @@ function util.remove_ingredient(recipe_name, old, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
remove_ingredient(data.raw.recipe[recipe_name], old)
|
||||
end
|
||||
|
|
@ -1181,7 +1192,7 @@ function util.replace_some_product(recipe_name, old, old_amount, new, new_amount
|
|||
end
|
||||
local is_fluid = not not data.raw.fluid[new] -- NOTE CURRENTLY UNUSUED
|
||||
if data.raw.recipe[recipe_name] and (data.raw.item[new] or is_fluid) then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
replace_some_product(data.raw.recipe[recipe_name], old, old_amount, new, new_amount, is_fluid)
|
||||
end
|
||||
|
|
@ -1215,7 +1226,7 @@ function util.replace_some_ingredient(recipe_name, old, old_amount, new, new_amo
|
|||
end
|
||||
local is_fluid = not not data.raw.fluid[new]
|
||||
if data.raw.recipe[recipe_name] and (data.raw.item[new] or is_fluid) then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
replace_some_ingredient(data.raw.recipe[recipe_name], old, old_amount, new, new_amount, is_fluid)
|
||||
end
|
||||
|
|
@ -1243,7 +1254,7 @@ function util.set_product_probability(recipe_name, product, probability, options
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
set_product_probability(data.raw.recipe[recipe_name], product, probability)
|
||||
end
|
||||
|
|
@ -1267,7 +1278,7 @@ function util.set_product_amount(recipe_name, product, amount, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
set_product_amount(data.raw.recipe[recipe_name], product, amount)
|
||||
end
|
||||
|
|
@ -1298,7 +1309,7 @@ function util.multiply_recipe(recipe_name, multiple, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
multiply_recipe(data.raw.recipe[recipe_name], multiple)
|
||||
end
|
||||
|
|
@ -1340,7 +1351,7 @@ function util.multiply_ingredients(recipe_name, multiple, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
multiply_ingredients(data.raw.recipe[recipe_name], multiple)
|
||||
end
|
||||
|
|
@ -1381,7 +1392,7 @@ function util.remove_product(recipe_name, old, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
remove_product(data.raw.recipe[recipe_name], old)
|
||||
end
|
||||
|
|
@ -1464,7 +1475,7 @@ function util.set_recipe_time(recipe_name, time, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
set_recipe_time(data.raw.recipe[recipe_name], time)
|
||||
end
|
||||
|
|
@ -1484,7 +1495,7 @@ function util.multiply_time(recipe_name, factor, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
multiply_time(data.raw.recipe[recipe_name], factor)
|
||||
end
|
||||
|
|
@ -1504,7 +1515,7 @@ function util.add_time(recipe_name, amount, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
add_time(data.raw.recipe[recipe_name], amount)
|
||||
end
|
||||
|
|
@ -1531,7 +1542,7 @@ function util.set_category(recipe_name, category, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] and data.raw["recipe-category"][category] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
prepare_redo_recycling(recipe_name)
|
||||
data.raw.recipe[recipe_name].category = category
|
||||
end
|
||||
|
|
@ -1543,7 +1554,7 @@ function util.set_subgroup(recipe_name, subgroup, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] and data.raw["item-subgroup"][subgroup] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
data.raw.recipe[recipe_name].subgroup = subgroup
|
||||
end
|
||||
end
|
||||
|
|
@ -1563,7 +1574,7 @@ function util.add_icon(recipe_name, icon, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
if not (data.raw.recipe[recipe_name].icons and #(data.raw.recipe[recipe_name].icons) > 0) then
|
||||
if data.raw.recipe[recipe_name].icon then
|
||||
data.raw.recipe[recipe_name].icons = { {
|
||||
|
|
@ -1587,6 +1598,7 @@ function util.add_icon(recipe_name, icon, options)
|
|||
data.raw.recipe[recipe_name].icon = nil
|
||||
data.raw.recipe[recipe_name].icon_size = nil
|
||||
end
|
||||
data.raw.recipe[recipe_name].icons = data.raw.recipe[recipe_name].icons or {}
|
||||
table.insert(data.raw.recipe[recipe_name].icons, icon)
|
||||
end
|
||||
end
|
||||
|
|
@ -1597,7 +1609,7 @@ function util.set_icons(recipe_name, icons, options)
|
|||
return
|
||||
end
|
||||
if data.raw.recipe[recipe_name] then
|
||||
me.add_modified(recipe_name)
|
||||
if me then me.add_modified(recipe_name) end
|
||||
data.raw.recipe[recipe_name].icons = icons
|
||||
data.raw.recipe[recipe_name].icon = nil
|
||||
data.raw.recipe[recipe_name].icon_size = nil
|
||||
|
|
@ -1610,7 +1622,7 @@ function util.set_tech_icons(technology, icons, options)
|
|||
return
|
||||
end
|
||||
if data.raw.technology[technology] then
|
||||
me.add_modified(technology)
|
||||
if me then me.add_modified(technology) end
|
||||
data.raw.technology[technology].icons = icons
|
||||
data.raw.technology[technology].icon = nil
|
||||
data.raw.technology[technology].icon_size = nil
|
||||
|
|
@ -1955,6 +1967,10 @@ function util.sum_products(recipe_name)
|
|||
return 0
|
||||
end
|
||||
|
||||
function util.add_productivity(recipe)
|
||||
data.raw.recipe[recipe].allow_productivity = true
|
||||
end
|
||||
|
||||
function util.set_vtk_dcm_ingredients()
|
||||
if mods["vtk-deep-core-mining"] then
|
||||
local sum = util.sum_products("vtk-deepcore-mining-ore-chunk-refining")
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "bzlib",
|
||||
"version": "1.0.0",
|
||||
"version": "1.1.0",
|
||||
"factorio_version": "2.0",
|
||||
"title": "BZ Lib",
|
||||
"description": "Library code for BZ mods",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue