From 1ce0015459e6d02e9927065ff52b1be5590f2013 Mon Sep 17 00:00:00 2001 From: Brevven Date: Sat, 24 Sep 2022 13:23:49 -0700 Subject: [PATCH] advanced belts --- changelog.txt | 5 +++++ data-util.lua | 36 ++++++++++++++++++++++++++++++++++++ info.json | 2 +- titanium-recipe-updates.lua | 10 ++++++++++ 4 files changed, 52 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index f21c145..720f0ed 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 1.2.8 +Date: 2022-08-23 + Changes: + - Recipe compatibility with new advanced belts mod +--------------------------------------------------------------------------------------------------- Version: 1.2.7 Date: 2022-08-17 Fixes: diff --git a/data-util.lua b/data-util.lua index 45b3a28..cd2148a 100644 --- a/data-util.lua +++ b/data-util.lua @@ -1,6 +1,7 @@ -- WARNING WARNING WARNING -- This file will be overwritten in mod zipfiles, edit bzlib/data-util.lua -- WARNING WARNING WARNING +-- local me = require("me") local util = {} @@ -252,6 +253,9 @@ function util.add_prerequisite(technology_name, prerequisite) local technology = data.raw.technology[technology_name] if technology and data.raw.technology[prerequisite] then if technology.prerequisites then + for i, pre in pairs(technology.prerequisites) do + if pre == prerequisite then return end + end table.insert(technology.prerequisites, prerequisite) else technology.prerequisites = {prerequisite} @@ -1146,4 +1150,36 @@ function util.add_unlock_force(technology_name, recipe) util.add_unlock(technology_name, recipe) end +-- sum the products of a recipe +function util.sum_products(recipe_name) + -- this is going to end up approximate in some cases, integer division is probs fine + if data.raw.recipe[recipe_name] then + local recipe = data.raw.recipe[recipe_name] + if not recipe.results then return recipe.result_count end + local sum = 0 + for i, result in pairs(recipe.results) do + local amt = 0 + if result[2] then amt = result[2] + elseif result.amount then amt = result.amount + elseif result.amount_min then amt = (result.amount_min + result.amount_max)/2 + end + if result.probability then amt = amt * result.probability end + sum = sum + amt + end + return sum + end + return 0 +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") + log("setting vtk deepcore based on " .. serpent.dump(sum) .. " to " ..serpent.dump(sum*0.8)) + util.set_ingredient("vtk-deepcore-mining-ore-chunk-refining", "vtk-deepcore-mining-ore-chunk", sum * 0.8) + local sum = 1+util.sum_products("vtk-deepcore-mining-ore-chunk-refining-no-uranium") + log("setting vtk deepcore no uranium to " .. serpent.dump(sum)) + util.set_ingredient("vtk-deepcore-mining-ore-chunk-refining-no-uranium", "vtk-deepcore-mining-ore-chunk", sum) + end +end + return util diff --git a/info.json b/info.json index 681dfbb..cf3387d 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "bztitanium", - "version": "1.2.7", + "version": "1.2.8", "factorio_version": "1.1", "title": "Titanium", "author": "Brevven", diff --git a/titanium-recipe-updates.lua b/titanium-recipe-updates.lua index 74e2c75..7277862 100644 --- a/titanium-recipe-updates.lua +++ b/titanium-recipe-updates.lua @@ -150,6 +150,16 @@ if not mods.bzaluminum then util.replace_ingredient("extreme-fast-belt-loader", "express-transport-belt-loader", util.me.titanium_plate, 20) end +-- Advanced belts +util.add_ingredient("extreme-belt", util.me.titanium_plate, 5) -- Advanced +util.add_ingredient("extreme-underground", util.me.titanium_plate, 20) +if not mods.bzaluminum then + util.add_ingredient("ultimate-belt", util.me.titanium_plate, 10) -- Elite + util.add_ingredient("ultimate-underground", util.me.titanium_plate, 40) +end + + +-- bob belts, logistics util.replace_ingredient("turbo-transport-belt", "steel-plate", util.me.titanium_plate, 20) util.replace_ingredient("ultimate-transport-belt", "steel-plate", util.me.titanium_plate) util.replace_ingredient("turbo-underground-belt", "steel-plate", util.me.titanium_plate)