EndgameCombat and AutoTrainDepot compat

This commit is contained in:
Brevven 2022-07-07 00:07:19 -07:00
parent d56adf2f64
commit 04f4b8d175
6 changed files with 45 additions and 16 deletions

View file

@ -1,4 +1,14 @@
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Version: 1.2.5
Date: 2022-07-03
Fixes:
- Compatibility with AutoTrainDepot & EndgameCombat
---------------------------------------------------------------------------------------------------
Version: 1.2.4
Date: 2022-07-03
Fixes:
- Compatibility between all of Titanium/EndgameCombat/Krastorio2
---------------------------------------------------------------------------------------------------
Version: 1.2.3 Version: 1.2.3
Date: 2022-07-03 Date: 2022-07-03
Fixes: Fixes:

View file

@ -0,0 +1,5 @@
local util = require("data-util");
if mods.AutoTrainDepot then
util.remove_prerequisite("depot-fluid", "nickel-processing")
end

View file

@ -1,7 +1,8 @@
-- Second part of hack for endgame combat -- Second part of hack for endgame combat
if mods["EndgameCombat"] and not mods["pyrawores"] and not mods["bobplates"] and not mods["angelssmelting"] then
local util = require("__bztitanium__.data-util"); if mods.EndgameCombat and not mods["pyrawores"] and not mods["bobplates"] and not mods["angelssmelting"] then
local util = require("data-util");
local dummy_items = {"cobalt-steel", "nickel", "aluminium"} local dummy_items = {"cobalt-steel", "nickel", "aluminium"}
if not mods.bztungsten then if not mods.bztungsten then
@ -37,4 +38,13 @@ if not mods.bztungsten then
util.remove_ingredient("lightning-turret", "tungsten") util.remove_ingredient("lightning-turret", "tungsten")
util.remove_prerequisite("lightning-turrets", "tungsten-processing") util.remove_prerequisite("lightning-turrets", "tungsten-processing")
end end
if mods.Krastorio2 then
-- remove K2 recipes that are created when our dummy items are detected
util.remove_raw("recipe", "kr-vc-cobalt-steel")
util.remove_raw("recipe", "kr-vc-nickel")
util.remove_raw("recipe", "kr-vc-aluminium")
end end
end

View file

@ -30,3 +30,5 @@ require("titanium-data-final-settings")
-- Second part of hack for endgame combat -- Second part of hack for endgame combat
require("compatibility/titanium-endgame-combat-final") require("compatibility/titanium-endgame-combat-final")
-- Hack for AutoTrainDepot
require("compatibility/titanium-auto-train-depot-final")

View file

@ -183,7 +183,6 @@ function add_ingredient(recipe, ingredient, quantity, is_fluid)
if recipe ~= nil and recipe.ingredients ~= nil then if recipe ~= nil and recipe.ingredients ~= nil then
for i, existing in pairs(recipe.ingredients) do for i, existing in pairs(recipe.ingredients) do
if existing[1] == ingredient or existing.name == ingredient then if existing[1] == ingredient or existing.name == ingredient then
log("Not adding "..ingredient.." -- duplicate")
return return
end end
end end
@ -271,27 +270,32 @@ function add_product(recipe, product)
end end
-- Replace one ingredient with another in a recipe -- Replace one ingredient with another in a recipe
function util.replace_ingredient(recipe_name, old, new) function util.replace_ingredient(recipe_name, old, new, amount)
if me.bypass[recipe_name] then return end if me.bypass[recipe_name] then return end
if data.raw.recipe[recipe_name] and (data.raw.item[new] or data.raw.fluid[new]) then if data.raw.recipe[recipe_name] and (data.raw.item[new] or data.raw.fluid[new]) then
me.add_modified(recipe_name) me.add_modified(recipe_name)
replace_ingredient(data.raw.recipe[recipe_name], old, new) replace_ingredient(data.raw.recipe[recipe_name], old, new, amount)
replace_ingredient(data.raw.recipe[recipe_name].normal, old, new) replace_ingredient(data.raw.recipe[recipe_name].normal, old, new, amount)
replace_ingredient(data.raw.recipe[recipe_name].expensive, old, new) replace_ingredient(data.raw.recipe[recipe_name].expensive, old, new, amount)
end end
end end
function replace_ingredient(recipe, old, new) function replace_ingredient(recipe, old, new, amount)
if recipe ~= nil and recipe.ingredients ~= nil then if recipe ~= nil and recipe.ingredients ~= nil then
for i, existing in pairs(recipe.ingredients) do for i, existing in pairs(recipe.ingredients) do
if existing[1] == new or existing.name == new then if existing[1] == new or existing.name == new then
log("Not adding "..new.." -- duplicate")
return return
end end
end end
for i, ingredient in pairs(recipe.ingredients) do for i, ingredient in pairs(recipe.ingredients) do
if ingredient.name == old then ingredient.name = new end if ingredient.name == old then
if ingredient[1] == old then ingredient[1] = new end ingredient.name = new
if amount then ingredient.amount = amount end
end
if ingredient[1] == old then
ingredient[1] = new
if amount then ingredient[2] = amount end
end
end end
end end
end end
@ -338,7 +342,6 @@ function replace_some_ingredient(recipe, old, old_amount, new, new_amount, is_fl
if recipe ~= nil and recipe.ingredients ~= nil then if recipe ~= nil and recipe.ingredients ~= nil then
for i, existing in pairs(recipe.ingredients) do for i, existing in pairs(recipe.ingredients) do
if existing[1] == new or existing.name == new then if existing[1] == new or existing.name == new then
log("Not adding "..new.." -- duplicate")
return return
end end
end end
@ -551,7 +554,7 @@ end
-- Set recipe category -- Set recipe category
function util.set_category(recipe_name, category) function util.set_category(recipe_name, category)
if me.bypass[recipe_name] then return end if me.bypass[recipe_name] then return end
if data.raw.recipe[recipe_name] then if data.raw.recipe[recipe_name] and data.raw["recipe-category"][category] then
me.add_modified(recipe_name) me.add_modified(recipe_name)
data.raw.recipe[recipe_name].category = category data.raw.recipe[recipe_name].category = category
end end
@ -601,10 +604,9 @@ end
-- Add crafting category to an entity -- Add crafting category to an entity
function util.add_crafting_category(entity_type, entity, category) function util.add_crafting_category(entity_type, entity, category)
if data.raw[entity_type][entity] then if data.raw[entity_type][entity] and data.raw["recipe-category"][category] then
for i, existing in pairs(data.raw[entity_type][entity].crafting_categories) do for i, existing in pairs(data.raw[entity_type][entity].crafting_categories) do
if existing == category then if existing == category then
log(entity.." not adding "..category.." -- duplicate")
return return
end end
end end

View file

@ -1,6 +1,6 @@
{ {
"name": "bztitanium", "name": "bztitanium",
"version": "1.2.3", "version": "1.2.5",
"factorio_version": "1.1", "factorio_version": "1.1",
"title": "Titanium", "title": "Titanium",
"author": "Brevven", "author": "Brevven",