Compare commits
No commits in common. "main" and "2.0.2" have entirely different histories.
85
Bio_Industries_2/Test_Spawn.lua
Normal file
|
@ -0,0 +1,85 @@
|
|||
----- Just used for Testing
|
||||
|
||||
|
||||
function Test_Spawn()
|
||||
local surface = game.surfaces['nauvis']
|
||||
|
||||
surface.create_entity({ name = "tree-01", position = { 2, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-02", position = { 4, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-02-red", position = { 6, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-03", position = { 8, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-04", position = { 10, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-05", position = { 12, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-06", position = { 14, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-06-brown", position = { 16, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-07", position = { 18, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-08", position = { 20, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-08-brown", position = { 22, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-09", position = { 24, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-09-brown", position = { 26, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-09-red", position = { 28, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-a", position = { 30, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-b", position = { 32, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-c", position = { 34, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-d", position = { 36, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-e", position = { 38, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-f", position = { 40, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-g", position = { 42, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-h", position = { 44, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-i", position = { 46, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-j", position = { 48, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-k", position = { 50, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-l", position = { 52, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-m", position = { 54, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-desert-n", position = { 56, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-a", position = { 58, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-b", position = { 60, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-c", position = { 62, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-d", position = { 64, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-e", position = { 66, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-f", position = { 68, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-g", position = { 70, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-h", position = { 72, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-i", position = { 74, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-j", position = { 76, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-k", position = { 78, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-l", position = { 80, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-m", position = { 82, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-n", position = { 84, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-dryland-o", position = { 86, 10 }, force = game.forces.player })
|
||||
--surface.create_entity({name = "tree-grassland-0", position = {88, 10}, force = game.forces.player})
|
||||
surface.create_entity({ name = "tree-grassland-a", position = { 90, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-b", position = { 92, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-c", position = { 94, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-d", position = { 96, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-e", position = { 98, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-f", position = { 100, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-g", position = { 102, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-h", position = { 104, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-h2", position = { 106, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-h3", position = { 108, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-i", position = { 110, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-k", position = { 112, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-l", position = { 114, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-m", position = { 116, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-n", position = { 118, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-p", position = { 120, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-grassland-q", position = { 122, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-snow-a", position = { 124, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-volcanic-a", position = { 126, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-a", position = { 128, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-b", position = { 130, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-c", position = { 132, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-d", position = { 134, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-e", position = { 136, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-f", position = { 138, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-g", position = { 140, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-h", position = { 142, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-i", position = { 144, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-j", position = { 146, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-k", position = { 148, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-l", position = { 150, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-m", position = { 152, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-n", position = { 154, 10 }, force = game.forces.player })
|
||||
surface.create_entity({ name = "tree-wetland-o", position = { 156, 10 }, force = game.forces.player })
|
||||
end
|
|
@ -1,30 +1,4 @@
|
|||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.6
|
||||
Date: 31.08.2025
|
||||
Bug Fixes:
|
||||
- Add missing subgroups (put icons in correct tab)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.5
|
||||
Date: 31.08.2025
|
||||
Bug Fixes:
|
||||
- Fixed Wood Underground pipe graphic (TheSAguy)
|
||||
- Fixed Wood Underground pipe graphic (TheSAguy)
|
||||
- Fixed Dart Turret ammo (TheSAguy)
|
||||
Changes:
|
||||
- Updated Rail Recipe (TheSAguy)
|
||||
- Added Wooden Rail (TheSAguy)
|
||||
- Updated some graphics (TheSAguy; BIG thanks to Snouz!)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.4
|
||||
Date: 28.07.2025
|
||||
Bug Fixes:
|
||||
- Fix Bio Boiler
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.3
|
||||
Date: 13.07.2025
|
||||
Bug Fixes:
|
||||
- Fix several entities
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.2
|
||||
Date: 07.07.2025
|
||||
Bug Fixes:
|
||||
|
|
|
@ -247,7 +247,6 @@ return function(mod_name)
|
|||
-- Rudimentary check of the arguments passed to a function
|
||||
common.check_args = function(arg, arg_type, desc)
|
||||
if not (arg and type(arg) == arg_type) then
|
||||
game.print(type(arg) .. " = " .. arg_type)
|
||||
common.arg_err(arg or "nil", desc or arg_type or "nil")
|
||||
end
|
||||
end
|
||||
|
@ -597,7 +596,7 @@ return function(mod_name)
|
|||
common.show("#g_table", g_table and table_size(g_table))
|
||||
|
||||
common.check_args(g_table, "table")
|
||||
common.check_args(base_entity, "userdata")
|
||||
common.check_args(base_entity, "table")
|
||||
|
||||
if not base_entity.valid then
|
||||
common.arg_err(base_entity, "base entity")
|
||||
|
|
|
@ -460,14 +460,10 @@ local function On_Built(event)
|
|||
elseif entity.type == "electric-pole" then
|
||||
local pole = entity
|
||||
-- Make sure hidden poles of the Bio gardens are connected correctly!
|
||||
local garden_names = { "bi-bio-garden", "bi-bio-garden-larger", "bi-bio-garden-huge" }
|
||||
for _, gname in ipairs(garden_names) do
|
||||
if entities[gname] and pole.name == entities[gname].hidden[h_key].name and base then
|
||||
BioInd.writeDebug("Bio garden (" .. gname .. ")!")
|
||||
BioInd.connect_garden_pole(base, pole)
|
||||
BioInd.writeDebug("Connected %s (%s)", { pole.name, pole.unit_number or "nil" })
|
||||
break
|
||||
end
|
||||
if pole.name == entities["bi-bio-garden"].hidden[h_key].name and base then
|
||||
BioInd.writeDebug("Bio garden!")
|
||||
BioInd.connect_garden_pole(base, pole)
|
||||
BioInd.writeDebug("Connected %s (%s)", { pole.name, pole.unit_number or "nil" })
|
||||
end
|
||||
|
||||
-- A seedling has been planted
|
||||
|
@ -649,37 +645,16 @@ end
|
|||
-- Radar stuff
|
||||
--------------------------------------------------------------------
|
||||
|
||||
-- Robust sector scanned handler for Arboretum radar
|
||||
-- Radar completed a sector scan
|
||||
local function On_Sector_Scanned(event)
|
||||
-- defensive checks
|
||||
BioInd.writeDebug("On_Sector_Scanned fired")
|
||||
--game.print("On_Sector_Scanned fired")
|
||||
if not (event and event.radar) then return end
|
||||
local radar = event.radar
|
||||
if not (radar.valid and radar.unit_number) then return end
|
||||
local f_name = "On_Sector_Scanned"
|
||||
BioInd.writeDebug("Entered function %s(%s)", { f_name, event })
|
||||
|
||||
-- Make sure compound-entity data is available before accessing it
|
||||
local arb_proto = BioInd.compound_entities and BioInd.compound_entities["bi-arboretum"]
|
||||
if not (arb_proto and arb_proto.hidden and arb_proto.hidden.radar and arb_proto.hidden.radar.name) then
|
||||
-- not ready yet (init not finished) — bail out safely
|
||||
return
|
||||
---- Each time a Arboretum-Radar scans a sector ----
|
||||
local arboretum = storage.bi_arboretum_radar_table[event.radar.unit_number]
|
||||
if arboretum then
|
||||
Get_Arboretum_Recipe(storage.bi_arboretum_table[arboretum], event)
|
||||
end
|
||||
|
||||
-- Only handle scans from our arboretum radar type
|
||||
if radar.name ~= arb_proto.hidden.radar.name then return end
|
||||
|
||||
-- Look up the base arboretum unit_number (stored when the hidden radar was created)
|
||||
local base_unit_number = storage.bi_arboretum_radar_table and storage.bi_arboretum_radar_table[radar.unit_number]
|
||||
if not base_unit_number then
|
||||
-- no mapping found -> nothing to do
|
||||
return
|
||||
end
|
||||
|
||||
local arb_table = storage.bi_arboretum_table and storage.bi_arboretum_table[base_unit_number]
|
||||
if not arb_table then return end
|
||||
|
||||
-- All good: call the arboretum recipe handler
|
||||
Get_Arboretum_Recipe(arb_table, event)
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -42,21 +42,12 @@ end
|
|||
-- Check that all ingredients are available!
|
||||
local function check_ingredients(arboretum)
|
||||
local recipe = arboretum.get_recipe()
|
||||
if not recipe then
|
||||
--game.print("No recipe set on arboretum")
|
||||
return nil
|
||||
end
|
||||
--game.print("Recipe name: " .. recipe.name)
|
||||
local need = storage.bi_arboretum_recipe_table[recipe.name]
|
||||
if not need then
|
||||
--game.print("No recipe data found for " .. recipe.name)
|
||||
return nil
|
||||
end
|
||||
local need = recipe and storage.bi_arboretum_recipe_table[recipe.name]
|
||||
|
||||
local function check(need, have)
|
||||
for name, amount in pairs(need or {}) do
|
||||
if not (have and have[name]) or (have[name] < amount) then
|
||||
--game.print("Missing ingredient " .. name .. " (have " .. (have[name] or 0) .. " of " .. amount .. ")")
|
||||
BioInd.writeDebug("Missing ingredient %s (have %s of %s)", { name, have[name] or 0, amount })
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
@ -64,38 +55,9 @@ local function check_ingredients(arboretum)
|
|||
end
|
||||
|
||||
local inventory = arboretum.get_inventory(defines.inventory.assembling_machine_input)
|
||||
local inv_contents_raw = inventory and inventory.get_contents() or {}
|
||||
|
||||
-- Check if inv_contents_raw is a map or list, convert if needed
|
||||
local function is_map(t)
|
||||
if type(t) ~= "table" then return false end
|
||||
for k, v in pairs(t) do
|
||||
if type(k) ~= "string" or type(v) ~= "number" then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
local inv_contents
|
||||
if is_map(inv_contents_raw) then
|
||||
inv_contents = inv_contents_raw
|
||||
else
|
||||
-- Convert list of item stacks to map
|
||||
inv_contents = {}
|
||||
for _, item in pairs(inv_contents_raw) do
|
||||
inv_contents[item.name] = (inv_contents[item.name] or 0) + item.count
|
||||
end
|
||||
end
|
||||
|
||||
local fluid_contents = arboretum.get_fluid_contents() or {}
|
||||
|
||||
--game.print("Inventory contents (map): " .. serpent.line(inv_contents))
|
||||
--game.print("Fluid contents: " .. serpent.line(fluid_contents))
|
||||
|
||||
return need and
|
||||
check(need.items, inv_contents) and
|
||||
check(need.fluids, fluid_contents) and
|
||||
check(need.items, inventory and inventory.get_contents()) and
|
||||
check(need.fluids, arboretum.get_fluid_contents()) and
|
||||
{ ingredients = need, name = recipe.name } or nil
|
||||
end
|
||||
|
||||
|
@ -149,14 +111,10 @@ function Get_Arboretum_Recipe(ArboretumTable, event)
|
|||
local check = check_ingredients(arboretum)
|
||||
local ingredients, recipe_name
|
||||
if check then
|
||||
--game.print("There are ingredients")
|
||||
ingredients, recipe_name = check.ingredients, check.name
|
||||
else
|
||||
--game.print("No ingredients")
|
||||
end
|
||||
|
||||
if ingredients then
|
||||
|
||||
local create_seedling, new_plant
|
||||
pos = BioInd.normalize_position(arboretum.position) or
|
||||
BioInd.arg_err("nil", "position")
|
||||
|
|
|
@ -170,6 +170,8 @@ if BI.Settings.BI_Game_Tweaks_Player then
|
|||
end
|
||||
|
||||
|
||||
-- Moved to data-updates.lua for 0.18.34/1.1.4!
|
||||
|
||||
|
||||
---- Game Tweaks ---- Production science pack recipe
|
||||
if data.raw.recipe["bi-production-science-pack"] then
|
||||
|
@ -182,6 +184,7 @@ end
|
|||
if BI.Settings.BI_Game_Tweaks_Bot then
|
||||
-- Logistic & Construction bots can't catch fire or be mined
|
||||
local function immunify(bot)
|
||||
-- Changed for 0.18.34/1.1.4!
|
||||
local can_insert = true
|
||||
bot.flags = bot.flags or {}
|
||||
bot.resistances = bot.resistances or {}
|
||||
|
@ -287,6 +290,7 @@ if BI.Settings.BI_Game_Tweaks_Emissions_Multiplier then
|
|||
["coal-crushed"] = 1.50,
|
||||
["wood"] = 1.60,
|
||||
["coal"] = 2.00,
|
||||
-- Removed in 0.17.48/0.18.16
|
||||
}) do
|
||||
BI_Functions.lib.fuel_emissions_multiplier_update(item, factor)
|
||||
end
|
||||
|
@ -386,6 +390,9 @@ if mods["pycoalprocessing"] and BI.Settings.BI_Bio_Fuel then
|
|||
end
|
||||
|
||||
|
||||
-- Moved to data-updates.lua for 0.18.34/1.1.4!
|
||||
|
||||
|
||||
--- If Space Exploration Mod is installed.
|
||||
if mods["space-exploration"] then
|
||||
-- Space Exploration Mod likes Stack Sizes to be 200 max.
|
||||
|
|
|
@ -18,8 +18,6 @@ end
|
|||
|
||||
BioInd.show("BI.Settings.BI_Easy_Bio_Gardens", BI.Settings.BI_Easy_Bio_Gardens)
|
||||
local ICONPATH = "__Bio_Industries_2__/graphics/icons/"
|
||||
local ICONPATH_E = BioInd.modRoot .. "/graphics/icons/entity/"
|
||||
local ICONPATH_PY = "__Bio_Industries_2__/graphics/icons/mod_py/"
|
||||
|
||||
----Update the Wood Pipe Images
|
||||
require("prototypes.Wood_Products.pipes")
|
||||
|
@ -388,7 +386,7 @@ if data.raw.item["ash"] and mods["pycoalprocessing"] then
|
|||
thxbob.lib.recipe.replace_ingredient("bi-sulfur", "bi-ash", "ash")
|
||||
thxbob.lib.recipe.replace_ingredient("bi-sulfur-angels", "bi-ash", "ash")
|
||||
|
||||
data.raw.recipe["bi-sulfur"].icon = ICONPATH_PY .. "py_bio_sulfur.png"
|
||||
data.raw.recipe["bi-sulfur"].icon = ICONPATH .. "py_bio_sulfur.png"
|
||||
data.raw.recipe["bi-sulfur"].icon_size = 64
|
||||
end
|
||||
|
||||
|
@ -399,17 +397,17 @@ if data.raw.item["ash"] and mods["pycoalprocessing"] then
|
|||
data.raw.recipe["bi-ash-2"].icon_size = 32
|
||||
|
||||
-- Use ash icon from pycoalprocessing in icons of recipes using ash
|
||||
data.raw.recipe["bi-seed-2"].icon = ICONPATH_PY .. "py_bio_seed2.png"
|
||||
data.raw.recipe["bi-seed-2"].icon = ICONPATH .. "py_bio_seed2.png"
|
||||
data.raw.recipe["bi-seed-2"].icon_size = 64
|
||||
data.raw.recipe["bi-seedling-2"].icon = ICONPATH_PY .. "py_Seedling2.png"
|
||||
data.raw.recipe["bi-seedling-2"].icon = ICONPATH .. "py_Seedling2.png"
|
||||
data.raw.recipe["bi-seedling-2"].icon_size = 64
|
||||
data.raw.recipe["bi-logs-2"].icon = ICONPATH_PY .. "py_raw-wood-mk2.png"
|
||||
data.raw.recipe["bi-logs-2"].icon = ICONPATH .. "py_raw-wood-mk2.png"
|
||||
data.raw.recipe["bi-logs-2"].icon_size = 64
|
||||
data.raw.recipe["bi-ash-1"].icon = ICONPATH_PY .. "py_ash_raw-wood.png"
|
||||
data.raw.recipe["bi-ash-1"].icon = ICONPATH .. "py_ash_raw-wood.png"
|
||||
data.raw.recipe["bi-ash-1"].icon_size = 64
|
||||
data.raw.recipe["bi-ash-2"].icon = ICONPATH_PY .. "py_ash_woodpulp.png"
|
||||
data.raw.recipe["bi-ash-2"].icon = ICONPATH .. "py_ash_woodpulp.png"
|
||||
data.raw.recipe["bi-ash-2"].icon_size = 64
|
||||
data.raw.recipe["bi-stone-brick"].icon = ICONPATH_PY .. "py_bi_stone_brick.png"
|
||||
data.raw.recipe["bi-stone-brick"].icon = ICONPATH .. "py_bi_stone_brick.png"
|
||||
data.raw.recipe["bi-stone-brick"].icon_size = 64
|
||||
end
|
||||
|
||||
|
@ -458,8 +456,7 @@ if not data.raw.fluid["nitrogen"] then
|
|||
flow_color = { r = 0.0, g = 0.0, b = 1.0 },
|
||||
pressure_to_speed_ratio = 0.4,
|
||||
flow_to_energy_ratio = 0.59,
|
||||
subgroup = "bio-bio-farm-intermediate-product",
|
||||
order = "ab"
|
||||
order = "a[fluid]-b[nitrogen]"
|
||||
},
|
||||
})
|
||||
BioInd.writeDebug("Made recipe for \"nitrogen\".")
|
||||
|
@ -486,8 +483,7 @@ if not data.raw.fluid["nitrogen"] then
|
|||
flow_color = { r = 0.5, g = 1.0, b = 1.0 },
|
||||
pressure_to_speed_ratio = 0.4,
|
||||
flow_to_energy_ratio = 0.59,
|
||||
subgroup = "bio-bio-farm-intermediate-product",
|
||||
order = "aa"
|
||||
order = "a[fluid]-b[liquid-air]"
|
||||
},
|
||||
})
|
||||
BioInd.writeDebug("Made recipe for \"liquid-air\".")
|
||||
|
@ -528,8 +524,7 @@ if BI.Settings.BI_Game_Tweaks_Recipe then
|
|||
--- Stone Wall
|
||||
thxbob.lib.recipe.add_new_ingredient("stone-wall", { type = "item", name = "iron-stick", amount = 1 })
|
||||
|
||||
--- Rail Stuff
|
||||
--(Remove Stone and Add Crushed Stone)
|
||||
--- Rail (Remove Stone and Add Crushed Stone)
|
||||
if data.raw.item["stone-crushed"] then
|
||||
thxbob.lib.recipe.remove_ingredient("rail", "stone")
|
||||
thxbob.lib.recipe.add_new_ingredient("rail", { type = "item", name = "stone-crushed", amount = 6 })
|
||||
|
@ -538,15 +533,7 @@ if BI.Settings.BI_Game_Tweaks_Recipe then
|
|||
end
|
||||
|
||||
-- vanilla rail recipe update
|
||||
thxbob.lib.recipe.remove_ingredient("rail", "iron-stick")
|
||||
thxbob.lib.recipe.add_new_ingredient("rail", { type = "item", name = "concrete", amount = 2 })
|
||||
data.raw["legacy-straight-rail"]["legacy-straight-rail"].icon = ICONPATH_E .. "rail-concrete.png"
|
||||
data.raw["straight-rail"]["straight-rail"].icon = ICONPATH_E .. "rail-concrete.png"
|
||||
|
||||
--- Wood Rail added to Tech
|
||||
thxbob.lib.tech.add_recipe_unlock("railway", "bi-rail-wood")
|
||||
thxbob.lib.tech.add_recipe_unlock("railway", "bi-rail-wood-to-concrete")
|
||||
|
||||
thxbob.lib.recipe.add_new_ingredient("rail", { type = "item", name = "concrete", amount = 6 })
|
||||
end
|
||||
|
||||
|
||||
|
@ -705,7 +692,7 @@ if set then
|
|||
end
|
||||
|
||||
-- Compatibility with Industrial Revolution
|
||||
--require("prototypes.Industrial_Revolution")
|
||||
require("prototypes.Industrial_Revolution")
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
|
|
|
@ -26,7 +26,6 @@ for var, name in pairs({
|
|||
BI.Settings[var] = BioInd.get_startup_setting(name)
|
||||
end
|
||||
|
||||
|
||||
--- Help Files
|
||||
require("libs.item-functions") -- From Bob's Libary
|
||||
require("libs.recipe-functions") -- From Bob's Libary
|
||||
|
@ -80,7 +79,10 @@ if not mods["Natural_Evolution_Buildings"] then
|
|||
require("prototypes.Bio_Turret.recipe")
|
||||
require("prototypes.Bio_Turret.entity")
|
||||
|
||||
|
||||
--- Bio Cannon
|
||||
|
||||
|
||||
-- Items Groups
|
||||
require("prototypes.Bio_Cannon.item-group")
|
||||
|
||||
|
|
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 382 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 698 B |
Before Width: | Height: | Size: 225 KiB |
Before Width: | Height: | Size: 170 KiB |
Before Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 9.8 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 678 KiB |
Before Width: | Height: | Size: 2.3 MiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 258 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 185 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 538 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 402 B |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 96 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 838 B |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 153 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 689 B |
Before Width: | Height: | Size: 554 B |
Before Width: | Height: | Size: 916 B |
Before Width: | Height: | Size: 553 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 133 KiB |
Before Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 8 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 196 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 152 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 154 KiB |
Before Width: | Height: | Size: 265 B |
After Width: | Height: | Size: 7.2 KiB |
BIN
Bio_Industries_2/graphics/entities/bio_solar_farm/solar-o.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.6 KiB |
BIN
Bio_Industries_2/graphics/entities/bio_solar_farm/solar-side.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
Bio_Industries_2/graphics/entities/bio_solar_farm/solar-u.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
Bio_Industries_2/graphics/entities/bio_solar_farm/solar1.png
Normal file
After Width: | Height: | Size: 914 B |
BIN
Bio_Industries_2/graphics/entities/bio_solar_farm/solar1x.png
Normal file
After Width: | Height: | Size: 713 B |
BIN
Bio_Industries_2/graphics/entities/bio_solar_farm/solar2.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 405 B |
Before Width: | Height: | Size: 50 KiB |