Compare commits

..

5 commits
2.0.1 ... main

Author SHA1 Message Date
Simon Brodtmann
bac183d1c1 Reformat code 2025-07-07 23:10:51 +02:00
Simon Brodtmann
7134f437e5 Cleanup 2025-07-06 20:24:21 +02:00
Simon Brodtmann
9144d7492f Change line endings to \n 2025-07-06 20:17:23 +02:00
32c3dcadbe compat: Dropped incompatibility flag for Space Age. 2025-07-06 20:15:51 +02:00
Simon Brodtmann
6b957759d5 Fix changelog 2025-07-06 11:09:34 +02:00
122 changed files with 38888 additions and 40184 deletions

View file

@ -4,82 +4,82 @@
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-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})
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

View file

@ -4,7 +4,3 @@ Date: 06.07.2025
Bug Fixes:
- Fix locales
- Fix Musk floor
---------------------------------------------------------------------------------------------------
Version: 2.0.0
Date: 05.07.2025
Initial 2.0 release

View file

@ -14,10 +14,10 @@ end
local AlienBiomes
local Event = require('__kry_stdlib__/stdlib/event/event').set_protected_mode(false)
require ("util")
require ("libs/util_ext")
require ("control_tree")
require ("control_arboretum")
require("util")
require("libs/util_ext")
require("control_tree")
require("control_arboretum")
---************** Used for Testing -----
@ -38,7 +38,7 @@ local function Create_dummy_force()
-- New force won't share chart data with any other force
f.share_chart = false
BioInd.writeDebug("Created force: %s", {game.forces[BioInd.MuskForceName].name})
BioInd.writeDebug("Created force: %s", { game.forces[BioInd.MuskForceName].name })
end
@ -46,10 +46,10 @@ end
local function get_bi_trees()
local list = {}
local trees = prototypes.get_entity_filtered({{filter = "type", type = "tree"}})
local trees = prototypes.get_entity_filtered({ { filter = "type", type = "tree" } })
for tree_name, tree in pairs(trees) do
if tree_name:match("^bio%-tree%-.+%-%d$") then
BioInd.show("Found matching tree", tree_name)
BioInd.show("Found matching tree", tree_name)
list[tree_name] = true
end
end
@ -71,14 +71,14 @@ local function get_fixed_tiles()
for tile_name, tile in pairs(prototypes.tile) do
for p, pattern in ipairs(tile_patterns) do
if tile_name:match(pattern) then
BioInd.show("Found matching tile", tile_name)
BioInd.show("Found matching tile", tile_name)
-- If a tile is minable and fertilizer is used on it, we must deduct the mined
-- tiles from the player/robot again!
list[tile_name] = tile.mineable_properties.products or true
end
end
end
BioInd.show("Forbidden tiles", list)
BioInd.show("Forbidden tiles", list)
return list
end
@ -112,7 +112,7 @@ end
--------------------------------------------------------------------
local function init()
BioInd.writeDebug("Entered init!")
BioInd.writeDebug("Entered init!")
if BioInd.is_debug then
game.check_prototype_translations()
end
@ -162,7 +162,7 @@ BioInd.writeDebug("Entered init!")
-- them to remove duplicates
compound_entity_tables[compound_data.tab] = compound
end
BioInd.show("Need to check these tables in global", compound_entity_tables)
BioInd.show("Need to check these tables in global", compound_entity_tables)
-- Prepare global tables storing data of compound entities
local result
@ -170,14 +170,14 @@ BioInd.show("Need to check these tables in global", compound_entity_tables)
-- Init table
storage[compound_tab] = storage[compound_tab] or {}
BioInd.writeDebug("Initialized storage[%s] (%s entities stored)",
{compound_name, table_size(storage[compound_tab])})
{ compound_name, table_size(storage[compound_tab]) })
-- If this compound entity requires additional tables in global, initialize
-- them now!
local related_tables = storage.compound_entities[compound_name].add_global_tables
if related_tables then
for t, tab in ipairs(related_tables or {}) do
storage[tab] = storage[tab] or {}
BioInd.writeDebug("Initialized storage[%s] (%s values)", {tab, table_size(storage[tab])})
BioInd.writeDebug("Initialized storage[%s] (%s values)", { tab, table_size(storage[tab]) })
end
end
-- If this compound entity requires additional values in global, initialize
@ -186,7 +186,7 @@ BioInd.show("Need to check these tables in global", compound_entity_tables)
if related_vars then
for var_name, value in pairs(related_vars or {}) do
storage[var_name] = storage[var_name] or value
BioInd.writeDebug("Set storage[%s] to %s", {var_name, storage[var_name]})
BioInd.writeDebug("Set storage[%s] to %s", { var_name, storage[var_name] })
end
end
@ -195,16 +195,16 @@ BioInd.show("Need to check these tables in global", compound_entity_tables)
-- Remove invalid entities
result = BioInd.clean_global_compounds_table(compound_name)
BioInd.writeDebug("Removed %s invalid entries from storage[%s]!",
{result, compound_tab})
{ result, compound_tab })
-- Restore missing hidden entities
result = BioInd.restore_missing_entities(compound_name)
BioInd.writeDebug("Checked %s compound entities and restored %s missing hidden entries for storage[\"%s\"]!",
{result.checked, result.restored, compound_tab})
{ result.checked, result.restored, compound_tab })
end
end
-- Search all surfaces for unregistered compound entities
result = BioInd.find_unregistered_entities()
BioInd.writeDebug("Registered %s forgotten entities!", {result})
BioInd.writeDebug("Registered %s forgotten entities!", { result })
@ -236,7 +236,7 @@ BioInd.show("Need to check these tables in global", compound_entity_tables)
-- enable researched recipes
for i, force in pairs(game.forces) do
BioInd.writeDebug("Reset technology effects for force %s.", {force.name})
BioInd.writeDebug("Reset technology effects for force %s.", { force.name })
force.reset_technology_effects()
end
@ -244,20 +244,18 @@ BioInd.show("Need to check these tables in global", compound_entity_tables)
if BioInd.UseMuskForce and not game.forces[BioInd.MuskForceName] then
Create_dummy_force()
end
end
--------------------------------------------------------------------
local function On_Load()
log("Entered On_Load!")
end
--------------------------------------------------------------------
local function On_Config_Change(ConfigurationChangedData)
BioInd.writeDebug("On Configuration changed: %s", {ConfigurationChangedData})
BioInd.writeDebug("On Configuration changed: %s", { ConfigurationChangedData })
-- Re-initialize global tables etc.
@ -278,10 +276,10 @@ BioInd.writeDebug("On Configuration changed: %s", {ConfigurationChangedData})
-- Growing stages
for i = 1, 4 do
tab = storage.bi["tree_growing_stage_" .. i]
BioInd.writeDebug("Number of trees in growing stage %s: %s", {i, table_size(tab)})
BioInd.writeDebug("Number of trees in growing stage %s: %s", { i, table_size(tab) })
for t = #tab, 1, -1 do
if not trees[tab[t].tree_name] then
BioInd.writeDebug("Removing invalid tree %s (%s)", {t, tab[t].tree_name})
BioInd.writeDebug("Removing invalid tree %s (%s)", { t, tab[t].tree_name })
table.remove(tab, t)
end
end
@ -291,7 +289,7 @@ BioInd.writeDebug("Number of trees in growing stage %s: %s", {i, table_size(tab)
-- tree with index 1 when checking if a tree has completed the growing stage, so
-- lets sort the table after all invalid trees have been removed!)
table.sort(tab, function(a, b) return a.time < b.time end)
BioInd.show("Number of trees in final list", #tab)
BioInd.show("Number of trees in final list", #tab)
end
end
@ -334,11 +332,11 @@ Event.register(defines.events.on_trigger_created_entity, function(event)
BioInd.writeDebug("Seed Bomb Activated - Standard")
local currTile = surface.get_tile(position).name
if storage.bi.barren_tiles[currTile] then
BioInd.writeDebug("Can't fertilize %s!", {currTile})
BioInd.writeDebug("Can't fertilize %s!", { currTile })
else
BioInd.writeDebug("Using fertilizer!")
local terrain_name_s = AlienBiomes and "vegetation-green-grass-3" or "grass-3"
surface.set_tiles{{name = terrain_name_s, position = position}}
surface.set_tiles { { name = terrain_name_s, position = position } }
end
seed_planted_trigger(event)
@ -347,11 +345,11 @@ Event.register(defines.events.on_trigger_created_entity, function(event)
BioInd.writeDebug("Seed Bomb Activated - Advanced")
local currTile = surface.get_tile(position).name
if storage.bi.barren_tiles[currTile] then
BioInd.writeDebug("Can't fertilize %s!", {currTile})
BioInd.writeDebug("Can't fertilize %s!", { currTile })
else
BioInd.writeDebug("Using fertilizer!")
local terrain_name_a = AlienBiomes and "vegetation-green-grass-1" or "grass-1"
surface.set_tiles{{name = terrain_name_a, position = position}}
surface.set_tiles { { name = terrain_name_a, position = position } }
end
seed_planted_trigger(event)
end
@ -375,7 +373,7 @@ local function On_Built(event)
-- We can ignore ghosts -- if ghosts are revived, there will be
-- another event that triggers where actual entities are placed!
if entity.name == "entity-ghost" then
BioInd.writeDebug("Built ghost of %s -- return!", {entity.ghost_name})
BioInd.writeDebug("Built ghost of %s -- return!", { entity.ghost_name })
return
end
@ -390,16 +388,17 @@ local function On_Built(event)
-- remove anything from it for real.
local hidden_entities = util.table.deepcopy(base_entry.hidden)
BioInd.writeDebug("%s (%s) is a compound entity. Need to create %s", {base.name, base.unit_number, hidden_entities})
BioInd.show("hidden_entities", hidden_entities)
BioInd.writeDebug("%s (%s) is a compound entity. Need to create %s",
{ base.name, base.unit_number, hidden_entities })
BioInd.show("hidden_entities", hidden_entities)
local new_base
local new_base_name = base_entry.new_base_name
-- If the base entity is only an overlay, we'll replace it with the real base
-- entity and raise an event. The hidden entities will be created in the second
-- pass (triggered by building the final entity).
BioInd.show("base_entry.new_base_name", base_entry.new_base_name)
BioInd.show("base_entry.new_base_name == base.name", base_entry.new_base_name == base.name)
BioInd.show("base_entry.optional", base_entry.optional)
BioInd.show("base_entry.new_base_name", base_entry.new_base_name)
BioInd.show("base_entry.new_base_name == base.name", base_entry.new_base_name == base.name)
BioInd.show("base_entry.optional", base_entry.optional)
if new_base_name and new_base_name ~= base.name then
new_base = surface.create_entity({
name = new_base_name,
@ -411,39 +410,39 @@ BioInd.show("base_entry.optional", base_entry.optional)
new_base.health = base.health
BioInd.show("Created final base entity", BioInd.print_name_id(new_base))
base.destroy({raise_destroy = true})
base.destroy({ raise_destroy = true })
base = new_base
BioInd.writeDebug("Destroyed old base entity!")
-- Second pass: We've placed the final base entity now, so we can create the
-- the hidden entities!
else
BioInd.writeDebug("Second pass -- creating hidden entities!")
BioInd.show("base_entry", base_entry)
BioInd.writeDebug("Second pass -- creating hidden entities!")
BioInd.show("base_entry", base_entry)
BioInd.writeDebug("storage[%s]: %s", {base_entry.tab, storage[base_entry.tab]})
BioInd.show("base.name", base.name)
BioInd.show("base.unit_number", base.unit_number)
BioInd.show("hidden_entities", hidden_entities)
BioInd.writeDebug("storage[%s]: %s", { base_entry.tab, storage[base_entry.tab] })
BioInd.show("base.name", base.name)
BioInd.show("base.unit_number", base.unit_number)
BioInd.show("hidden_entities", hidden_entities)
-- We must call create_entities even if there are no hidden entities (e.g. if
-- the "Easy Gardens" setting is disabled and no hidden poles are required)
-- because the compound entity gets registered there!
BioInd.create_entities(storage[base_entry.tab], base, hidden_entities)
BioInd.writeDebug("Stored %s in table: %s",
{BioInd.print_name_id(base), storage[base_entry.tab][base.unit_number]})
{ BioInd.print_name_id(base), storage[base_entry.tab][base.unit_number] })
end
-- The built entity isn't one of our compound entities.
else
BioInd.writeDebug("%s is not a compound entity!", {BioInd.print_name_id(entity)})
BioInd.writeDebug("%s is not a compound entity!", { BioInd.print_name_id(entity) })
-- If one of our hidden entities has been built, we'll have raised this event
-- ourselves and have passed on the base entity.
base = event.base_entity
local entities = BioInd.compound_entities
BioInd.show("Base entity", BioInd.print_name_id(base))
BioInd.show("Base entity", BioInd.print_name_id(base))
-- The hidden entities are listed with a common handle ("pole", "panel" etc.). We
-- can get it from the reverse-lookup list via the entity type!
@ -455,16 +454,16 @@ BioInd.show("Base entity", BioInd.print_name_id(base))
entity.name == entities["bi-arboretum-area"].hidden[h_key].name and base then
storage.bi_arboretum_radar_table[entity.unit_number] = base.unit_number
entity.backer_name = ""
BioInd.writeDebug("Added %s to storage.bi_arboretum_radar_table", {BioInd.print_name_id(entity)})
BioInd.writeDebug("Added %s to storage.bi_arboretum_radar_table", { BioInd.print_name_id(entity) })
-- Electric poles -- we need to take care that they don't hook up to hidden poles!
elseif entity.type == "electric-pole" then
local pole = entity
-- Make sure hidden poles of the Bio gardens are connected correctly!
if pole.name == entities["bi-bio-garden"].hidden[h_key].name and base then
BioInd.writeDebug("Bio garden!")
BioInd.writeDebug("Bio garden!")
BioInd.connect_garden_pole(base, pole)
BioInd.writeDebug("Connected %s (%s)", {pole.name, pole.unit_number or "nil"})
BioInd.writeDebug("Connected %s (%s)", { pole.name, pole.unit_number or "nil" })
end
-- A seedling has been planted
@ -474,7 +473,7 @@ BioInd.writeDebug("Bio garden!")
-- Something else has been built
else
BioInd.writeDebug("Nothing to do for %s!", {entity.name})
BioInd.writeDebug("Nothing to do for %s!", { entity.name })
end
end
BioInd.writeDebug("End of function On_Built")
@ -482,7 +481,7 @@ end
local function remove_plants(entity_position, tabl)
BioInd.writeDebug("Entered function remove_plants(%s, %s)", {entity_position or "nil", tabl or "nil"})
BioInd.writeDebug("Entered function remove_plants(%s, %s)", { entity_position or "nil", tabl or "nil" })
local e = BioInd.normalize_position(entity_position)
if not e then
BioInd.arg_err(entity_position or "nil", "position")
@ -494,7 +493,7 @@ BioInd.writeDebug("Entered function remove_plants(%s, %s)", {entity_position or
for k, v in pairs(tabl or {}) do
pos = BioInd.normalize_position(v.position)
if pos and pos.x == e.x and pos.y == e.y then
BioInd.writeDebug("Removing entry %s from table: %s", {k, v})
BioInd.writeDebug("Removing entry %s from table: %s", { k, v })
table.remove(tabl, k)
break
end
@ -504,7 +503,7 @@ end
--------------------------------------------------------------------
local function On_Pre_Remove(event)
BioInd.writeDebug("Entered function On_Pre_Remove(%s)", {event})
BioInd.writeDebug("Entered function On_Pre_Remove(%s)", { event })
local entity = event.entity
if not (entity and entity.valid) then
@ -514,40 +513,41 @@ BioInd.writeDebug("Entered function On_Pre_Remove(%s)", {event})
local compound_entity = storage.compound_entities[entity.name]
local base_entry = compound_entity and storage[compound_entity.tab][entity.unit_number]
BioInd.show("entity.name", entity.name)
BioInd.show("entity.unit_number", entity.unit_number)
BioInd.show("entity.name", entity.name)
BioInd.show("entity.unit_number", entity.unit_number)
BioInd.show("compound_entity", compound_entity)
BioInd.show("base_entry", base_entry)
BioInd.show("compound_entity.tab", compound_entity and compound_entity.tab or "nil")
BioInd.writeDebug("storage[%s]: %s", {compound_entity and compound_entity.tab or "nil", compound_entity and storage[compound_entity.tab] or "nil"})
BioInd.show("compound_entity", compound_entity)
BioInd.show("base_entry", base_entry)
BioInd.show("compound_entity.tab", compound_entity and compound_entity.tab or "nil")
BioInd.writeDebug("storage[%s]: %s",
{ compound_entity and compound_entity.tab or "nil", compound_entity and storage[compound_entity.tab] or "nil" })
-- Found a compound entity from our list!
if base_entry then
BioInd.writeDebug("Found compound entity %s",
{base_entry.base and BioInd.print_name_id(base_entry.base)})
BioInd.writeDebug("Found compound entity %s",
{ base_entry.base and BioInd.print_name_id(base_entry.base) })
-- Arboretum: Need to separately remove the entry from the radar table
if entity.name == "bi-arboretum" and base_entry.radar and base_entry.radar.valid then
storage.bi_arboretum_radar_table[base_entry.radar.unit_number] = nil
BioInd.show("Removed arboretum radar! Table", storage.bi_arboretum_radar_table)
BioInd.show("Removed arboretum radar! Table", storage.bi_arboretum_radar_table)
end
-- Power rails: Connections must be explicitely removed, otherwise the poles
-- from the remaining rails will automatically connect and bridge the gap in
-- the power supply!
if entity.name:match("bi%-%a+%-rail%-power") and base_entry.pole and base_entry.pole.valid then
BioInd.writeDebug("Before")
BioInd.writeDebug("Disconnecting %s!", {BioInd.print_name_id(base_entry.pole)})
BioInd.writeDebug("Before")
BioInd.writeDebug("Disconnecting %s!", { BioInd.print_name_id(base_entry.pole) })
base_entry.pole.disconnect_neighbour()
BioInd.writeDebug("After")
BioInd.writeDebug("After")
end
-- Default: Remove all hidden entities!
for hidden, h_name in pairs(compound_entity.hidden or {}) do
BioInd.show("hidden", hidden)
BioInd.show("hidden", hidden)
BioInd.writeDebug("Removing hidden entity %s", {BioInd.print_name_id(base_entry[hidden])})
BioInd.writeDebug("Removing hidden entity %s", { BioInd.print_name_id(base_entry[hidden]) })
BioInd.remove_entity(base_entry[hidden])
base_entry[hidden] = nil
end
@ -559,7 +559,7 @@ BioInd.writeDebug("Removing hidden entity %s", {BioInd.print_name_id(base_entry[
elseif entity.name == "bi-power-to-rail-pole" then
BioInd.writeDebug("Rail-to-power connector has been removed")
entity.disconnect_neighbour()
BioInd.writeDebug("Removed copper wires from %s (%g)", {entity.name, entity.unit_number})
BioInd.writeDebug("Removed copper wires from %s (%g)", { entity.name, entity.unit_number })
-- Removed seedling
elseif entity.name == "seedling" then
@ -571,7 +571,7 @@ BioInd.writeDebug("Removing hidden entity %s", {BioInd.print_name_id(base_entry[
BioInd.show("Removed tree", entity.name)
local tree_stage = entity.name:match('^.+%-(%d)$')
BioInd.writeDebug("Removed tree %s (grow stage: %s)", {entity.name, tree_stage or nil})
BioInd.writeDebug("Removed tree %s (grow stage: %s)", { entity.name, tree_stage or nil })
if tree_stage then
remove_plants(entity.position, storage.bi["tree_growing_stage_" .. tree_stage])
else
@ -580,7 +580,7 @@ BioInd.writeDebug("Removed tree %s (grow stage: %s)", {entity.name, tree_stage o
-- Removed something else
else
BioInd.writeDebug("%s has been removed -- nothing to do!", {entity.name})
BioInd.writeDebug("%s has been removed -- nothing to do!", { entity.name })
end
end
@ -588,7 +588,7 @@ end
--------------------------------------------------------------------
local function On_Damage(event)
local f_name = "On_Damage"
BioInd.writeDebug("Entered function %s(%s)", {f_name, event})
BioInd.writeDebug("Entered function %s(%s)", { f_name, event })
local entity = event.entity
local final_health = event.final_health
@ -618,7 +618,7 @@ end
--------------------------------------------------------------------
local function On_Death(event)
local f_name = "On_Death"
BioInd.writeDebug("Entered function %s(%s)", {f_name, event})
BioInd.writeDebug("Entered function %s(%s)", { f_name, event })
local entity = event.entity
if not entity then
@ -633,7 +633,6 @@ BioInd.writeDebug("Entered function %s(%s)", {f_name, event})
entity.name == storage.compound_entities["bi-arboretum"].hidden.radar.name or
entity.name == "bi-power-to-rail-pole" or
entity.name == "seedling" then
BioInd.writeDebug("Divert to On_Pre_Remove!")
On_Pre_Remove(event)
else
@ -649,7 +648,7 @@ end
-- Radar completed a sector scan
local function On_Sector_Scanned(event)
local f_name = "On_Sector_Scanned"
BioInd.writeDebug("Entered function %s(%s)", {f_name, event})
BioInd.writeDebug("Entered function %s(%s)", { f_name, event })
---- Each time a Arboretum-Radar scans a sector ----
local arboretum = storage.bi_arboretum_radar_table[event.radar.unit_number]
@ -666,7 +665,7 @@ end
--------------------------------------------------------------------
-- Solar mat was removed
local function solar_mat_removed(event)
BioInd.writeDebug("Entered solar_mat_removed (\"%s\")", {event})
BioInd.writeDebug("Entered solar_mat_removed (\"%s\")", { event })
local surface = game.surfaces[event.surface_index]
local tiles = event.tiles
@ -678,12 +677,12 @@ local function solar_mat_removed(event)
pos = BioInd.normalize_position(tile.position)
x, y = pos.x, pos.y
BioInd.writeDebug("Looking for hidden entities to remove")
for _, o in pairs(surface.find_entities_filtered{
name = {'bi-musk-mat-hidden-pole', 'bi-musk-mat-hidden-panel'},
position = {x + 0.5, y + 0.5}
BioInd.writeDebug("Looking for hidden entities to remove")
for _, o in pairs(surface.find_entities_filtered {
name = { 'bi-musk-mat-hidden-pole', 'bi-musk-mat-hidden-panel' },
position = { x + 0.5, y + 0.5 }
} or {}) do
BioInd.show("Removing", o.name)
BioInd.show("Removing", o.name)
o.destroy()
end
@ -692,7 +691,7 @@ BioInd.show("Removing", o.name)
storage.bi_musk_floor_table.tiles[x] and
storage.bi_musk_floor_table.tiles[x][y]
if force_name then
BioInd.writeDebug("Removing Musk floor tile from tables!")
BioInd.writeDebug("Removing Musk floor tile from tables!")
storage.bi_musk_floor_table.tiles[x][y] = nil
if not next(storage.bi_musk_floor_table.tiles[x]) then
storage.bi_musk_floor_table.tiles[x] = nil
@ -706,11 +705,10 @@ BioInd.writeDebug("Removing Musk floor tile from tables!")
end
end
end
end
end
BioInd.writeDebug("bi-solar-mat: removed %g tiles", {table_size(tiles)})
BioInd.writeDebug("bi-solar-mat: removed %g tiles", { table_size(tiles) })
end
@ -723,11 +721,11 @@ local function place_musk_floor(force, position, surface)
local x, y = position.x, position.y
local created
for n, name in ipairs({"bi-musk-mat-hidden-pole", "bi-musk-mat-hidden-panel"}) do
created = surface.create_entity({name = name, position = {x + 0.5, y + 0.5}, force = force})
for n, name in ipairs({ "bi-musk-mat-hidden-pole", "bi-musk-mat-hidden-panel" }) do
created = surface.create_entity({ name = name, position = { x + 0.5, y + 0.5 }, force = force })
created.minable = false
created.destructible = false
BioInd.writeDebug("Created %s: %s", {name, created.unit_number})
BioInd.writeDebug("Created %s: %s", { name, created.unit_number })
end
-- Add to global tables!
@ -742,7 +740,7 @@ end
--------------------------------------------------------------------
-- Solar mat was built
local function solar_mat_built(event)
BioInd.show("Entered function \"solar_mat_built\"", event)
BioInd.show("Entered function \"solar_mat_built\"", event)
-- Called from player, bot and script-raised events, so event may
-- contain "robot" or "player_index"
@ -754,7 +752,7 @@ BioInd.show("Entered function \"solar_mat_built\"", event)
(event.player_index and game.players[event.player_index].force.name) or
(event.robot and event.robot.force.name) or
event.force.name
BioInd.show("Force.name", force)
BioInd.show("Force.name", force)
-- Item that was used to place the tile
local item = event.item
@ -767,19 +765,19 @@ BioInd.show("Force.name", force)
-- Musk floor has been built -- create hidden entities!
if tile.name == "bi-solar-mat" then
BioInd.writeDebug("Solar Mat has been built -- must create hidden entities!")
BioInd.show("Tile data", tile )
BioInd.show("Tile data", tile)
for index, t in pairs(old_tiles or {tile}) do
BioInd.show("Read old_tile inside loop", t)
for index, t in pairs(old_tiles or { tile }) do
BioInd.show("Read old_tile inside loop", t)
-- event.tiles will also contain landscape tiles like "grass-1", and it will always
-- contain at least one tile
position = BioInd.normalize_position(t.position)
-- If we got here by a call from script_raised_built, force may be stored
-- with the tile
force = force or t.force
BioInd.show("Got force from tile data", t.force or "false")
BioInd.show("Got force from tile data", t.force or "false")
BioInd.writeDebug("Building solar mat for force %s at position %s",
{tostring(type(force) == "table" and force.name or force), position})
{ tostring(type(force) == "table" and force.name or force), position })
place_musk_floor(force, position, surface)
end
@ -787,38 +785,37 @@ BioInd.show("Got force from tile data", t.force or "false")
-- Fertilizer/Advanced fertilizer has been used. Check if the tile was valid
-- (no Musk floor, no wooden floor, no concrete etc.)
elseif item and (item.name == "fertilizer" or item.name == "bi-adv-fertilizer") then
local restore_tiles = {}
local products, remove_this
for index, t in pairs(old_tiles or {tile}) do
BioInd.show("index", index)
BioInd.show("t.old_tile.name", t.old_tile.name)
for index, t in pairs(old_tiles or { tile }) do
BioInd.show("index", index)
BioInd.show("t.old_tile.name", t.old_tile.name)
-- We want to restore removed tiles if nothing is supposed to grow on them!
if storage.bi.barren_tiles[t.old_tile.name] then
BioInd.writeDebug("%s was used on forbidden ground (%s)!", {item.name, t.old_tile.name})
restore_tiles[#restore_tiles + 1] = {name = t.old_tile.name, position = t.position}
BioInd.writeDebug("%s was used on forbidden ground (%s)!", { item.name, t.old_tile.name })
restore_tiles[#restore_tiles + 1] = { name = t.old_tile.name, position = t.position }
-- Is that tile minable?
products = storage.bi.barren_tiles[t.old_tile.name]
if type(products) == "table" then
for p, product in ipairs(products) do
remove_this = {name = product.name, count = product.amount}
remove_this = { name = product.name, count = product.amount }
if player then
BioInd.writeDebug("Removing %s (%s) from player %s",
{product.name, product.amount, player.name})
{ product.name, product.amount, player.name })
player.remove_item(remove_this)
elseif robot then
BioInd.writeDebug("Removing %s (%s) from robot %s",
{product.name, product.amount, robot.unit_number})
{ product.name, product.amount, robot.unit_number })
robot.remove_item(remove_this)
end
end
end
end
end
BioInd.show("restore_tiles", restore_tiles)
BioInd.show("restore_tiles", restore_tiles)
if restore_tiles then
surface.set_tiles(
restore_tiles,
@ -833,7 +830,7 @@ BioInd.show("restore_tiles", restore_tiles)
else
local test
local removed_tiles = {}
for index, t in pairs(old_tiles or {tile}) do
for index, t in pairs(old_tiles or { tile }) do
position = BioInd.normalize_position(t.position)
test = storage.bi_musk_floor_table and
storage.bi_musk_floor_table.tiles and
@ -841,18 +838,17 @@ BioInd.show("restore_tiles", restore_tiles)
storage.bi_musk_floor_table.tiles[position.x][position.y]
if test then
removed_tiles[#removed_tiles + 1] = {
old_tile = {name = "bi-solar-mat"},
old_tile = { name = "bi-solar-mat" },
position = position
}
end
end
if next(removed_tiles) then
solar_mat_removed({surface_index = event.surface_index, tiles = removed_tiles})
solar_mat_removed({ surface_index = event.surface_index, tiles = removed_tiles })
else
BioInd.writeDebug("%s has been built -- nothing to do!", {tile.name})
BioInd.writeDebug("%s has been built -- nothing to do!", { tile.name })
end
end
end
@ -860,7 +856,7 @@ end
-- A tille has been changed
local function Tile_Changed(event)
local f_name = "Tile_Changed"
BioInd.writeDebug("Entered function %s(%s)", {f_name, event})
BioInd.writeDebug("Entered function %s(%s)", { f_name, event })
-- The event gives us only a list of the new tiles that have been placed.
-- So let's check if any Musk floor has been built!
@ -872,7 +868,7 @@ local function Tile_Changed(event)
local tile_force
for t, tile in ipairs(event.tiles) do
BioInd.show("t", t)
BioInd.show("t", t)
pos = BioInd.normalize_position(tile.position)
tile_force = storage.bi_musk_floor_table.tiles[pos.x] and
storage.bi_musk_floor_table.tiles[pos.x][pos.y]
@ -894,7 +890,7 @@ BioInd.show("t", t)
BioInd.writeDebug("Fertilizer was used!")
-- Fertilizer was used on a Musk floor tile -- restore the tile!
BioInd.show("Musk floor tile in position", tile_force)
BioInd.show("Musk floor tile in position", tile_force)
if tile_force then
old_musk_floor_tiles[#old_musk_floor_tiles + 1] = {
old_tile = { name = "bi-solar-mat" },
@ -910,14 +906,14 @@ BioInd.show("Musk floor tile in position", tile_force)
}
end
end
BioInd.show("new_musk_floor_tiles", new_musk_floor_tiles)
BioInd.show("old_musk_floor_tiles", old_musk_floor_tiles)
BioInd.show("remove_musk_floor_tiles", remove_musk_floor_tiles)
BioInd.show("new_musk_floor_tiles", new_musk_floor_tiles)
BioInd.show("old_musk_floor_tiles", old_musk_floor_tiles)
BioInd.show("remove_musk_floor_tiles", remove_musk_floor_tiles)
if next(new_musk_floor_tiles) then
solar_mat_built({
surface_index = event.surface_index,
tile = {name = "bi-solar-mat"},
tile = { name = "bi-solar-mat" },
force = BioInd.MuskForceName,
tiles = new_musk_floor_tiles
})
@ -925,12 +921,12 @@ BioInd.show("remove_musk_floor_tiles", remove_musk_floor_tiles)
if next(old_musk_floor_tiles) then
solar_mat_built({
surface_index = event.surface_index,
tile = {name = "bi-solar-mat"},
tile = { name = "bi-solar-mat" },
tiles = old_musk_floor_tiles
})
end
if next(remove_musk_floor_tiles) then
solar_mat_removed({surface_index = event.surface_index, tiles = remove_musk_floor_tiles})
solar_mat_removed({ surface_index = event.surface_index, tiles = remove_musk_floor_tiles })
end
BioInd.show("End of function", f_name)
end
@ -956,7 +952,7 @@ Event.pre_remove_events = {
defines.events.on_player_mined_entity,
defines.events.on_robot_mined_entity,
}
Event.death_events = {
Event.death_events = {
defines.events.on_entity_died,
defines.events.script_raised_destroy
}
@ -1009,14 +1005,14 @@ Event.register(Event.tile_script_action, Tile_Changed)
-- (Thanks to eradicator!) --
------------------------------------------------------------------------------------
setmetatable(_ENV, {
__newindex = function (self, key, value) --locked_global_write
__newindex = function(self, key, value) --locked_global_write
error('\n\n[ER Global Lock] Forbidden global *write*:\n'
.. serpent.line{key = key or '<nil>', value = value or '<nil>'} .. '\n')
.. serpent.line { key = key or '<nil>', value = value or '<nil>' } .. '\n')
end,
__index = function (self, key) --locked_global_read
__index = function(self, key) --locked_global_read
if not (key == "game" or key == "mods" or key == "storage") then
error('\n\n[ER Global Lock] Forbidden global *read*:\n'
.. serpent.line{key = key or '<nil>'} .. '\n')
.. serpent.line { key = key or '<nil>' } .. '\n')
end
end
})

View file

@ -1,4 +1,3 @@
BioInd.writeDebug("Entered control_arboretum.lua")
---Arboretum Stuff
@ -36,7 +35,7 @@ local function get_new_position(pos)
local xxx = math.random(-plant_radius, plant_radius)
local yyy = math.random(-plant_radius, plant_radius)
return {x = pos.x + xxx, y = pos.y + yyy}
return { x = pos.x + xxx, y = pos.y + yyy }
end
@ -48,7 +47,7 @@ local function check_ingredients(arboretum)
local function check(need, have)
for name, amount in pairs(need or {}) do
if not (have and have[name]) or (have[name] < amount) then
BioInd.writeDebug("Missing ingredient %s (have %s of %s)", {name, have[name] or 0, amount})
BioInd.writeDebug("Missing ingredient %s (have %s of %s)", { name, have[name] or 0, amount })
return false
end
end
@ -59,30 +58,30 @@ local function check_ingredients(arboretum)
return need 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
{ ingredients = need, name = recipe.name } or nil
end
local function consume_ingredients(arboretum, need)
local inventory = arboretum.get_inventory(defines.inventory.assembling_machine_input)
for item, i in pairs(need.items or {}) do
inventory.remove({name = item, count = i})
BioInd.writeDebug("Removed %s (%s)", {item, i})
inventory.remove({ name = item, count = i })
BioInd.writeDebug("Removed %s (%s)", { item, i })
end
BioInd.show("Inventory", inventory.get_contents() or "nil")
BioInd.show("Inventory", inventory.get_contents() or "nil")
for fluid, f in pairs(need.fluids or {}) do
arboretum.remove_fluid({name = fluid, amount = f})
BioInd.writeDebug("Removed %s (%s)", {fluid, f})
arboretum.remove_fluid({ name = fluid, amount = f })
BioInd.writeDebug("Removed %s (%s)", { fluid, f })
end
BioInd.show("Fluid contents", arboretum.get_fluid_contents() or "nil")
BioInd.show("Fluid contents", arboretum.get_fluid_contents() or "nil")
end
local function set_tile(current, target, surface, position)
if current ~= target then
surface.set_tiles(
{{name = target, position = position}},
{ { name = target, position = position } },
true, -- correct_tiles
true, -- remove_colliding_entities
true, -- remove_colliding_decoratives
@ -92,7 +91,7 @@ local function set_tile(current, target, surface, position)
end
function Get_Arboretum_Recipe(ArboretumTable, event)
BioInd.writeDebug("Entered function Get_Arboretum_Recipe(%s, %s)", {ArboretumTable, event})
BioInd.writeDebug("Entered function Get_Arboretum_Recipe(%s, %s)", { ArboretumTable, event })
if not ArboretumTable then
BioInd.writeDebug("%s is not a valid ArboretumTable. Leaving immediately!")
return
@ -129,7 +128,7 @@ function Get_Arboretum_Recipe(ArboretumTable, event)
for k = 1, 10 do
new_position = get_new_position(pos)
new_plant = {
name= "seedling",
name = "seedling",
position = new_position,
force = "neutral"
}
@ -156,14 +155,14 @@ function Get_Arboretum_Recipe(ArboretumTable, event)
if Bi_Industries.fertility[currentTilename] and not Terrain_Check_1[currentTilename] then
consume_ingredients(arboretum, ingredients)
BioInd.writeDebug("%s: Changing terrain from %s to %s (%s)",
{k, currentTilename or "unknown tile",
terrain_name_g3, serpent.line(new_position)})
{ k, currentTilename or "unknown tile",
terrain_name_g3, serpent.line(new_position) })
set_tile(currentTilename, terrain_name_g3, surface, new_position)
--- After sucessfully changing the terrain, break out of the loop.
break
else
BioInd.writeDebug("%s: Can't change terrain (%s)",
{k, currentTilename or "unknown tile"})
{ k, currentTilename or "unknown tile" })
end
end
-- Fertilize the ground with advanced fertilizer. Ignore tiles listed in Terrain_Check_2!
@ -177,14 +176,14 @@ function Get_Arboretum_Recipe(ArboretumTable, event)
if Bi_Industries.fertility[currentTilename] and currentTilename ~= terrain_name_g1 then
consume_ingredients(arboretum, ingredients)
BioInd.writeDebug("%s: Changing terrain from %s to %s (%s)",
{k, currentTilename or "unknown tile",
terrain_name_g1, serpent.line(new_position)})
{ k, currentTilename or "unknown tile",
terrain_name_g1, serpent.line(new_position) })
set_tile(currentTilename, terrain_name_g1, surface, new_position)
--- After sucessfully changing the terrain, break out of the loop.
break
else
BioInd.writeDebug("%s: Can't change terrain (%s)",
{k, currentTilename or "unknown tile"})
{ k, currentTilename or "unknown tile" })
end
end
-- Fertilize the ground with normal fertilizer. Ignore tiles listed in Terrain_Check_1!
@ -196,7 +195,7 @@ function Get_Arboretum_Recipe(ArboretumTable, event)
new_position = get_new_position(pos)
currentTilename = surface.get_tile(new_position.x, new_position.y).name
new_plant = {
name= "seedling",
name = "seedling",
position = new_position,
force = "neutral"
}
@ -206,7 +205,7 @@ function Get_Arboretum_Recipe(ArboretumTable, event)
consume_ingredients(arboretum, ingredients)
-- Refund fertilizer -- no need to waste it on fertile ground!
if Terrain_Check_1[currentTilename] then
arboretum.insert({name = "fertilizer", count = ingredients.items.fertilizer})
arboretum.insert({ name = "fertilizer", count = ingredients.items.fertilizer })
BioInd.writeDebug("Refunded fertilizer!")
end
@ -217,7 +216,7 @@ function Get_Arboretum_Recipe(ArboretumTable, event)
break
else
BioInd.writeDebug("%s: Can't change terrain and plant a tree (%s)",
{k, currentTilename or "unknown tile"})
{ k, currentTilename or "unknown tile" })
end
end
-- Fertilize the ground with advanced fertilizer. Ignore tiles listed in Terrain_Check_2!
@ -229,7 +228,7 @@ function Get_Arboretum_Recipe(ArboretumTable, event)
new_position = get_new_position(pos)
currentTilename = surface.get_tile(new_position.x, new_position.y).name
new_plant = {
name= "seedling",
name = "seedling",
position = new_position,
force = "neutral"
}
@ -246,12 +245,12 @@ function Get_Arboretum_Recipe(ArboretumTable, event)
set_tile(currentTilename, terrain_name_g1, surface, new_position)
create_seedling = surface.create_entity(new_plant)
seed_planted_arboretum (event, create_seedling)
seed_planted_arboretum(event, create_seedling)
--- After sucessfully planting a tree or changing the terrain, break out of the loop.
break
else
BioInd.writeDebug("%s: Can't change terrain and plant a tree (%s)",
{k, currentTilename or "unknown tile"})
{ k, currentTilename or "unknown tile" })
end
end
else

View file

@ -1,4 +1,3 @@
-- All tree Growing stuff
local Event = require('__kry_stdlib__/stdlib/event/event').set_protected_mode(true)
@ -233,8 +232,8 @@ local function get_tile_fertility(surface, position, tile_name)
local fertility = Bi_Industries.fertility[tile_name]
return fertility and {fertility = fertility, key = "fertilizer"} or
{fertility = 1, key = "default"}
return fertility and { fertility = fertility, key = "fertilizer" } or
{ fertility = 1, key = "default" }
end
@ -255,12 +254,12 @@ local function plant_tree(tabl, tree, create_entity)
end
local grow_until_tick = tree.time
BioInd.show("grow_until_tick", grow_until_tick)
BioInd.show("grow_until_tick", grow_until_tick)
tabl[grow_until_tick] = tabl[grow_until_tick] or {}
-- Update table
table.insert(tabl[grow_until_tick], tree)
BioInd.writeDebug("Added tree to table!")
BioInd.writeDebug("Added tree to table!")
-- Plant the new tree
if create_entity then
@ -275,17 +274,17 @@ end
-- t_base, t_penalty: numbers; seedbomb: Boolean
local function plant_seed(event, t_base, t_penalty, seedbomb)
for a, arg in pairs({
{arg = event, type = "table"},
{arg = t_base, type = "number"},
{arg = t_penalty, type = "number"}
{ arg = event, type = "table" },
{ arg = t_base, type = "number" },
{ arg = t_penalty, type = "number" }
}) do
BioInd.check_args(arg.arg, arg.type, arg.desc)
end
BioInd.show("event", event)
BioInd.show("t_base", t_base)
BioInd.show("t_penalty", t_penalty)
BioInd.show("seedbomb", seedbomb)
BioInd.show("event", event)
BioInd.show("t_base", t_base)
BioInd.show("t_penalty", t_penalty)
BioInd.show("seedbomb", seedbomb)
-- Seed Planted (Put the seedling in the table)
local entity = event.entity or event.created_entity or
BioInd.arg_err("nil", "entity")
@ -322,7 +321,6 @@ function seed_planted_arboretum(event, entity)
plant_seed(event, 2000, 6000, false)
end
function summ_weight(tabl)
local summ = 0
for i, tree_weights in pairs(tabl or {}) do
@ -349,12 +347,12 @@ function tree_from_max_index_tabl(max_index, tabl)
end
local function random_tree(tile_name)
BioInd.show("[random_tree] tile_name", tile_name)
BioInd.show("[random_tree] tile_name", tile_name)
if terrains[tile_name] then
local trees_table = terrains[tile_name]
local max_index = summ_weight(trees_table)
BioInd.writeDebug("Found %s in table terrains.\tmax_index: %s",
{tile_name, max_index})
{ tile_name, max_index })
return tree_from_max_index_tabl(max_index, trees_table)
end
end
@ -363,16 +361,16 @@ end
-- Settings used for the different grow stages
local stage_settings = {
[1] = {
fertilizer = {max = 1500, penalty = 3000, factor = 30},
default = {max = 1500, penalty = 6000, factor = 30},
fertilizer = { max = 1500, penalty = 3000, factor = 30 },
default = { max = 1500, penalty = 6000, factor = 30 },
},
[2] = {
fertilizer = {max = 1000, penalty = 2000, factor = 20},
default = {max = 1500, penalty = 6000, factor = 30},
fertilizer = { max = 1000, penalty = 2000, factor = 20 },
default = { max = 1500, penalty = 6000, factor = 30 },
},
[3] = {
fertilizer = {max = 1000, penalty = 2000, factor = 20},
default = {max = 1500, penalty = 6000, factor = 30},
fertilizer = { max = 1000, penalty = 2000, factor = 20 },
default = { max = 1500, penalty = 6000, factor = 30 },
},
}
@ -389,26 +387,26 @@ local function Grow_tree_first_stage(first_stage_table, event)
local tree2 = surface.find_entity("seedling-2", position)
local tree3 = surface.find_entity("seedling-3", position)
BioInd.writeDebug("tree: %s\ttree2: %s\ttree3: %s",
{tree and tree.valid and tree.name or "nil",
{ tree and tree.valid and tree.name or "nil",
tree2 and tree2.valid and tree2.name or "nil",
tree3 and tree3.valid and tree3.name or "nil"})
tree3 and tree3.valid and tree3.name or "nil" })
local tile_name = surface.get_tile(position).name
-- fertility will be 1 if terrain type is not listed above, so very small chance to grow.
local f = get_tile_fertility(surface, position, tile_name)
local fertility, key = f.fertility, f.key
BioInd.show("fertility", fertility)
BioInd.show("key", key)
BioInd.show("fertility", fertility)
BioInd.show("key", key)
-- Random value. Tree will grow if this value is smaller than the 'Fertility' value
local growth_chance = math.random(100)
local tree_name, can_be_placed
if tree or tree2 or tree3 then
BioInd.writeDebug("Found a seedling!")
BioInd.writeDebug("Found a seedling!")
tree_name = random_tree(tile_name)
end
BioInd.show("tree_name", tree_name)
BioInd.show("tree_name", tree_name)
if tree then
@ -425,23 +423,23 @@ BioInd.show("tree_name", tree_name)
can_be_placed = surface.can_place_entity({
name = tree_name, position = position, force = "neutral"
})
BioInd.show("can_be_placed", can_be_placed)
BioInd.show("growth_chance", growth_chance)
BioInd.show("fertility", fertility)
BioInd.show(growth_chance.." <= ("..fertility.." + 5)", growth_chance <= (fertility + 5))
BioInd.show("can_be_placed", can_be_placed)
BioInd.show("growth_chance", growth_chance)
BioInd.show("fertility", fertility)
BioInd.show(growth_chance .. " <= (" .. fertility .. " + 5)", growth_chance <= (fertility + 5))
if can_be_placed and growth_chance <= (fertility + 5) then
BioInd.writeDebug("Can be placed etc!")
-- Trees will grow faster on Fertile than on barren tiles
local grow_time = math.max(1, math.random(2000) + 4000 - (40 * fertility))
BioInd.show("grow_time", grow_time)
BioInd.show("grow_time", grow_time)
local stage_1_tree_name = "bio-tree-"..tree_name.."-1"
local stage_1_tree_name = "bio-tree-" .. tree_name .. "-1"
if not (prototypes.item[stage_1_tree_name] or
prototypes.entity[stage_1_tree_name]) then
stage_1_tree_name = tree_name
end
BioInd.writeDebug("stage_1_tree_name: %s", {stage_1_tree_name})
BioInd.writeDebug("stage_1_tree_name: %s", { stage_1_tree_name })
local tree_data = {
tree_name = stage_1_tree_name,
@ -456,9 +454,9 @@ BioInd.writeDebug("stage_1_tree_name: %s", {stage_1_tree_name})
end
--- Seed Bomb Code
BioInd.show("tree_name", tree_name)
BioInd.show("tree2", tree2)
BioInd.show("tree3", tree3)
BioInd.show("tree_name", tree_name)
BioInd.show("tree2", tree2)
BioInd.show("tree3", tree3)
if seed_bomb then
BioInd.writeDebug("Seed bomb was used!")
@ -472,17 +470,17 @@ BioInd.show("tree3", tree3)
end
--- Depending on Terrain, choose tree type & Convert seedling into a tree
BioInd.show("key", key)
BioInd.show("key", key)
if key == "fertilizer" then
BioInd.writeDebug("Got Tile")
if tree_name then
BioInd.writeDebug("Found Tree: %s", {tree_name})
local new_tree = {name = tree_name, position = position, force = "neutral"}
BioInd.writeDebug("Found Tree: %s", { tree_name })
local new_tree = { name = tree_name, position = position, force = "neutral" }
can_be_placed = surface.can_place_entity(new_tree)
BioInd.show("can_be_placed", can_be_placed)
BioInd.show("growth_chance", growth_chance)
BioInd.show("fertility", fertility)
BioInd.show("growth_chance <= fertility", growth_chance <= fertility)
BioInd.show("can_be_placed", can_be_placed)
BioInd.show("growth_chance", growth_chance)
BioInd.show("fertility", fertility)
BioInd.show("growth_chance <= fertility", growth_chance <= fertility)
if can_be_placed and growth_chance <= fertility then
surface.create_entity(new_tree)
BioInd.writeDebug("Created new tree!")
@ -524,9 +522,8 @@ local function Grow_tree_last_stage(last_stage_table)
--- Convert growing tree to fully grown tree
if (key == "fertilizer" or growth_chance <= fertility) then
-- Grow the new tree
BioInd.writeDebug("Final Tree Name: %s", {final_tree})
BioInd.writeDebug("Final Tree Name: %s", { final_tree })
surface.create_entity({
name = final_tree,
position = position,
@ -538,7 +535,7 @@ end
local function Grow_tree_stage(stage_table, stage)
BioInd.writeDebug("Entered function Grow_tree_stage(%s, %s)", {stage_table, stage})
BioInd.writeDebug("Entered function Grow_tree_stage(%s, %s)", { stage_table, stage })
BioInd.check_args(stage_table, "table")
BioInd.check_args(stage, "number")
@ -546,9 +543,9 @@ BioInd.writeDebug("Entered function Grow_tree_stage(%s, %s)", {stage_table, stag
Grow_tree_last_stage(stage_table)
else
for a, arg in pairs({
{arg = stage_table.tree_name, type = "string", desc = "tree_name"},
{arg = stage_table.final_tree, type = "string", desc = "final_tree"},
{arg = stage_table.time, type = "number", desc = "time"},
{ arg = stage_table.tree_name, type = "string", desc = "tree_name" },
{ arg = stage_table.final_tree, type = "string", desc = "final_tree" },
{ arg = stage_table.time, type = "number", desc = "time" },
}) do
BioInd.check_args(arg.arg, arg.type, arg.desc)
end
@ -574,23 +571,22 @@ BioInd.writeDebug("Entered function Grow_tree_stage(%s, %s)", {stage_table, stag
local f = get_tile_fertility(surface, position)
local fertility, key = f.fertility, f.key
local next_stage_tree_name = "bio-tree-"..final_tree.."-"..next_stage
local next_stage_tree_name = "bio-tree-" .. final_tree .. "-" .. next_stage
if not (prototypes.item[next_stage_tree_name] or
prototypes.entity[next_stage_tree_name]) then
next_stage_tree_name = final_tree
BioInd.writeDebug("Next stage %g: Prototype did not exist", {next_stage})
BioInd.writeDebug("Next stage %g: Prototype did not exist", { next_stage })
else
BioInd.writeDebug("Next stage %g: %s", {next_stage, next_stage_tree_name})
BioInd.writeDebug("Next stage %g: %s", { next_stage, next_stage_tree_name })
end
local can_be_placed = surface.can_place_entity{
local can_be_placed = surface.can_place_entity {
name = next_stage_tree_name,
position = position,
force = "neutral"
}
if can_be_placed then
if next_stage_tree_name == final_tree then
BioInd.writeDebug("Tree reached final stage, don't insert")
surface.create_entity({
@ -610,10 +606,9 @@ BioInd.writeDebug("Entered function Grow_tree_stage(%s, %s)", {stage_table, stag
time = time_planted + grow_time,
surface = surface
}
plant_tree(storage.bi["tree_growing_stage_"..next_stage], tree_data, true)
plant_tree(storage.bi["tree_growing_stage_" .. next_stage], tree_data, true)
end
end
else
BioInd.writeDebug("Did not find that tree I was looking for...")
end
@ -626,7 +621,7 @@ end
Event.register(defines.events.on_tick, function(event)
if storage.bi.tree_growing_stage_1 == nil then
for i = 1, 4 do
storage.bi["tree_growing_stage_"..i] = storage.bi["tree_growing_stage_"..i] or {}
storage.bi["tree_growing_stage_" .. i] = storage.bi["tree_growing_stage_" .. i] or {}
end
end
@ -634,23 +629,23 @@ Event.register(defines.events.on_tick, function(event)
if storage.bi.tree_growing[tick] then
for t, tree_data in pairs(storage.bi.tree_growing[tick]) do
BioInd.writeDebug("Trying to move tree %s to first grow stage!", {t})
BioInd.writeDebug("Trying to move tree %s to first grow stage!", { t })
Grow_tree_first_stage(tree_data, event)
end
BioInd.writeDebug("Removing storage.bi.tree_growing[%s]!", {tick})
BioInd.writeDebug("Removing storage.bi.tree_growing[%s]!", { tick })
storage.bi.tree_growing[tick] = nil
end
local stage_table
for stage = 1, 4 do
stage_table = storage.bi["tree_growing_stage_"..stage]
stage_table = storage.bi["tree_growing_stage_" .. stage]
if stage_table[tick] then
for t, tree_data in pairs(stage_table[tick]) do
BioInd.writeDebug("Moving tree %s to next grow stage!", {t})
BioInd.writeDebug("Moving tree %s to next grow stage!", { t })
Grow_tree_stage(tree_data, stage)
end
BioInd.writeDebug("Removing storage.bi.tree_growing_stage_%s[%s]!",
{stage, tick})
{ stage, tick })
stage_table[tick] = nil
end
end

View file

@ -14,13 +14,12 @@ for name, _ in pairs(ignore_trees or {}) do
BioInd.show("Removed tree prototype", name)
end
end
BioInd.writeDebug("Removed %g tree prototypes. Number of trees to ignore now: %g", {removed, table_size(ignore_trees)})
BioInd.writeDebug("Removed %g tree prototypes. Number of trees to ignore now: %g", { removed, table_size(ignore_trees) })
BI.Settings.BI_Game_Tweaks_Emissions_Multiplier = settings.startup["BI_Game_Tweaks_Emissions_Multiplier"].value
---- Game Tweaks ---- Tree
if BI.Settings.BI_Game_Tweaks_Tree then
local new_results = {
{
type = "item",
@ -32,8 +31,11 @@ if BI.Settings.BI_Game_Tweaks_Tree then
for tree_name, tree in pairs(data.raw["tree"] or {}) do
if tree.minable and not ignore_trees[tree_name] then
BioInd.writeDebug("Tree name: %s\tminable.result: %s\tminable.count: %s", {tree.name, (tree.minable and tree.minable.result or "nil"), (tree.minable and tree.minable.count or "nil")}, "line")
BioInd.writeDebug("Tree name: %s\tminable.results: %s", {tree.name, (tree.minable and tree.minable.results or "nil")}, "line")
BioInd.writeDebug("Tree name: %s\tminable.result: %s\tminable.count: %s",
{ tree.name, (tree.minable and tree.minable.result or "nil"), (tree.minable and tree.minable.count or "nil") },
"line")
BioInd.writeDebug("Tree name: %s\tminable.results: %s",
{ tree.name, (tree.minable and tree.minable.results or "nil") }, "line")
--CHECK FOR SINGLE RESULTS
-- mining.result may be set although mining.results exists (mining.result
-- will be ignored in that case; happens, for example with IR2's rubber
@ -44,7 +46,7 @@ BioInd.writeDebug("Tree name: %s\tminable.results: %s", {tree.name, (tree.minabl
BioInd.writeDebug("Tree has minable.result")
--CHECK FOR VANILLA TREES WOOD x 4
if tree.minable.result == "wood" and tree.minable.count == 4 then
BioInd.writeDebug("Changing wood yield of %s to random value.", {tree.name})
BioInd.writeDebug("Changing wood yield of %s to random value.", { tree.name })
tree.minable.mining_particle = "wooden-particle"
tree.minable.mining_time = 1.5
tree.minable.results = new_results
@ -66,7 +68,7 @@ BioInd.writeDebug("Tree name: %s\tminable.results: %s", {tree.name, (tree.minabl
for r, result in pairs(tree.minable.results) do
--CHECK FOR RESULT WOOD x 4
if result.name == "wood" and result.amount == 4 then
BioInd.writeDebug("Changing result %s: %s", {r, result}, "line")
BioInd.writeDebug("Changing result %s: %s", { r, result }, "line")
result.amount = nil
result.amount_min = 1
result.amount_max = 6
@ -80,9 +82,9 @@ BioInd.writeDebug("Tree name: %s\tminable.results: %s", {tree.name, (tree.minabl
tree.minable.results = new_results
end
BioInd.writeDebug("New minable.results: %s",
{tree.minable and tree.minable.results or "nil"}, "line")
{ tree.minable and tree.minable.results or "nil" }, "line")
else
BioInd.writeDebug("Won't change results of %s!", {tree.name})
BioInd.writeDebug("Won't change results of %s!", { tree.name })
end
end
end
@ -130,17 +132,16 @@ if BI.Settings.BI_Game_Tweaks_Player then
local found, ignore
for char_name, character in pairs(data.raw.character) do
BioInd.show("Checking character", char_name)
BioInd.show("Checking character", char_name)
found = false
for w, w_pattern in ipairs(whitelist) do
if char_name == w_pattern or char_name:match(w_pattern) then
ignore = false
BioInd.show("Found whitelisted character name", char_name)
BioInd.show("Found whitelisted character name", char_name)
for b, b_pattern in ipairs(blacklist) do
if char_name == b_pattern or char_name:match(b_pattern) then
BioInd.writeDebug("%s is on the ignore list!", char_name)
BioInd.writeDebug("%s is on the ignore list!", char_name)
-- Mark character as found
ignore = true
break
@ -160,7 +161,7 @@ BioInd.writeDebug("%s is on the ignore list!", char_name)
if found then
for tweak_name, tweak in pairs(tweaks) do
if character[tweak_name] < tweak then
BioInd.writeDebug("Changing %s from %s to %s", {tweak_name, character[tweak_name], tweak})
BioInd.writeDebug("Changing %s from %s to %s", { tweak_name, character[tweak_name], tweak })
character[tweak_name] = tweak
end
end
@ -195,25 +196,26 @@ if BI.Settings.BI_Game_Tweaks_Bot then
end
if can_insert then
table.insert(bot.flags, "not-flammable")
BioInd.writeDebug("Added flag \"not-flammable\" to %s", {bot.name})
BioInd.writeDebug("Added flag \"not-flammable\" to %s", { bot.name })
end
can_insert = true
for r, resistance in pairs(bot.resistances) do
if resistance.type == "fire" and resistance.percent ~= 100 then
BioInd.writeDebug("Change resistance against \"fire\" from %s to 100 %% for %s", {resistance.percent or "nil", bot.name})
bot.resistances[r] = {type = "fire", percent = 100}
BioInd.writeDebug("Change resistance against \"fire\" from %s to 100 %% for %s",
{ resistance.percent or "nil", bot.name })
bot.resistances[r] = { type = "fire", percent = 100 }
can_insert = false
break
end
end
if can_insert then
table.insert(bot.resistances, {type = "fire", percent = 100})
BioInd.writeDebug("Added resistance against \"fire\" to %s", {bot.name})
table.insert(bot.resistances, { type = "fire", percent = 100 })
BioInd.writeDebug("Added resistance against \"fire\" to %s", { bot.name })
end
bot.minable = nil
BioInd.writeDebug("Made %s unminable", {bot.name})
BioInd.writeDebug("Made %s unminable", { bot.name })
end
--catches modded bots too
@ -231,11 +233,11 @@ end
if BI.Settings.BI_Game_Tweaks_Stack_Size then
-- Changed for 0.18.34/1.1.4
local tweaks = {
["wood"] = {value = 400, se_limit = 200},
["stone"] = {value = 400, se_limit = 50},
["stone-crushed"] = {value = 800, se_limit = 200},
["concrete"] = {value = 400, se_limit = 200},
["slag"] = {value = 800, se_limit = 200},
["wood"] = { value = 400, se_limit = 200 },
["stone"] = { value = 400, se_limit = 50 },
["stone-crushed"] = { value = 800, se_limit = 200 },
["concrete"] = { value = 400, se_limit = 200 },
["slag"] = { value = 800, se_limit = 200 },
}
local item
local five_dim = BioInd.get_startup_setting("5d-change-stack")
@ -246,12 +248,12 @@ if BI.Settings.BI_Game_Tweaks_Stack_Size then
-- Only adjust stack_size if 5Dim sets multiplier of 1 or is not active!
if item.stack_size < tweak.value and (five_dim == 1 or not five_dim) then
BioInd.writeDebug("Changing stacksize of %s from %s to %s",
{item.name, item.stack_size, tweak.value})
{ item.name, item.stack_size, tweak.value })
item.stack_size = tweak.value
end
if mods["space-exploration"] then
item.stack_size = math.min(tweak.se_limit, item.stack_size)
BioInd.show("Adjusted stack_size on account of SE", item.stack_size )
BioInd.show("Adjusted stack_size on account of SE", item.stack_size)
end
end
end
@ -321,12 +323,14 @@ if mods["Krastorio2"] then
"bi-seed", "seedling", "water",
}
for _, recipe in pairs(data.raw.recipe) do
BioInd.writeDebug("Recipe has \"mod\" property: %s", {recipe.mod and true or false})
BioInd.writeDebug("Recipe has \"mod\" property: %s", { recipe.mod and true or false })
if recipe.mod == "Bio_Industries_2" then
krastorio.recipes.multiplyIngredients(recipe.name, update, 4)
krastorio.recipes.multiplyProducts(recipe.name, update, 4)
BioInd.writeDebug("Changed ingredients for %s: %s", {recipe and recipe.name or "nil", recipe and recipe.ingredients or "nil"})
BioInd.writeDebug("Changed results for %s: %s", {recipe and recipe.name or "nil", recipe and recipe.results or "nil"})
BioInd.writeDebug("Changed ingredients for %s: %s",
{ recipe and recipe.name or "nil", recipe and recipe.ingredients or "nil" })
BioInd.writeDebug("Changed results for %s: %s",
{ recipe and recipe.name or "nil", recipe and recipe.results or "nil" })
end
end
end
@ -346,7 +350,7 @@ if not fertilizer.place_as_tile then
fertilizer.place_as_tile = {
result = AlienBiomes and "vegetation-green-grass-3" or "grass-3",
condition_size = 1,
condition = { layers = { water_tile = true }}
condition = { layers = { water_tile = true } }
}
fertilizer.icon = ICONPATH .. "fertilizer_64.png"
fertilizer.icon_size = 64
@ -356,19 +360,19 @@ if not fertilizer.place_as_tile then
icon_size = 64,
}
}
fertilizer.localised_name = {"BI-item-name.fertilizer"}
fertilizer.localised_description = {"BI-item-description.fertilizer"}
fertilizer.localised_name = { "BI-item-name.fertilizer" }
fertilizer.localised_description = { "BI-item-description.fertilizer" }
end
data.raw.item["bi-adv-fertilizer"].place_as_tile = {
result = AlienBiomes and "vegetation-green-grass-1" or "grass-1",
condition_size = 1,
condition = { layers = { water_tile = true }}
condition = { layers = { water_tile = true } }
}
if mods["pycoalprocessing"] and BI.Settings.BI_Bio_Fuel then
-- Bio_Fuel/recipe.lua:30: {type = "item", name = "bi-ash", amount = 15}
thxbob.lib.recipe.remove_result ("bi-basic-gas-processing", "bi-ash")
thxbob.lib.recipe.remove_result("bi-basic-gas-processing", "bi-ash")
thxbob.lib.recipe.add_result("bi-basic-gas-processing", {
type = "item",
name = "ash",
@ -404,7 +408,6 @@ if mods["space-exploration"] then
end
if not mods["Natural_Evolution_Buildings"] then
local ammo_tweaks = {
["bi-dart-magazine-basic"] = 400,
["bi-dart-magazine-standard"] = 400,
@ -422,11 +425,12 @@ end
if BI.Settings.Bio_Cannon then
local default_target_masks = data.raw["utility-constants"].default.default_trigger_target_mask_by_type
default_target_masks["unit-spawner"] = default_target_masks["unit-spawner"] or {"common"} -- everything should have "common", unless there is specific reason not to
default_target_masks["unit-spawner"] = default_target_masks["unit-spawner"] or
{ "common" } -- everything should have "common", unless there is specific reason not to
table.insert(default_target_masks["unit-spawner"], "Bio_Cannon_Ammo")
for w, worm in pairs(data.raw.turret) do
worm.trigger_target_mask = worm.trigger_target_mask or default_target_masks["turret"] or {"common"}
worm.trigger_target_mask = worm.trigger_target_mask or default_target_masks["turret"] or { "common" }
table.insert(worm.trigger_target_mask, "Bio_Cannon_Ammo")
end
end
@ -442,7 +446,7 @@ BioInd.BI_add_icons()
for k, v in pairs(data.raw) do
for t, p in pairs(v) do
if p.se_allow_in_space then
BioInd.writeDebug("%s (%s) can be built in space!", {p.name, t})
BioInd.writeDebug("%s (%s) can be built in space!", { p.name, t })
end
end
end

View file

@ -25,9 +25,9 @@ require("prototypes.Wood_Products.pipes")
-- Damage Bonus to Ammo
-- Don't duplicate what NE does
if not mods["Natural_Evolution_Buildings"] then
thxbob.lib.tech.add_recipe_unlock ("military", "bi-dart-magazine-standard")
thxbob.lib.tech.add_recipe_unlock ("military-2", "bi-dart-magazine-enhanced")
thxbob.lib.tech.add_recipe_unlock ("military-3", "bi-dart-magazine-poison")
thxbob.lib.tech.add_recipe_unlock("military", "bi-dart-magazine-standard")
thxbob.lib.tech.add_recipe_unlock("military-2", "bi-dart-magazine-enhanced")
thxbob.lib.tech.add_recipe_unlock("military-3", "bi-dart-magazine-poison")
end
require("prototypes.Bio_Turret.technology-updates")
@ -56,8 +56,8 @@ thxbob.lib.tech.add_recipe_unlock("logistics-3", "bi-wooden-chest-giga")
-- Add Big and Huge electric poles to tech tree
thxbob.lib.tech.add_recipe_unlock ("logistics", "bi-wooden-pole-big")
thxbob.lib.tech.add_recipe_unlock ("electric-energy-distribution-2", "bi-wooden-pole-huge")
thxbob.lib.tech.add_recipe_unlock("logistics", "bi-wooden-pole-big")
thxbob.lib.tech.add_recipe_unlock("electric-energy-distribution-2", "bi-wooden-pole-huge")
--- Wood Floors
-- Make wood placeable only if Dectorio isn't installed. Should leave existing flooring intact.
@ -65,14 +65,14 @@ if not mods["Dectorio"] then
data.raw.item["wood"].place_as_tile = {
result = "bi-wood-floor",
condition_size = 4,
condition = { layers = { water_tile = true }}
condition = { layers = { water_tile = true } }
}
end
--- Make it so that the Base game tile "grass" can't be placed in blueprints
--- New as of 0.16
for _, tile in ipairs{"grass-1", "grass-2", "grass-3", "grass-4"} do
for _, tile in ipairs { "grass-1", "grass-2", "grass-3", "grass-4" } do
BI_Functions.lib.remove_from_blueprint(tile)
end
@ -156,7 +156,8 @@ if BI.Settings.BI_Solar_Additions then
thxbob.lib.recipe.add_new_ingredient("bi-wooden-pole-huge", {
type = "item",
name = "tinned-copper-cable",
amount = 15}
amount = 15
}
)
end
@ -166,7 +167,8 @@ if BI.Settings.BI_Solar_Additions then
thxbob.lib.recipe.add_new_ingredient("bi-bio-solar-farm", {
type = "item",
name = "solar-panel-large",
amount = 30}
amount = 30
}
)
end
@ -176,7 +178,8 @@ if BI.Settings.BI_Solar_Additions then
thxbob.lib.recipe.add_new_ingredient("bi-large-substation", {
type = "item",
name = "substation-3",
amount = 6}
amount = 6
}
)
end
@ -185,7 +188,8 @@ if BI.Settings.BI_Solar_Additions then
thxbob.lib.recipe.add_new_ingredient("bi-large-substation", {
type = "item",
name = "electrum-alloy",
amount = 10}
amount = 10
}
)
end
@ -195,7 +199,8 @@ if BI.Settings.BI_Solar_Additions then
thxbob.lib.recipe.add_new_ingredient("bi-bio-accumulator", {
type = "item",
name = "large-accumulator",
amount = 30}
amount = 30
}
)
end
@ -204,7 +209,8 @@ if BI.Settings.BI_Solar_Additions then
thxbob.lib.recipe.add_new_ingredient("bi-bio-accumulator", {
type = "item",
name = "aluminium-plate",
amount = 50}
amount = 50
}
)
end
@ -214,7 +220,8 @@ if BI.Settings.BI_Solar_Additions then
thxbob.lib.recipe.add_new_ingredient("bi-solar-mat", {
type = "item",
name = "aluminium-plate",
amount = 1}
amount = 1
}
)
end
@ -223,7 +230,8 @@ if BI.Settings.BI_Solar_Additions then
thxbob.lib.recipe.add_new_ingredient("bi-solar-mat", {
type = "item",
name = "silicon-wafer",
amount = 4}
amount = 4
}
)
end
@ -233,7 +241,8 @@ if BI.Settings.BI_Solar_Additions then
thxbob.lib.recipe.add_new_ingredient("bi-solar-boiler-hidden-panel", {
type = "item",
name = "angels-electric-boiler",
amount = 1}
amount = 1
}
)
end
end
@ -280,10 +289,10 @@ if BI.Settings.BI_Bio_Fuel then
else
thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", "bi-sulfur")
end
else
thxbob.lib.recipe.add_new_ingredient("bi-adv-fertilizer-1", {type = "item", name = "fertilizer", amount = 50})
thxbob.lib.recipe.remove_ingredient ("bi-adv-fertilizer-2", "fertilizer")
thxbob.lib.recipe.add_new_ingredient("bi-adv-fertilizer-2", {type = "item", name = "fertilizer", amount = 30})
else
thxbob.lib.recipe.add_new_ingredient("bi-adv-fertilizer-1", { type = "item", name = "fertilizer", amount = 50 })
thxbob.lib.recipe.remove_ingredient("bi-adv-fertilizer-2", "fertilizer")
thxbob.lib.recipe.add_new_ingredient("bi-adv-fertilizer-2", { type = "item", name = "fertilizer", amount = 30 })
end
@ -294,7 +303,8 @@ if data.raw.item["alien-artifact"] then
thxbob.lib.recipe.add_new_ingredient("bi-adv-fertilizer-1", {
type = "item",
name = "alien-artifact",
amount = 5}
amount = 5
}
)
thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", "bi-adv-fertilizer-1")
end
@ -307,7 +317,8 @@ if mods["Natural_Evolution_Buildings"] then
thxbob.lib.recipe.add_new_ingredient("bi-adv-fertilizer-1", {
type = "fluid",
name = "NE_enhanced-nutrient-solution",
amount = 50}
amount = 50
}
)
end
@ -323,7 +334,7 @@ if data.raw["item"]["bob-greenhouse"] then
data.raw["item"]["fertilizer"].place_as_tile = {
result = BioInd.AB_tiles() and "vegetation-green-grass-3" or "grass-3",
condition_size = 1,
condition = { layers = { water_tile = true }}
condition = { layers = { water_tile = true } }
}
end
@ -348,32 +359,32 @@ if mods["angelspetrochem"] then
data.raw.item["pellet-coke"].fuel_top_speed_multiplier = 1.2
data.raw.recipe["pellet-coke"].category = "biofarm-mod-smelting"
thxbob.lib.tech.remove_recipe_unlock ("angels-coal-processing-2", "pellet-coke")
thxbob.lib.tech.remove_recipe_unlock("angels-coal-processing-2", "pellet-coke")
thxbob.lib.tech.add_recipe_unlock("angels-coal-cracking", "pellet-coke")
end
if data.raw.item["ash"] and mods["pycoalprocessing"] then
thxbob.lib.recipe.replace_ingredient ("bi-fertilizer-2", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient("bi-fertilizer-2", "bi-ash", "ash")
if mods["angelsrefining"] then
thxbob.lib.recipe.replace_ingredient ("bi-slag-slurry", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient("bi-slag-slurry", "bi-ash", "ash")
end
thxbob.lib.recipe.replace_ingredient ("bi-seed-2", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient ("bi-seedling-2", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient ("bi-logs-2", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient("bi-seed-2", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient("bi-seedling-2", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient("bi-logs-2", "bi-ash", "ash")
data.raw.recipe["bi-ash-1"].result = "ash"
data.raw.recipe["bi-ash-2"].result = "ash"
thxbob.lib.recipe.replace_ingredient ("bi-stone-brick", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient ("bi-fertilizer-1", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient("bi-stone-brick", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient("bi-fertilizer-1", "bi-ash", "ash")
if BI.Settings.BI_Bio_Fuel then
thxbob.lib.recipe.replace_ingredient ("bi-biomass-3", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient ("bi-sulfur", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient ("bi-sulfur-angels", "bi-ash", "ash")
thxbob.lib.recipe.replace_ingredient("bi-biomass-3", "bi-ash", "ash")
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_bio_sulfur.png"
data.raw.recipe["bi-sulfur"].icon_size = 64
@ -398,11 +409,11 @@ if data.raw.item["ash"] and mods["pycoalprocessing"] then
data.raw.recipe["bi-ash-2"].icon_size = 64
data.raw.recipe["bi-stone-brick"].icon = ICONPATH .. "py_bi_stone_brick.png"
data.raw.recipe["bi-stone-brick"].icon_size = 64
end
end
----- If Bob's bobrevamp, then ----
if mods["bobrevamp"] then
thxbob.lib.tech.remove_recipe_unlock ("bi-tech-coal-processing-1", "bi-solid-fuel")
thxbob.lib.tech.remove_recipe_unlock("bi-tech-coal-processing-1", "bi-solid-fuel")
thxbob.lib.tech.add_recipe_unlock("solid-fuel", "bi-solid-fuel")
end
@ -419,11 +430,11 @@ end
-- We may need liquid air and nitrogen -- but not if any of the following mods is active!
local ICONPATH = BioInd.modRoot .. "/graphics/icons/"
local ICONPATH = BioInd.modRoot .. "/graphics/icons/"
-- We only want to create nitrogen if it doesn't exist yet. We then also need to create
-- liquid air.
if not data.raw.fluid["nitrogen"] then
-- We only want to create nitrogen if it doesn't exist yet. We then also need to create
-- liquid air.
if not data.raw.fluid["nitrogen"] then
data:extend({
{
type = "fluid",
@ -441,8 +452,8 @@ end
gas_temperature = -210,
max_temperature = 100,
heat_capacity = "1kJ",
base_color = {r = 0.0, g = 0.0, b = 1.0},
flow_color = {r = 0.0, g = 0.0, b = 1.0},
base_color = { r = 0.0, g = 0.0, b = 1.0 },
flow_color = { r = 0.0, g = 0.0, b = 1.0 },
pressure_to_speed_ratio = 0.4,
flow_to_energy_ratio = 0.59,
order = "a[fluid]-b[nitrogen]"
@ -468,8 +479,8 @@ end
gas_temperature = -100,
max_temperature = 100,
heat_capacity = "1kJ",
base_color = {r = 0, g = 0, b = 0},
flow_color = {r = 0.5, g = 1.0, b = 1.0},
base_color = { r = 0, g = 0, b = 0 },
flow_color = { r = 0.5, g = 1.0, b = 1.0 },
pressure_to_speed_ratio = 0.4,
flow_to_energy_ratio = 0.59,
order = "a[fluid]-b[liquid-air]"
@ -479,7 +490,7 @@ end
end
-- Recipes for "bi-liquid-air" and "bi-nitrogen" aren't needed!
else
else
-- Remove recipe unlocks
thxbob.lib.tech.remove_recipe_unlock("bi-tech-fertilizer", "bi-liquid-air")
thxbob.lib.tech.remove_recipe_unlock("bi-tech-fertilizer", "bi-nitrogen")
@ -501,28 +512,28 @@ end
data.raw.recipe["bi-liquid-air"] = nil
data.raw.recipe["bi-nitrogen"] = nil
BioInd.writeDebug("Removed recipes for \"nitrogen\" and \"liquid air\".")
end
end
-- Moved here from data-final-fixes.lua for 0.18.34/1.1.4! (Fixes https://mods.factorio.com/mod/Bio_Industries/discussion/5ff570bd916993002371332a)
---- Game Tweaks ---- Recipes
if BI.Settings.BI_Game_Tweaks_Recipe then
--- Concrete Recipe Tweak
thxbob.lib.recipe.remove_ingredient("concrete", "iron-ore")
thxbob.lib.recipe.add_new_ingredient("concrete", {type = "item", name = "iron-stick", amount = 2})
thxbob.lib.recipe.add_new_ingredient("concrete", { type = "item", name = "iron-stick", amount = 2 })
--- Stone Wall
thxbob.lib.recipe.add_new_ingredient("stone-wall", {type = "item", name = "iron-stick", amount = 1})
thxbob.lib.recipe.add_new_ingredient("stone-wall", { type = "item", name = "iron-stick", amount = 1 })
--- 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})
thxbob.lib.recipe.add_new_ingredient("rail", { type = "item", name = "stone-crushed", amount = 6 })
thxbob.lib.recipe.remove_ingredient("bi-rail-wood", "stone")
thxbob.lib.recipe.add_new_ingredient("bi-rail-wood", {type = "item", name = "stone-crushed", amount = 6})
thxbob.lib.recipe.add_new_ingredient("bi-rail-wood", { type = "item", name = "stone-crushed", amount = 6 })
end
-- vanilla rail recipe update
thxbob.lib.recipe.add_new_ingredient("rail", {type = "item", name = "concrete", amount = 6})
thxbob.lib.recipe.add_new_ingredient("rail", { type = "item", name = "concrete", amount = 6 })
end
@ -540,7 +551,6 @@ if BI.Settings.BI_Game_Tweaks_Disassemble then
}) do
thxbob.lib.tech.add_recipe_unlock(tech, recipe)
end
end
--- Enable Productivity in Recipes
@ -598,7 +608,7 @@ for h_key, h_names in pairs(BI.hidden_entities.types) do
for h_name, h in pairs(h_names) do
data.raw[h_type][h_name].resistances = resistances
BioInd.writeDebug("Added resistances to %s (%s): %s",
{h_name, h_type, data.raw[h_type][h_name].resistances})
{ h_name, h_type, data.raw[h_type][h_name].resistances })
end
end
@ -612,7 +622,7 @@ if b and r then
local resistances = data.raw[b.type][b.name].resistances
if resistances then
data.raw[r.type][r.name].resistances = util.table.deepcopy(resistances)
BioInd.writeDebug("Copied resistances from %s to %s!", {b.name, r.name})
BioInd.writeDebug("Copied resistances from %s to %s!", { b.name, r.name })
end
end
------------------------------------------------------------------------------------
@ -625,7 +635,7 @@ if mods["omnimatter_fluid"] then
forbidden_boilers = forbidden_boilers or {}
forbidden_boilers["bi-solar-boiler"] = true
end
BioInd.writeDebug("OMNIFLUID Test! forbidden_boilers = %s", {forbidden_boilers})
BioInd.writeDebug("OMNIFLUID Test! forbidden_boilers = %s", { forbidden_boilers })
------------------------------------------------------------------------------------
@ -647,7 +657,7 @@ if mods["pyrawores"] then
for i = 1, 3 do
for u, unlock in ipairs(unlocks[i]) do
thxbob.lib.tech.add_recipe_unlock("coal-mk0" .. i, unlock.recipe)
BioInd.writeDebug("Added recipe %s to unlocks of %s", {unlock.recipe, "coal-mk0" .. i})
BioInd.writeDebug("Added recipe %s to unlocks of %s", { unlock.recipe, "coal-mk0" .. i })
end
end
end
@ -669,7 +679,7 @@ if mods["pycoalprocessing"] and not set then
for i = 1, 3 do
for u, unlock in ipairs(unlocks[i]) do
thxbob.lib.tech.add_recipe_unlock("coal-processing-" .. i, unlock.recipe)
BioInd.writeDebug("Added recipe %s to unlocks of %s", {unlock.recipe, "coal-processing-" .. i})
BioInd.writeDebug("Added recipe %s to unlocks of %s", { unlock.recipe, "coal-processing-" .. i })
end
end
end
@ -677,7 +687,7 @@ end
if set then
for i = 1, 3 do
data.raw.technology["bi-tech-coal-processing-" .. i] = nil
BioInd.writeDebug("Removed technology " .. "bi-tech-coal-processing-" .. i)
BioInd.writeDebug("Removed technology " .. "bi-tech-coal-processing-" .. i)
end
end

View file

@ -27,76 +27,75 @@ for var, name in pairs({
end
--- Help Files
require ("libs.item-functions") -- From Bob's Libary
require ("libs.recipe-functions") -- From Bob's Libary
require ("libs.technology-functions") -- From Bob's Libary
require ("libs.functions") -- From Bob's Libary
require ("libs.category-functions") -- From Bob's Libary
require ("libs.bi_functions") -- Functions
require("libs.item-functions") -- From Bob's Libary
require("libs.recipe-functions") -- From Bob's Libary
require("libs.technology-functions") -- From Bob's Libary
require("libs.functions") -- From Bob's Libary
require("libs.category-functions") -- From Bob's Libary
require("libs.bi_functions") -- Functions
require ("prototypes.category")
require("prototypes.category")
--- Bio Farm
require ("prototypes.Bio_Farm.entities")
require ("prototypes.Bio_Farm.item")
require ("prototypes.Bio_Farm.recipe")
require ("prototypes.Bio_Farm.liquids")
require ("prototypes.Bio_Farm.recipe-categories")
require ("prototypes.Bio_Farm.pipeConnectors")
require ("prototypes.Bio_Farm.technology")
require ("prototypes.Bio_Farm.tree_entities")
require("prototypes.Bio_Farm.entities")
require("prototypes.Bio_Farm.item")
require("prototypes.Bio_Farm.recipe")
require("prototypes.Bio_Farm.liquids")
require("prototypes.Bio_Farm.recipe-categories")
require("prototypes.Bio_Farm.pipeConnectors")
require("prototypes.Bio_Farm.technology")
require("prototypes.Bio_Farm.tree_entities")
-- Bio Garden
require ("prototypes.Bio_Garden.entities")
require ("prototypes.Bio_Garden.item")
require ("prototypes.Bio_Garden.recipe")
require ("prototypes.Bio_Garden.recipe-categories")
require("prototypes.Bio_Garden.entities")
require("prototypes.Bio_Garden.item")
require("prototypes.Bio_Garden.recipe")
require("prototypes.Bio_Garden.recipe-categories")
--- Bio Solar Farm
require ("prototypes.Bio_Solar_Farm.entities")
require ("prototypes.Bio_Solar_Farm.item")
require ("prototypes.Bio_Solar_Farm.recipe")
require("prototypes.Bio_Solar_Farm.entities")
require("prototypes.Bio_Solar_Farm.item")
require("prototypes.Bio_Solar_Farm.recipe")
--- Wood Products
require ("prototypes.Wood_Products.entities")
require ("prototypes.Wood_Products.item")
require ("prototypes.Wood_Products.recipe")
require ("prototypes.Wood_Products.containers-entities")
require ("prototypes.Wood_Products.containers-item")
require ("prototypes.Wood_Products.containers-recipe")
require("prototypes.Wood_Products.entities")
require("prototypes.Wood_Products.item")
require("prototypes.Wood_Products.recipe")
require("prototypes.Wood_Products.containers-entities")
require("prototypes.Wood_Products.containers-item")
require("prototypes.Wood_Products.containers-recipe")
if not mods["Natural_Evolution_Buildings"] then
--- Dart Turret (Bio turret)
require ("prototypes.Bio_Turret.item-group")
require ("prototypes.Bio_Turret.damage-type")
require ("prototypes.Bio_Turret.item")
require ("prototypes.Bio_Turret.recipe")
require ("prototypes.Bio_Turret.entity")
require("prototypes.Bio_Turret.item-group")
require("prototypes.Bio_Turret.damage-type")
require("prototypes.Bio_Turret.item")
require("prototypes.Bio_Turret.recipe")
require("prototypes.Bio_Turret.entity")
--- Bio Cannon
--- Bio Cannon
-- Items Groups
require ("prototypes.Bio_Cannon.item-group")
require("prototypes.Bio_Cannon.item-group")
-- Cannon
require ("prototypes.Bio_Cannon.item")
require ("prototypes.Bio_Cannon.recipe")
require ("prototypes.Bio_Cannon.entity")
require ("prototypes.Bio_Cannon.technology")
require("prototypes.Bio_Cannon.item")
require("prototypes.Bio_Cannon.recipe")
require("prototypes.Bio_Cannon.entity")
require("prototypes.Bio_Cannon.technology")
-- Projectiles
require ("prototypes.Bio_Cannon.projectiles-item")
require ("prototypes.Bio_Cannon.projectiles-recipe")
require ("prototypes.Bio_Cannon.projectiles-entity")
require("prototypes.Bio_Cannon.projectiles-item")
require("prototypes.Bio_Cannon.projectiles-recipe")
require("prototypes.Bio_Cannon.projectiles-entity")
end
---- Add Bio Fuel & Plastic, etc.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -1,9 +0,0 @@
Icons:
======
cokery.png bi_cokery.png
stone_crusher.png bi_stone_crusher.png
liquid-air.png bi_liquid_air.png
liquid-nitrogen.png bi_liquid_nitrogen.png
bi-recipe-battery bi-battery

View file

@ -8,13 +8,13 @@
"description": "Provides useful buildings and items, like the Bio Farm for growing trees. Solar Farm and Large Accumulator to make your electric setup easier. Bio Fuel section to produce organic plastic and batteries. Lots of New Wood Products, like the big electric pole, wooden pipes, dart turret. Plant trees using seedlings. Change terrain from deserts to grasslands using Fertilizer - helps trees grow better. And a lot more… Please visit the homepage on the forums for more information and feedback.",
"dependencies": [
"base >= 2.0.55",
"? space-age",
"kry_stdlib >= 2.0.6",
"? alien-biomes",
"? Krastorio2",
"(?) angelspetrochem",
"(?) Transport_Drones",
"(?) Natural_Evolution_Buildings",
"(?) Natural_Evolution_Enemies",
"!space-age"
"(?) Natural_Evolution_Enemies"
]
}

Binary file not shown.

View file

@ -1,102 +0,0 @@
[recipe-description]
bi-acid=Man braucht kein Öl, um Schwefelsäure zu gewinnen — es geht auch mit nachwachsenden Ressourcen!
bi-adv-fertiliser-1=__ITEM__bi-adv-fertiliser__ (__ITEM__alien-artifact__)
bi-adv-fertiliser-2=__ITEM__bi-adv-fertiliser__
bi-fertiliser-1=__ITEM__fertiliser__
bi-fertiliser-2=__ITEM__fertiliser__ (mit Natriumhydroxid)
#~ bi-arboretum-r1=Bäume pflanzen
#~ bi-arboretum-r2=Gelände verändern (__ITEM__fertiliser__)
#~ bi-arboretum-r3=Gelände verändern (__ITEM__bi-adv-fertiliser__)y
#~ bi-arboretum-r4=Gelände verändern & Bäume pflanzen (__ITEM__fertiliser__)
#~ bi-arboretum-r5=Gelände verändern & Bäume pflanzen (__ITEM__bi-adv-fertiliser__)
#~ bi-arboretum-r-fertilise+plant=Düngt den Boden und pflanzt Bäume, sobald der Radar einen Sektor vollständig abgetastet hat.
#~ bi-arboretum-r-fertilise=Düngt den Boden, sobald der Radar einen Sektor vollständig abgetastet hat.
bi-arboretum-r1=Pflanzt Bäume, sobald der Radar einen Sektor vollständig abgetastet hat.
bi-arboretum-r2=Düngt den Boden, sobald der Radar einen Sektor vollständig abgetastet hat.
bi-arboretum-r3=Düngt den Boden, sobald der Radar einen Sektor vollständig abgetastet hat.
bi-arboretum-r4=Düngt den Boden und pflanzt Bäume, sobald der Radar einen Sektor vollständig abgetastet hat.
bi-arboretum-r5=Düngt den Boden und pflanzt Bäume, sobald der Radar einen Sektor vollständig abgetastet hat.
bi-ash-1=__ITEM__bi-ash__ aus __ITEM__wood__
bi-ash-2=__ITEM__bi-ash__ aus __ITEM__bi-woodpulp__
bi-basic-gas-processing=Flüssiggas aus __ITEM__coal__ und __ITEM__resin__
#~ bi-basic-pumpjack-disassemble=Demontage: Brennerflüssigkeitspumpe
#~ bi-battery=Bio-Batterie
bi-biomass-1=Nimm __ITEM__fertiliser__, vermische es mit Wasser — und fertig ist die erste Biomasse!
bi-biomass-2=Vermische etwas Biomasse mit Wasser und Flüssigluft, damit sie sich vermehrt!
bi-biomass-3=Durch Zugabe von __ITEM__bi-ash__ lässt sich in kurzer Zeit ein Vielfaches an Biomasse herstellen!
bi-biomass-conversion-1=Stelle __ITEM__bi-cellulose__ und Leichtöl aus Biomasse her!
bi-biomass-conversion-2=Stelle Flüssiggas aus Biomasse her!
bi-biomass-conversion-3=Stelle Schmiermittel aus Biomasse her!
bi-biomass-conversion-4=Stelle Rohöl und Wasser/Schwefelhaltiges Wasser aus Biomasse her!
bi-disassemble-recipes=Ein Teil der Materialien kann wiederverwendet werden.
#~ bi-burner-inserter-disassemble=__ENTITY__burner-inserter__ zerlegen
#~ bi-burner-mining-drill-disassemble=__ENTITY__burner-mining-drill__ zerlegen
bi-cellulose-1=Produktion von __ITEM__bi-cellulose__ (einfach)
bi-cellulose-2=Produktion von __ITEM__bi-cellulose__ (verbessert)
bi-charcoal-1=__ITEM__wood-charcoal__ aus __ITEM__bi-woodpulp__
bi-charcoal-2=__ITEM__wood-charcoal__ aus __ITEM__wood__
bi-coal-1=Produktion von __ITEM__coal__ (einfach)
bi-coal-2=Produktion von __ITEM__coal__ (verbessert)
bi-coke-coal=__ITEM__pellet-coke__ aus __ITEM__coal__
bi-crushed-stone-1=__ITEM__stone-crushed__ aus __ITEM__stone__
bi-crushed-stone-2=__ITEM__stone-crushed__ aus __ITEM__concrete__
bi-crushed-stone-3=__ITEM__stone-crushed__ aus __ITEM__hazard-concrete__
bi-crushed-stone-4=__ITEM__stone-crushed__ aus __ITEM__refined-concrete__
bi-crushed-stone-5=__ITEM__stone-crushed__ aus __ITEM__refined-hazard-concrete__
#~ bi-liquid-air=Flüssigluft
bi-logs-1=Bekommt er ordentlich Wasser, wächst aus einem Setzling ein Baum, der gleich zu __ITEM__wood__ und __ITEM__bi-woodpulp__ verarbeitet wird.
bi-logs-2=__ITEM__bi-ash__ beschleunigt das Wachstum.
bi-logs-3=__ITEM__fertiliser__ ist wohl gesund für Pflanzen jedenfalls wachsen die Bäume damit noch schneller heran.
bi-logs-4=Hier wird __ITEM__bi-adv-fertiliser__ eingesetzt. Muss ich noch mehr sagen?
bi-seed-1=Man braucht nicht viel mehr als __ITEM__wood__ und Wasser, um an __ITEM__bi-seed__ zu kommen.
bi-seed-2=Durch Zugabe von __ITEM__bi-ash__ erzielt man in kürzerer Zeit höhere Erträge.
bi-seed-3=Mit __ITEM__fertiliser__ erhält man noch viel mehr __ITEM__bi-seed__.
bi-seed-4=__ITEM__bi-adv-fertiliser__ für die Superproduktion von __ITEM__bi-seed__!
bi-seedling-1=Mit etwas Wasser wächst aus __ITEM__bi-seed__ ein __ENTITY__seedling__ heran.
bi-seedling-2=__ITEM__bi-ash__ verbessert das Wachstum.
bi-seedling-3=Wer seine Produktion steigern will, kommt nicht an __ITEM__fertiliser__ vorbei!
bi-seedling-4=__ITEM__bi-adv-fertiliser__ macht Supererträge bei der Produktion von __ENTITY__seedling__ möglich!
bi-seed-bomb-advanced=Pflanze Bäume in einem großen Radius mittels einer Samenbombe (__ITEM__bi-adv-fertiliser__)!
bi-seed-bomb-basic=Pflanze Bäume in einem großen Radius mittels einer Samenbombe!
bi-seed-bomb-standard=Pflanze Bäume in einem großen Radius mittels einer Samenbombe (__ITEM__fertiliser__)!
#~ bi-long-handed-inserter-disassemble=__ENTITY__long-handed-inserter__ zerlegen
#~ bi-mineralized-sulfuric-waste=Mineralized water & sulfuric waste from crushed stone, charcoal and pure water
bi-pellet-coke=__ITEM__pellet-coke__ aus __ITEM__solid-fuel__
bi-pellet-coke-2=__ITEM__pellet-coke__ aus Kohlenstoff
bi-plastic-1=Bio-__ITEM__plastic-bar__ aus __ITEM__wood__
bi-plastic-2=Bio-__ITEM__plastic-bar__ aus __ITEM__bi-cellulose__
bi-purified-air-1=__ITEM__bi-purified-air__ (__ITEM__fertiliser__)
bi-purified-air-2=__ITEM__bi-purified-air__ (__ITEM__bi-adv-fertiliser__)
bi-resin-pulp=__ITEM__resin__ aus __ITEM__bi-woodpulp__
bi-resin-wood=__ITEM__resin__ aus __ITEM__wood__
bi-solid-fuel=__ITEM__solid-fuel__ aus __ITEM__wood-bricks__
#~ bi-steel-furnace-disassemble=__ENTITY__steel-furnace__ zerlegen
#~ bi-stone-brick=Bio-__ITEM__stone-brick__
#~ bi-stone-furnace-disassemble=__ENTITY__stone-furnace__ zerlegen
bi-sulfur-angels=Bio-__ITEM__sulfur__
bi-sulfur=Bio-__ITEM__sulfur__
bi-wood-from-pulp=__ITEM__wood__ aus __ITEM__bi-woodpulp__
bi-rail-wood-to-concrete=__ENTITY__bi-rail-wood__ aufwerten
bi-slag-slurry=Slag slurry from ash, crushed stone and saline water
bi-sand=__ITEM__sand__ from __ITEM__stone-crushed__

View file

@ -1,569 +0,0 @@
[mod-setting-name]
BI_Bio_Cannon=Enable: Prototype Artillery
BI_Bio_Fuel=Enable: Bio fuel production
BI_Game_Tweaks_Bot=Game tweaks: Bots
BI_Game_Tweaks_Disassemble=Game tweaks: Disassemble recipes
BI_Game_Tweaks_Emissions_Multiplier=Game tweaks: Fuel emission multipliers
BI_Game_Tweaks_Player=Game tweaks: Player
BI_Game_Tweaks_Recipe=Game tweaks: Recipe
BI_Game_Tweaks_Stack_Size=Game tweaks: Stack size
BI_Game_Tweaks_Tree=Game tweaks: Tree yield
BI_Game_Tweaks_Small_Tree_Collisionbox=Game tweaks: Smaller collision boxes for trees
BI_Game_Tweaks_Production_Science=Game tweaks: Alternative recipe for __ITEM__production-science-pack__
#~ BI_Hide_musk_floor_in_mapview=Hide electric grid overlay for Musk floor in map view
BI_Show_musk_floor_in_mapview=Enable: Electric grid overlay for __ENTITY__bi-solar-mat__ in map view
BI_Solar_Additions=Enable: Bio solar additions
BI_Enable_gvv_support=Compatibility: Add support for GVV
[mod-setting-description]
BI_Bio_Cannon=The Prototype artillery is very powerful, but will only fire at spawners
BI_Bio_Fuel=Enables the production of oil products using bio fuels
BI_Game_Tweaks_Bot=Bots can't be mined or catch fire
BI_Game_Tweaks_Disassemble=Allow some disassemble recipes. You get about 50% of the resources back
BI_Game_Tweaks_Emissions_Multiplier=Bob started this. The general idea is that unprocessed fuels cause more pollution than more refined fules. Thus coal would produce 200% pollution, while solid fuel would produce only 85%. Please see "Fuel Values.xlsx" in mod folder for more info!
#~ BI_Game_Tweaks_Player=Build, drop & reach distance: 6 => 20; Reach for item pickup 1 => 4; Resource reach distance: 2.7 => 4; Loot pickup distance: 2 => 5
BI_Game_Tweaks_Player=Build, drop & reach distance: 6 => 20\nReach distance for item pickup 1 => 4\nResource reach distance: 2.7 => 4\nLoot pickup distance: 2 => 5
#~ BI_Game_Tweaks_Recipe=Recipes Affected: CONCRETE Remove: Iron Ore Add: Iron Stick, STONE-WALL Add: Iron Stick, RAIL Remove: stone Add: crushed-stone and Concrete, STEEL-AXE Remove: Iron-Stick Add: Iron-Axe
BI_Game_Tweaks_Recipe=Affected recipes:\nConcrete (Iron ore => Iron stick)\nStone wall(Iron stick added)\nRail (stone => crushed-stone + concrete)
BI_Game_Tweaks_Stack_Size=Affects stack sizes of wood, stone, crushed-stone, concrete & slag
BI_Game_Tweaks_Tree=Game tweaks - trees randomly provide 1 to 6 wood when chopped down. Vanilla=4
BI_Game_Tweaks_Small_Tree_Collisionbox=EXPERIMENTAL: This setting is enabled per default. If it isn't, trees will have the bigger vanilla collision box, making forests more likely to block players, vehicles, and biters. Not sure if this will have any side effects!
BI_Game_Tweaks_Production_Science=If this is enabled, an alternative recipe for Production science packs will be available.\n(Default: on)
#~ BI_Hide_musk_floor_in_mapview=In map view, the electric grid overlay will be hidden for Musk floor if this setting is enabled. This shouldn't be changed in a running game as applying the setting to every Musk floor tile may take some time!
BI_Show_musk_floor_in_mapview=Show the electric grid overlay for __ENTITY__bi-solar-mat__ in map view. This shouldn't be changed in a running game as applying the setting to every __ENTITY__bi-solar-mat__ tile may take some time!\n(Default: on)
BI_Solar_Additions=Enables solar items like the solar farm, solar power plant, bio accumulator and huge substation
BI_Enable_gvv_support=The "Lua API global Variable Viewer" (gvv) allows you to inspect the global table of other mods. If you want to help debugging "Bio Industries", enable this and type "\gvv" at the chat console to open the GUI of gvv.\n(Default: off)
[technology-name]
bi-tech-advanced-biotechnology=Advanced biotechnology
bi-tech-bio-cannon=Prototype artillery
bi-tech-bio-farming=Bio farm
bi-tech-coal-processing-1=Coal processing 1
bi-tech-coal-processing-2=Coal processing 2
bi-tech-coal-processing-3=Coal processing 3
bi-tech-fertiliser=Fertilizer
bi-tech-organic-plastic=Organic plastic
[technology-description]
bi-tech-advanced-biotechnology=Unlock higher tiered recipes
bi-tech-bio-cannon=Prototype artillery turret technology. - Not yet capable of manual targeting
bi-tech-bio-farming=Learn how to grow trees -- the first step towards unlocking other wood products
bi-tech-coal-processing-1=Burn wood to get charcoal and ash
bi-tech-coal-processing-2=Process charcoal to coal and solid fuel to pellet-coke
bi-tech-coal-processing-3=Process charcoal more efficiently and produce pellet-coke from coal
bi-tech-fertiliser=Using fertilisers you can get much more output from recipes
bi-tech-organic-plastic=Produce plastics using organic materials
[entity-name]
bi-arboretum-area=Terraformer
bi-arboretum-radar=Terraformer radar
bi-arboretum=Terraformer
bi-bio-accumulator=Huge accumulator
bi-bio-boiler=Bio boiler
bi-bio-cannon-area=Prototype artillery
bi-bio-cannon=Prototype artillery
bi-bio-farm-electric-pole=Bio farm cabling
bi-bio-farm-light=Bio farm heat lamps
bi-bio-farm-solar-panel=Bio farm solar
bi-bio-farm=Bio farm
bi-bio-garden-light=Bio garden light
bi-bio-garden=Bio garden
bi-bio-greenhouse=Bio nursery
bi-bio-reactor=Bioreactor
bi-bio-solar-farm=Bio solar farm
bi-burner-pump=Burner fluid pump
bi-cokery=Cokery
#~ These strings are obsolete!
#~ bi-curved-rail-power=Powered rail
#~ bi-curved-rail-wood-bridge=Wooden curved rail used for bridges
#~ bi-curved-rail-wood=Wooden curved rail
bi-dart-magazine-basic=Basic dart ammo
bi-dart-magazine-enhanced=Enhanced dart ammo
bi-dart-magazine-poison=Poison dart ammo
bi-dart-magazine-standard=Standard dart ammo
bi-dart-turret=Dart turret
#~ These strings seem to be obsolete!
#~ bi-ground-steam=Natural steam
#~ bi-ground-sulfuric-acid=Natural sulfuric acid
#~ bi-ground-water=Water
bi-large-substation=Huge substation
bi-musk-mat-pole=Hidden power pole for Musk mat
bi-musk-mat-solar-panel=Musk floor
bi-power-to-rail-pole=Rail to power connector
# Obsolete
#~ bi-solar-boiler-panel=Solar power plant & boiler
bi-solar-boiler=Solar power plant & boiler
bi-solar-mat=Musk floor
bi-stone-crusher=Stone crusher
#~ bi-straight-rail-power=Powered rail
bi-rail-power=Powered rail
#~ bi-straight-rail-wood-bridge=Wooden straight rail used for bridges
bi-rail-wood-bridge=Wooden rail used for bridges
#~ bi-straight-rail-wood=Wooden straight rail
bi-rail-wood=Wooden rail
bi-wood-pipe-to-ground=Wood pipe to ground
bi-wood-pipe=Wood pipe
bi-wooden-chest-giga=Huge wooden chest
bi-wooden-chest-huge=Large wooden chest
bi-wooden-chest-large=Medium wooden chest
bi-wooden-fence=Wooden fence
bi-wooden-pole-big=Big wooden pole
bi-wooden-pole-huge=Huge wooden pole
seedling-2=Sapling
seedling-3=Sapling
seedling=Sapling
wooden-chest=Small wooden chest
rail-remnants-wood=Remnants of wooden rails
rail-remnants-wood-bridge=Remnants of a wooden bridge
[entity-description]
bi-arboretum-area=Terraformer to change the terrain or plant trees around the building
bi-arboretum-radar=Terraformer radar
bi-arboretum=Terraformer to change the terrain or plant trees around the building
bi-bio-accumulator=Can store very large amounts of energy, because size matters...
bi-bio-boiler=These boilers are as efficient as normal ones, but produce 75% less pollution!
#~ bi-bio-cannon-area=Can ONLY fire at spawners and worms! - Range 90 - Not yet capable of manual targeting
bi-bio-cannon=Can ONLY fire at spawners and worms! (Range: 90)\nThis prototype isn't capable of manual targeting.
#~ bi-bio-farm-electric-pole=Bio farm cabling (Hidden)
#~ bi-bio-farm-light=Bio farm heat lamps, so trees can grow at night (Hidden)
#~ bi-bio-farm-solar-panel=Bio farm solar (Hidden)
#~ bi-bio-farm=Bio farm, turn saplings into raw wood. Consumes more electricity at night
bi-bio-farm=Bio farms are where saplings grow into trees that are processed to raw wood and wood pulp. An integrated solar panel provides some of the energy during the day.
bi-bio-garden-light=The garden also acts as a lamp at night. (Hidden)
bi-bio-garden=The bio garden scrubs air, removing pollution. (One bio garden can absorb 45 pollution units per second -- as much as 1500 trees!)
bi-bio-greenhouse=Use a nursery to grow saplings
bi-bio-reactor=Bio-reactors are used to produce and process biomass.
bi-bio-solar-farm=Bio solar farm save space by condensing your solar panels into a compact unit. They create a lot of power!\Using Bio solar farms instead of the original solar panels will also improve performance because less entities require less updates per second (UPS).
bi-burner-pump=Burner fluid pump
bi-cokery=Wood and wood pulp are processed to charcoal and other fuels in the cokery.
#~ These strings are obsolete!
#~ bi-curved-rail-power=Rail that also conducts electricity. Connect to power grid using "power to rail" connector
#~ bi-curved-rail-wood-bridge=Wooden curved rail used for bridges.\nNote: You can't walk on this!
#~ bi-curved-rail-wood=Wooden curved rail
bi-dart-magazine-basic=Basic wooden projectiles
bi-dart-magazine-enhanced=Enhanced wooden projectiles
bi-dart-magazine-poison=Poisoned wooden projectiles
bi-dart-magazine-standard=Standard wooden projectiles
#~ These strings seem to be obsolete!
#~ bi-ground-steam=Natural steam
#~ bi-ground-sulfuric-acid=Natural sulfuric acid
#~ bi-ground-water=Water
bi-large-substation=Huge substation
bi-musk-mat-pole=Hidden power pole for Musk mat
bi-musk-mat-solar-panel=Power from Musk floor
bi-power-to-rail-pole=Connect your power rail to the power grid!\nATTENTION: When you place a connector in reach of two powered rails that are running parallel or crossing each other, you will connect these networks!
#~ Remove?
bi-solar-boiler-panel=A boiler that uses solar energy or electricity (also produces electricity).
#~ Changed
#~ bi-solar-boiler=A boiler that uses solar energy or electricity (also produces electricity).
bi-solar-boiler=This boiler uses solar energy or electricity to produce electricity.
#~ bi-solar-mat=A solar panel/floor that can be used as a pavement, generates 10kW electricity and fast movement. (Thanks Elon Musk!)
bi-solar-mat=This special pavement contains solar panels. Each tile will generate 10kW of electricity and grant you fast movement speed. (Thanks, Elon Musk!)
#~ bi-stone-crusher=Machine to break stone into crushed stone
bi-stone-crusher=These machines crush stone and concrete. If necessary, you can also use them to make sand from crushed stone.
#~ bi-straight-rail-wood-bridge=Wooden straight rail used for bridges.\nNote: You can't walk on this!
bi-rail-wood-bridge=Wooden straight rail used for bridges.\nNote: You can't walk on this!
#~ bi-straight-rail-wood=Wooden straight rail
bi-rail-wood=Wooden straight rail
#~ bi-straight-rail-power=Rail that also conducts electricity. Connect to power grid using "power to rail" connector
bi-rail-power=Rail that also conducts electricity. Connect to power grid using "power to rail" connector
bi-wood-pipe-to-ground=Wood pipe to ground
bi-wood-pipe=Wooden pipe
bi-wooden-chest-giga=A HUGE wooden chest
bi-wooden-chest-huge=A very large wooden chest
bi-wooden-chest-large=A medium wooden chest
#~ bi-wooden-fence=A defensive wall made from wood
bi-wooden-fence=Though not very strong, wooden fences help you right from the start to keep enemies out of your factory.
bi-wooden-pole-big=Big wooden power pole. Will auto heal if you play with NE enemies
bi-wooden-pole-huge=A huge wooden pole for spanning vast distances (64 tiles) with copper cable or circuit network wires
seedling-2=A young tree, perfect for planting. You can also plant this in the ground and it will grow into a tree. Remember to first fertilize the ground to improve the chances of it growing
seedling-3=A young tree, perfect for planting. You can also plant this in the ground and it will grow into a tree. Remember to first fertilize the ground to improve the chances of it growing
seedling=A young tree, perfect for planting. You can also plant this in the ground and it will grow into a tree. Remember to first fertilize the ground to improve the chances of it growing
rail-remnants-wood=Remnants of wooden rails
rail-remnants-wood-bridge=Remnants of a wooden bridge
[item-name]
bi-adv-fertiliser=Advanced fertiliser
bi-arboretum-area=Terraformer
bi-arboretum-r1=Plant trees
bi-arboretum-r2=Change terrain (basic)
bi-arboretum-r3=Change terrain (advanced)
bi-arboretum-r4=Change terrain & plant trees (basic)
bi-arboretum-r5=Change terrain & plant trees (advanced)
bi-arboretum=Terraformer
bi-ash=Ash
bi-bio-accumulator=Huge accumulator
bi-bio-boiler=Bio boiler
bi-bio-cannon-area=Prototype artillery
bi-bio-cannon-basic-ammo=Prototype artillery - rocket ammo
bi-bio-cannon-biological-ammo=Prototype artillery - biological ammo
bi-bio-cannon-poison-ammo=Prototype artillery - poison ammo
bi-bio-cannon-proto-ammo=Prototype artillery - basic ammo
bi-bio-cannon=Prototype artillery
bi-bio-farm=Bio farm
bi-bio-reactor=Bioreactor
bi-bio-solar-farm=Bio solar farm
bi-burner-pump=Burner fluid pump
bi-cellulose=Cellulose
bi-cokery=Cokery
bi-dart-magazine-basic=Basic dart ammo
bi-dart-magazine-enhanced=Enhanced dart ammo
bi-dart-magazine-poison=Poison dart ammo
bi-dart-magazine-standard=Standard dart ammo
bi-dart-rifle=Dart rifle
bi-dart-turret=Dart turret
bi-ground-water=Water
bi-large-substation=Huge substation
#~ Obsolete
#~ bi-medicine=Medicine
#~ Do we need localizations for hidden entities?
#~ bi-musk-mat-pole=Hidden power pole for Musk mat
#~ bi-musk-mat-solar-panel=Musk floor
#~ Obsolete?
#~ bi-nutrients=Nutrients
bi-power-to-rail-pole=Rail to power connector
bi-purified-air=Purified air
bi-rail-power=Power rail
bi-rail-wood-bridge=Wooden rail bridge
bi-rail-wood=Wooden rail
bi-seed-bomb-advanced=Advanced seed bomb
bi-seed-bomb-basic=Basic seed bomb
bi-seed-bomb-standard=Standard seed bomb
bi-seed=Seed
bi-solar-boiler=Solar power plant & boiler
bi-solar-boiler-panel=Solar power plant & boiler
bi-solar-mat=Musk floor
bi-stone-crusher=Stone crusher
bi-wood-pipe-to-ground=Wooden pipe to ground
bi-wood-pipe=Wooden pipe
bi-wooden-chest-giga=Huge wooden chest
bi-wooden-chest-huge=Large wooden chest
bi-wooden-chest-large=Medium wooden chest
bi-wooden-fence=Wooden fence
bi-wooden-pole-big=Big wooden power pole. Will auto heal if you play with NE enemies
bi-wooden-pole-huge=Huge wooden pole
bi-woodpulp=Wood pulp
fertiliser=Fertilizer
pellet-coke=Pellet coke
resin=Resin
seedling=Sapling
stone-crushed=Crushed stone
#~ Obsolete? This is only used in a compatibility recipe for bi-slag-slurry if angelsrefining is active!
water-saline=Saline water
wood-bricks=Wood bricks
wood-charcoal=Charcoal
[item-description]
bi-adv-fertiliser=Improved fertilizer for growing stuff even faster or changing terrain quality
bi-arboretum-area=Terraformer to change the terrain or plant trees around the building
bi-arboretum-r1=Plant trees around the building
bi-arboretum-r2=Change terrain around the building (basic)
bi-arboretum-r3=Change terrain around the building (advanced)\nNote: Use advanced instead of basic fertiliser to make the ground more fertile.
bi-arboretum-r4=Change terrain & plant trees around the building (basic)
bi-arboretum-r5=Change terrain around the building (advanced)\nNote: Use advanced instead of basic fertiliser to make the ground more fertile, so that trees will grow faster.
bi-arboretum=Terraformer to change the terrain or plant trees around the building
bi-ash=Even ash can be used!
bi-bio-accumulator=Can store very large amounts of energy, because size matters...
#~ bi-bio-boiler=High efficiency boiler
bi-bio-boiler=These boilers are as efficient as normal ones, but produce 75% less pollution!
bi-bio-cannon-area=This early prototype of artillery can ONLY fire at spawners (maximum range: 90) and is not yet capable of manual targeting.
bi-bio-cannon-basic-ammo=Rocket powered, low physical damage
bi-bio-cannon-biological-ammo=Rocket powered, high biological damage
bi-bio-cannon-poison-ammo=Rocket powered, medium poison damage
bi-bio-cannon-proto-ammo=Low damage, most of the TNT is used for propulsion
bi-bio-cannon=This early prototype of artillery can ONLY fire at spawners (maximum range: 90) and is not yet capable of manual targeting.
bi-bio-farm=A greenhouse with powerful artificial lighting for growing saplings into trees (Wood)
bi-bio-solar-farm=Save space, by condensing your solar panels into a compact unit. Create a lot of power!
#~ Obsolete?
bi-burner-pump=Burner fluid pump
bi-dart-magazine-basic=Basic wooden projectiles
bi-dart-magazine-enhanced=Enhanced wooden projectiles
bi-dart-magazine-poison=Poisoned wooden projectiles
bi-dart-magazine-standard=Standard wooden projectiles
#~ bi-ground-water=Water
bi-large-substation=Huge substation
bi-musk-mat-pole=Hidden power pole for Musk mat
bi-musk-mat-solar-panel=Power from Musk floor
bi-power-to-rail-pole=Connect your power rail to the power grid
bi-purified-air=Clean air, pollution removed!
bi-rail-power=Rail that also conducts electricity (connect rails to the power grid with the "rail to power connector")
bi-rail-wood-bridge=Wooden rail bridge that can cross water.\nNote: You can't walk on this!
bi-rail-wood=Cheap rails made with wood
bi-seed-bomb-advanced=Plant trees in a large area, with advanced fertiliser via a seed bomb!
bi-seed-bomb-basic=Plant trees in a large area via a seed bomb!
bi-seed-bomb-standard=Plant trees in a large area, with fertiliser via a seed bomb!
bi-seed=Seed to grow a sapling from
bi-solar-boiler=A boiler that uses solar energy or electricity (also produces electricity).
bi-solar-boiler-panel=A boiler that uses solar energy or electricity (also produces electricity).
bi-solar-mat=A solar panel/floor that can be used as a pavement, generates 10kW electricity and fast movement. (Thanks Elon Musk!)
bi-stone-crusher=Machine to break stone into crushed stone
bi-wood-pipe-to-ground=A wood pipe to ground
bi-wood-pipe=A pipe made from wood
bi-wooden-chest-giga=A HUGE wooden chest
bi-wooden-chest-huge=A very large wooden chest
bi-wooden-chest-large=A medium wooden chest
bi-wooden-fence=A defensive wall made from wood
bi-wooden-pole-big=Big wooden power pole
bi-wooden-pole-huge=A huge wooden pole for spanning vast distances (64 tiles) with copper cable or circuit network wires
bi-woodpulp=Burn it to ash or charcoal, or convert it to wood bricks!
fertiliser=Fertilizer for growing stuff faster or changing terrain quality
pellet-coke=Pellet coke is a great train fuel
resin=Resin
seedling=A young tree, perfect for planting. You can also plant this in the ground and it will grow into a tree. Remember to first fertilize the ground to improve the chances of it growing!
stone-crushed=Crushed stone
#~ Obsolete? This is only used in a compatibility recipe for bi-slag-slurry if angelsrefining is active!
water-saline=Saline water
wood-bricks=Great processed fuel source with low emissions
[fluid-name]
bi-biomass=Algae biomass
#~ bi-ground-water=Water
liquid-air=Liquid air
nitrogen=Nitrogen
#~ Obsolete? This is only used in a compatibility recipe for bi-slag-slurry if angelsrefining is active!
water-saline=Saline water
[recipe-name]
bi-acid=Bio-acid
bi-adv-fertiliser-1=Advanced fertiliser
bi-adv-fertiliser-2=Advanced fertiliser
bi-arboretum-r1=Plant trees
bi-arboretum-r2=Change terrain (basic)
bi-arboretum-r3=Change terrain (advanced)
bi-arboretum-r4=Change terrain & plant trees (basic)
bi-arboretum-r5=Change terrain & plant trees (advanced)
bi-arboretum=Terraformer
bi-ash-1=Ash from wood
bi-ash-2=Ash from wood pulp
# Added bi-basic-petroleum-gas-processing (0.17.49/0.18.17)
# Renamed bi-basic-petroleum-gas-processing to bi-basic-gas-processing (0.17.51/0.18.20)
bi-basic-gas-processing=Basic gas processing
bi-battery=Bio battery
bi-bio-accumulator=Huge accumulator
bi-bio-boiler=Bio boiler
bi-bio-cannon-area=Prototype artillery
bi-bio-cannon-basic-ammo=Prototype artillery (rocket ammo)
bi-bio-cannon-biological-ammo=Prototype artillery (biological ammo)
bi-bio-cannon-poison-ammo=Prototype artillery (poison ammo)
bi-bio-cannon-proto-ammo=Prototype artillery (basic ammo)
bi-bio-cannon=Prototype artillery
bi-bio-farm=Bio farm
bi-bio-garden=Bio garden
bi-bio-greenhouse=Bio nursery
bi-bio-reactor=Bioreactor
bi-bio-solar-farm=Bio solar farm
bi-biomass-1=Algae biomass production with fertiliser
bi-biomass-2=Algae biomass production with algae biomass (basic)
bi-biomass-3=Algae biomass production with algae biomass (advanced)
bi-biomass-conversion-1=Bio fuel conversion 1: Cellulose, light oil
bi-biomass-conversion-2=Bio fuel conversion 2: Petroleum gas
bi-biomass-conversion-3=Bio fuel conversion 3: Lubricant
bi-biomass-conversion-4=Bio fuel conversion 4: Crude oil, water/sulfuric waste water
bi-burner-inserter-disassemble=Disassemble burner inserter
bi-burner-mining-drill-disassemble=Disassemble burner miner
bi-cellulose-1=Basic cellulose production
bi-cellulose-2=Advanced cellulose production
bi-charcoal-1=Charcoal from wood pulp
bi-charcoal-2=Charcoal from wood
bi-coal-1=Basic coal production
bi-coal-2=Advanced coal production
bi-coke-coal=Pellet coke
bi-cokery=Cokery
bi-crushed-stone-1=Crushed stone from stone
bi-crushed-stone-2=Crushed stone from concrete
bi-crushed-stone-3=Crushed stone from hazard concrete
bi-crushed-stone-4=Crushed stone from refined concrete
bi-crushed-stone-5=Crushed stone from refined hazard concrete
bi-dart-magazine-basic=Basic dart ammo
bi-dart-magazine-enhanced=Enhanced dart ammo
bi-dart-magazine-poison=Poison dart ammo
bi-dart-magazine-standard=Standard dart ammo
bi-dart-rifle=Dart rifle
bi-dart-turret=Dart turret
bi-fertiliser-1=Fertilizer
bi-fertiliser-2=Fertilizer
bi-large-substation=Huge substation
bi-liquid-air=Liquid air
bi-logs-1=Basic wood production
bi-logs-2=Improved wood production with ash
bi-logs-3=Advanced wood production with fertiliser
bi-logs-4=Super wood production with advanced fertiliser
bi-long-handed-inserter-disassemble=Disassemble long handed inserter
bi-mineralized-sulfuric-waste=Mineralized water & sulfuric waste
bi-nitrogen=Nitrogen
bi-pellet-coke=Pellet coke from solid fuel
bi-pellete-coal-2=Pellet-coal from carbon
bi-plastic-1=Bio plastic from wood
bi-plastic-2=Bio plastic from cellulose
bi-power-to-rail-pole=Rail to power connector
bi-press-wood=Press wood
bi-production-science-pack=Production science pack
bi-purified-air-1=Clean air (basic)
bi-purified-air-2=Clean air (advanced)
bi-rail-power=Power rail
bi-rail-wood-bridge=Wooden rail bridge
bi-rail-wood-to-concrete=Upgrade wooden rail
bi-rail-wood=Wooden rail
bi-resin-pulp=Resin from wood pulp
bi-resin-wood=Resin from wood
bi-sand=Sand from crushed stone
bi-seed-1=Basic tree seed production
bi-seed-2=Improved tree seed production with ash
bi-seed-3=Advanced tree seed production with fertiliser
bi-seed-4=Super tree seed production with advanced fertiliser
bi-seed-bomb-advanced=Advanced seed bomb
bi-seed-bomb-basic=Basic seed bomb
bi-seed-bomb-standard=Standard seed bomb
#~ bi-seedling=Sapling
bi-seedling-1=Basic sapling production
bi-seedling-2=Improved sapling production with ash
bi-seedling-3=Advanced sapling production with fertiliser
bi-seedling-4=Super sapling production with advanced fertiliser
bi-slag-slurry=Slag slurry
#~ bi-solar-boiler=Solar power plant & boiler (boiler)
bi-solar-boiler-panel=Solar power plant & boiler
bi-solar-boiler=Solar power plant & boiler
bi-solar-mat=Musk floor
bi-solid-fuel=Solid fuel from wood bricks
bi-steel-furnace-disassemble=Disassemble steel furnace
bi-stone-brick=Bio stone brick
bi-stone-crusher=Stone crusher
bi-stone-furnace-disassemble=Disassemble stone furnace
bi-sulfur-angels=Bio-sulfur
bi-sulfur=Bio-sulfur
bi-wood-from-pulp=Wood from wood pulp
bi-wood-fuel-brick=Wood bricks
bi-wood-pipe-to-ground=Wooden pipe to ground
bi-wood-pipe=Wood pipe
bi-wooden-chest-giga=Huge wooden chest
bi-wooden-chest-huge=Large wooden chest
bi-wooden-chest-large=Medium wooden chest
bi-wooden-fence=Wooden fence
bi-wooden-pole-big=Big wooden pole
bi-wooden-pole-huge=Huge wooden pole
bi-woodpulp=Wood pulp from wood
wooden-chest=Small wooden chest
[recipe-description]
bi-acid=Use algae biomass and cellulose to produce sulfuric acid!
bi-adv-fertiliser-1=Better than normal fertiliser
bi-adv-fertiliser-2=Better than normal fertiliser
bi-arboretum-r1=Note: The recipe will never complete, trees are planted on sector scan.
bi-arboretum-r2=Note: The recipe will never complete, trees are planted on sector scan.
bi-arboretum-r3=Note: The recipe will never complete, trees are planted on sector scan.
bi-arboretum-r4=Note: The recipe will never complete, trees are planted on sector scan.
bi-arboretum-r5=Note: The recipe will never complete, trees are planted on sector scan.
bi-arboretum=Plant trees or change the terrain around the building
bi-ash-1=Burn wood, get ash!
bi-ash-2=Burn lots of wood pulp, get lots of ash!
# Added bi-basic-petroleum-gas-processing (0.17.49/0.18.17)
# Renamed bi-basic-petroleum-gas-processing to bi-basic-gas-processing (0.17.51/0.18.20)
bi-basic-gas-processing=Inefficient gas extraction
bi-basic-pumpjack-disassemble=Dissasemble burner fluid pump at a small loss of materials
bi-bio-cannon-area=This early prototype of artillery can ONLY fire at spawners (maximum range: 90) and is not yet capable of manual targeting.
bi-bio-cannon-basic-ammo=Rocket powered, low physical damage
bi-bio-cannon-biological-ammo=Rocket powered, high biological damage
bi-bio-cannon-poison-ammo=Rocket powered, medium poison damage
bi-bio-cannon-proto-ammo=Low damage, most of the TNT is used for propulsion
bi-bio-cannon=This early prototype of artillery can ONLY fire at spawners (maximum range: 90) and is not yet capable of manual targeting.
bi-bio-farm=Bio farm to produce wood and wood pulp
bi-bio-greenhouse=Bio nursery to produce seeds and saplings
bi-biomass-1=Start up your algae biomass production by using fertiliser!
bi-biomass-2=Feed back some of the produced algae biomass to produce more of it!\nNote: This will yield less (and take longer) than using the start-up recipe, but you will save on fertiliser.
bi-biomass-3=Feed back some of the produced algae biomass and add ash to produce lots of it!\nNote: This will yield considerably more than the other recipes in a fraction of the time.
bi-biomass-conversion-1=Use algae biomass to produce light oil and cellulose!
bi-biomass-conversion-2=Use algae biomass to produce petroleum gas!
bi-biomass-conversion-3=Use algae biomass to produce lubricant!
bi-biomass-conversion-4=Use algae biomass to produce crude oil and water!
bi-burner-inserter-disassemble=Disassemble burner inserter at a small loss of materials
bi-burner-mining-drill-disassemble=Disassemble burner miner at a small loss of materials
bi-charcoal-1=Burn wood pulp to make charcoal
bi-charcoal-2=Burn wood to make charcoal
bi-coal-1=Process charcoal to make coal
bi-coal-2=Advanced processing of charcoal will let you make more coal!
bi-coke-coal=Turn coal into pellet-coke
bi-crushed-stone-1=Get crushed stone from crushing stone in the stone crusher :-)
bi-crushed-stone-2=Having mastered advanced material processing, you now can also get crushed stone from concrete!
bi-crushed-stone-3=Having mastered advanced material processing, you now can also get crushed stone from hazard concrete!
bi-crushed-stone-4=You will get twice as much crushed stone from processing refined instead of normal concrete, but it takes twice as long!
bi-crushed-stone-5=You will get twice as much crushed stone from processing refined instead of normal hazard concrete, but it takes twice as long!
bi-dart-magazine-basic=Basic wooden projectiles
bi-dart-magazine-enhanced=Enhanced wooden projectiles
bi-dart-magazine-poison=Poisoned wooden projectiles
bi-dart-magazine-standard=Standard wooden projectiles
bi-fertiliser-1=Lets stuff grow faster
bi-fertiliser-2=Lets stuff grow faster (sodium-hydroxide)
bi-logs-1=Grow wood the old-fashioned way by watering saplings!
bi-logs-2=Improve your wood production by using ash as a cheap fertiliser!
bi-logs-3=Grow even more wood by using fertiliser instead of ash!
bi-logs-4=Using advanced fertiliser will yield you insane amounts of wood and wood pulp!
bi-long-handed-inserter-disassemble=Disassemble long handed inserter at a small loss of materials
bi-mineralized-sulfuric-waste=Mineralized water & sulfuric waste from crushed stone, charcoal and pure water
bi-pellet-coke=Turn solid fuel into pellet-coke
bi-power-to-rail-pole=Connect your power rail to the power grid
bi-production-science-pack=Use more, but cheaper wooden rails to make production science packs!
bi-rail-power=Rail that also conducts electricity (connect to power grid using "power to rail" connector)
bi-rail-wood-bridge=Rail that can bridge water\nNote: You can't walk on this!
bi-rail-wood-to-concrete=Upgrade wooden rails to default rails
bi-rail-wood=Cheap rails made with wood
bi-resin-pulp=Process wood pulp to get resin
bi-resin-wood=Process wood to get resin
bi-sand=Sand from crushed stone
#~ bi-seedling=A young tree, perfect for planting. (You can also plant this in the ground and it will grow into a tree. Remember to first fertilize the ground to improve the chances of it growing!)
bi-seed-1=Use wood and water to produce tree seeds!
bi-seed-2=Improve your tree seed production by using ash as a cheap fertiliser!
bi-seed-3=Improve your tree seed production even more by using fertiliser instead of ash!
bi-seed-4=Increase your tree seed production dramatically with advanced fertiliser!
bi-seed-bomb-advanced=Plant trees in a large area, with advanced fertiliser via a seed bomb!
bi-seed-bomb-basic=Plant trees in a large area via a seed bomb!
bi-seed-bomb-standard=Plant trees in a large area, with fertiliser via a seed bomb!
bi-seedling-1=Use tree seeds and water to grow saplings!
bi-seedling-2=Grow more saplings by using ash as a cheap fertiliser!
bi-seedling-3=Grow even more saplings by using fertiliser instead of ash!
bi-seedling-4=Use advanced fertiliser to grow still more saplings in less time!
bi-slag-slurry=Slag slurry from ash, crushed stone and saline water
bi-solar-boiler=A boiler that uses solar energy or electricity (also produces electricity).
bi-solar-boiler-panel=A boiler that uses solar energy or electricity (also produces electricity).
bi-solid-fuel=Turning wood bricks into solid fuel is a great way to get rid of excess wood pulp!
bi-steel-furnace-disassemble=Disassemble steel furnace at a small loss of materials
bi-stone-brick=Stone brick from crushed stone and ash
bi-stone-crusher=Machine to break stone into crushed stone
bi-stone-furnace-disassemble=Disassemble stone furnace at a small loss of materials
bi-sulfur=Bio-sulfur
bi-wood-from-pulp=Regain wood by compressing wood pulp and resin
bi-wood-fuel-brick=Compress wood pulp for easier handling!
bi-wooden-pole-huge=A huge wooden pole for spanning vast distances (64 tiles) with copper cable or circuit network wires
bi-woodpulp=Process wood to wood pulp
[tile-name]
bi-solar-mat=Solar mat
bi-wood-floor=Wood floor
[item-group-name]
bio-industries=Bio-Industries
[ammo-category-name]
Bio_Cannon_Ammo=Bio cannon ammo
Bio_Turret_Ammo=Bio turret ammo
[damage-type-name]
Biological=Biological
bob-pierce=Pierce
[bi-misc]
growing-tree=Growing tree
growing-tree-desc=Given some time, a big tree will grow from this sapling.
young-tree=Young tree
young-tree-desc=This tree is still young and won't yield much wood yet. Better wait until it's fully grown before you chop it down!
[modifier-description]
Bio_Cannon_Ammo-damage-bonus=Prototype artillery damage: +__1__
Bio_Cannon_Ammo-shooting-speed-bonus=Prototype artillery shooting speed: +__1__
Bio_Turret_Ammo-damage-bonus=Dart turret ammo damage bonus: +__1__
Bio_Turret_Ammo-shooting-speed-bonus=Dart turret ammo shooting speed bonus: +__1__
bi-dart-turret-attack-bonus=Dart turret damage bonus: +__1__
bi-dart-turret-damage-bonus=Dart turret damage bonus: +__1__

View file

@ -1,107 +0,0 @@
[ammo-category-name]
Bio_Cannon_Ammo=Bio cannon ammo
Bio_Turret_Ammo=Bio turret ammo
[bi-misc]
growing-tree=Растущее дерево
growing-tree-desc=Если подождать, из этого саженца вырастет большое дерево
young-tree=Молодое дерево
young-tree-desc=Это дерево ещё молодое, из него выйдет не так много древесины. Лучше подождать, пока оно полностью вырастет, прежде, чем рубить его!
[entity-description]
# Changed for 0.17.60/0.18.29!
#~ bi-bio-boiler=These boilers are as efficient as normal ones, but produce 75% less pollution!
bi-solar-boiler=Бойлер с нагревом от солнечного тепла или электричества (также производит электричество).
[item-description]
bi-adv-fertiliser=Улучшенное Удобрение для ещё более быстрого выращивания, либо изменения качества поверхности
bi-arboretum=Терраформер, позволяющий изменять поверхность и сажать вокруг себя деревья
bi-arboretum-area=Терраформер, позволяющий изменять поверхность и сажать вокруг себя деревья
bi-ash=Даже пепел пойдёт в дело!
bi-stone-crusher=Завод для перемалывания камня в Измельчённый камень
[item-name]
bi-bio-reactor=Биореактор
bi-solar-boiler=Солнечная электростанция и бойлер
[mod-setting-description]
BI_Game_Tweaks_Small_Tree_Collisionbox=ЭКСПЕРИМЕНТАЛЬНО: настройка включена по умолчани. Если отключить, вокруг деревья получат большую область столкновений из немодифицированной игры. Такие деревья будут создавать больше препятствий для игроков, транспорта и кусак. Могут возникнуть побочные эффекты!
# This setting has been inverted for 1.0! While activating this setting would HIDE the overlay before, it will SHOW the overlay now. I'll leave the old translation in for reference (commented out). This line can be removed once the new string has been translated!
#~ BI_Hide_musk_floor_in_mapview=В режиме карты пол Илона Маска не будет отображаться в слое Электрических сетей, если эта настройка включена. Не рекомендуется изменять при загруженной игре, поскольку применение настройки к каждой клетке пола Илона Маска может занять длительное время!
BI_Show_musk_floor_in_mapview=Show the electric grid overlay for __ENTITY__bi-solar-mat__ in map view. This shouldn't be changed in a running game as applying the setting to every __ENTITY__bi-solar-mat__ tile may take some time!
[mod-setting-name]
BI_Game_Tweaks_Small_Tree_Collisionbox=Твики игры: Маленькая область столкновений у деревьев
# This setting has been inverted for 1.0! While activating this setting would HIDE the overlay before, it will SHOW the overlay now. I'll leave the old translation in for reference (commented out). This line can be removed once the new string has been translated!
#~ BI_Hide_musk_floor_in_mapview=Скрыть пол Илона Маска в слое Электросетей
BI_Show_musk_floor_in_mapview=Enable: Electric grid overlay for __ENTITY__bi-solar-mat__ in map view
[recipe-description]
bi-acid=Используйте Биомассу из водорослей и Целлюлозу, чтобы производить Серную кислоту!
bi-adv-fertiliser-1=Лучше, чем обычное Удобрение
bi-adv-fertiliser-2=Лучше, чем обычное Удобрение
bi-ash-1=Сжигайте Древесину, получайте Пепел!
bi-ash-2=Сжигайте много Древесных опилков, получайте много Пепла!
# Added bi-basic-petroleum-gas-processing (0.17.49/0.18.17)
# Renamed bi-basic-petroleum-gas-processing to bi-basic-gas-processing (0.17.51/0.18.20)
bi-basic-gas-processing=Inefficient gas extraction
bi-bio-cannon=Этот ранний прототип артиллерии умеет стрелять ТОЛЬКО по гнёздам (максимальный радиус: 90) и пока не может быть наведён вручную.
bi-bio-cannon-area=Этот ранний прототип артиллерии умеет стрелять ТОЛЬКО по гнёздам (максимальный радиус: 90) и пока не может быть наведён вручную.
bi-bio-cannon-basic-ammo=Ракетный, небольшой физический урон
bi-bio-cannon-biological-ammo=Ракетный, высокий высокий биологический урон
bi-bio-cannon-poison-ammo=Ракетный, средний урон ядом
bi-bio-cannon-proto-ammo=Низкий урон, большая часть взрывчатки используется для придания движения
bi-bio-farm=Биоферма для производства Древесины и Древесных опилок
bi-biomass-1=Начните производство Биомассы из водорослей, применив Удобрение!
bi-biomass-2=Верните в производственный цикл часть произведённой Биомассы из водорослей, чтобы получить ещё больше её!\nПримечание: выход продукта будет меньше и дольше, чем даже в базовом рецепте, но вы сэкономите на удобрениях.
bi-biomass-3=Верните в производственный цикл часть произведённой Биомассы из водорослей и добавьте Пепел, чтобы получить ещё больше её!\nПримечание: выход продукта будет существенно больше и быстрее, чем по другим рецептам.
bi-charcoal-1=Сжигайте Древесные опилки чтобы получать Древесный уголь
bi-charcoal-2=Сжигайте Древесину чтобы получать Древесный уголь
bi-coal-1=Переработайте Древесный уголь на Уголь
bi-coal-2=Продвинутая обработка Древесного угля позволяет получать больше Угля!
bi-coke-coal=Переработайте Уголь в Коксовый уголь
bi-crushed-stone-1=Получайте Измельченный камень путём измельчения камня в Измельчителе камня :-)
bi-crushed-stone-2=Постигнув продвинутую переработку материалов, вы можете получать Измельчённый камень из Бетона!
bi-crushed-stone-3=Постигнув продвинутую переработку материалов, вы можете получать Измельчённый камень из Бетона "Опасность"!
bi-crushed-stone-4=Вы получите в два раза больше Измельчённого камня из Железобетона, чем из Бетона, но и займёт это в два раза дольше!
bi-crushed-stone-5=Вы получите в два раза больше Измельчённого камня из Железобетона "Опасность", чем из Бетона "Опасность", но и займёт это в два раза дольше!
bi-dart-magazine-basic=Базовый дротиковый снаряд
bi-dart-magazine-enhanced=Магазин с продвинутыми дротиками
bi-dart-magazine-poison=Магазин с ядовитыми дротиками
bi-dart-magazine-standard=Магазин с дротиками
bi-logs-1=Выращивайте лес по-старинке, поливая Саженцы!
bi-logs-2=Улучшите производство древесины, используя Пепел как дешёвое удобрение!
bi-logs-3=Выращивайте ещё больше леса, используя полноценное Удобрение вместо Пепла!
bi-logs-4=Применение Продвинутого удобрения даст вам бешеное количество Древесины и Древесных опилок!
bi-pellet-coke=Переработайте Твёрдое топливо в Коксовый уголь
bi-production-science-pack=Используйте большое количество Деревянных рельсов для производства Производственных исследовательских пакетов!
bi-rail-power=Рельс, который может проводить электричество. Подключите к электрической сети используя коннектор "Электро-рельсы"
bi-rail-wood=Дешёвые рельсы, сделанные с применением дерева
bi-rail-wood-to-concrete=Улучшить Деревянные рельсы до обычных Рельсов
bi-resin-pulp=Переработайте Древесные опилки на Смолу
bi-resin-wood=Переработайте Древесину на Смолу
bi-solar-boiler=Бойлер с нагревом от солнечного тепла или электричества (также производит электричество).
bi-solar-boiler-panel=Бойлер с нагревом от солнечного тепла или электричества (также производит электричество).
bi-solid-fuel=Переработка Деревянных топливных брикетов в Твёрдое топливо - отличный способ избавиться от избытка Древесных опилков!
bi-stone-crusher=Устройство для дробления Камня в Измельчённый камень
bi-sulfur=Био-сера
bi-wood-from-pulp=Получите обратно Древесину, прессуя Древесные опилки со Смолой
bi-wood-fuel-brick=Прессуйте Древесные опилки для удобства в обращении!
bi-wooden-pole-huge=Огромный деревянный столб, позволяющий прокидывать Медный кабель или Сигнальный провод на протяжённые расстояния (64 клетки)
bi-woodpulp=Переработать Древесину в Древесные опилки
[recipe-name]
bi-bio-cannon=Прототип артиллерии
bi-bio-cannon-area=Прототип артиллерии
bi-bio-cannon-basic-ammo=Прототип артиллерии (ракетный боеприпас)
bi-bio-cannon-biological-ammo=Прототип артиллерии (биологический боеприпас)
bi-bio-cannon-poison-ammo=Прототип артиллерии (ядовитый боеприпас)
bi-bio-cannon-proto-ammo=Прототип артиллерии (базовый боеприпас)
bi-crushed-stone-4=Измельчённый камень из Железобетона
bi-crushed-stone-5=Измельчённый камень из Железобетона "Опасность"
bi-production-science-pack=Производственный научный пакет
bi-wood-from-pulp=Дерево из Древесных опилок
# Added bi-basic-petroleum-gas-processing (0.17.49/0.18.17)
# Renamed bi-basic-petroleum-gas-processing to bi-basic-gas-processing (0.17.51/0.18.20)
bi-basic-gas-processing=Basic gas processing

View file

@ -1,508 +0,0 @@
[mod-setting-name]
BI_Solar_Additions=Включить: Био дополнения
BI_Bio_Fuel=Включить: Производство биотоплива
BI_Bio_Cannon=Включить: Прототип артиллерии
BI_Game_Tweaks_Stack_Size=Твики игры: Размер стака
BI_Game_Tweaks_Recipe=Твики игры: Рецепт
BI_Game_Tweaks_Tree=Твики игры: Добыча с деревьев
BI_Game_Tweaks_Small_Tree_Collisionbox=Enable game tweaks: Smaller collision boxes for trees
BI_Game_Tweaks_Player=Твики игры: Игрок
BI_Game_Tweaks_Disassemble=Твики игры: Разборка элементов
BI_Game_Tweaks_Bot=Твики игры: Дроны
BI_Game_Tweaks_Emissions_Multiplier=Твики игры: Множители выбросов топлива
BI_Game_Tweaks_Production_Science=Game tweaks: Alternative recipe for __ITEM__production-science-pack__
BI_Show_musk_floor_in_mapview=Enable: Electric grid overlay for __ENTITY__bi-solar-mat__ in map view\n(Default: on)
BI_Enable_gvv_support=Compatibility: Add support for GVV
[mod-setting-description]
BI_Solar_Additions=Включает такие предметы как Солнечная ферма, Солнечная электростанция, Биоаккумулятор и Гигантскую подстанцию.
BI_Bio_Fuel=Включает производство нефтяной продукции используя биотопливо
BI_Bio_Cannon=Прототип артиллерии очень мощный, но стреляет только по гнездам
BI_Game_Tweaks_Stack_Size=Влияет на размеры стаков Древесины, Камня, Щебня, Бетона и Шлака
BI_Game_Tweaks_Recipe=Изменения в рецептах:\nБетон (Железная руда => Железный прут)\nКаменная стена (+ Железный прут)\nЖелезная дорога (Камень => Измельченный камень)
BI_Game_Tweaks_Tree=Твики игры - при рубке деревья случайно дают от 1 до 6 древесины. В ваниле=4
BI_Game_Tweaks_Small_Tree_Collisionbox=EXPERIMENTAL: This setting is enabled per default. If it isn't, trees will have the bigger vanilla collision box, making forests more likely to block players, vehicles, and biters. Not sure if this will have any side effects!
BI_Game_Tweaks_Player=Дистанция взаимодействия 6 => 20, подбор количества предметов 1 => 4, дистанция добычи ресурсов 2.7 => 4, дистанция подбора предметов 2 => 5, скорость бега 0.15 => 0.25
BI_Game_Tweaks_Disassemble=Добавить некоторые рецепты для разборки. Вы получите около 50% ресурсов обратно
BI_Game_Tweaks_Bot=Дроны не могут быть подобраны или получать повреждения от горения
BI_Game_Tweaks_Emissions_Multiplier=Боб начинал это. Основная идея заключается в том, что необработанное топливо производит больше загрязнения, чем более продвинутые виды топлива. Таким образом уголь производил 200% загрязнения, в то время как твердое топливо - всего 85%. Пожалуйста, смотрите файл "Fuel Values.xlsx" в папке с модом для большей информации.
BI_Game_Tweaks_Production_Science=If this is enabled, an alternative recipe for Production science packs will be available.\n(Default: on)
BI_Show_musk_floor_in_mapview=Show the electric grid overlay for __ENTITY__bi-solar-mat__ in map view. This shouldn't be changed in a running game as applying the setting to every __ENTITY__bi-solar-mat__ tile may take some time!
BI_Enable_gvv_support=The "Lua API global Variable Viewer" (gvv) allows you to inspect the global table of other mods. If you want to help debugging "Water Turret", enable this and type "\gvv" at the chat console to open the GUI of gvv.\n(Default: off)
[technology-name]
bi-tech-coal-processing-1=Переработка угля 1
bi-tech-coal-processing-2=Переработка угля 2
bi-tech-coal-processing-3=Переработка угля 3
bi-tech-advanced-biotechnology=Продвинутая биотехнология
bi-tech-bio-cannon=Прототип артиллерии
bi-tech-bio-farming=Биоферма
bi-tech-fertiliser=Удобрение
bi-tech-organic-plastic=Органический пластик
[technology-description]
bi-tech-coal-processing-1=Переработка дерева в уголь
bi-tech-coal-processing-2=Переработка дерева в уголь
bi-tech-coal-processing-3=Переработка дерева в уголь
bi-tech-advanced-biotechnology=Открытие более высокоуровневых рецептов
bi-tech-bio-cannon=Прототип технологии артиллерийской башни. - Пока что без возможности ручного наведения
bi-tech-bio-farming=Изучите как выращивать деревья первый шаг к открытию других производств дерева
bi-tech-fertiliser=Используя удобрения, вы сможете получить значительно больше из рецептов
bi-tech-organic-plastic=Производство пластика используя органические материалы
[entity-name]
bi-arboretum-area=Терраформер
bi-arboretum-radar=Радар терраформер
bi-arboretum=Терраформер
bi-bio-accumulator=Аккумулятор огромной емкости
bi-bio-boiler=Биобойлер
bi-bio-cannon-area=Прототип артиллерии
bi-bio-cannon=Прототип артиллерии
bi-bio-farm-electric-pole=Кабели биофермы
bi-bio-farm-light=Горячие лампы биофермы
bi-bio-farm-solar-panel=Солнечная энергия биофермы
bi-bio-farm=Биоферма
bi-bio-garden-light=Свет биосада
bi-bio-garden=Биосад
bi-bio-greenhouse=Теплица
bi-bio-reactor=Биореактор
bi-bio-solar-farm=Био Солнечная ферма
bi-burner-pump=Топливная качалка
bi-cokery=Коксовая печь
#~ bi-curved-rail-power=Электрические рельсы
#~ bi-curved-rail-wood-bridge=Деревянные изогнутые рельсы для мостов
#~ bi-curved-rail-wood=Деревянные изогнутые рельсы
bi-dart-magazine-basic=Базовый дротиковый снаряд
bi-dart-magazine-enhanced=Магазин с продвинутыми дротиками
bi-dart-magazine-poison=Магазин с ядовитыми дротиками
bi-dart-magazine-standard=Магазин с дротиками
bi-dart-turret=Дротиковая турель
#~ These strings seem to be obsolete!
#~ bi-ground-steam=Природный пар
#~ bi-ground-sulfuric-acid=Природная серная кислота
#~ bi-ground-water=Вода
bi-large-substation=Гигантская подстанция
bi-musk-mat-pole=Скрытый силовой столб для пола Илона Маска
bi-musk-mat-solar-panel=Пол Илона Маска
bi-power-to-rail-pole=Коннектор "Электро-рельсы"
bi-solar-boiler-panel=Солнечная электростанция и бойлер - Панель
bi-solar-boiler=Солнечная электростанция и бойлер - Бойлер
bi-solar-mat=Пол Илона Маска
bi-stone-crusher=Измельчитель камня
#~ bi-straight-rail-power=Электрические рельсы
#~ bi-straight-rail-wood-bridge=Деревянные прямые рельсы для мостов
#~ bi-straight-rail-wood=Деревянные прямые рельсы
#~ bi-rail-power=Электрические рельсы
bi-rail-power=Электрические рельсы
#~ bi-straight-rail-wood-bridge=Деревянные прямые рельсы для мостов
bi-rail-wood-bridge=Деревянные прямые рельсы для мостов
#~ bi-straight-rail-wood=Деревянные прямые рельсы
bi-rail-wood=Деревянные прямые рельсы
bi-wood-pipe-to-ground=Подземная деревянная труба
bi-wood-pipe=Деревянная труба
bi-wooden-chest-giga=Огромный деревянный ящик
bi-wooden-chest-huge=Большой деревянный ящик
bi-wooden-chest-large=Средний деревянный ящик
bi-wooden-fence=Деревянный забор
bi-wooden-pole-big=Большой деревянный столб
bi-wooden-pole-huge=Гигантский электрический столб
seedling-2=Саженец
seedling-3=Саженец
seedling=Саженец
wooden-chest=Деревянный ящик
rail-remnants-wood=Remnants of wooden rails
rail-remnants-wood-bridge=Remnants of a wooden bridge
[entity-description]
bi-arboretum-area=Терраформер изменяет местность или растущие деревья в радиусе вокруг строения
bi-arboretum-radar=Радар терраформера
bi-arboretum=Терраформер изменяет местность или растущие деревья в радиусе вокруг строения
bi-bio-accumulator=Может хранить огромное количество энергии, потому что размер имеет значение...
bi-bio-boiler=Высокоэффективный бойлер
bi-bio-cannon-area=Может стрелять ТОЛЬКО по гнездам! - Дистанция 90 - Пока что без возможности ручного наведения
bi-bio-cannon=Может стрелять ТОЛЬКО по гнездам! - Дистанция 90 - Пока что без возможности ручного наведения
bi-bio-farm-electric-pole=Кабели биофермы (Скрыто)
bi-bio-farm-light=Гарячие лампы биофермы, так что деревья могут расти ночью (Скрыто)
bi-bio-farm-solar-panel=Солнеяная энергия биофермы (Скрыто)
#~ New string in 0.17.60/0.18.29!
#~ bi-bio-farm=Bio farms are where saplings grow into trees that are processed to raw wood and wood pulp. An integrated solar panel provides some of the energy during the day.
bi-bio-farm=Биоферма, превращает саженцы в древесину. Потребляет больше электричества ночью
bi-bio-garden-light=Сад также ведет себя как лампа ночью. (Скрыто)
#~ New string in 0.17.60/0.18.29!
#~ bi-bio-garden=The bio garden scrubs air, removing pollution. (One bio garden can absorb 45 pollution units per second as much as 1500 trees!)
bi-bio-garden=Биосад собирает воздух и убирает загрязнение. (-35 PU)
bi-bio-greenhouse=Используйте теплицу для роста саженцев
#~ New string in 0.17.60/0.18.29!
#~ bi-bio-reactor=Bio-reactors are used to produce and process biomass.bi-bio-reactor=Использует продвинутые биореакции
#~ New string in 0.17.60/0.18.29!
#~ bi-bio-solar-farm=Bio solar farm save space by condensing your solar panels into a compact unit. They create a lot of power!\Using Bio solar farms instead of the original solar panels will also improve performance because less entities require less updates per second (UPS).
bi-bio-solar-farm=Сохраняет пространство, соединяя ваши солнечный панели в компактный блок. Создает много энергии!
bi-burner-pump=Топливный насос для выкачки воды из-под земли
#~ New string in 0.17.60/0.18.29!
#~ bi-cokery=Wood and wood pulp are processed to charcoal and other fuels in the cokery.
bi-cokery=Переработка дерева в уголь или другие виды топлива
#~ These strings are obsolete!
#~ bi-curved-rail-power=Рельса которая может проводить электричество. Подключите к электрической сети используя коннектор "Электро-рельсы"
#~ bi-curved-rail-wood-bridge=Деревянные изогнутые рельсы для мостов. Заметьте, что вы не можете по ним ходить.
#~ bi-curved-rail-wood=Деревянные изогнутые рельсы
#~ These are items, not entities!
#~ bi-dart-magazine-basic=Базовые дротиковые снаряды
#~ bi-dart-magazine-enhanced=Продвинутые дротиковые снаряды
#~ bi-dart-magazine-poison=Ядовитые дротиковые снаряды
#~ bi-dart-magazine-standard=Стандартные дротиковые снаряды
#~ These strings seem to be obsolete!
#~ bi-ground-steam=Природные залежи пара
#~ bi-ground-sulfuric-acid=Природные залежи серной кислоты
#~ bi-ground-water=Глубинная вода
bi-large-substation=Гигантская подстанция
bi-musk-mat-pole=Скрытый силовой столб для пола Илона Маска
bi-musk-mat-solar-panel=Энергия от пола Илона Маска
#~ New string in 0.17.60/0.18.29!
#~ bi-power-to-rail-pole=Connect your power rail to the power grid!\nATTENTION: When you place a connector in reach of two powered rails that are running parallel or crossing each other, you will connect these networks!
bi-power-to-rail-pole=Коннектор ваших электрических рельс к электрической сети
bi-solar-boiler-2=Бойлер, который использует солнечную энергию или электричество. Также производит электричество
bi-solar-boiler-panel=Бойлер, который использует солнечную энергию или электричество. Также производит электричество
bi-solar-mat=Солнечная панель/пол которая может быть использована как дорожное покрытие, генерирует 10kW электричества и позволяет быстро перемещаться (Спасибо Илону Маску!)
#~ New string in 0.17.60/0.18.29!
#~ bi-stone-crusher=These machines crush stone and concrete. If necessary, you can also use them to make sand from crushed stone.
bi-stone-crusher=Машина которая измельчает камни
#~ bi-straight-rail-power=Рельса которая может проводить электричество. Подключите к электрической сети используя коннектор "Электро-рельсы"
bi-rail-power=Рельса которая может проводить электричество. Подключите к электрической сети используя коннектор "Электро-рельсы"
#~ bi-straight-rail-wood-bridge=Деревянные прямые рельсы для мостов. Заметьте, что вы не можете по ним ходить.
bi-rail-wood-bridge=Деревянные прямые рельсы для мостов. Заметьте, что вы не можете по ним ходить.
#~ bi-straight-rail-wood=Деревянные прямые рельсы
bi-rail-wood=Деревянные прямые рельсы
bi-wood-pipe-to-ground=Подземная деревянная труба
bi-wood-pipe=Деревянная труба
bi-wooden-chest-giga=Самый большой деревянный ящик
bi-wooden-chest-huge=Больше среднего деревянный ящик
bi-wooden-chest-large=Обычный средний деревянный ящик
#~ New string in 0.17.60/0.18.29!
#~ bi-wooden-fence=Though not very strong, wooden fences help you right from the start to keep enemies out of your factory.
bi-wooden-fence=Защитная стена сделанная из дерева
bi-wooden-pole-big=Большой деревянный столб ЛЭП. Будет автоматически восстанавливать здоровье, если вы играете с NE Enemies
bi-wooden-pole-huge=Электрический столб, который может охватить огромное расстояние - 64
seedling-2=Молодое растение, идеально для посадки. Вы также можете посадить его в землю и оно вырастет в дерево. Помните, что сначала нужно удобрить землю, чтобы увеличить шанс роста.
seedling-3=Молодое растение, идеально для посадки. Вы также можете посадить его в землю и оно вырастет в дерево. Помните, что сначала нужно удобрить землю, чтобы увеличить шанс роста.
seedling=Молодое растение, идеально для посадки. Вы также можете посадить его в землю и оно вырастет в дерево. Помните, что сначала нужно удобрить землю, чтобы увеличить шанс роста.
rail-remnants-wood=Remnants of wooden rails
rail-remnants-wood-bridge=Remnants of a wooden bridge
[item-name]
bi-adv-fertiliser=Продвинутое удобрение
bi-arboretum-area=Терраформер
bi-arboretum-r1=Посаженные деревья
bi-arboretum-r2=Изменение территории - Базовое
bi-arboretum-r3=Изменение территории - Продвинутое
bi-arboretum-r4=Изменение территории и посаженых деревьев - Базовое
bi-arboretum-r5=Изменение территории и посаженых деревьев - Продвинутое
bi-arboretum=Терраформер
bi-ash=Зола
bi-bio-accumulator=Аккумулятор огромной емкости
bi-bio-boiler=Биобойлер
bi-bio-cannon-area=Прототип артиллерии
bi-bio-cannon-basic-ammo=Прототип артиллерии - ракетный боеприпас
bi-bio-cannon-biological-ammo=Прототип артиллерии - биологический боеприпас
bi-bio-cannon-poison-ammo=Прототип артиллерии - ядовитый боеприпас
bi-bio-cannon-proto-ammo=Прототип артиллерии - базовый боеприпас
bi-bio-cannon=Прототип артиллерии
bi-bio-farm=Биоферма
bi-bio-solar-farm=Био Солнечная ферма
bi-biolab=Биолаборатория
bi-burner-pump=Топливная качалка
bi-cellulose=Целлюлоза
bi-cokery=Коксовая печь
bi-dart-magazine-basic=Базовый дротиковый снаряд
bi-dart-magazine-enhanced=Продвинутый дротиковый снаряд
bi-dart-magazine-poison=Ядовитые дротиковые снаряды
bi-dart-magazine-standard=Стандартные дротиковые боеприпасы
bi-dart-rifle=Дротиковая винтовка
bi-dart-turret=Дротиковая турель
bi-ground-water=Вода
bi-large-substation=Гигантская подстанция
#~ Obsolete?
#~ bi-medicine=Медицина
#~ Do we need localizations for hidden entities?
#~ bi-musk-mat-pole=Скрытый силовой столб для пола Илона Маска
#~ bi-musk-mat-solar-panel=Пол Илона Маска
#~ Obsolete
#~ bi-nutrients=Питательный раствор
bi-power-to-rail-pole=Коннектор "Электро-рельсы"
bi-purified-air=Очиститель воздуха
bi-rail-power=Электрические рельсы
bi-rail-wood-bridge=Деревянные рельсы для мостов
bi-rail-wood=Деревянные рельсы
bi-seed-bomb-advanced=Продвинутая семенная бомба
bi-seed-bomb-basic=Базовая семенная бомба
bi-seed-bomb-standard=Стандартная семенная бомба
bi-seed=Семена
bi-solar-boiler-2=Солнечная электростанция и бойлер - бойлер
bi-solar-boiler-panel=Солнечная электростанция и бойлер - панель
bi-solar-mat=Пол Илона Маска
bi-stone-crusher=Измельченный камень
bi-wood-pipe-to-ground=Подземная деревянная труба
bi-wood-pipe=Деревянная труба
bi-wooden-chest-giga=Огромный деревянный ящик
bi-wooden-chest-huge=Большой деревянный ящик
bi-wooden-chest-large=Средний деревянный ящик
bi-wooden-fence=Деревянный забор
bi-wooden-pole-big=Большой деревянный столб ЛЭП. Будет автоматически восстанавливать здоровье, если вы играете с NE Enemies
bi-wooden-pole-huge=Гигантский электрический столб
bi-woodpulp=Древесные опилки
fertiliser=Удобрение
pellet-coke=Коксовый уголь
resin=Смола
seedling=Сажанец
stone-crushed=Измельчитель камня
#~ Obsolete? This is only used in a compatibility recipe for bi-slag-slurry if angelsrefining is active!
water-saline=Солёная вода
wood-bricks=Деревянные топливные брикеты
wood-charcoal=Древесный уголь
[item-description]
bi-Arboretum-Area=Терраформер изменяет местность или растущие деревья в радиусе вокруг строения
bi-Arboretum=Терраформер изменяет местность или растущие деревья в радиусе вокруг строения
bi-arboretum-r1=Сажает деревья или изменяет местность в радиусе вокруг строения
bi-arboretum-r2=Изменяет местность в радиусе вокруг строения - Базовое
bi-arboretum-r3=Изменяет местность в радиусе вокруг строения - Продвинутое
bi-arboretum-r4=Изменяет местность и сажает деревья в радиусе вокруг строения - Базовое
bi-arboretum-r5=Изменяет местность и сажает деревья в радиусе вокруг строения - Продвинутое
bi-bio-accumulator=Может хранить огромное количество энергии, потому что размер имеет значение...
bi-bio-boiler=Высокоэффективный бойлер
bi-bio-cannon-area=Может стрелять ТОЛЬКО по гнездам! - Дистанция 90 - Пока что без возможности ручного наведения
bi-bio-cannon-basic-ammo=Ракетная мощь, низкий физический урон
bi-bio-cannon-biological-ammo=Ракетная мощь, высокий биологический урон
bi-bio-cannon-poison-ammo=Ракетная мощь, средний урон ядом
bi-bio-cannon-proto-ammo=Низкий урон, большая часть взрывчатки используется для придания движения
bi-bio-cannon=Может стрелять ТОЛЬКО по гнездам! - Дистанция 90 - Пока что без возможности ручного наведения
bi-bio-farm=Теплица с мощным искусственным освещением для выращивания деревьев из саженцев (сырье-древесина)
bi-bio-solar-farm=Сохраняет пространство, соединяя ваши солнечный панели в компактный блок. Создает много энергии!
#~ Obsolete?
bi-burner-pump=Топливный насос для выкачки воды из-под земли
bi-dart-magazine-basic=Базовый дротиковый снаряд
bi-dart-magazine-enhanced=Продвинутый дротиковый снаряд
bi-dart-magazine-poison=Малый урон ядом
bi-dart-magazine-standard=Стандартные дротиковые снаряды
bi-ground-water=Вода
bi-large-substation=Гигантская подстанция
bi-musk-mat-pole=Скрытый силовой столб для пола Илона Маска
bi-musk-mat-solar-panel=Энергия от пола Илона Маска
bi-power-to-rail-pole=Коннектор ваших электрических рельс к электрической сети
bi-purified-air=Чистый воздух, загрязнение удаляется!
bi-rail-power=Рельса которая может проводить электричество. Подключите к электрической сети используя коннектор "Электро-рельсы"
bi-rail-wood-bridge=Деревянные рельсы для создания мостов. Заметьте, что вы не можете по ней ходить.
bi-rail-wood=Деревянные рельсы
bi-seed-bomb-advanced=Засаживает деревьями большую территорию, с продвинутым удобрением с помощью семенной бомбы!
bi-seed-bomb-basic=Засаживает деревьями большую территорию с помощью семенной бомбы!
bi-seed-bomb-standard=Засаживает деревьями большую территорию, с удобрением с помощью семенной бомбы!
bi-seed=Семена, чтобы выращивать из них саженцы
bi-solar-boiler-panel=Бойлер, который использует солнечную энергию или электричество. Также производит электричество
bi-solar-boiler=Бойлер, который использует солнечную энергию или электричество. Также производит электричество
bi-solar-mat=Солнечная панель/пол которая может быть использована как дорожное покрытие, генерирует 10kW электричества и позволяет быстро перемещаться (Спасибо Илону Маску!)
bi-wood-pipe-to-ground=Деревянная подземная труба
bi-wood-pipe=Труба сделанная из дерева
bi-wooden-chest-giga=Самый большой деревянный ящик
bi-wooden-chest-huge=Деревянный ящик больше среднего
bi-wooden-chest-large=Обычный средний деревянный ящик
bi-wooden-fence=Защитная стена сделанная из дерева
bi-wooden-pole-big=Большой деревянный столб ЛЭП
bi-wooden-pole-huge=Электрический столб, который может охватить огромное расстояние - 64
bi-woodpulp=Можно сжигать или переработать в золу или уголь
fertiliser=Удобрения нужны для быстрого выращивания растений и изменения качества почвы на более плодородную
pellet-coke=Коксовый уголь это отличное топливо для поездов.
resin=Смола
seedling=Молодое растение, идеально для посадки. Вы также можете посадить его в землю и оно вырастет в дерево. Помните, что сначала её нужно удобрить, чтобы увеличить шанс роста.
stone-crushed=Камень измельченный в щебень
#~ Obsolete? This is only used in a compatibility recipe for bi-slag-slurry if angelsrefining is active!
water-saline=Солёная вода
wood-bricks=Хорошо обработанный источник топлива с низкими выбросами
[fluid-name]
bi-biomass=Биомасса из водорослей
bi-ground-water=Вода
liquid-air=Сжиженный воздух
nitrogen=Азот
#~ Obsolete? This is only used in a compatibility recipe for bi-slag-slurry if angelsrefining is active!
water-saline=Солёная вода
[recipe-name]
bi-bio-accumulator=Аккумулятор огромной емкости
bi-acid=Био-кислота
bi-adv-fertiliser-1=Продвинутое удобрение
bi-adv-fertiliser-2=Продвинутое удобрение
bi-arboretum=Терраформер
bi-arboretum-r1=Посаженные деревья
bi-arboretum-r2=Изменение территории - Базовое
bi-arboretum-r3=Изменение территории - Продвинутое
bi-arboretum-r4=Изменение территории и посаженых деревьев - Базовое
bi-arboretum-r5=Изменение территории и посаженых деревьев - Продвинутое
bi-ash-1=Зола
bi-ash-2=Зола
bi-battery=Биоаккумулятор
bi-dart-magazine-basic=Базовый дротиковый снаряд
bi-dart-magazine-enhanced=Магазин с продвинутыми дротиками
bi-dart-magazine-poison=Магазин с ядовитыми дротиками
bi-dart-magazine-standard=Магазин с дротиками
bi-dart-turret=Дротиковая турель
bi-dart-rifle=Дротиковая винтовка
bi-wooden-pole-big=Большой деревянный столб
bi-bio-farm=Биоферма
bi-bio-garden=Биосад
bi-bio-solar-farm=Био Солнечная ферма
bi-biomass-1=Водоросли-Биомасса-1
bi-biomass-2=Водоросли-Биомасса-2
bi-biomass-3=Водоросли-Биомасса-3
bi-biomass-conversion-1=Превращение биотоплива 1
bi-biomass-conversion-2=Превращение биотоплива 2
bi-biomass-conversion-3=Превращение биотоплива 3
bi-biomass-conversion-4=Превращение биотоплива 4
bi-bio-reactor=Биореактор
bi-bio-boiler=Биобойлер
bi-burner-inserter-disassemble=Разборка твердотопливного манипулятора
bi-burner-mining-drill-disassemble=Разборка твердотопливного бура
bi-cellulose-1=Целлюлоза
bi-cellulose-2=Целлюлоза
bi-charcoal-1=Древесный уголь
bi-charcoal-2=Древесный уголь
bi-coal-1=Базовое производство угля
bi-coal-2=Продвинутое производство угля
bi-coke-coal=Коксовый уголь
bi-cokery=Коксовая печь
bi-crushed-stone-1=Измельченный камень
bi-crushed-stone-2=Измельченный камень
bi-crushed-stone-3=Измельченный камень
bi-fertiliser-1=Удобрение
bi-fertiliser-2=Удобрение
bi-wooden-chest-giga=Огромный деревянный ящик
bi-bio-greenhouse=Теплица
bi-large-substation=Гигантская подстанция
bi-wooden-chest-huge=Большой деревянный ящик
bi-wooden-pole-huge=Гигантский электрический столб
bi-wooden-chest-large=Средний деревянный ящик
bi-liquid-air=Сжиженный воздух
bi-logs-1=Базовое производство дерева
bi-logs-2=Производство дерева Mk2
bi-logs-3=Продвинутое производство дерева
bi-logs-4=Супер производство дерева
bi-long-handed-inserter-disassemble=Разборка длинного манипулятора
bi-mineralized-sulfuric-waste=Получение воды и серных отходов
bi-nitrogen=Азот
bi-pellet-coke=Коксовые паллеты из твердого топлива
bi-pellet-coke-2=Угольные паллеты из Углерода
bi-wood-pipe-to-ground=Подземная деревянная труба
bi-plastic-1=Биопластик 1
bi-plastic-2=Биопластик 2
bi-power-to-rail-pole=Рельса с разъемом питания
bi-press-wood=Прессование древесины
bi-production-science-pack=Production science pack
bi-purified-air-1=Очистка воздуха
bi-purified-air-2=Очистка воздуха Mk2
bi-rail-power=Электрические рельсы
bi-rail-wood=Деревянные рельсы
bi-rail-wood-bridge=Деревянные рельсы для мостов
bi-rail-wood-to-concrete=Улучшенные деревянные рельсы
bi-resin-pulp=Смола
bi-resin-wood=Смола
#~ bi-seedling=Саженец
bi-seed-1=Базовое семя
bi-seed-2=Производство семян дерева из золы
bi-seed-3=Производство семян дерева из удобрения
bi-seed-4=Производство семян дерева из продвинутого удобрения
bi-seed-bomb-advanced=Продвинутая семенная бомба
bi-seed-bomb-basic=Базовая семенная бомба
bi-seed-bomb-standard=Стандартная семенная бомба
bi-seedling-1=Базовое производство саженцев
bi-seedling-2=Производство саженцев Mk2
bi-seedling-3=Продвинутое производство саженцев
bi-seedling-4=Супер производство саженцев
bi-slag-slurry=Сжиженный шлак
bi-solar-boiler=Солнечная электростанция и бойлер
bi-solar-boiler-panel=Солнечная электростанция и бойлер
bi-solar-mat=Пол Илона Маска
bi-solid-fuel=Твердое топливо из деревянных топливных брикетов
bi-steel-furnace-disassemble=Разборка стальной печи
bi-stone-brick=Био-Каменный блок
bi-stone-furnace-disassemble=Разборка каменной печи
bi-stone-crusher=Измельченный камень
bi-sulfur=Био-сера
bi-sulfur-angels=Био-сера
bi-wood-from-pulp=Wood from pulp
bi-wood-fuel-brick=Деревянные брикеты
bi-wood-pipe=Деревянная труба
bi-wooden-fence=Деревянный забор
bi-woodpulp=Древесные опилки
wooden-chest=Деревянный ящик
[recipe-description]
bi-arboretum=Сажает деревья или изменяет местность в радиусе вокруг строения
bi-arboretum-r1=Использование Терраформера - Сажает деревья в радиусе вокруг себя (Посадка никогда не прекращается, деревья перевысаживаются посекторно)
bi-arboretum-r2=Использование Терраформера - Изменяет местность в радиусе вокруг себя - Базовое
bi-arboretum-r3=Использование Терраформера - Изменяет местность в радиусе вокруг себя - Продвинутое
bi-arboretum-r4=Использование Терраформера - Изменяет местность и сажает деревья в радиусе вокруг себя - Базовое
bi-arboretum-r5=Использование Терраформера - Изменяет местность и сажает деревья в радиусе вокруг себя - Продвинутое
bi-basic-pumpjack-disassemble=Разобрать топливную качалку и получить немного материалов
bi-biomass-conversion-1=Водоросли-Биомасса в легкую нефть
bi-biomass-conversion-2=Водоросли-Биомасса в нефть
bi-biomass-conversion-3=Водоросли-Биомасса в смазку
bi-biomass-conversion-4=Превращение биотоплива 4
bi-burner-inserter-disassemble=С небольшой потерей материалов
bi-burner-mining-drill-disassemble=С небольшой потерей материалов
bi-fertiliser-1=Позволяет растениям расти быстрее
bi-fertiliser-2=Позволяет растениям расти быстрее (гидроксид натрия)
bi-bio-greenhouse=Теплица производит семена и саженцы
bi-long-handed-inserter-disassemble=С небольшой потерей материалов
bi-mineralized-sulfuric-waste=Получение воды и серных отходов из измельченного камня, древесного угля и чистой воды
bi-power-to-rail-pole=Коннектор ваших электрических рельс к электрической сети
bi-rail-wood-bridge=Рельсы, которые могут пересекать воду
bi-seed-1=Семя, которое вырастает в саженец
bi-seed-2=Семя, которое вырастает в саженец
bi-seed-3=Семя, которое вырастает в саженец
bi-seed-4=Семя, которое вырастает в саженец
bi-seed-bomb-advanced=Засаживает деревьями большую территорию, с продвинутым удобрением с помощью семенной бомбы!
bi-seed-bomb-basic=Засаживает деревьями большую территорию с помощью семенной бомбы!
bi-seed-bomb-standard=Засаживает деревьями большую территорию, с удобрением с помощью семенной бомбы!
#~ bi-seedling=Молодое дерево, идеально для посадки. (Вы также можете посадить его в землю и оно вырастет в дерево. Помните, что сначала нужно удобрить землю, чтобы увеличить шанс роста.)
bi-seedling-1=Производит 40 саженцев
bi-seedling-2=Производит 50 саженцев
bi-seedling-3=Производит 75 саженцев
bi-seedling-4=Производит 150 саженцев
bi-slag-slurry=Сжиженный шлак из золы, измельченного камня и соленой воды
bi-steel-furnace-disassemble=С небольшой потерей материалов
bi-stone-brick=Каменный блок из измельченного камня и золы
bi-stone-furnace-disassemble=С небольшой потерей материалов
[tile-name]
bi-solar-mat=Солнечный пол
bi-wood-floor=Деревянный пол
[item-group-name]
Bio_Turret_Ammo=Био-Боеприпасы
bio-industries=Био-Индустрия
[damage-type-name]
Biological=Биологический
bob-pierce=Бронебойный
[bi-misc]
growing-tree=Growing tree
growing-tree-desc=Given some time, a big tree will grow from this sapling.
young-tree=Young tree
young-tree-desc=This tree is still young and won't yield much wood yet. Better wait until it's fully grown before you chop it down!
[modifier-description]
Bio_Cannon_Ammo-damage-bonus=Бонус урона боеприпаса прототипа артиллерии: +__1__
Bio_Cannon_Ammo-shooting-speed-bonus=Бонус скорости стрельбы прототипа артиллерии: +__1__
Bio_Turret_Ammo-damage-bonus=Бонус урона боеприпаса дротиковой турели: +__1__
Bio_Turret_Ammo-shooting-speed-bonus=Бонус скорости стрельбы боеприпаса дротиковой турели: +__1__
bi-dart-turret-attack-bonus=Бонус урона дротиковой турели: +__1__
[autoplace-control-names]
bi-ground-water=__ENTITY__bi-ground-water__

View file

@ -1,5 +1,5 @@
local setting_list = {}
-- Add/enable stuff
-- Add/enable stuff
setting_list.BI_Solar_Additions = {
type = "bool-setting",
name = "BI_Solar_Additions",
@ -48,7 +48,7 @@ setting_list.BI_Bigger_Wooden_Chests = {
order = "a[modifier]-b[Bigger_Wooden_Chests]",
}
-- Game tweaks
-- Game tweaks
setting_list.BI_Game_Tweaks_Emissions_Multiplier = {
type = "bool-setting",
name = "BI_Game_Tweaks_Emissions_Multiplier",
@ -71,7 +71,7 @@ setting_list.BI_Game_Tweaks_Recipe = {
default_value = true,
order = "b[tweaks]-c1[Recipe]",
}
setting_list.BI_Game_Tweaks_Production_Science = {
setting_list.BI_Game_Tweaks_Production_Science = {
type = "bool-setting",
name = "BI_Game_Tweaks_Production_Science",
setting_type = "startup",
@ -109,7 +109,7 @@ setting_list.BI_Game_Tweaks_Bot = {
-- Compatibility with other mods (optional)
-- Industrial Revolution + AAI Industry
-- Industrial Revolution + AAI Industry
if not (mods["IndustrialRevolution"] or mods["aai-industry"]) then
setting_list.BI_Game_Tweaks_Disassemble = {
type = "bool-setting",
@ -121,7 +121,7 @@ if not (mods["IndustrialRevolution"] or mods["aai-industry"]) then
end
-- Lua API global Variable Viewer (gvv)
-- Lua API global Variable Viewer (gvv)
if mods["gvv"] then
setting_list.BI_Enable_gvv_support = {
type = "bool-setting",
@ -134,7 +134,7 @@ end
local list = {}
for name, setting in pairs(setting_list) do
data:extend({setting})
data:extend({ setting })
end
--[[
Types of settings:

View file

@ -9,7 +9,7 @@ local settings_changed = {}
-- Adjust the force of hidden poles on Musk floor!
settings_changed.musk_floor = function()
log("Entered function settings_changed.musk_floor!")
log("Entered function settings_changed.musk_floor!")
-- Look for solar panels on every surface. They determine the force poles will use
-- if the electric grid overlay will be shown in mapview.
local sm_panel_name = "bi-musk-mat-hidden-panel"
@ -62,22 +62,22 @@ log("Entered function settings_changed.musk_floor!")
end
for name, surface in pairs(game.surfaces) do
BioInd.writeDebug("Looking for %s on surface %s", {sm_panel_name, name})
local sm_panel = surface.find_entities_filtered{name = sm_panel_name}
BioInd.writeDebug("Looking for %s on surface %s", { sm_panel_name, name })
local sm_panel = surface.find_entities_filtered { name = sm_panel_name }
local sm_pole = {}
-- Look for hidden poles on position of hidden panels
for p, panel in ipairs(sm_panel) do
sm_pole = surface.find_entities_filtered{
sm_pole = surface.find_entities_filtered {
name = sm_pole_name,
position = panel.position,
}
-- If more than one hidden pole exists at that position for some reason, remove all but the first!
if #sm_pole > 1 then
BioInd.writeDebug("Number of poles for panel %g: %g", {p, #sm_pole})
BioInd.writeDebug("Number of poles for panel %g: %g", { p, #sm_pole })
for i = 2, #sm_pole do
BioInd.writeDebug("Destroying pole number %g", {i})
BioInd.writeDebug("Destroying pole number %g", { i })
sm_pole[i].destroy()
end
end
@ -87,7 +87,7 @@ BioInd.writeDebug("Destroying pole number %g", {i})
end
end
BioInd.writeDebug("Electric grid overlay of musk floor will be %s in map view.",
{BioInd.UseMuskForce and "hidden" or "displayed"})
{ BioInd.UseMuskForce and "hidden" or "displayed" })
end
@ -96,11 +96,11 @@ settings_changed.bio_garden = function()
-- Has this setting been changed since the last time the game was run?
local current = BioInd.get_startup_setting("BI_Easy_Bio_Gardens")
BioInd.show("Last state of BI_Easy_Bio_Gardens", storage.mod_settings.BI_Easy_Bio_Gardens)
BioInd.show("Current state of BI_Easy_Bio_Gardens", current)
BioInd.show("Last state of BI_Easy_Bio_Gardens", storage.mod_settings.BI_Easy_Bio_Gardens)
BioInd.show("Current state of BI_Easy_Bio_Gardens", current)
if storage.mod_settings.BI_Easy_Bio_Gardens ~= current then
BioInd.writeDebug("Setting has been changed!")
BioInd.writeDebug("Setting has been changed!")
local pole, neighbours
-- This is the unmodified table!
local compound_entity = BioInd.compound_entities["bi-bio-garden"]
@ -112,10 +112,10 @@ BioInd.writeDebug("Setting has been changed!")
if not (garden.base and garden.base.valid) then
-- Remove all hidden entities!
for hidden, h_name in pairs(compound_entity.hidden or {}) do
BioInd.show("hidden", hidden)
BioInd.writeDebug("Removing hidden entity %s %s", {
BioInd.show("hidden", hidden)
BioInd.writeDebug("Removing hidden entity %s %s", {
garden[hidden] and garden[hidden].valid and garden[hidden].name or "nil",
garden[hidden] and garden[hidden].valid and garden[hidden].unit_number or "nil"})
garden[hidden] and garden[hidden].valid and garden[hidden].unit_number or "nil" })
BioInd.remove_entity(garden[hidden])
garden[hidden] = nil
end
@ -132,7 +132,7 @@ BioInd.writeDebug("Removing hidden entity %s %s", {
local pole_type = "electric-pole"
for s, surface in pairs(game.surfaces) do
-- Find poles on surface
found_poles = surface.find_entities_filtered{
found_poles = surface.find_entities_filtered {
name = compound_entity.hidden[pole_type].name,
type = "electric-pole",
}
@ -145,7 +145,7 @@ BioInd.writeDebug("Removing hidden entity %s %s", {
-- Setting is on, so we need to create the hidden poles
if current then
BioInd.writeDebug("Need to create hidden poles for %s Bio Gardens!",
{table_size(storage.bi_bio_garden_table) })
{ table_size(storage.bi_bio_garden_table) })
-- Restore the list of hidden entities
storage.compound_entities["bi-bio-garden"] = BioInd.compound_entities["bi-bio-garden"]
@ -154,7 +154,7 @@ BioInd.writeDebug("Removing hidden entity %s %s", {
-- Make sure the base entity exists!
base = garden.base
pole = base and garden[pole_type]
BioInd.show("pole", pole)
BioInd.show("pole", pole)
-- There is a pole referenced in the table, and it is a valid entity
if pole and pole.valid then
-- Delete pole from list of removeable poles
@ -167,7 +167,7 @@ BioInd.show("pole", pole)
pole = BioInd.create_entities(
storage[compound_entity.tab],
base,
{pole = hidden_entities[pole_type].name}
{ pole = hidden_entities[pole_type].name }
)
-- Add the new pole to the table
@ -185,9 +185,9 @@ BioInd.show("pole", pole)
-- Setting is off -- disconnect and remove hidden poles!
else
BioInd.writeDebug("%s Bio Gardens found -- try to disconnect hidden poles!",
{table_size(storage.bi_bio_garden_table) })
{ table_size(storage.bi_bio_garden_table) })
-- Find hidden poles of registered gardens
BioInd.show("storage.bi_bio_garden_table", storage.bi_bio_garden_table)
BioInd.show("storage.bi_bio_garden_table", storage.bi_bio_garden_table)
for g, garden in pairs(storage.bi_bio_garden_table or {}) do
if garden[pole_type] then
-- Pole really exists: destroy the entity
@ -209,12 +209,12 @@ BioInd.show("storage.bi_bio_garden_table", storage.bi_bio_garden_table)
-- We don't want to create hidden poles if the setting is off,
-- so remove the pole from hidden entities!
storage.compound_entities["bi-bio-garden"].hidden[pole_type] = nil
BioInd.show("storage.compound_entities", storage.compound_entities)
BioInd.show("storage.compound_entities", storage.compound_entities)
end
-- Remove any hidden poles that are not associated with a garden
BioInd.writeDebug("Removing %s hidden poles not associated with a bio garden!",
{table_size(remove_poles)})
{ table_size(remove_poles) })
for p, pole in pairs(remove_poles) do
pole.destroy()
end