1
0
mirror of https://github.com/Wyrrrd/bbr-fix.git synced 2026-07-06 13:13:04 +02:00

4 Commits

Author SHA1 Message Date
Wyrrrd 69bf3cac33 Add vscode to gitignore 2023-12-21 10:37:42 +01:00
Wyrrrd 5936a9acc7 Forgot credits (sorry) 2023-03-22 13:50:37 +01:00
Wyrrrd 86b98f8bc9 Rewrite against bugs and for performance 2023-03-22 13:38:44 +01:00
Wyrrrd db9a5ccdb3 Changed mod setting to int 2021-09-06 23:28:10 +02:00
11 changed files with 125 additions and 28 deletions
+1
View File
@@ -1 +1,2 @@
*.zip
.vscode/*
+29
View File
@@ -0,0 +1,29 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "factoriomod",
"request": "launch",
"name": "Factorio Mod Debug",
"factorioVersion": "D:/Modding/Factorio/bin/x64/factorio.exe"
},
{
"type": "factoriomod",
"request": "launch",
"name": "Factorio Mod Debug (Settings & Data)",
"factorioPath": "D:/Factorio/latest/bin/x64/factorio.exe",
"hookSettings": true,
"hookData": true
},
{
"type": "factoriomod",
"request": "launch",
"name": "Factorio Mod Debug (Profile)",
"factorioPath": "D:/Factorio/latest/bin/x64/factorio.exe",
"hookMode": "profile"
}
]
}
+9
View File
@@ -0,0 +1,9 @@
{
"factorio.versions": [
{
"name": "Main",
"factorioPath": "d:\\Modding\\Factorio\\bin\\x64\\factorio.exe",
"active": true
}
]
}
+4 -3
View File
@@ -2,12 +2,13 @@
<img src="https://raw.githubusercontent.com/Wyrrrd/bbr-fix/master/thumbnail.png" width="128" height="128">
### Features
Changes the recipes of BBR to depend on rails to be more in line with modded rail recipes. You can also enable more expensive recipes via mod settings.
Changes the recipes of BBR to depend on rails to be more in line with modded rail recipes. You can also make the recipes more expensive via mod settings.
### Examples
The stone in the rail recipe gets replaced by the bridge material (wood, iron plate or stone brick).
So if your modded rail costs 1x stone, 1x steel and 1x turret (don't ask why), with expensive recipes **disabled**, wooden bridge rail will cost **1x** wood, 1x steel and 1x turret. With expensive recipes **enabled**, wooden bridge rail will cost **5x** wood, 1x steel and 1x turret.
So if your modded rail costs 1x stone, 1x steel and 1x turret (don't ask why), with a cost multiplier of **1**, wooden bridge rail will cost **1x** wood, 1x steel and 1x turret. With a cost multiplier of **5**, wooden bridge rail will cost **5x** wood, 1x steel and 1x turret.
### Credits
Thanks to [kapaer](https://mods.factorio.com/user/kapaer) for the [mod](https://mods.factorio.com/mod/beautiful_bridge_railway) this depends on.
Thanks to [kapaer](https://mods.factorio.com/user/kapaer) for the [mod](https://mods.factorio.com/mod/beautiful_bridge_railway) this depends on.
Thanks to [Eldrinn-Elantey](https://github.com/Eldrinn-Elantey) for the Russian translation.7
+13
View File
@@ -1,4 +1,17 @@
---------------------------------------------------------------------------------------------------
Version: 1.1.3
Date: 2023-03-22
Changes:
- Complete rewrite to enable copying rail recipe result amount, and for performance
Features:
- Added "gravel" from IR3 to overwritten materials
---------------------------------------------------------------------------------------------------
Version: 1.1.2
Date: 2021-09-06
Changes:
- opened up configurability, now the expensiveness can be set freely (don't overdo it)
- if you used expensive mode, you have to set the cost multiplier to 5 before loading your map
---------------------------------------------------------------------------------------------------
Version: 1.1.1
Date: 2020-12-29
Features:
+60 -17
View File
@@ -1,23 +1,66 @@
local base_recipe = {}
-- grab rail recipe ingredients except stone
for _,component in pairs(data.raw["recipe"]["rail"].ingredients) do
cname = component[1] or component["name"]
camount = component[2] or component["amount"]
if cname ~= "stone" then
table.insert(base_recipe,{cname,camount})
-- setup id helper maps
ingredients_id_map = {old = false}
for id, item in pairs(data.raw["recipe"]["rail"].ingredients) do
ingredients_id_map[item[1] or item["name"]] = id
if item[1] then
ingredients_id_map["old"] = true
end
end
data.raw["recipe"]["bbr-rail-wood"].ingredients = table.deepcopy(base_recipe)
data.raw["recipe"]["bbr-rail-iron"].ingredients = table.deepcopy(base_recipe)
data.raw["recipe"]["bbr-rail-brick"].ingredients = table.deepcopy(base_recipe)
if data.raw["recipe"]["rail"].products then
products_id_map = {}
print(tprint(data.raw["recipe"]["rail"]))
for id, item in pairs(data.raw["recipe"]["rail"].products) do products_id_map[item[1] or item["name"]] = id end
end
if settings.startup["bbr_fix_expensive"].value then
table.insert(data.raw["recipe"]["bbr-rail-wood"].ingredients,{"wood",5})
table.insert(data.raw["recipe"]["bbr-rail-iron"].ingredients,{"iron-plate",5})
table.insert(data.raw["recipe"]["bbr-rail-brick"].ingredients,{"stone-brick",5})
-- mod integrations
if mods["IndustrialRevolution3"] then
replace_item = "gravel"
else
table.insert(data.raw["recipe"]["bbr-rail-wood"].ingredients,{"wood",1})
table.insert(data.raw["recipe"]["bbr-rail-iron"].ingredients,{"iron-plate",1})
table.insert(data.raw["recipe"]["bbr-rail-brick"].ingredients,{"stone-brick",1})
replace_item = "stone"
end
-- get multiplier
multiplier = settings.startup["bbr-fix-cost"].value
-- setup bridge material list
bridges = {
{name = "wood", item = "wood"},
{name = "iron", item = "iron-plate"},
{name = "brick", item = "stone-brick"}
}
for _, bridge in pairs(bridges) do
-- copy rail recipe to bridge
data.raw["recipe"]["bbr-rail-"..bridge.name] = table.deepcopy(data.raw["recipe"]["rail"])
-- fix recipe name
data.raw["recipe"]["bbr-rail-"..bridge.name].name = "bbr-rail-"..bridge.name
-- replace stone with multiplied bridge material
if ingredients_id_map.old then
data.raw["recipe"]["bbr-rail-"..bridge.name].ingredients[ingredients_id_map[replace_item]][1] = bridge.item
-- apply multiplier
if multiplier > 1 then
data.raw["recipe"]["bbr-rail-"..bridge.name].ingredients[ingredients_id_map[replace_item]][2] = multiplier * data.raw["recipe"]["bbr-rail-"..bridge.name].ingredients[ingredients_id_map[replace_item]][2]
end
else
data.raw["recipe"]["bbr-rail-"..bridge.name].ingredients[ingredients_id_map[replace_item]].name = bridge.item
-- apply multiplier
if multiplier > 1 then
data.raw["recipe"]["bbr-rail-"..bridge.name].ingredients[ingredients_id_map[replace_item]].amount = multiplier * data.raw["recipe"]["bbr-rail-"..bridge.name].ingredients[ingredients_id_map[replace_item]].amount
end
end
-- replace rails with bridges
if products_id_map then
data.raw["recipe"]["bbr-rail-"..bridge.name].products[products_id_map["rail"]].name = "bbr-rail-"..bridge.name
else
data.raw["recipe"]["bbr-rail-"..bridge.name].result = "bbr-rail-"..bridge.name
end
end
+3 -2
View File
@@ -1,12 +1,13 @@
{
"name": "bbr-fix",
"version": "1.1.1",
"version": "1.1.3",
"title": "Beautiful Bridge Railway - Recipe Fix",
"author": "Wyrrrd",
"factorio_version": "1.1",
"dependencies": [
"base >= 1.1.0",
"beautiful_bridge_railway >= 1.1.1"
"beautiful_bridge_railway >= 1.1.1",
"(?) IndustrialRevolution3 >= 3.0.1"
],
"description": "Adds rails to recipes."
}
+1 -1
View File
@@ -2,4 +2,4 @@
bbr-fix=Fügt Schienen zu Rezepten hinzu.
[mod-setting-name]
bbr_fix_expensive=Teure Rezepte
bbr-fix-cost=Kostenmultiplikator
+1 -1
View File
@@ -2,4 +2,4 @@
bbr-fix=Adds rails to recipes.
[mod-setting-name]
bbr_fix_expensive=Expensive recipes
bbr-fix-cost=Cost multiplier
+1 -1
View File
@@ -2,4 +2,4 @@
bbr-fix=Добавляет рельсы в рецепты.
[mod-setting-name]
bbr_fix_expensive=Дорогие рецепты
bbr-fix-cost=Умножитель стоимости
+3 -3
View File
@@ -1,8 +1,8 @@
data:extend({
{
type = "bool-setting",
name = "bbr_fix_expensive",
default_value = "false",
type = "int-setting",
name = "bbr-fix-cost",
default_value = 1,
setting_type = "startup",
},
})