diff --git a/Bio_Industries_2/Test_Spawn.lua b/Bio_Industries_2/Test_Spawn.lua new file mode 100644 index 0000000..5280d4e --- /dev/null +++ b/Bio_Industries_2/Test_Spawn.lua @@ -0,0 +1,85 @@ +----- Just used for Testing + + +function Test_Spawn() + local surface = game.surfaces['nauvis'] + + surface.create_entity({name = "tree-01", position = {2, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-02", position = {4, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-02-red", position = {6, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-03", position = {8, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-04", position = {10, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-05", position = {12, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-06", position = {14, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-06-brown", position = {16, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-07", position = {18, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-08", position = {20, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-08-brown", position = {22, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-09", position = {24, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-09-brown", position = {26, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-09-red", position = {28, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-a", position = {30, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-b", position = {32, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-c", position = {34, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-d", position = {36, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-e", position = {38, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-f", position = {40, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-g", position = {42, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-h", position = {44, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-i", position = {46, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-j", position = {48, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-k", position = {50, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-l", position = {52, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-m", position = {54, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-desert-n", position = {56, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-a", position = {58, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-b", position = {60, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-c", position = {62, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-d", position = {64, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-e", position = {66, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-f", position = {68, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-g", position = {70, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-h", position = {72, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-i", position = {74, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-j", position = {76, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-k", position = {78, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-l", position = {80, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-m", position = {82, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-n", position = {84, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-dryland-o", position = {86, 10}, force = game.forces.player}) + --surface.create_entity({name = "tree-grassland-0", position = {88, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-a", position = {90, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-b", position = {92, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-c", position = {94, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-d", position = {96, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-e", position = {98, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-f", position = {100, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-g", position = {102, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-h", position = {104, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-h2", position = {106, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-h3", position = {108, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-i", position = {110, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-k", position = {112, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-l", position = {114, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-m", position = {116, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-n", position = {118, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-p", position = {120, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-grassland-q", position = {122, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-snow-a", position = {124, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-volcanic-a", position = {126, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-a", position = {128, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-b", position = {130, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-c", position = {132, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-d", position = {134, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-e", position = {136, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-f", position = {138, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-g", position = {140, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-h", position = {142, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-i", position = {144, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-j", position = {146, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-k", position = {148, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-l", position = {150, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-m", position = {152, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-n", position = {154, 10}, force = game.forces.player}) + surface.create_entity({name = "tree-wetland-o", position = {156, 10}, force = game.forces.player}) +end diff --git a/Bio_Industries_2/_README b/Bio_Industries_2/_README new file mode 100644 index 0000000..af2356a --- /dev/null +++ b/Bio_Industries_2/_README @@ -0,0 +1,43 @@ +Feeling adventurous? Then check out the new Bio Cannon! Due to recent changes +in Factorio, it doesn't need any control scripting and should therefore be more +UPS friendly. As a bonus, you'll see the range when you hover the cursor over +the bio cannon -- just as with any vanilla turret. It also has a longer range +(120 instead of 90). + +PLEASE NOTE: Factorio >=0.18.33 is required for this! Otherwise, it may happen +that you waste your expensive ammo on a single biter/spitter. + + control_bio_cannon.lua.18.33 + control.lua.18.33 + data-final-fixes.lua.18.33 + + prototypes/Bio_Cannon/entity.lua.18.33 + prototypes/Bio_Cannon/item-group.lua.18.33 + prototypes/Bio_Cannon/item.lua.18.33 + prototypes/Bio_Cannon/recipe.lua.18.33 + +They make the old, combined entity for the Bio Cannon redundant, but as +attack_target_mask can't be used to limit what entities will be attacked +in earlier versions of Factorio, these files aren't officially active yet. + + + +If you want to try out the new Bio Cannon, replace each of these files: + + control_bio_cannon.lua + control.lua + data-final-fixes.lua + + prototypes/Bio_Cannon/entity.lua + prototypes/Bio_Cannon/item-group.lua + prototypes/Bio_Cannon/item.lua + prototypes/Bio_Cannon/recipe.lua + +with its counterpart listed above! I've already made a backup of the original +files, so if it doesn't work, just replace the new files with the *.bak version! + +Does the new Bio Cannon work as expected? Is the new range OK? (Please keep in +mind that this is the "prototype artillery": It should be weaker than the +vanilla artillery turrets, so extending the range even more probably is not a +good idea.) Your feedback is very appreciated and will hopefully help to get +the new Bio Cannon bug-free in time for Factorio 1.0! diff --git a/Bio_Industries_2/changelog.txt b/Bio_Industries_2/changelog.txt new file mode 100644 index 0000000..66c5b2c --- /dev/null +++ b/Bio_Industries_2/changelog.txt @@ -0,0 +1,1187 @@ +--------------------------------------------------------------------------------------------------- +Version: 1.1.19 +Date: 2024-03-01 + Uploaded by: + - Pi-C + + Bugfixes: + - Fixed crash when removing powered rail while hidden pole is invalid. (https://mods.factorio.com/mod/Bio_Industries/discussion/65be75a441884181852d53b4) + - Removed hidden poles from Bio farms. As they won't connect to anything, each Bio farm constitutes a separate electric network, which is bad for UPS. Not sure why we added the hidden pole in the first place, Bio farms seem to run OK without it. (https://mods.factorio.com/mod/Bio_Industries/discussion/65ba2426590578cf816fe311, https://mods.factorio.com/mod/Bio_Industries/discussion/652c7c674499e24c39eff96a) + - Fixed that if setting for stack size tweaks was active, stack size of all affected items would be set to 800 instead of individual values. + - Fixed that saplings planted on concrete etc. would never be removed if they didn't grow into trees. (https://mods.factorio.com/mod/Bio_Industries/discussion/65a7263c5edcecce5efa2751) + - Some optimizations for handling seed bombs. (https://mods.factorio.com/mod/Bio_Industries/discussion/65ac905be323331fba2b3865) + + Changes: + - Limit stacksize of items affected by setting for stack size tweaks to values expected by SE, if it's active. (https://mods.factorio.com/mod/Bio_Industries/discussion/6598d52375514d8c7a8b8201) + + TODO (Need some helpers!): + - Compatibility with Industrial Revolution 3 - Could use help here! + - Add an alternative way to produce plastic without fluids. (https://mods.factorio.com/mod/Bio_Industries/discussion/5e3f5fadc359e6000d54cfb2) + - Add Big gardens for absorbing more pollution. (https://mods.factorio.com/mod/Bio_Industries/discussion/5f318f69f3644760ee6d001e) + - Make algae grow on water to contain pollution there. (https://mods.factorio.com/mod/Bio_Industries/discussion/5f07bed0b6dcd7af988b9fb0) + - Just an idea: Wood harvesters like they used to be in . Could harvest (only) fully grown trees planted by terraformers, and output "trees" that would have to be processed by a sawmill to make wood and wood pulp. Bio farms would also output "trees". The current bio farms already look a bit like a sawmill, so use the current pix for it and get new ones for the bio farm! This would also solve a problem with the German translation: A "Baumschule" is a tree nursery -- it's just for growing trees, not for processing them! + - Add tar recipe if tar is available in the game. + - Make a version of the wooden rail bridge with powered rails. Make version of bridges from other mods (so far "Beautiful Bridge Railway") with powered rails. + - Bigger trees give more wood (https://forums.factorio.com/viewtopic.php?f=16&t=95205) + - Don't plant lying trees + - i'd actually quite like to see a rocket / nuke that is fertiliser only so you can add a bit of greenery to an otherwise nuke scorched wasteland once again! (https://mods.factorio.com/mod/Bio_Industries/discussion/65ac905be323331fba2b3865) + + +--------------------------------------------------------------------------------------------------- +Version: 1.1.18 +Date: 2023-07-18 + Uploaded by: + - TheSAguy + + Bugfixes: + - Fixed crash I introduced that could happen when changing stack size to 200 if SE is installed. + +--------------------------------------------------------------------------------------------------- +Version: 1.1.17 +Date: 2023-06-30 + Uploaded by: + - Pi-C + + Bugfixes: + - Fixed crash in function Tile_Changed(), caused by using a comparison instead of an assignment operator. (https://www.reddit.com/r/factorio/comments/14cjbss/help_with_a_mod_error_bio_industries/?utm_source=share&utm_medium=ios_app&utm_name=ioscss&utm_content=1&utm_term=10) + - Hopefully fixed crash when trying to get the force from player 1 in a singleplayer game. I couldn't reproduce that but I guess if a multiplayer game was saved after player 1 had been removed, and was loaded as a singleplayer game, we might get into a situation where the index of the single player is not 1. (https://mods.factorio.com/mod/Bio_Industries/discussion/649d41b778d997d29385b8cf) + +--------------------------------------------------------------------------------------------------- +Version: 1.1.16 +Date: 2023-06-29 + Uploaded by: + - TheSAguy + + Changes: + - Tiny Compatibility tweak if playing with NE Buildings. No duplicate Dart turret stuff + +--------------------------------------------------------------------------------------------------- +Version: 1.1.15 +Date: 2023-05-2 + Uploaded by: + - TheSAguy + + Changes: + - Incompatible with Industrial Revolution 3 + - New Bio-Cannon Graphic + +--------------------------------------------------------------------------------------------------- +Version: 1.1.14 +Date: 2023-05-1 + Uploaded by: + - TheSAguy + + Changes: + - New Bio-Cannon Logic + (Activate new Bio-Cannon (0.18.33 version) once "NE Buildings" is updated -- we don't want different versions of the cannon in the game!) - DONE + +--------------------------------------------------------------------------------------------------- +Version: 1.1.13 +Date: 2023-04-27 + Uploaded by: + - TheSAguy + + Bugfixes: + - Fixed Bio-Cannon image + +--------------------------------------------------------------------------------------------------- +Version: 1.1.12 +Date: 2023-04-27 + Uploaded by: + - TheSAguy + + Bugfixes: + - Fixed Changelog. + +--------------------------------------------------------------------------------------------------- +Version: 1.1.11 +Date: 2023-04-18 + Uploaded by: + - TheSAguy + + Changes: + - Force max Stack-size to 200 for Bio Industry Items if Space Exploration Mod is active. + +--------------------------------------------------------------------------------------------------- +Version: 1.1.10 +Date: 2021-02-14 + Uploaded by: + - Pi-C + + Bugfixes: + - Fixed that the Bio Cannon didn't show a "No network" icon. As it will only shoot if the hidden radar is hooked up to power, visual feedback is important! + - Changed the collision_box of the Bio Cannon's hidden radar from zero to the base entity's size to make sure that it will get power if a pole is placed next to it. + - Fixed crash when invalid trees were removed from the table in on_configuration_changed. (https://mods.factorio.com/mod/Bio_Industries/discussion/6023229314e09f1463cc4950) + - Fixed that the tree.mining.results would be overwritten if both tree.mining.result and tree.mining.results exist, so trees would yield a variable amount of wood instead of, for example, "rubber-wood". + - Hopefully fixed that Solar boiler, Solar Farm, and Musk floor were not available when IR2 was active. (https://mods.factorio.com/mod/Bio_Industries/discussion/600a5cca5f9fe9c9952b0b8a) + + Changes: + - If IR2 is active, put the "stone-brick" into the same subgroup as concrete again. + - If IR2 is active, ignore any trees it creates (for now, there's just the rubber trees). These trees won't grow if you plant trees manually, with seedbombs, or with terraformers, and their mining results won't be changed. This fixes that rubber trees would yield "wood" instead of "rubber-wood" when mined. (https://mods.factorio.com/mod/Bio_Industries/discussion/600a5cca5f9fe9c9952b0b8a) + +--------------------------------------------------------------------------------------------------- +Version: 1.1.9 +Date: 2021-02-06 + Uploaded by: + - Pi-C + + Bugfixes: + - Revert the change that bigger wooden chests will be disabled if any mod providing its own bigger chests or ware houses is active. (I'll keep the setting, so you can disable the chests yourself if you don't need them.) The general idea (less items cluttering up the menus) was good, but removing the chests altogether without giving players a choice breaks existing games. Sorry for the inconvenience! (https://mods.factorio.com/mod/Bio_Industries/discussion/601e8ee321aae5bce96ccd6b) + +--------------------------------------------------------------------------------------------------- +Version: 1.1.8 +Date: 2021-02-06 + Uploaded by: + - Pi-C + + Bugfixes: + - Fixed crash when upgrading from an old version of the mod because some tables had not been initialized. (https://mods.factorio.com/mod/Bio_Industries/discussion/601a66a1067e93916960c12c) + - Fixed that some of our compound entities were missing icons in the "Electric network info" screen. (https://mods.factorio.com/mod/Bio_Industries/discussion/6017c3bba66ddaa92125380b) + - Fixed that Musk floor wood turn to black when one hovered the cursor over it with an inserter in the hand. (https://mods.factorio.com/mod/Bio_Industries/discussion/600a5cca5f9fe9c9952b0b8a) + + Changes: + - Some more changes to the init process: If a compound entitiy needs additional tables or variables in the global table, their names will be stored with its data. On init, these tables/variables will be created if they didn't exist yet, or will be removed if the compound entity has been disabled. + - Added a setting to turn off BI's bigger wooden chests. The setting will be not available (and the chests won't be created) if any of these mods is active: "AAI Containers & Warehouses", "Advanced storage +", "Angel's Addons - Storage Options", "Bob's Logistics mod", "Crux Chests", "Warehousing Mod". + - Don't create the disassembly recipes if "AAI Industry" is active. + - If "Space Exploration" is active, a recipe for making sand from crushed stone will be added to the "Pulveriser" once that tech has been researched. Also, allow our "x to crushed stone" recipes to be crafted in the pulveriser. + - If "Space Exploration" is active, several of our entities (e.g. bio reactor, cokery, stone crusher,entities that produce/store electricity, poles, and chests) can now be built in space. + + +--------------------------------------------------------------------------------------------------- +Version: 1.1.7 +Date: 2021-01-31 + Uploaded by: + - Pi-C + + Bugfixes: + - Disabled disassemble recipes (and the associated setting) if IR2 is active. This takes care of a crash when both IR2 and "Resource Spawner Overhaul" are active. (https://mods.factorio.com/mod/Bio_Industries/discussion/600a5cca5f9fe9c9952b0b8a) + - If IR2 is active, it's not sufficient to replace "crushed stone" with "gravel" in the recipe ingredients and results only -- we must also replace it in main_product! This fixes a crash when BI was used together with IR2 and "Angel's Refining", and potentially with other mods as well. + - Wrongly assumed that a recipe will have either "icon" or "icons" as soon as it has been created (actually, they may be added later on), and created invalid "icons" entries by copying "icon" when it was nil. Added another check to fix a crash related to a missing icon when IR2 is active. (https://mods.factorio.com/mod/Bio_Industries/discussion/600a5cca5f9fe9c9952b0b8a) + + +--------------------------------------------------------------------------------------------------- +Version: 1.1.6 +Date: 2021-01-31 + Uploaded by: + - Pi-C + + Bugfixes: + - Fixed crash on starting the game when both "Angel's Petrochemical Processing" and "Bob's Power" were active. (https://mods.factorio.com/mod/Bio_Industries/discussion/601594a0b16c8766cfae056b) + - Removed log spam. + + +--------------------------------------------------------------------------------------------------- +Version: 1.1.5 +Date: 2021-01-30 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.18/1.0 (version 0.18.35 of this mod). + + Bugfixes: + - Fixed graphics for the huge solar panel and huge accumulator. Sorry for the inconvenience! (https://mods.factorio.com/mod/Bio_Industries/discussion/600a308ac4310725ccdb30f9, https://mods.factorio.com/mod/Bio_Industries/discussion/600b4e922f7e7ca4a20b684f) + - Fixed crash with "Industrial Revolution 2". Thanks a lot to Deadlock989 for explaining what exactly his mod expects! (https://mods.factorio.com/mod/Bio_Industries/discussion/600a5cca5f9fe9c9952b0b8a) + - Fixed UPS issue when the "Game tweaks: Easy Gardens" setting wasn't enabled. (https://mods.factorio.com/mod/Bio_Industries/discussion/600b8ef119f43a94fc8fdfde) + + Changes: + - If "Industrial Revolution 2" is active, the recipe unlock for the big wooden pole will be moved from "Logistics" to "Energy Distribution 1". This change was necessary to fix the crash. (https://mods.factorio.com/mod/Bio_Industries/discussion/600a5cca5f9fe9c9952b0b8a) + - If IR2 is active, crushed stone will be replaced with gravel in all recipes (both as ingredient and as product). This fixes that the Bio Farm couldn't be built because crushed stone was never unlocked. (https://mods.factorio.com/mod/Bio_Industries/discussion/600a5cca5f9fe9c9952b0b8a) + - If IR2 is active, our stone crusher won't be available. The stone crushing recipes have been moved to the different crushers from IR2 instead. + - The terraformers have a visible radar that will show the scanning progress if you hover the cursor over it. It always bugged me that it would show a different amount of health points if the terraformer was damaged. Now, radar and the actual terraformer will always have the same health. + + Modding: + - Reworked the initialization process. In on_configuration_changed, we now remove invalid compound entities (or parts of them) from the global tables, restore missing hidden entities, and register any compound entities (creating missing hidden entities) that may have been placed by other mods. + - Create separate prototypes of hidden entities for each compound entity. Previously, the same hidden pole prototype (among others) was used in different compound entities, which made it easy to mess up and removing the wrong entities when cleaning up. + - Migrated the names of several hidden entities to follow a common naming scheme. Also changed the names of several sub-tables in the global table, because the entity names are derived from the table names. + - Reworked the structure of the table storing the parts used for each compound entity type. This allows to easily add necessary data to some or all of the hidden entities. Also, adding entirely new compound entities is a cinch now -- we may need that in the not-so-far future! + + +--------------------------------------------------------------------------------------------------- +Version: 1.1.4 +Date: 2021-01-21 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.18/1.0 (version 0.18.34 of this mod). + - There's some serious work going on in the background: Our new graphics artist (snouz) is currently reworking the graphics and the tech tree. You'll see the results in one of the next releases (the next, unless some more bugs have sneaked into this one). + + Locale: + - Fixed Russian translation for "crushed stone". (https://mods.factorio.com/mod/Bio_Industries/discussion/5ff36051a449805c1c979d22) + + Bugfixes: + - We really shouldn't create recipes in data-final-fixes.lua! Moved disassemble recipes over to data-updates.lua. + - Moved the recipe changes (setting "Game tweaks: Recipe") to from data-final-fixes.lua to data-updates.lua. This gives the "Schall Recipe Scaling" a chance to create a scaled version of the stone-wall, concrete, and rail recipes where our changes to the original recipes have been applied. (https://mods.factorio.com/mod/Bio_Industries/discussion/5ff570bd916993002371332a/edit_title) + - Moved the fix for rail collision masks from data-final-fixes.lua to data-updates.lua. This way, Klonan's "Construction Drones" will be able to move over rails again. (https://mods.factorio.com/mod/Bio_Industries/discussion/5ff517c391699300236170a2) + - Fixed that "Coal 2" wasn't shown in list of finished researches even when it was researched. + - Fixed crash when trees planted while "Alien Biomes" was used were still growing, but "Alien Biomes" had been removed from the game. (This will also work if any other mod providing new tree prototypes that could be planted with BI has been removed.) + - Did something stupid in on_configuration_changed. Fixed that the notifications for new recipes would be displayed again each time something changed. (https://mods.factorio.com/mod/Bio_Industries/discussion/6005b910a417d7448960ef64) + + Changes: + - "Bob's Character classes" makes several copies of the default character, and if character selector mods are active, there may also be several characters in the game. All of these characters would show up in the "Made in" list of hand-craftable recipes. Changed it so that hand-craftable recipes won't show "Made in" anymore. + - The Bio boiler now is in the same subgroup as the vanilla boiler, so it won't be on a line of its own in the crafting menu any longer. (Thanks to snouz for pointing this out!) + - Changed the range overlay of the huge substation so that it will cover whole tiles on the edges. (Again, thanks to snouz for finding this!) + - Previous versions of "Automatic Train Layer" didn't raise an event when rails were placed, so our powered rails did not transmit power. Also, there was a bug report related to crashes because of missing hidden entities. -- Added a migration that will add unregistered compound entities to the tables (creating hidden entities) and make sure that all required hidden entities exist for registered compound entities. (https://mods.factorio.com/mod/Bio_Industries/discussion/5ffb8424e005229d819cfc3f) + - Added an optional dependency on "Automatic Train Layer" to ensure only the latest version (1.0.6, fully compatible with BI) is used. If you are using BI 0.18.x, download the latest 1.1 version of ATL and change "factorio_version" in info.json from "1.1" to "1.0" or "0.18". (https://mods.factorio.com/mod/auto-track-laying/downloads) + - There may be multiple characters in the game. Apply character tweaks to the character prototypes that are recognized by "Minime". (Known dummy characters from other mods and characters created by "Bob's Character Classes" will be ignored. If there are any other characters that should/shouldn't be ignored by BI, please tell me!) + - Reduced default stack size of crushed stone to 400. (It still will be set to 800 if the startup setting "Game tweaks: Stack size" is enabled.) + - Modules can't be used with Bio gardens any longer. Using productivity or speed modules didn't make much sense anyway, and using efficiency modules will punish you by removing less instead of more than the base pollution value. (https://mods.factorio.com/mod/Bio_Industries/discussion/6004b7584a731a2870c4c0d5) + + +--------------------------------------------------------------------------------------------------- +Version: 1.1.3 +Date: 2021-01-02 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.18/1.0 (version 0.18.33 of this mod). + + Bugfixes: + - Fixed that the upgrade planner can be used with vanilla rails even with Factorio 1.1. It didn't work because the default collision mask of rails has changed. (https://mods.factorio.com/mod/Bio_Industries/discussion/5febd3c6ddddd4dd1a7ada73) + + Changes: + - If "Beautiful Bridge Railway" is active, the upgrade planner can now be used to change our wooden bridges. + + +--------------------------------------------------------------------------------------------------- +Version: 1.1.2 +Date: 2020-12-31 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.18/1.0 (version 0.18.32 of this mod). + + Bugfixes: + - Fixed crash with "Tral's Robot Tree Farm". (https://mods.factorio.com/mod/Bio_Industries/discussion/5e7cd3f3304f21000db9542c) + - If the upgrade planner was used to replace power rails with other rail types, the hidden power poles would not be removed, so electricity would still be transmitted along the rail track. + + Changes: + - The tree-growing code of BI is based on OwnlyMe's "Robot Tree Farm" mod, as is "Tral's Robot Tree Farm". So, BI would create variations of all tree prototypes, then the other mods would make (unnecessary) variations of BI's variations. As the Robot Tree Farm mods allow for up to 200 growing stages (i.e. tree variations), this would result in a huge amount of prototypes! -- Tral's Robot Tree Farm" will be fixed later so that it ignores our trees. Until then, we remove the redundant prototypes again. + + Minor features: + - Added an option to provide fluid fertilizer/advanced fertilizer. Fluid fertilizers can only be used in the Bio garden, where they replace fertilizer/advanced fertilizer + water. This allows for easy logistics when setting up many Bio gardens next to each other, but you'll have to pay for it: Prefabricating fluid fertilizers requires 50% more fertilizer/advanced fertilizer than combining the solid fertilizers with water on site. (https://mods.factorio.com/mod/Bio_Industries/discussion/5f318f69f3644760ee6d001e) + - Wooden rails and power rails can be used with the upgrade planner again. (https://mods.factorio.com/mod/Bio_Industries/discussion/5febd3c6ddddd4dd1a7ada73) + + +--------------------------------------------------------------------------------------------------- +Version: 1.1.1 +Date: 2020-12-24 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.18/1.0 (version 0.18.31 of this mod). + + Bugfixes: + - Fixed crash in migration script for 0.18.29. (https://mods.factorio.com/mod/Bio_Industries/discussion/5fd97fcc31862922c0d70f66) + - Fixed crash caused by indexing a non-existing value. (https://mods.factorio.com/mod/Bio_Industries/discussion/5fdae5b9c83d2cb4de934a27) + - Fixed crash when "Pyanodons Coal Processing" was active but the startup setting for Bio Fuel was disabled. + - "Omnifluid" changes the ingredients of our terraformer recipes, and other mods may do the same. Fixed that our previous code only accounted for the original recipes and always removed just one item for each ingredient, regardless of what the active recipe specified. + - Fixed that in the English locale, the names of seedbomb recipes with fertilizer/advanced fertilizer contained German text -- stupid cut'n'paste error. :-) + + Changes: + - Improved code of functions that are called when entities are created/removed. + - Improved code for terraformers and tree growing. + - Migrated "fertiliser" to "fertilizer" and "bi-adv-fertiliser" to "bi-adv-fertilizer". + - If "Pyanodons Raw Ores" is active, BI's technologies "Coal processing 1-3" will be removed and the unlocks will be moved to "Raw coal -- Stage 1-3". If "Pyanodons Coal Processing" is active and "Pyanodons Raw Ores" isn't the unlocks from the BI technologies will be moved to "Coal processing 1-3". There's no need to research similar techs from several mods. (https://mods.factorio.com/mod/Bio_Industries/discussion/5fc63d674158dd5b056174b9) + - Won't create liquid air and nitrogen anymore if any other mods provide these. Previously, we only did this if specific other mods were active, now it's more versatile. (https://mods.factorio.com/mod/Bio_Industries/discussion/5fc63d674158dd5b056174b9) + - It's no longer possible to use fertilizer on tiles where it doesn't make sense (e.g. Musk floor or concrete). If you do try it, you'll just waste fertilizer! + + +--------------------------------------------------------------------------------------------------- +Version: 1.1.0 +Date: 2020-12-14 + Uploaded by: + - Pi-C + + Info: + - Updated for Factorio 1.1. This release contains all changes from version 0.18.30. Because we use the same code, most of the things that will be implemented in the future will also be released for the currently stable 0.18/1.0 branch. + + +--------------------------------------------------------------------------------------------------- +Version: 0.18.30 +Date: 2020-12-14 + Uploaded by: + - Pi-C + + Bugfixes: + - Fixed a crash caused by a stupid typo. (https://mods.factorio.com/mod/Bio_Industries/discussion/5fc622a14158dd5b055b4c7e) + - Fixed that terraformers wouldn't plant trees on landfill. (https://mods.factorio.com/mod/Bio_Industries/discussion/5fb01dbbeeb1d4a1fe0a7eac) + - Fixed crash with Omnifluid by blacklisting the "Bio Solar plant and boiler". + - Fixed a crash caused by a recently added global table that wasn't initialized from on_configuration_changed. + - Fixed tree-growing code. Once a seedling has been successfully planted, it will grow to a tree by passing up to 4 stages now, as originally intended. + - Removed "concrete" as prerequisite technology for "advanced-material-processing-2" because it's already an implicit prerequisite. + + Changes: + - Bumped dependency on the base mod to the latest version of Factorio 0.18. This will allow me to remove a lot of version checks, providing a clean base for using the code in both the stable and the experimental branches of Factorio. + - Improved code of terraformer functions. Also removed the almost-duplicate function that was used for OmniFluid. (It's easier to maintain the code if everything is combined.) + - Significantly shortened the code for growing trees and made it work as originally intended: With each stage, mining a tree will take more time, but the chance to yield something will also grow. In the early stages ("Growing tree"), you'll only get back a sapling at best, in the last stage ("Young tree") a yield of 1 wood is guaranteed. Fully grown trees will yield 4 wood or 1…6 wood if the startup setting "Game tweaks: Tree yield" is active. So, it really makes sense now to wait for trees to be fully grown before mining them! + + +--------------------------------------------------------------------------------------------------- +Version: 0.18.29 +Date: 2020-11-30 + Uploaded by: + - Pi-C + + Bugfixes: + - Fixed that some disassembling recipes were not available. + - Fixed crash with an old migration script. (https://mods.factorio.com/mod/Bio_Industries/discussion/5f5f4f358985e0b8e5ba5115) + - Removed obsolete "per_user = false" attribute from settings. :-) (https://forums.factorio.com/viewtopic.php?p=305644#p305644) + - Fixed that we didn't reload technologies when the configuration changed. Thus, an alternative recipe we've added for another mod would remain in the game (and be useless) even after that mod had been removed. + - Fixed that compound entities (bio farm, cannon, powered rails etc.) placed by "Construction Drones" and similar mods reviving ghosts didn't work. (https://mods.factorio.com/mod/Bio_Industries/discussion/5f824c45b1a1a0637d24d056) + + Changes: + - Moved recipes "Solid fuel from wood bricks", "Bio stone brick", and "Basic gas processing" from "Coal processing 1" to "Coal processing 2". These recipes can only be used in chemical plants, which are guaranteed to be available when "Coal processing 2" is researched. Also, the move gives an incentive to really use wooden bricks as fuel instead of converting them to solid fuel almost immediately. + - Rearranged settings and unified/shortened setting names. + - Inverted setting: "Hide electric grid overlay" for Musk floor is now "Enable: Electric grid overlay". This way, it blends in with the other settings. + - Changed debugging routines so that debugging output is only formatted if debugging is activated. This should make the mod a bit more performant. + - The recipe for advanced fertilizer was only unlocked if Bio Fuels were enabled per startup setting. Advanced fertilizer (as well as the bioreactor and the basic recipe for algae biomass) will always be available now, regardless of this setting. (https://mods.factorio.com/mod/Bio_Industries/discussion/5ec7ff6cbe5352000eb8f875) + + Graphics: + - Made new battery icon so it's in sync with the vanilla icon again. + - Gave all graphics the "optipng" treatment. + - TheSAguy provided alternative icons for use with the recipes "Bio-mass conversion 2" and "Basic gas processing" if "Angel's Petro Chemical Processing" is active. + + Locale: + - Completely reworked localization -- no need to translate everything, using crossreferences is way easier! Also, the new descriptions should explain some things that many players apparently didn't understand. + - Removed some obsolete strings. + - Added German locale. Thanks to Tobilike! (https://forums.factorio.com/viewtopic.php?p=508622#p508622) + - Fixed some typos in the English localization. + - I've cleaned up the Russian localization by removing obsolete strings and adding placeholders for new ones. This should make work easier for translators. However, I don't speak Russian, so it would be best if somebody would look over all strings again and update them! + + Modding: + - Added support for "Lua API global Variable Viewer (gvv)" by x2605. If that mod is active, you can inspect the global table of this mod at runtime -- just enter "/gvv" at the console, it's quite useful for debugging! (https://mods.factorio.com/mod/gvv) + + +--------------------------------------------------------------------------------------------------- +Version: 0.18.28 +Date: 2020-08-14 + Uploaded by: + - Pi-C + + Info: + - All changes from 0.18.28 are also available for Factorio 0.17 (version 0.17.59). Yes, I know 0.17.58 was supposed to be the last version. But a crash needs to be fixed … + + Bugfixes: + - Fixed crash in migration script if a bio-reactor had no recipe set. (https://mods.factorio.com/mod/Bio_Industries/discussion/5f36deb43b315081c5dd4496) + +--------------------------------------------------------------------------------------------------- +Version: 0.18.27 +Date: 2020-08-14 + Uploaded by: + - Pi-C + + Info: + - All changes from 0.18.27 are also available for Factorio 0.17 (version 0.17.58). + + Bugfixes: + - Fixed crash when recipes for liquid air and nitrogen don't exist because alternatives from other mods are used instead. (https://mods.factorio.com/mod/Bio_Industries/discussion/5f369b1c4026d79854f0dad9) + - Fixed crash with Factorio 1.0 because of an error in the version checks. (https://mods.factorio.com/mod/Bio_Industries/discussion/5f366429002cac73f72966f2, https://mods.factorio.com/mod/Bio_Industries/discussion/5f36a8d13b315081c5d2f903) + + Changes: + - Pretty-formatted the rest of the code. Making it more readable makes it easier to maintain, and it doesn't hurt either that removing unnecessary white space shrinks filesizes a bit. :-) + - The internal names of the recipes "bi-biomass-2" and "bi-biomass-3" were not appropriate as "bi-biomass-2" was the more advanced recipe. Exchanged the recipe names in the complete code, and added a migration script so that bio-reactors would continue to work on the correct recipe after loading. + +--------------------------------------------------------------------------------------------------- +Version: 0.18.26 +Date: 2020-08-13 + Uploaded by: + - Pi-C + + Info: + - All changes from 0.18.26 are also available for Factorio 0.17 (version 0.17.57). + + Bugfixes: + - Fixed crash in migration script of versions 0.17.55/0.18.24. (https://mods.factorio.com/mod/Bio_Industries/discussion/5f1613573883b1bffadfbdd2) + - Fixed that placing musk floor would mine existing path tile and remove the musk floor tiles from the inventory, but not place them. (https://mods.factorio.com/mod/Bio_Industries/discussion/5f1613573883b1bffadfbdd2) + - In games where many mods are used and where more than 255 tiles are defined, Alien Biomes will convert some tiles to "landfill". Fixed that this would break musk-floor tiles. + - Fixed crash because of Nitrogen and Liquid air being created in data-final-fixes.lua. (https://mods.factorio.com/mod/Bio_Industries/discussion/5f31f7ba75ce84907a09f877, https://mods.factorio.com/mod/Bio_Industries/discussion/5f330890606ff2dea2e30c02) + +--------------------------------------------------------------------------------------------------- +Version: 0.18.25 +Date: 2020-08-07 + Uploaded by: + - Pi-C + + Info: + - All changes from 0.18.25 are also available for Factorio 0.17 (version 0.17.56). + + Changes: + - Added setting to enable the BI recipe for Production science packs. You may want to disable this if you play with other mods where the additional recipe is much cheaper than the first one, so that using the BI recipe would break the balance. + - The BI recipe for Production science pack will be automatically disabled regardless of the setting above if "Krastorio" or "Krastorio 2" is active because the BI recipe definitely breaks balance with K2 (according to TheSAguy). + +--------------------------------------------------------------------------------------------------- +Version: 0.18.24 +Date: 2020-07-06 + Uploaded by: + - Pi-C + + Info: + - All changes from 0.18.24 are also available for Factorio 0.17 (version 0.17.55). + - If you are feeling adventurous, you can be an early adopter of the new Bio Cannon! Instructions are included in the file "_README". + PLEASE NOTE: THIS WILL ONLY WORK WITH FACTORIO >=0.18.33! + + Bugfixes: + - Fixed connection issue with Powered rails. (https://mods.factorio.com/mod/Bio_Industries/discussion/5eac04c6e0fdb1000c437b88/edit/3) + - Hopefully also fixed the big lag caused by placing powered rails with the connection fix. (https://mods.factorio.com/mod/Bio_Industries/discussion/5efcd751acf8d21414888772) + - Fixed that icon for the Nitrogen recipe wasn't the same as the icon for the fluid. + + Changes: + - The recipe for sand from crushed stone is now also active if the "BioTech" mod is used. (https://mods.factorio.com/mod/Bio_Industries/discussion/5efbea86a9fc8de786653d1d) + - Added migration script to rewire powered rails. If you have a large rail network with lots of powered rails and then some, this may take a while to finish! + +--------------------------------------------------------------------------------------------------- +Version: 0.18.23 +Date: 2020-06-30 + Uploaded by: + - Pi-C + + Info: + - All changes from 0.18.23 are also available for Factorio 0.17 (version 0.17.54). + + Minor Features: + - Added recipe to make sand from crushed stone if any other mod provides sand. Implemented on request of TheSAguy, who also provided recipe icons. + +--------------------------------------------------------------------------------------------------- +Version: 0.18.22 +Date: 2020-06-21 + Uploaded by: + - Pi-C + + Info: + - All changes from 0.18.22 are also available for Factorio 0.17 (version 0.17.53). + + Bugfixes: + - I was so focused on "Transport Drones" removing "object-layer" from all rail collision masks that I forgot to add it as default it "Transport Drones" wasn't active. That caused crashes with "Beautiful Bridge Railway" and "Cargo Ships" -- and probably other mods as well. Sorry for the inconvenience! (https://mods.factorio.com/mod/Bio_Industries/discussion/5eef8d3055f19e00373cda0b, https://mods.factorio.com/mod/Bio_Industries/discussion/5eef8c2155f19e000cce659d) + +--------------------------------------------------------------------------------------------------- +Version: 0.18.21 +Date: 2020-06-21 + Uploaded by: + - Pi-C + + Info: + - All changes from 0.18.21 are also available for Factorio 0.17 (version 0.17.52). + + Bugfixes: + - Fixed that wooden rail bridges had a wrong collision mask after the last change, so they couldn't be built in their natural habitat (on water) anymore. The same has been reported for powered rails, but as these are just rails (not bridges), it doesn't make sense to build them on water. (https://mods.factorio.com/mod/Bio_Industries/discussion/5eee120d28bd58000f43d007) + + Changes: + - Added hidden optional dependency on "Transport Drones", so if it's active and changes the collision mask of BI rails, the damage can be reverted in such a way that it's possible to build wooden bridges across water, but not through cliffs. +--------------------------------------------------------------------------------------------------- +Version: 0.18.20 +Date: 2020-06-18 + Uploaded by: + - Pi-C + + Info: + - All changes from 0.18.20 are also available for Factorio 0.17 (version 0.17.51). + + Bugfixes: + - Fixed that wooden underground pipes were not fast-replaceable via upgrade planner (found by TheSAguy). + - Fixed that wooden rails had a wrong collision mask, so trains could drive through cliffs (found by TheSAguy). + + Changes: + - Reverted change from 0.17.49/0.18.17: If "Angel's Petro Chemical Processing" is active, Basic Petroleum gas processing will output Methane gas again because it doesn't make sense that our recipe is the only one that will produce Petroleum gas (suggested by TheSAguy). + + Locale: + - Renamed "Basic Petroleum gas processing" to "Basic gas processing" so the recipe name will still fit even if another mods (e.g. "Angel's Petro Chemical Processing") changes the result. + + Modding: + - Migrated recipe "bi-basic-petroleum-gas-processing" to "bi-basic-gas-processing". + - Changed filename of icon from "bi_basic_petroleum_gas_processing.png" to "bi_basic_gas_processing.png". + +--------------------------------------------------------------------------------------------------- +Version: 0.18.19 +Date: 2020-06-08 + Uploaded by: + - Pi-C + + Info: + - All changes from 0.18.18/19 are also available for Factorio 0.17 (version 0.17.50). + + Bugfixes: + - Fixed size of more icons to prevent crashes on load. (https://mods.factorio.com/mod/Bio_Industries/discussion/5eddc5c5a9868c000c3950ab) + +--------------------------------------------------------------------------------------------------- +Version: 0.18.18 +Date: 2020-06-06 + Uploaded by: + - Pi-C + + Bugfixes: + - Fixed crash on load because of a wrong icon size. + +--------------------------------------------------------------------------------------------------- +Version: 0.18.17 +Date: 2020-06-06 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.49). + + Changes: + - Added some logic to data stage code so that the same code can be used for Factorio 0.17 and 0.18 (concerns icon size, particles, and sound definitions). + - Changed icons to 64x64. Tanks to TheSAguy for providing these! + - By request of TheSAguy, it now takes just half the time to craft Bio-Nurseries (2.5 normal, 4 expensive) and Bio-Farms (5 normal, 7.5 expensive). I've also halved the time needed to mine wooden floor. + - If "Krastorio 2" is active, the recipes for Nitrogen and Liquid air will now be removed from "Bio Industries". (https://mods.factorio.com/mod/Bio_Industries/discussion/5e713a510e1f16000e1f6b0b) + - Recipes for Nitrogen and Liquid air will also be removed if "Krastorio" (for 0.17) or "Angel's Petro Chemical Processing" are active. + - If "Angel's Petro Chemical Processing" is active, revert that it changes the result of Basic petroleum gas processing from Petroleum gas to Methane gas. + - TheSAguy just added some mips, so items on belts don't look too monotonous. + + Bugfixes: + - Prototype artillery and terraformer could be built directly or with the pipette tool. However, they wouldn't be blueprinted correctly (wrong entity was used), so the hidden entities were not created and things didn't work. Fixed that! + + Major Features: + - TheSAguy provided a patch that adds a new recipe: "Inefficient Petroleum gas extraction". You now can generate the petroleum you'll need for BI from coal, resin, and steam. Thanks a lot! + +--------------------------------------------------------------------------------------------------- +Version: 0.18.16 +Date: 2020-05-08 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.48). + + Changes: + - Removed pollution value from thorium-fuel-cell. + + Locale: + - Added an update of the Russian translation. Thanks to Dragonling for providing it! + (His translations mod is here: .) + + Bugfixes: + - Fixed size of several icons. Thanks to TheSAguy for pointing out errors! + +--------------------------------------------------------------------------------------------------- +Version: 0.18.15 +Date: 2020-05-02 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.47). + + Bugfixes: + - Fixed a crash when the player tried to start a minitutorial. (https://mods.factorio.com/mod/Bio_Industries/discussion/5eabe45ee99b81000cb9d79b) + +--------------------------------------------------------------------------------------------------- +Version: 0.18.14 +Date: 2020-04-29 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.46). + + Bugfixes: + - Fixed a crash because of another local variable that escaped into global scope. (https://mods.factorio.com/mod/Bio_Industries/discussion/5ea9ab456221b2000c931549) + +--------------------------------------------------------------------------------------------------- +Version: 0.18.13 +Date: 2020-04-29 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.45). + + Bugfixes: + - The migration script from 0.18.11 contained a bug that could lead to a crash on loading a saved game. Removed the old migration script and included a fixed version of it under a new name. (https://mods.factorio.com/mod/Bio_Industries/discussion/5e8d787758a9e4000f9f9f65) + - Fixed a crash on startup with "Xander Mod". (https://mods.factorio.com/mod/Bio_Industries/discussion/5e9326ab5ca918000bb48584) + - Fixed that the localization strings for the coal-processing technologies were commented out in the Russian locale. + + Changes: + - Added startup setting allowing to hide electric grid overlay for Musk floor in map view again. (Basically, this reverts to the same display of Musk floor that was used before version 0.18.9 because of a bug -- but now it's feature!) + + Please note: + - Hiding the overlay will always work. + - Displaying the overlay will work in new games and for any musk floor you build after updating the mod. In singleplayer games, it will also work for existing tiles. + - In multiplayer games, it's impossible to determine which force an existing musk floor tile belongs to, so the overlay won't be displayed for existing tiles. It will work, however, for newly built tiles. (Therefore, you can solve this problem by deconstructing old musk floor tiles and rebuilding them.) + + - Added startup setting that allows to turn off small collision boxes for trees on user request. I'm not sure if this will change anything in terms of balancing tree growth, so consider this experimental for now! (https://forums.factorio.com/viewtopic.php?p=490610#p490610) + +--------------------------------------------------------------------------------------------------- +Version: 0.18.12 +Date: 2020-04-08 + Uploaded by: + - Pi-C + + Bugfixes: + - Fixed a crash on start-up because of changed sound definitions in Factorio 0.18.18. + +--------------------------------------------------------------------------------------------------- +Version: 0.18.11 +Date: 2020-04-01 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.44). + + Bugfixes: + - The previous update removed too many hidden entities during migration. Restoring them now -- sorry for messing this up! (https://mods.factorio.com/mod/Bio_Industries/discussion/5e83067d7414e1000e288308) + +--------------------------------------------------------------------------------------------------- +Version: 0.18.10 +Date: 2020-04-01 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.43). + + Bugfixes: + - Because of a bug in one of the last updates, the radar was left behind when a terraformer had been removed. Added a migration script to clean up that mess. (https://mods.factorio.com/mod/Bio_Industries/discussion/5e83067d7414e1000e288308) + + Changes: + - Add solar cells to the recipe of Musk floor if "Simple Silicon" is active. Musk floor works with solar power, so it's just natural that solar cells should go in there. Also, this change provides another sink for all the silicon (or for stone, which can be processed to make silicon). + +--------------------------------------------------------------------------------------------------- +Version: 0.18.09 +Date: 2020-03-29 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.42). + + Bugfixes: + - Fixed another bug with local variables used globally. (https://mods.factorio.com/mod/Bio_Industries/discussion/5e7fce26c7d268000d057adc) + +--------------------------------------------------------------------------------------------------- +Version: 0.18.08 +Date: 2020-03-28 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.41). + + Bugfixes: + - Fixed another bug where error messages would be spammed in the game. (https://mods.factorio.com/mod/Bio_Industries/discussion/5e7e85c3050345000dc0cdd9) + +--------------------------------------------------------------------------------------------------- +Version: 0.18.07 +Date: 2020-03-27 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.40). + + Bugfixes: + - Fixed a new bug where error messages would be spammed in the game. Hopefully, I found everything now! (https://mods.factorio.com/mod/Bio_Industries/discussion/5e7e14b82de368000c80bca3) + - Fixed crash when setting "Enable: Bio fuel production" was turned off. (https://mods.factorio.com/mod/Bio_Industries/discussion/5e7e42e99be7f2000b5a2efc) + - Fixed the localization for growing trees (a fixed English string was used before). + + Locale: + - Added localization keys for growing trees. + +--------------------------------------------------------------------------------------------------- +Version: 0.18.06 +Date: 2020-03-27 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.39). + + Bugfixes: + - Fixed that error messages would be spammed every few seconds if the Terraformer was active. (https://mods.factorio.com/mod/Bio_Industries/discussion/5e7b8042a1862e000ec7013a) + - Fixed that some local variables had escaped into global scope. + + Changes: + - Cleaned up the code a bit to increase readability and make maintaining the mod easier. + +--------------------------------------------------------------------------------------------------- +Version: 0.18.05 +Date: 2020-03-25 + Uploaded by: + - Pi-C + + Info: + - All changes (except Krastorio² compatibility) are also available for Factorio 0.17 (version 0.17.38). + + Bugfixes: + - Fixed that Bio boiler couldn't fast-replace other boilers. + - Fixed crash when "Alien Biomes" was active but its setting "Include Tiles: Grass - Green" had been turned off. (https://mods.factorio.com/mod/Bio_Industries/discussion/5e74fcd3dee906000eba1ad8) + - Fixed bug with vanilla artillery shells used in the bio-cannon. + - Fixed that destroyed or removed bio-cannons were not removed from list of bio cannons to be checked. + + Changes: + - Added optional dependencies on "Alien Biomes" and "Krastorio 2". + - Only prototype artillery ammo can be used with the bio-cannon now, not vanilla artillery shells! It didn't make much sense that you should be able to use it with prototype artillery in the first place. Also, it fixes a bug when the bio-cannon tried to actually shoot with vanilla artillery shells. + +--------------------------------------------------------------------------------------------------- +Version: 0.18.04 +Date: 2020-02-16 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.37). + + Bugfixes: + - Fixed that prototype artillery couldn't be fed by inserters (Order is important: first the hidden radar must be created, then the cannon!). + (https://mods.factorio.com/mod/Bio_Industries/discussion/5dcc0996863888000b1b1900) + + - Fixed that prototype artillery couldn't be blueprinted. + +--------------------------------------------------------------------------------------------------- +Version: 0.18.03 +Date: 2020-02-12 + Uploaded by: + - Pi-C + + Bugfixes: + - Fixed crash with base mod 0.18.2 and 0.18.3. Bio Industries referenced sounds that didn't exist before Factorio 0.18.4; didn't catch that because I already was on the latest version. + (https://mods.factorio.com/mod/Bio_Industries/discussion/5e420af6efb7b9000d898545) + + Changes: + - Bumped dependency on the base mod to ">=0.18.2" because of the sound changes in 0.18.2. + +--------------------------------------------------------------------------------------------------- +Version: 0.18.02 +Date: 2020-02-11 + Uploaded by: + - Pi-C + + Info: + - All changes are also available for Factorio 0.17 (version 0.17.36). + + Bugfixes: + - Fixed crash with "Pyanodons Coal Processing": its graphics have been moved to "Pyanodons Coal Processing Graphics" recently, so "Bio Industries" referenced files that didn't exist. + + Changes: + - BI uses the icon for ash from "Pyanodons Coal Processing" (PCP) if that mod is active. However, the icon for ash from BI was still used in the icons of BI-recipes that have ash as ingredient. I made alternative versions of these icons that are based on PCP's icon for a more coherent look. + +--------------------------------------------------------------------------------------------------- +Version: 0.18.01 +Date: 2020-02-10 + Info: + - TheSAguy asked me (Pi-C) to look after his mod for a while, so this is my first release of a "Bio Industries" update. + - All changes are also available for Factorio 0.17 (version 0.17.35). + + Uploaded by: + - Pi-C + + Bugfixes: + - Fixed inconsistency in labels of unlocked recipes for Biofuel Conversion 2, 3. (https://forums.factorio.com/viewtopic.php?f=7&t=80546) + + - Fixed that terraformers wouldn't plant on landfill. (https://mods.factorio.com/mod/Bio_Industries/discussion/5e1bd9b7e60b78000d1b8c1b) + + - Fixed that terraformers couldn't be blueprinted. (https://mods.factorio.com/mod/Bio_Industries/discussion/5dbbf3f05ba8c1000ccf008a) + + - Fixed that names of items and recipes didn't match. (https://mods.factorio.com/mod/Bio_Industries/discussion/5ca1534d3f02c6000d51b9b8) + + - Bumped dependency on Factorio Standard Library (stdlib) to >=1.4.0. (https://mods.factorio.com/mod/Bio_Industries/discussion/5e34215f78fa0a000c20822c) + + Changes: + - Changed prerequisite technologies for Coal processing 2 (added Chemical science pack) and 3 (added Production science pack). (https://mods.factorio.com/mod/Bio_Industries/discussion/5dcd0fa3797d9c000cb993f2) + + - Added recipes to make crushed stone from Concrete, Hazard concrete and their refined-concrete counterparts. They can be made in the stone crusher after "Advanced Material Processing 2" has been researched (processing stone takes 1.5s, vs. 2.5s for concrete/hazard concrete; processing the refined-concrete varieties will yield twice the amount, but take twice the time). I've also added "Concrete" to the prerequisites of "Advanced Material Processing 2". (https://mods.factorio.com/mod/Bio_Industries/discussion/5e11565b6cc0eb000b9732bc) + + - If Dectorio is installed, you won't be able any longer to place wood on the ground as wooden flooring. However, any existing wooden flooring will remain in place and can be mined (returning wood). (https://mods.factorio.com/mod/Bio_Industries/discussion/5d7e610164c43b000c4e23a6) + + - Reduced supply area of Big wooden pole (4x4 to 3x3) and Huge electric pole (4x4 to 2x2). Also changed name of "Huge electric pole" to "Huge wooden pole" for consistency. (https://mods.factorio.com/mod/Bio_Industries/discussion/5d7d35d2e18d8c000bb016c0/edit_title) + + - Removed fuel value from ash. + + - Added bioreactor to blacklist of Assembler Pipe Passthrough to avoid crashes on migration because of mixing fluids. (It used to be blacklisted in APP already, but with the changes to prototype names it's easier if we blacklist our own stuff directly.) + + - Changed icon for recipe of Bio battery -- it still used the battery icon from Factorio 0.16.x. + + - Changed graphics for Power-to-rail connector. Now it resembles a medium electric pole (like in the icon) -- not a small electric pole. + + - Allow productivity modules when making Production science packs with the BI recipe. (https://mods.factorio.com/mod/Bio_Industries/discussion/5da3445450a256000b56f116) + + - Unified format of datestrings and merged categories "Bugfix:"/"Bugfixes:" in the changelog. + + Locale: + - Changed item-description of "Change terrain (advanced)" and "Change terrain & plant trees (advanced)" to explain the advantages over the basic recipe. + + - Changed a lot of prototype names. Check out migrations/Bio_Industries_0.18.01.json for a complete list of the new names! + +--------------------------------------------------------------------------------------------------- +Version: 0.18.00 +Date: 2020-01-22 + Uploaded by: + - TheSAguy + + Features: + - Updated to Factorio Version 0.18. Nothing else or tested... + +--------------------------------------------------------------------------------------------------- +Version: 0.17.34 +Date: 2019-11-04 + Uploaded by: + - TheSAguy + + Bugfixes: + - "collision_mask" Updated. Thanks Pi-C! + +--------------------------------------------------------------------------------------------------- +Version: 0.17.33 +Date: 2019-11-04 + Uploaded by: + - TheSAguy + + Bugfixes: + - Compatibility wiht Factorio 0.17.75 + +--------------------------------------------------------------------------------------------------- +Version: 0.17.32 +Date: 2019-09-07 + Uploaded by: + - TheSAguy + + Features: + - Added speed modules to stone crusher + +--------------------------------------------------------------------------------------------------- +Version: 0.17.31 +Date: 2019-08-08 + Uploaded by: + - TheSAguy + + Features: + - Alternative Production Science Pack Recipe. Uses Wood Rail + - Added new Recipe Wood from Woop pulp and Resin + Bugfixes: + - Arboretum recipe - water crash fix + +--------------------------------------------------------------------------------------------------- +Version: 0.17.30 +Date: 2019-07-15 + Uploaded by: + - TheSAguy + + Bugfixes: + - Fixed Change log :) + +--------------------------------------------------------------------------------------------------- +Version: 0.17.29 +Date: 2019-07-14 + Uploaded by: + - TheSAguy + + Bugfixes: + - Compatibility wiht Angels Petrochem - Changed Liquid-Air to gas-compressed-air + +--------------------------------------------------------------------------------------------------- +Version: 0.17.28 +Date: 2019-07-02 + Uploaded by: + - TheSAguy + + Features: + - Converted fully to "Factorio Standard Library" https://mods.factorio.com/mod/stdlib Now also a dependancy + +--------------------------------------------------------------------------------------------------- +Version: 0.17.27 +Date: 2019-06-26 + Uploaded by: + - TheSAguy + + Bugfixes: + - Compatibility wiht Angels Petrochem - Changed Nitrogen to Nitrogen-gas + +--------------------------------------------------------------------------------------------------- +Version: 0.17.26 +Date: 2019-06-08 + Uploaded by: + - TheSAguy + + Features: + - Moved recipe Coal to Pellet Coke from Coal Tech 2 to Coal Tech 3. + - Russian translation update. Thx IgorLutiy & Va7ya + Bugfixes: + - Compatibility with Sapling Mod + +--------------------------------------------------------------------------------------------------- +Version: 0.17.25 +Date: 2019-06-06 + Uploaded by: + - TheSAguy + + Bugfixes: + - Removed debug flag + +--------------------------------------------------------------------------------------------------- +Version: 0.17.24 +Date: 2019-06-06 + Uploaded by: + - TheSAguy + + Features: + - Reworked a little of the new tree code. Added a couple more checks. + Bugfixes: + - Possible bug fix if tree does not have a stump. + +--------------------------------------------------------------------------------------------------- +Version: 0.17.23 +Date: 2019-06-05 + Uploaded by: + - TheSAguy + + Features: + - Renamed Seedlings to Saplings + - Totally reworked how saplings grow. Big thanks to OwnlyMe and his Robot Tree Farm + Bugfixes: + - Fixed Huge Accumulator collision box + +--------------------------------------------------------------------------------------------------- +Version: 0.17.22 +Date: 2019-05-29 + Uploaded by: + - TheSAguy + + Features: + - Rebalanced fuel_emissions_multiplier. See "Fuel Values.xlsx" in Mod folder + - Moved "fuel_emissions_multiplier" settings to "data-final-fixes.lua" so it changes Bobs + - Added New Item "Fuel Brick" + - Added New Recipe Fuel Brick to Solid Fuel + - Added New Recipe Solid Fuel to Pellet Coke + - Rebalanced Dard Ammo damage values + +--------------------------------------------------------------------------------------------------- +Version: 0.17.21 +Date: 2019-05-21 + Uploaded by: + - TheSAguy + + Features: + - Removed obsolete FARL code + - Made "fuel_emissions_multiplier" settings optional in mod settings + +--------------------------------------------------------------------------------------------------- +Version: 0.17.20 +Date: 2019-05-20 + Uploaded by: + - TheSAguy + + Features: + - Updated "fuel_emissions_multiplier" of common items with a fuel value + - Angels Charcoal must be made in a Cokery + Bugfixes: + - Compatibility with FARL updated. added "defines.events.script_raised_built" & "defines.events.script_raised_destroy" + +--------------------------------------------------------------------------------------------------- +Version: 0.17.19 +Date: 2019-05-08 + Uploaded by: + - TheSAguy + + Features: + - Renamed "bi-Charcoal" to "Wood-Charcoal" to match Angels + - Update to new "emissions_per_minute" + - Added a hidden lamp and power pole to the Terraformer +--------------------------------------------------------------------------------------------------- +Version: 0.17.18 +Date: 2019-05-03 + Uploaded by: + - TheSAguy + + Features: + - Update to Factorio 0.17.35 - Thx wchristian + +--------------------------------------------------------------------------------------------------- +Version: 0.17.17 +Date: 2019-04-15 + Uploaded by: + - TheSAguy + + Features: + - Reduced Ash fuel value 2MJ -> 1MJ + - Moved Crushed Stone from Bio Nursery to Bio Farm + - Moved Stone Brick from Bio Farm to Bio Nursery + - Updated Solar Farm Recipe if Bob's Power is used + - Deleted some Recipe descriptions that were not needed + Bugfixes: + - Fixed potential crash is you're using Angels and not Bob - nitrogen + +--------------------------------------------------------------------------------------------------- +Version: 0.17.16 +Date: 2019-04-11 + Uploaded by: + - TheSAguy + + Features: + - Updated Liquid Air and Nitrogen to match Bob's + - Added Coal Liquefication recipe + +--------------------------------------------------------------------------------------------------- +Version: 0.17.15 +Date: 2019-04-10 + Uploaded by: + - TheSAguy + + Features: + - Tweaked Recipes slightly to be more in alignment with fuel values + - Ash icon update if you're using Pymods + - Wooden board icon update if you're using ShinyBob + - Added a fuel chart in mod folder and here: https://imgur.com/WXTpLAw + +--------------------------------------------------------------------------------------------------- +Version: 0.17.14 +Date: 2019-04-08 + Uploaded by: + - TheSAguy + + Features: + - Tweaked Dart Turret collision mask + - Tweaked Wooden Pipe mining speeds + - Tweaked Fuel Values - Please QC + - Ash compatible with Pymods - Thx Mithaldu + - Dependency changed to Factorio 0.17.23 + Bugfixes: + - Fixed potential Migration Script crash + +--------------------------------------------------------------------------------------------------- +Version: 0.17.13 +Date: 2019-04-01 + Uploaded by: + - TheSAguy + + Bugfixes: + - Added Migration Script - Just in case + +--------------------------------------------------------------------------------------------------- +Version: 0.17.12 +Date: 2019-04-01 + Uploaded by: + - TheSAguy + + Bugfixes: + - Updated Wooden Fence Icon + - Renamed "electric-energy-accumulators-1" to "electric-energy-accumulators" + +--------------------------------------------------------------------------------------------------- +Version: 0.17.11 +Date: 2019-03-28 + Uploaded by: + - TheSAguy + + Features: + - Tweaked Pollution Absorption values for Bio Farm and Garden + - New Prototype ammo for Prototype Artillery + - Tweaked Prototype Artillery ammo tech requirements + +--------------------------------------------------------------------------------------------------- +Version: 0.17.10 +Date: 2019-03-26 + Uploaded by: + - TheSAguy + + Bugfixes: + - Removed the ability to upgrade wooden rail to concrete rail. Was causing issues: https://forums.factorio.com/viewtopic.php?f=25&t=68568&p=417382#p417382 + +--------------------------------------------------------------------------------------------------- +Version: 0.17.9 +Date: 2019-03-20 + Uploaded by: + - TheSAguy + + Features: + - New Huge Substation Graphic - Thx RoyalDraco + - New Gun Dart Rifle + Bugfixes: + - Wooden Rail can now upgrade to Regular (Concrete) Rail with the Upgrade Planner + +--------------------------------------------------------------------------------------------------- +Version: 0.17.8 +Date: 2019-03-18 + Uploaded by: + - TheSAguy + + Features: + - Renamed "emissions_per_tick" to "emissions_per_second" + - Renamed "emissions" to "emissions_per_second_per_watt" + - "Wooden-Boards" can now be made in Bob's Electronics Assembling machine + - Russian Local Update - Thx IgorLutiy + +--------------------------------------------------------------------------------------------------- +Version: 0.17.7 +Date: 2019-03-14 + Uploaded by: + - TheSAguy + + Features: + - Renamed all instances of Bio Cannon to Prototype Artillery + - Tweak to Prototype Artillery damage upgrades + - Removed Bob's Lib Dependency - too confusing for peeps + +--------------------------------------------------------------------------------------------------- +Version: 0.17.6 +Date: 2019-03-11 + Uploaded by: + - TheSAguy + + Bugfixes: + - Removed Ammo Descriptions, now it shows damage values + - Moved Crushed Stone Recipe to Steel Processing also + +--------------------------------------------------------------------------------------------------- +Version: 0.17.5 +Date: 2019-03-06 + Uploaded by: + - TheSAguy + + Bugfixes: + - Solar Boiler Fixed, won't cash if built next to pipes with different fluids + - YOU WILL LOSE ALL OLD Solar Boilers! + +--------------------------------------------------------------------------------------------------- +Version: 0.17.4 +Date: 2019-03-05 + Uploaded by: + - TheSAguy + + Features: + - Dart Bullet Damage tweak + +--------------------------------------------------------------------------------------------------- +Version: 0.17.3 +Date: 2019-03-04 + Uploaded by: + - TheSAguy + + Bugfixes: + - One last Raw-Wood fix + +--------------------------------------------------------------------------------------------------- +Version: 0.17.2 +Date: 2019-03-04 + Uploaded by: + - TheSAguy + + Features: + - Removed Axe Upgrade tweak + - Wood Pipe cheaper + - Moved Stone Crusher to be unlocked by Steel Processing + - Changed old wood board to become Wooden-Board if playing with Bob's Electronics + +--------------------------------------------------------------------------------------------------- +Version: 0.17.1 +Date: 2019-02-28 + Uploaded by: + - TheSAguy + + Bugfixes: + - Deleted "migrations". Should not be necessary + +--------------------------------------------------------------------------------------------------- +Version: 0.17.0 +Date: 2019-02-27 + Uploaded by: + - TheSAguy + + Features: + - Initial Release of 0.17 diff --git a/Bio_Industries_2/changes.txt b/Bio_Industries_2/changes.txt new file mode 100644 index 0000000..f9376ce --- /dev/null +++ b/Bio_Industries_2/changes.txt @@ -0,0 +1,29 @@ +prototypes/Bio_Cannon/recipe.lua +prototypes/Bio_Cannon/projectiles-recipe.lua + + +prototypes/Bio_Farm/recipe.lua +prototypes/Bio_Farm/compatible_recipes.lua +prototypes/Bio_Farm/technology.lua + + +prototypes/Bio_Fuel/recipe.lua +prototypes/Bio_Garden/recipe.lua + +prototypes/Bio_Solar_Farm/recipe.lua + + +prototypes/Bio_Turret/recipe.lua +prototypes/Wood_Products/recipe.lua + + +data-updates.lua: + - Moved disassemble recipes and recipe tweaks to this file + - Moved require("prototypes.Wood_Products.rail_updates") to this file + +data-final-fixes.lua: + - Removed disassemble recipes and recipe tweaks! + - Removed require("prototypes.Wood_Products.rail_updates") s + +prototypes/Bio_Solar_Farm/entities.lua: + - Increased supply_area_distance from 50 to 50.5 to fix that half tiles would be covered at the edge of the radius visualisation diff --git a/Bio_Industries_2/common.lua b/Bio_Industries_2/common.lua new file mode 100644 index 0000000..2e9d10e --- /dev/null +++ b/Bio_Industries_2/common.lua @@ -0,0 +1,871 @@ +require("util") +local compound_entities = require("prototypes.compound_entities.main_list") + +return function(mod_name) + local common = {} + + ------------------------------------------------------------------------------------ + -- Get mod name and path to mod + common.modName = script and script.mod_name or mod_name + common.modRoot = "__" .. common.modName .. "__" + + + ------------------------------------------------------------------------------------ + -- Greatly improved version check for mods (thanks to eradicator!) + common.Version = {} + do + local V = common.Version + + local function parse_version(vstr) -- string "Major.Minor.Patch" + local err = function() + error('Invalid Version String: <' .. tostring(vstr) .. '>') + end + local r = {vstr:match('^(%d+)%.(%d+)%.(%d+)$')} + + if #r ~= 3 then + err() + end + + for i=1, 3 do + r[i] = tonumber(r[i]) + end + + return r + end + + V.gtr = function(verA, verB) + local a, b, c = unpack(parse_version(verA)) + local x, y, z = unpack(parse_version(verB)) + return (a > x) or (a == x and b > y) or (a == x and b == y and c > z) + end + local map = { + ['=' ] = function(A, B) return not (V.gtr(A, B) or V.gtr(B, A)) end, + ['>' ] = V.gtr, + ['!='] = function(A, B) return (V.gtr(A, B) or V.gtr(B, A)) end, + ['<='] = function(A, B) return V.gtr(B, A) or (not V.gtr(A, B)) end, + ['>='] = function(A, B) return V.gtr(A, B) or (not V.gtr(B, A)) end, + ['~='] = function(A, B) return (V.gtr(A, B) or V.gtr(B, A)) end, + ['<' ] = function(A, B) return V.gtr(B, A) end, + } + + --~ common.Version.compare = function(mod_name, operator, need_version) + common.check_version = function(mod_name, operator, need_version) + local mod_version = (mods and mods[mod_name]) or (script and script.active_mods[mod_name]) + return map[operator](mod_version, need_version) + end + end + + ------------------------------------------------------------------------------------ + -- Sane values for collision masks + -- Default: {"item-layer", "object-layer", "rail-layer", "floor-layer", "water-tile"} + --~ common.RAIL_BRIDGE_MASK = {"floor-layer", "object-layer", "consider-tile-transitions"} + common.RAIL_BRIDGE_MASK = {"object-layer", "consider-tile-transitions"} + + -- "Transport Drones" removes "object-layer" from rails, so if bridges have only + -- {"object-layer"}, there collision mask will be empty, and they can be built even + -- over cliffs. So we need to add another layer to bridges ("floor-layer"). + -- As of Factorio 1.1.0, rails need to have "rail-layer" in their mask. This will work + -- alright, but isn't available in earlier versions of Factorio, so we will use + -- "floor-layer" there instead. + local need = common.check_version("base", ">=", "1.1.0") and "rail-layer" or "floor-layer" + table.insert(common.RAIL_BRIDGE_MASK, need) + + -- Rails use basically the same mask as rail bridges, ... + common.RAIL_MASK = util.table.deepcopy(common.RAIL_BRIDGE_MASK) + -- ... we just need to add some layers so our rails have the same mask as vanilla rails. + table.insert(common.RAIL_MASK, "item-layer") + table.insert(common.RAIL_MASK, "water-tile") +--~ log("common.RAIL_BRIDGE_MASK: " .. serpent.block(common.RAIL_BRIDGE_MASK)) +--~ log("common.RAIL_MASK: " .. serpent.block(common.RAIL_MASK)) + + + + ------------------------------------------------------------------------------------ + -- Set maximum_wire_distance of Power-to-rail connectors + common.POWER_TO_RAIL_WIRE_DISTANCE = 4 + + + + ------------------------------------------------------------------------------------ + -- List of compound entities + -- Key: name of the base entity + -- tab: name of the global table where data of these entity are stored + -- hidden: table containing the hidden entities needed by this entity + -- (Key: name under which the hidden entity will be stored in the table; + -- Value: name of the entity that should be placed) + common.compound_entities = compound_entities.get_HE_list() + + -- Map the short handles of hidden entities (e.g. "pole") to real prototype types + -- (e.g. "electric-pole") + common.HE_map = compound_entities.HE_map + -- Reverse lookup + common.HE_map_reverse = compound_entities.HE_map_reverse + + ------------------------------------------------------------------------------------ + -- There may be trees for which we don't want to create variations. These patterns + -- are used to build a list of trees we want to ignore. + common.ignore_name_patterns = { + -- Ignore our own trees + "bio%-tree%-.+%-%d", + -- Tree prototypes created by "Robot Tree Farm" or "Tral's Robot Tree Farm" + "rtf%-.+%-%d+", + -- Tree prototypes created by "Industrial Revolution 2" + ".*%-*ir2%-.+", + } + + + -- Get list of tree prototypes that we want to ignore + common.get_tree_ignore_list = function() + --~ log("Entered function get_tree_ignore_list!") + local ignore = {} + local trees = game and + game.get_filtered_entity_prototypes({{filter = "type", type = "tree"}}) or + data.raw.tree + for tree_name, tree in pairs(trees) do +--~ log("tree_name: " .. tree_name) + for p, pattern in ipairs(common.ignore_name_patterns) do +--~ log("Check for match against pattern " .. pattern) + if tree_name:match(pattern) then +--~ log("Pattern matches!") + ignore[tree_name] = true + break + end + end + end + --~ log("Tree ignore list (" .. table_size(ignore) .. "): " .. serpent.block(ignore)) + return ignore + end + + + + + -- 0.17.42/0.18.09 fixed a bug where musk floor was created for the force "enemy". + -- Because it didn't belong to any player, in map view the electric grid overlay wasn't + -- shown for musk floor. Somebody complained about seeing it now, so starting with version + -- 0.17.45/0.18.13, there is a setting to hide the overlay again. If it is set to "true", + -- a new force will be created that the hidden electric poles of musk floor belong to. + -- (UPDATE: 0.18.29 reversed the setting -- if active, tiles will now be visible in map + -- view, not hidden. The definition of UseMuskForce has been changed accordingly.) + common.MuskForceName = "BI-Musk_floor_general_owner" + common.UseMuskForce = not settings.startup["BI_Show_musk_floor_in_mapview"].value + + --~ ------------------------------------------------------------------------------------ + --~ -- Set some values for Musk floor tiles (bi-solar-mat), so we can use these with + --~ -- confidence when filtering for the prototype + --~ common.MUSK_FLOOR_walking_speed_modifier = 1.45 + --~ common.MUSK_FLOOR_decorative_removal_probability = 1 + + ------------------------------------------------------------------------------------ + -- Enable writing to log file until startup options are set, so debugging output + -- from the start of a game session can be logged. This depends on a locally + -- installed dummy mod to allow debugging output during development without + -- spamming real users. + -- If the "_debug" dummy mod is active, debugging will always be on. If you don't + -- have this dummy mod but want to turn on logging anyway, set the default value + -- to "true"! + local default = false + + common.is_debug = ( (mods and mods["_debug"]) or + (script and script.active_mods["_debug"])) and + true or default + + + ------------------------------------------------------------------------------------ + -- DEBUGGING FUNCTIONS -- + ------------------------------------------------------------------------------------ + + + ------------------------------------------------------------------------------------ + -- Output debugging text + common.writeDebug = function(msg, tab, print_line) + local args = {} + -- Use serpent.line instead of serpent.block if this is true! + local line = print_line and + (string.lower(print_line) == "line" or string.lower(print_line) == "l") and + true or false + + if common.is_debug then + if type(tab) ~= "table" then + tab = { tab } + end + local v + for k = 1, #tab do + v = tab[k] + -- NIL + if v == nil then + args[#args + 1] = "NIL" + -- TABLE + elseif type(v) == "table" then + args[#args + 1] = line and serpent.line(table.deepcopy(v)) or + serpent.block(table.deepcopy(v)) + -- OTHER VALUE + else + args[#args + 1] = v + end + end + if #args == 0 then + args[1] = "nil" + end + args.n = #args + + -- Print the message text to log and game + log(string.format(tostring(msg), table.unpack(args))) + + if game then + game.print(string.format(tostring(msg), table.unpack(args))) + end + end + end + + ------------------------------------------------------------------------------------ + -- Simple helper to show a single value with descriptive text + common.show = function(desc, term) + if common.is_debug then + common.writeDebug(tostring(desc) .. ": %s", type(term) == "table" and { term } or term) + end + end + + ------------------------------------------------------------------------------------ + -- Print "entityname (id)" + common.print_name_id = function(entity) + local id + local name = "unknown entity" + + if entity and entity.valid then + -- Stickers don't have an index or unit_number! + id = (entity.type == "sticker" and entity.type) or + entity.unit_number or entity.type + + name = entity.name + end + + --~ return name .. " (" .. tostring(id) .. ")" + return string.format("%s (%s)", name, id or "nil") + end + + ------------------------------------------------------------------------------------ + -- Print "entityname" + common.print_name = function(entity) + return entity and entity.valid and entity.name or "" + end + + + ------------------------------------------------------------------------------------ + -- Throw an error if a wrong argument has been passed to a function + common.arg_err = function(arg, arg_type) + error(string.format( + "Wrong argument! %s is not %s!", + (arg or "nil"), (arg_type and "a valid " .. arg_type or "valid") + ) + ) + end + + ------------------------------------------------------------------------------------ + -- Rudimentary check of the arguments passed to a function + common.check_args = function(arg, arg_type, desc) + if not (arg and type(arg) == arg_type) then + common.arg_err(arg or "nil", desc or arg_type or "nil") + end + end + + + + ------------------------------------------------------------------------------------ + -- MOD SPECIFIC -- + ------------------------------------------------------------------------------------ + + ------------------------------------------------------------------------------------ + -- Are tiles from Alien Biomes available? (Returns true or false) + common.AB_tiles = function() + + local ret = false + + if game then + local AB = game.item_prototypes["fertilizer"].place_as_tile_result.result.name + -- In data stage, place_as_tile is only changed to Alien Biomes tiles if + -- both "vegetation-green-grass-1" and "vegetation-green-grass-3" exist. Therefore, + -- we only need to check for one tile in the control stage. + ret = (AB == "vegetation-green-grass-3") and true or false + else + ret = data.raw.tile["vegetation-green-grass-1"] and + data.raw.tile["vegetation-green-grass-3"] and true or false + end + + return ret + end + + ------------------------------------------------------------------------------------ + -- Function for removing individual entities + common.remove_entity = function(entity) + if entity and entity.valid then + --~ entity.destroy() + entity.destroy{raise_destroy = true} + end + end + + ------------------------------------------------------------------------------------ + -- Function for removing invalid prototypes from list of compound entities + common.rebuild_compound_entity_list = function() + local f_name = "rebuild_compound_entity_list" + common.writeDebug("Entered function %s()", {f_name}) + + local ret = {} + local h_type + + for c_name, c_data in pairs(common.compound_entities) do +common.show("base_name", c_name) +common.show("data", c_data) + -- Is the base entity in the game? + if c_data.base and c_data.base.name and game.entity_prototypes[c_data.base.name] then + -- Make a copy of the compound-entity data + common.writeDebug("%s exists -- copying data", {c_name}) + ret[c_name] = util.table.deepcopy(c_data) + + -- Check hidden entities + for h_key, h_data in pairs(ret[c_name].hidden) do + --~ h_type = common.HE_map[h_key] +common.writeDebug("h_key: %s\th_data: %s", {h_key, h_data}) + -- Remove hidden entity if it doesn't exist + if not game.entity_prototypes[h_data.name] then + common.writeDebug("Removing %s (%s) from list of hidden entities!", {h_data.name, h_key}) + ret[c_name].hidden[h_key] = nil + end + end + + -- Clean table + else + local tab = c_data.tab + if tab then + -- Remove main table from global + common.writeDebug("Removing %s (%s obsolete entries)", {tab, #tab}) + global[tab] = nil + end + + -- If this compound entity requires additional tables in global, initialize + -- them now! + local related_tables = c_data.add_global_tables + if related_tables then + for t, tab in ipairs(related_tables or {}) do + common.writeDebug("Removing global[%s] (%s values)", {tab, table_size(global[tab])}) + global[tab] = nil + end + end + + -- If this compound entity requires additional values in global, remove them! + local related_vars = c_data.add_global_values + if related_vars then + for var_name, value in pairs(related_vars or {}) do + common.writeDebug("Removing global[%s] (was: %s)", + {var_name, var_name and global[var_name] or "nil"}) + global[var_name] = nil + end + end + end + end + common.show("ret", ret) + return ret + end + ------------------------------------------------------------------------------------ + -- Function to add all optional values for a compound entity to the table entry. + common.add_optional_data = function(base) + local f_name = "add_optional_data" +common.writeDebug("Entered function %s(%s)", {f_name, common.print_name_id(base)}) + if not (base and base.valid and global.compound_entities[base.name]) then + common.arg_err(base, "base of a compound entity") + end + + -- Add optional values to global table + local data = global.compound_entities[base.name] +common.show("data", data) + local tab = data.tab +common.show("tab", tab) +common.show("global[tab]", global[tab] or "nil") + + local entry = global[tab][base.unit_number] + + for k, v in pairs(data.optional or {}) do + if entry[k] then + common.writeDebug("%s already exists: %s", {k, entry[k]}) + else + entry[k] = v + common.writeDebug("Added data to %s: %s = %s", {common.print_name_id(base), k, v}) + end + end + end + + + ------------------------------------------------------------------------------------ + -- Function for removing all parts of invalid compound entities + common.clean_global_compounds_table = function(entity_name) + local f_name = "clean_table" +common.writeDebug("Entered function %s(%s)", {f_name, entity_name or "nil"}) +common.writeDebug("Entries in common.compound_entities[%s]: %s", {entity_name, table_size(global.compound_entities[entity_name])}) + + --~ local entity_table = global[common.compound_entities[entity_name].tab] + --~ local hidden_entities = common.compound_entities[entity_name].hidden + local entity_table = global.compound_entities[entity_name] +common.show("entity_table", entity_table and entity_table.tab) + entity_table = entity_table and entity_table.tab and global[entity_table.tab] +common.writeDebug("entity_table: %s", {entity_table}, "line") + local hidden_entities = global.compound_entities[entity_name].hidden +common.show("hidden_entities", hidden_entities) + local removed = 0 + -- Scan the whole table + for c, compound in pairs(entity_table) do +common.writeDebug ("c: %s\tcompound: %s", {c, compound}) + -- No or invalid base entity! + if not (compound.base and compound.base.valid) then +common.writeDebug("%s (%s) has no valid base entity -- removing entry!", {entity_name, c}) + + for h_name, h_entity in pairs(hidden_entities) do +common.writeDebug("Removing %s (%s)", {h_name, h_entity.name}) + common.remove_entity(compound[h_name]) + end + entity_table[c] = nil + removed = removed + 1 +common.writeDebug("Removed %s %s", {entity_name, c}) + end + end +common.show("Removed entities", removed) +common.show("Pruned list size", table_size(entity_table)) +--~ common.show("Pruned list", entity_table) + return removed + end + + + ------------------------------------------------------------------------------------ + -- Function to resore missing parts of compound entities + common.restore_missing_entities = function(entity_name) + local f_name = "restore_missing_entities" +common.writeDebug("Entered function %s(%s)", {f_name, entity_name or "nil"}) +--~ common.writeDebug("global.compound_entities[%s]: %s", {entity_name, global.compound_entities[entity_name]}) +common.writeDebug("global.compound_entities[%s]: %s entries", {entity_name, table_size(global.compound_entities[entity_name])}) + + local check = global.compound_entities[entity_name] + local entity_table = check and global[check.tab] or {} + local hidden_entities = check and check.hidden or {} + + local checked = 0 + local restored = 0 + -- Scan the whole table + for c, compound in pairs(entity_table) do +--~ common.writeDebug("c: %s\tcompound: %s", {c, compound}) + -- Base entity is valid! + if (compound.base and compound.base.valid) then +common.writeDebug("%s is valid -- checking hidden entities!", {common.print_name_id(compound.base)}) + for h_name, h_entity in pairs(hidden_entities) do +--~ common.writeDebug("h_name: %s\th_entity: %s", {h_name, h_entity}) + -- Hidden entity is missing + if compound[h_name] and compound[h_name].valid then + common.writeDebug("%s: OK", {h_name}) + else + common.writeDebug("%s: MISSING!", {h_name}) + common.create_entities(entity_table, compound.base, {[h_name] = h_entity.name}) + restored = restored + 1 + common.writeDebug("Created %s (%s) for %s", + {h_name, h_entity.name, common.print_name_id(compound.base)}) + end + end + checked = checked + 1 +--~ common.writeDebug("Restored %s %s", {entity_name, c}) + end + end +common.writeDebug("Checked %s compound entities", {checked}) +common.writeDebug("Restored %s entities", {restored}) +--~ common.show("Fixed list", entity_table) + return {checked = checked, restored = restored} + end + + + ------------------------------------------------------------------------------------ + -- Function to find all unregistered compound entities of a particular type + common.register_in_compound_entity_tab = function(compound_name) + local f_name = "register_in_compound_entity_tab" + common.writeDebug("Entered function %s(%s)", {f_name, compound_name}) + + local cnt = 0 + local h_cnt = 0 + local data = global.compound_entities[compound_name] + if not data then + common.arg_err(compound_name, "name of a compound entity") + end + + local g_tab = global[data.tab] + local found, h_found ,created + + -- Scan all surfaces + for s, surface in pairs(game.surfaces) do + -- Check the bases of all compound entities on the surface + found = surface.find_entities_filtered({name = compound_name}) + for b, base in ipairs(found) do + -- Base entity isn't registered yet! + if not g_tab[base.unit_number] then + common.writeDebug("Found unregistered entity: %s!", {common.print_name_id(base)}) + -- Create an entry in the global table + g_tab[base.unit_number] = {base = base} + -- Add optional data to the table, if there are any + common.add_optional_data(base) + + + -- Check if it already has any hidden entities + for h_name, h_data in pairs(data.hidden) do + h_found = surface.find_entities_filtered({ + name = h_data.name, + type = h_data.type, + position = common.offset_position(base.position, h_data.base_offset), + }) + + -- Check for multiple hidden entities of the same type in the same position! + if #h_found > 1 then + local cnt = 0 + for duplicate = 2, #h_found do + h_found[duplicate].destroy({raise_destroy = true}) + cnt = cnt + 1 + end + common.writeDebug("Removed %s duplicate entities (%s)!", {cnt, h_data.name}) + end + + -- There still is one hidden entity left. Add it to the table! + if next(h_found) then + common.writeDebug("Found %s -- adding it to the table.", {common.print_name_id(base)}) + g_tab[base.unit_number][h_name] = h_found[1] + + -- Create hidden entity! This will automatically add it to the table. + else + created = common.create_entities(g_tab, base, {[h_name] = h_data}) + common.writeDebug("Created hidden %s: %s", + {h_name, created and common.print_name_id(created) or "nil"}) + h_cnt = h_cnt + 1 + end + end + cnt = cnt + 1 + end + end + end + common.writeDebug("Registered %s compound entities and created %s hidden entities", {cnt, h_cnt}) + return cnt + end + + ------------------------------------------------------------------------------------ + -- Function to find all unregistered compound entities + common.find_unregistered_entities = function() + local f_name = "find_unregistered_entities" + common.writeDebug("Entered function %s()", {f_name}) + + local cnt = 0 + for compound_entity, c in pairs(global.compound_entities) do + cnt = cnt + common.register_in_compound_entity_tab(compound_entity) + end + --~ common.writeDebug("Registered %s compound entities", {cnt}) + common.writeDebug("Registered %s compound entities.", {cnt}) + return cnt + end + + ------------------------------------------------------------------------------------ + -- Function to normalize positions + common.normalize_position = function(pos) + if pos and type(pos) == "table" and table_size(pos) == 2 then + local x = pos.x or pos[1] + local y = pos.y or pos[2] + if x and y and type(x) == "number" and type(y) == "number" then + return { x = x, y = y } + end + end + end + + + ------------------------------------------------------------------------------------ + -- Calculate the offset position of a hidden entity + common.offset_position = function(base_pos, offset) + common.check_args(base_pos, "table", "position") + offset = offset or {x = 0, y = 0} + common.check_args(offset, "table", "position") + + base_pos = common.normalize_position(base_pos) + offset = common.normalize_position(offset) + +common.show("base_pos", base_pos) +common.show("offset", offset) +common.show("new", {x = base_pos.x + offset.x, y = base_pos.y + offset.y}) + return {x = base_pos.x + offset.x, y = base_pos.y + offset.y} + end + + ------------------------------------------------------------------------------------ + -- Check if argument is a valid surface + common.is_surface = function(surface) + local t = type(surface) + surface = (t == "number" or t == "string" and game.surfaces[surface]) or + (t == "table" and surface.object_name and + surface.object_name == "LuaSurface" and surface) + return surface + end + + + ------------------------------------------------------------------------------------ + -- Make hidden entities unminable and indestructible + local function make_unminable(entities) + for e, entity in ipairs(entities or {}) do + if entity.valid then + entity.minable = false + entity.destructible = false + end + end + end + + -------------------------------------------------------------------- + -- Create and register hidden entities + --~ common.create_entities = function(g_table, base_entity, hidden_entity_names, position, ...) + common.create_entities = function(g_table, base_entity, hidden_entities) + local f_name = "create_entities" + common.writeDebug("Entered function %s(%s, %s, %s)", + {f_name, "g_table", base_entity, hidden_entities}) + common.show("#g_table", g_table and table_size(g_table)) + --~ common.show("hidden_entities", hidden_entities) + + common.check_args(g_table, "table") + common.check_args(base_entity, "table") + + if not base_entity.valid then + common.arg_err(base_entity, "base entity") + -- A table is required, but it may be empty! (This is needed for the + -- bio gardens, which only have a hidden pole if the "Easy Gardens" + -- setting is enabled.) + elseif not (hidden_entities and type(hidden_entities) == "table") then + common.arg_err(hidden_entities, "array of hidden-entity names") + end + local base_pos = common.normalize_position(base_entity.position) or + common.arg_err(position or "nil", "position") + + local entity, offset, pos + + -- Initialize entry in global table + g_table[base_entity.unit_number] = g_table[base_entity.unit_number] or {} + g_table[base_entity.unit_number].base = base_entity + + -- Create hidden entities + local data + for key, tab in pairs(hidden_entities) do +common.writeDebug("key: %s\tname: %s", {key, tab}) +--~ data = common.compound_entities[base_entity.name].hidden[key] + data = global.compound_entities[base_entity.name].hidden[key] +--~ common.show("common.compound_entities[base_entity.name].hidden", + --~ common.compound_entities[base_entity.name].hidden) +common.show("data", data) + entity = base_entity.surface.create_entity({ + name = data.name, + type = data.type, + position = common.offset_position(base_pos, data.base_offset), + force = base_entity.force, + }) + -- Raise the event manually, so we can pass on extra data! + script.raise_event(defines.events.script_raised_built, { + entity = entity, + base_entity = base_entity + }) + + -- Make hidden entity unminable/undestructible + make_unminable({entity}) + + -- Add hidden entity to global table + g_table[base_entity.unit_number][key] = entity + end + + -- Add optional values to global table + --~ local optional = global.compound_entities[base_entity.name].optional + --~ for k, v in pairs(optional or {}) do + --~ g_table[base_entity.unit_number][k] = v + --~ end + common.add_optional_data(base_entity) + common.writeDebug("g_table[%s]: %s", {base_entity.unit_number, g_table[base_entity.unit_number]}) + end + + + -------------------------------------------------------------------- + -- Make a list of the pole types that Bio gardens may connect to + common.get_garden_pole_connectors = function() + --~ local ret = {} + local ret + if common.get_startup_setting("BI_Easy_Bio_Gardens") then +common.writeDebug("\"Easy gardens\": Compiling list of poles they can connect to!" ) + ret = {} + local poles = game.get_filtered_entity_prototypes({ + {filter = "type", type = "electric-pole"}, + {filter = "name", name = { + -- Poles named here will be ignored! + "bi-rail-power-hidden-pole", + "bi-musk-mat-hidden-pole", + "bi-bio-garden-hidden-pole" + }, invert = "true", mode = "and" + } + }) + for p, pole in pairs(poles) do + ret[#ret + 1] = pole.name + end + else +common.writeDebug("\"Easy gardens\": Not active -- nothing to do!" ) + end + return ret + end + + -------------------------------------------------------------------- + -- Connect hidden poles of Bio gardens! + -- (This function may be called for hidden poles that have not been + -- added to the table yet if the pole has just been built. In this + -- case, we pass on the new pole explicitly!) + common.connect_garden_pole = function(base, new_pole) + local compound_entity = global.compound_entities["bi-bio-garden"] + --~ local pole_type = "electric-pole" + --~ local pole = global[compound_entity.tab][base.unit_number] and + --~ global[compound_entity.tab][base.unit_number][pole_type] or + --~ new_pole + local pole = global[compound_entity.tab][base.unit_number] and + global[compound_entity.tab][base.unit_number].pole or + new_pole + + --~ if pole and pole.valid then + --~ local wire_reach = game.entity_prototypes[compound_entity.hidden[pole_type]] and + --~ game.entity_prototypes[compound_entity.hidden[pole_type]].max_wire_distance + if pole and pole.valid and compound_entity.hidden and + compound_entity.hidden.pole and + compound_entity.hidden.pole.name then + local wire_reach = game.entity_prototypes[compound_entity.hidden.pole.name] and + game.entity_prototypes[compound_entity.hidden.pole.name].max_wire_distance + if not wire_reach then + error("Prototype for hidden pole of Bio gardens doesn't exist!") + end + + pole.disconnect_neighbour() + + -- Each pole can only have 5 connections. Let's connect to other hidden + -- poles first! + local connected + local neighbours = pole.surface.find_entities_filtered({ + position = pole.position, + radius = wire_reach, + type = "electric-pole", + name = compound_entity.hidden.pole.name + }) +common.writeDebug("Pole %g has %s neighbours", {pole.unit_number, #neighbours - 1}) + + for n, neighbour in pairs(neighbours or{}) do + if pole ~= neighbour then + connected = pole.connect_neighbour(neighbour) +common.writeDebug("Connected pole %g to %s %g: %s", + {pole.unit_number, neighbour.name, neighbour.unit_number, connected}) + end + end + + --~ -- Connect hidden poles to other poles that may be in reach. + --~ common.garden_pole_connectors = common.garden_pole_connectors and next() or + --~ common.get_garden_pole_connectors() +--~ common.show("Poles hidden bio-garden poles may connect to", global.mod_settings.garden_pole_connectors) + + -- Look for other poles around this one + neighbours = pole.surface.find_entities_filtered({ + position = pole.position, + radius = wire_reach, + type = "electric-pole", + name = global.mod_settings.garden_pole_connectors, + }) +common.writeDebug("Pole %g has %s neighbours", {pole.unit_number, #neighbours}) + for n, neighbour in pairs(neighbours or{}) do + connected = pole.connect_neighbour(neighbour) +common.writeDebug("Connected pole %g to neighbour %s (%g): %s", + {pole.unit_number, neighbour.name, neighbour.unit_number, connected}) + end + end + end + + -------------------------------------------------------------------- + -- Connect hidden poles of powered rails -- this is also used in + -- migration scripts, so make it a function in common.lua! + -- (This function may be called for hidden poles that have not been + -- added to the table yet if the pole has just been built. In this + -- case, we pass on the new pole explicitly!) + common.connect_power_rail = function(base, new_pole) + --~ local pole_type = "electric-pole" + + local pole = global.bi_power_rail_table[base.unit_number].pole or new_pole + if pole and pole.valid then + -- Remove all copper wires from new pole + pole.disconnect_neighbour() +common.writeDebug("Removed all wires from %s %g", {pole.name, pole.unit_number}) + + -- Look for connecting rails at front and back of the new rail + for s, side in ipairs( {"front", "back"} ) do +common.writeDebug("Looking for rails at %s", {side}) + local neighbour + -- Look in all three directions + for d, direction in ipairs( {"left", "straight", "right"} ) do +common.writeDebug("Looking for rails in %s direction", {direction}) + neighbour = base.get_connected_rail{ + rail_direction = defines.rail_direction[side], + rail_connection_direction = defines.rail_connection_direction[direction] + } +common.writeDebug("Rail %s of %s (%s): %s (%s)", {direction, base.name, base.unit_number, (neighbour and neighbour.name or "nil"), (neighbour and neighbour.unit_number or "nil")}) + + -- Only make a connection if found rail is a powered rail + -- (We'll know it's the right type if we find it in our table!) + neighbour = neighbour and neighbour.valid and global.bi_power_rail_table[neighbour.unit_number] + if neighbour and neighbour.pole and neighbour.pole.valid then + pole.connect_neighbour(neighbour.pole) + common.writeDebug("Connected poles!") + end + end + end + + -- Look for Power-rail connectors + local connector = base.surface.find_entities_filtered{ + position = base.position, + radius = common.POWER_TO_RAIL_WIRE_DISTANCE, -- maximum_wire_distance of Power-to-rail-connectors + name = "bi-power-to-rail-pole" + } + -- Connect to first Power-rail connector we've found + if connector and next(connector) then + pole.connect_neighbour(connector[1]) + common.writeDebug("Connected " .. pole.name .. " (" .. pole.unit_number .. + ") to " .. connector[1].name .. " (" .. connector[1].unit_number .. ")") + common.writeDebug("Connected %s (%g) to %s (%g)", {pole.name, pole.unit_number, connector[1].name, connector[1].unit_number}) + end + common.writeDebug("Stored %s (%g) in global table", {base.name, base.unit_number}) + end + end + + + ------------------------------------------------------------------------------------ + -- Get the value of a startup setting + common.get_startup_setting = function(setting_name) + return settings.startup[setting_name] and settings.startup[setting_name].value + end + + + ------------------------------------------------------------------------------------ + -- Add the "icons" property based on the value of "icon" + ------------------------------------------------------------------------------------ + common.BI_add_icons = function() + for tab_name, tab in pairs(data.raw) do + --~ common.writeDebug("Checking data.raw[%s]", {tab_name}) + for proto_type_name, proto_type in pairs(data.raw[tab_name] or {}) do +--~ common.show("proto_type.BI_add_icon", proto_type.BI_add_icon or "nil" ) + + if proto_type.BI_add_icon then + proto_type.icons = { + { + icon = proto_type.icon, + icon_size = proto_type.icon_size, + icon_mipmaps = proto_type.icon_mipmaps + } + } + proto_type.BI_add_icon = nil + common.writeDebug("Added \"icons\" property to data.raw[\"%s\"][\"%s\"]: %s", + {tab_name, proto_type_name, proto_type.icons}, "line") + end + end + end + end + +------------------------------------------------------------------------------------ +-- END OF FILE +------------------------------------------------------------------------------------ +return common +end diff --git a/Bio_Industries_2/control.lua b/Bio_Industries_2/control.lua new file mode 100644 index 0000000..fe4a43c --- /dev/null +++ b/Bio_Industries_2/control.lua @@ -0,0 +1,1095 @@ +--~ local BioInd = require("__" .. script.mod_name .. "__.common")(script.mod_name) +BioInd = require("__" .. script.mod_name .. "__.common")(script.mod_name) +local settings_changed = require("settings_changed") + +if BioInd.get_startup_setting("BI_Enable_gvv_support") then + BioInd.writeDebug("Activating support for gvv!") + require("__gvv__/gvv")() +end + + +-- We can't just check if Alien Biomes is active, because we need to know if +-- the tiles we need from it exist in the game! To check this, we must call +-- game.get_tile_prototypes(), but this will crash in script.on_load(). So, +-- let's just declare the variable here and fill it later. +local AlienBiomes + +--~ local Event = require('__stdlib__/stdlib/event/event').set_protected_mode(true) +local Event = require('__stdlib__/stdlib/event/event').set_protected_mode(false) +require ("util") +require ("libs/util_ext") +require ("control_tree") +require ("control_arboretum") + + +---************** Used for Testing ----- +--require ("Test_Spawn") +---************* + + +local function Create_dummy_force() + -- Create dummy force for musk floor if electric grid overlay should NOT be shown in map view + local f = game.create_force(BioInd.MuskForceName) + -- Set new force as neutral to every other force + for name, force in pairs(game.forces) do + if name ~= BioInd.MuskForceName then + f.set_friend(force, false) + f.set_cease_fire(force, true) + end + end + -- 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}) +end + + +-- Generate a look-up table with the names of our trees +local function get_bi_trees() + local list = {} + + local trees = game.get_filtered_entity_prototypes({{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) + list[tree_name] = true + end + end + + return list +end + + +-- Generate a look-up table with the names of tiles that can't be changed by fertilizer +local tile_patterns = { + ".*concrete.*", + ".*stone%-path.*", + "^bi%-solar%-mat$", + "^bi%-wood%-floor$", +} +local function get_fixed_tiles() + local list = {} + + for tile_name, tile in pairs(game.tile_prototypes) do + for p, pattern in ipairs(tile_patterns) do + if tile_name:match(pattern) then +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) + return list +end + + +-- Generate a look-up table with recipe ingredients, as other mods may have changed them +local function get_arboretum_recipes() + local list = {} + + local recipes = game.recipe_prototypes + local name + + for i = 1, 5 do + name = "bi-arboretum-r" .. i + list[name] = {} + list[name].items = {} + list[name].fluids = {} + + for i, ingredient in pairs(recipes[name].ingredients) do + if ingredient.type == "item" then + list[name].items[ingredient.name] = ingredient.amount + else + list[name].fluids[ingredient.name] = ingredient.amount + end + end + end + + BioInd.show("Terraformer recipes", list) + return list +end + + +-------------------------------------------------------------------- +local function init() +BioInd.writeDebug("Entered init!") + if BioInd.is_debug then + game.check_prototype_translations() + end + + global = global or {} + + -------------------------------------------------------------------- + -- Settings + -------------------------------------------------------------------- + -- Global table for storing the last state of certain mod settings + global.mod_settings = global.mod_settings or {} + if BioInd.get_startup_setting("BI_Easy_Bio_Gardens") then + global.mod_settings.garden_pole_connectors = BioInd.get_garden_pole_connectors() + else + global.mod_settings.garden_pole_connectors = nil + end + + -- Global table for storing the data of compound entities. They may change between + -- saves (e.g. Bio gardens only need hidden poles when the "Easy gardens" setting + -- is active). + --~ global.compound_entities = global.compound_entities or BioInd.compound_entities + global.compound_entities = BioInd.rebuild_compound_entity_list() + + + -------------------------------------------------------------------- + -- Tree stuff! + -------------------------------------------------------------------- + global.bi = global.bi or {} + global.bi.tree_growing = global.bi.tree_growing or {} + for i = 1, 4 do + global.bi["tree_growing_stage_" .. i] = global.bi["tree_growing_stage_" .. i] or {} + end + + -- List of tree prototypes created by BI + global.bi.trees = get_bi_trees() + + -- List of tile prototypes that can't be fertilized + global.bi.barren_tiles = get_fixed_tiles() + + -------------------------------------------------------------------- + -- Compound entities + -------------------------------------------------------------------- + -- Check what global tables we need for compound entities + local compound_entity_tables = {} + --~ for compound, compound_data in pairs(BioInd.compound_entities) do + for compound, compound_data in pairs(global.compound_entities) do + -- BioInd.compound_entities contains entries that point to the same table + -- (e.g. straight/curved rails, or overlay entities), so we just overwrite + -- them to remove duplicates + compound_entity_tables[compound_data.tab] = compound + end +BioInd.show("Need to check these tables in global", compound_entity_tables) + + -- Prepare global tables storing data of compound entities + local result + for compound_tab, compound_name in pairs(compound_entity_tables) do + -- Init table + global[compound_tab] = global[compound_tab] or {} + BioInd.writeDebug("Initialized global[%s] (%s entities stored)", + {compound_name, table_size(global[compound_tab])}) + -- If this compound entity requires additional tables in global, initialize + -- them now! + local related_tables = global.compound_entities[compound_name].add_global_tables + if related_tables then + for t, tab in ipairs(related_tables or {}) do + global[tab] = global[tab] or {} + BioInd.writeDebug("Initialized global[%s] (%s values)", {tab, table_size(global[tab])}) + end + end + -- If this compound entity requires additional values in global, initialize + -- them now! + local related_vars = global.compound_entities[compound_name].add_global_values + if related_vars then + for var_name, value in pairs(related_vars or {}) do + global[var_name] = global[var_name] or value + BioInd.writeDebug("Set global[%s] to %s", {var_name, global[var_name]}) + end + end + + -- Clean up global tables (We can skip this for empty tables!) + if next(global[compound_tab]) then + -- Remove invalid entities + result = BioInd.clean_global_compounds_table(compound_name) + BioInd.writeDebug("Removed %s invalid entries from global[%s]!", + {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 global[\"%s\"]!", + {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}) + + + + -------------------------------------------------------------------- + -- Musk floor + -------------------------------------------------------------------- + global.bi_musk_floor_table = global.bi_musk_floor_table or {} + global.bi_musk_floor_table.tiles = global.bi_musk_floor_table.tiles or {} + global.bi_musk_floor_table.forces = global.bi_musk_floor_table.forces or {} + + + + -------------------------------------------------------------------- + -- Arboretum + -------------------------------------------------------------------- + -- Global table for arboretum radars + global.bi_arboretum_radar_table = global.bi_arboretum_radar_table or {} + + -- Global table of ingredients for terraformer recipes + global.bi_arboretum_recipe_table = get_arboretum_recipes() + + + -------------------------------------------------------------------- + -- Compatibility with other mods + -------------------------------------------------------------------- + global.compatible = global.compatible or {} + global.compatible.AlienBiomes = BioInd.AB_tiles() + + + -- enable researched recipes + for i, force in pairs(game.forces) do + BioInd.writeDebug("Reset technology effects for force %s.", {force.name}) + force.reset_technology_effects() + end + + -- Create dummy force for musk floor if electric grid overlay should NOT be shown in map view + if BioInd.UseMuskForce and not game.forces[BioInd.MuskForceName] then + --~ BioInd.writeDebug("Force for musk floor is required but doesn't exist.") + 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}) + + + -- Re-initialize global tables etc. + init() + + -- Has setting BI_Show_musk_floor_in_mapview changed? + if ConfigurationChangedData.mod_startup_settings_changed then + settings_changed.musk_floor() + -- Has this been obsoleted by the new init process? Turn it off for now! + --~ settings_changed.bio_garden() + end + + -- We've made a list of the tree prototypes that are currently available. Now we + -- need to make sure that the lists of growing trees don't contain removed tree + -- prototypes! (This fix is needed when "Alien Biomes" has been removed; it should + -- work with all other mods that create trees as well.) + local trees = global.bi.trees + local tab + -- Growing stages + for i = 1, 4 do + tab = global.bi["tree_growing_stage_" .. i] +BioInd.writeDebug("Number of trees in growing stage %s: %s", {i, table_size(tab)}) + --~ for t, tree in pairs(tab) do + --~ if not trees[tree.tree_name] then +--~ BioInd.writeDebug("Removing invalid tree %s (%s)", {t, tree.tree_name}) + --~ table.remove(tab, t) + --~ end + --~ end + 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}) + table.remove(tab, t) + end + end + + -- Removing trees will create gaps in the table, but we need it as a continuous + -- list. (Trees need to be sorted by growing time, and we always look at the + -- 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("Final tree list", tab) +BioInd.show("Number of trees in final list", #tab) + end +end + + +-------------------------------------------------------------------- +--- Used for some compatibility with Angels Mods +Event.register(defines.events.on_player_joined_game, function(event) + local player = game.players[event.player_index] + local force = player.force + local techs = force.technologies + + --~ if settings.startup["angels-use-angels-barreling"] and + --~ settings.startup["angels-use-angels-barreling"].value then + if BioInd.get_startup_setting("angels-use-angels-barreling") then + techs['fluid-handling'].researched = false + techs['bi-tech-fertilizer'].reload() + local _t = techs['angels-fluid-barreling'].researched + techs['angels-fluid-barreling'].researched = false + techs['angels-fluid-barreling'].researched = _t + end +end) + + +--------------------------------------------- +Event.register(defines.events.on_trigger_created_entity, function(event) + --- Used for Seed-bomb + local ent = event.entity + local surface = ent.surface + local position = ent.position + + -- 'AlienBiomes' is a bool value -- we don't want to read it again if it's false, + -- but only if it hasn't been set yet! + AlienBiomes = AlienBiomes ~= nil and AlienBiomes or BioInd.AB_tiles() + + -- Basic + if ent.name == "seedling" then + BioInd.writeDebug("Seed Bomb Activated - Basic") + seed_planted_trigger(event) + + -- Standard + elseif ent.name == "seedling-2" then + --~ BioInd.writeDebug("Seed Bomb Activated - Standard") + --~ local terrain_name_s = AlienBiomes and "vegetation-green-grass-3" or "grass-3" + --~ surface.set_tiles{{name = terrain_name_s, position = position}} + --~ seed_planted_trigger(event) + BioInd.writeDebug("Seed Bomb Activated - Standard") + local currTile = surface.get_tile(position).name + if global.bi.barren_tiles[currTile] then + 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}} + end + seed_planted_trigger(event) + + -- Advanced + elseif ent.name == "seedling-3" then + --~ BioInd.writeDebug("Seed Bomb Activated - Advanced") + --~ local terrain_name_a = AlienBiomes and "vegetation-green-grass-1" or "grass-1" + --~ surface.set_tiles{{name = terrain_name_a, position = position}} + --~ seed_planted_trigger(event) + BioInd.writeDebug("Seed Bomb Activated - Advanced") + local currTile = surface.get_tile(position).name + if global.bi.barren_tiles[currTile] then + 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}} + end + seed_planted_trigger(event) + end +end) + +-------------------------------------------------------------------- +local function On_Built(event) + BioInd.writeDebug("Entered function On_Built with these data: " .. serpent.block(event)) + local entity = event.created_entity or event.entity + if not (entity and entity.valid) then + BioInd.arg_err(entity or "nil", "entity") + end + + local surface = BioInd.is_surface(entity.surface) or + BioInd.arg_err(entity.surface or "nil", "surface") + local position = BioInd.normalize_position(entity.position) or + BioInd.arg_err(entity.position or "nil", "position") + local force = entity.force + +--~ BioInd.writeDebug("Entered function On_Built with these data: " .. serpent.block(event)) +--~ BioInd.writeDebug("Entity name: %s", {BioInd.print_name_id(entity)}) + + -- 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}) + return + end + + BioInd.show("Built entity", BioInd.print_name_id(entity)) + + local base_entry = global.compound_entities[entity.name] + local base = base_entry and entity + + -- We've found a compound entity! + if base then + -- Make sure we work with a copy of the original table! We don't want to + -- 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) + --~ local new_base, new_base_name, optional + 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) + --~ if new_base_name then + if new_base_name and new_base_name ~= base.name then + new_base = surface.create_entity({ + name = new_base_name, + position = base.position, + direction = base.direction, + force = base.force, + raise_built = true + }) + new_base.health = base.health + BioInd.show("Created final base entity", BioInd.print_name_id(new_base)) + + 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("global[%s]: %s", {base_entry.tab, global[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(global[base_entry.tab], base, hidden_entities) + BioInd.writeDebug("Stored %s in table: %s", + {BioInd.print_name_id(base), global[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)}) + + -- 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)) + + -- 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! + local h_key = BioInd.HE_map_reverse[entity.type] + BioInd.show("h_key", h_key or "nil") + + -- Arboretum radar -- we need to add it to the table! + if entity.type == "radar" and + entity.name == entities["bi-arboretum-area"].hidden[h_key].name and base then + global.bi_arboretum_radar_table[entity.unit_number] = base.unit_number + entity.backer_name = "" + BioInd.writeDebug("Added %s to global.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 +BioInd.show("entities[\"bi-straight-rail-power\"].hidden[h_key].name", entities["bi-straight-rail-power"].hidden[h_key].name) + 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.connect_garden_pole(base, pole) + BioInd.writeDebug("Connected %s (%s)", {pole.name, pole.unit_number or "nil"}) + + -- Make sure hidden poles for powered rails are connected correctly! + elseif pole.name == entities["bi-straight-rail-power"].hidden[h_key].name and base then +BioInd.writeDebug("Powered rail!") + BioInd.connect_power_rail(base, pole) + BioInd.writeDebug("Connected %s", {BioInd.print_name_id(pole)}) + + -- Do nothing for rail-to-power connectors + elseif pole.name == "bi-power-to-rail-pole" then + BioInd.writeDebug("Nothing to do for %s", {BioInd.print_name_id(pole)}) + + -- Disconnect other poles from hidden poles on powered rails + else +BioInd.writeDebug("Must disconnect!") + for n, neighbour in ipairs(pole.neighbours["copper"] or {}) do + if neighbour.name == entities["bi-straight-rail-power"].hidden[h_key].name then + pole.disconnect_neighbour(neighbour) + BioInd.writeDebug("Disconnected %s from %s", + {BioInd.print_name_id(pole), BioInd.print_name_id(neighbour)}) + end + end + end + + -- A seedling has been planted + elseif entity.name == "seedling" then + seed_planted(event) + BioInd.writeDebug("Planted seedling!") + + -- Something else has been built + else + BioInd.writeDebug("Nothing to do for %s!", {entity.name}) + end + end + BioInd.writeDebug("End of function On_Built") +end + + +local function remove_plants(entity_position, tabl) +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") + end + BioInd.check_args(tabl, "table") + + local pos + + 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}) + table.remove(tabl, k) + break + end + end +end + + +-------------------------------------------------------------------- +local function On_Pre_Remove(event) +BioInd.writeDebug("Entered function On_Pre_Remove(%s)", {event}) + local entity = event.entity + + if not (entity and entity.valid) then + BioInd.writeDebug("No valid entity -- nothing to do!") + return + end + + --~ local compound_entity = BioInd.compound_entities[entity.name] + local compound_entity = global.compound_entities[entity.name] + local base_entry = compound_entity and global[compound_entity.tab][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("global[%s]: %s", {compound_entity and compound_entity.tab or "nil", compound_entity and global[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)}) + + -- 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 + global.bi_arboretum_radar_table[base_entry.radar.unit_number] = nil +BioInd.show("Removed arboretum radar! Table", global.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") then + 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)}) + base_entry.pole.disconnect_neighbour() +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.writeDebug("Removing hidden entity %s %s", {base_entry[hidden] and base_entry[hidden].valid and base_entry[hidden].name or "nil", base_entry[hidden] and base_entry[hidden].valid and base_entry[hidden].unit_number or "nil"}) +BioInd.writeDebug("Removing hidden entity %s", {BioInd.print_name_id(base_entry[hidden])}) + BioInd.remove_entity(base_entry[hidden]) + base_entry[hidden] = nil + end + global[compound_entity.tab][entity.unit_number] = nil + + -- Rail-to-power: Connections must be explicitely removed, otherwise the poles + -- from the different rail tracks hooked up to this connector will automatically + -- keep the separate power networks connected! + 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}) + + -- Removed seedling + elseif entity.name == "seedling" then + BioInd.writeDebug("Seedling has been removed") + remove_plants(entity.position, global.bi.tree_growing) + + -- Removed tree + elseif entity.type == "tree" and global.bi.trees[entity.name] then + 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}) + if tree_stage then + remove_plants(entity.position, global.bi["tree_growing_stage_" .. tree_stage]) + else + error(string.format("Tree %s does not have a valid tree_stage: %s", entity.name, tree_stage or "nil")) + end + + -- Removed something else + else + BioInd.writeDebug("%s has been removed -- nothing to do!", {entity.name}) + end +end + + +-------------------------------------------------------------------- +local function On_Damage(event) + local f_name = "On_Damage" + BioInd.writeDebug("Entered function %s(%s)", {f_name, event}) + local entity = event.entity + local final_health = event.final_health + + local arb = "bi-arboretum" + local associated + + -- Base was damaged: Find the radar associated with it! + if entity.name == arb then + associated = global.bi_arboretum_table[entity.unit_number].radar + -- Radar was damaged: Find the base entity! + elseif entity.name == global.compound_entities[arb].hidden.radar.name then + local base_id = global.bi_arboretum_radar_table[entity.unit_number] + associated = global.bi_arboretum_table[base_id].base + end + + if associated and associated.valid then + associated.health = final_health + BioInd.writeDebug("%s was damaged (%s). Reducing health of %s to %s!", { + BioInd.print_name_id(entity), + event.final_damage_amount, + entity.name == arb and "associated radar" or "base", + associated.health + }) + end +end + +-------------------------------------------------------------------- +local function On_Death(event) + local f_name = "On_Death" +BioInd.writeDebug("Entered function %s(%s)", {f_name, event}) + + local entity = event.entity + if not entity then + error("Something went wrong -- no entity data!") + end + + if + -- Table checks + global.compound_entities[entity.name] or + global.bi.trees[entity.name] or + -- Entity checks + entity.name == global.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 + BioInd.writeDebug("Nothing to do!") + end +end + + +-------------------------------------------------------------------- +-- Radar stuff +-------------------------------------------------------------------- + +-- 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}) + + ---- Each time a Arboretum-Radar scans a sector ---- + local arboretum = global.bi_arboretum_radar_table[event.radar.unit_number] + if arboretum then + Get_Arboretum_Recipe(global.bi_arboretum_table[arboretum], event) + end +end + + +-------------------------------------------------------------------- +-- Solar Mat stuff +-------------------------------------------------------------------- + +-------------------------------------------------------------------- +-- Solar mat was removed +local function solar_mat_removed(event) + BioInd.writeDebug("Entered solar_mat_removed (\"%s\")", {event}) + + local surface = game.surfaces[event.surface_index] + local tiles = event.tiles + + local pos, x, y + -- tiles contains an array of the old tiles and their position + for t, tile in pairs(tiles) do + if tile.old_tile and tile.old_tile.name == "bi-solar-mat" then + 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} + } or {}) do +BioInd.show("Removing", o.name) + o.destroy() + end + + -- Remove tile from global tables + local force_name = global.bi_musk_floor_table.tiles and + global.bi_musk_floor_table.tiles[x] and + global.bi_musk_floor_table.tiles[x][y] + if force_name then +BioInd.writeDebug("Removing Musk floor tile from tables!") + global.bi_musk_floor_table.tiles[x][y] = nil + if not next(global.bi_musk_floor_table.tiles[x]) then + global.bi_musk_floor_table.tiles[x] = nil + end + + if global.bi_musk_floor_table.forces[force_name] and + global.bi_musk_floor_table.forces[force_name][x] then + global.bi_musk_floor_table.forces[force_name][x][y] = nil + if not next(global.bi_musk_floor_table.forces[force_name][x]) then + global.bi_musk_floor_table.forces[force_name][x] = nil + end + end + end + + end + end + + BioInd.writeDebug("bi-solar-mat: removed %g tiles", {table_size(tiles)}) +end + + +-------------------------------------------------------------------- +-- A solar mat must be placed +local function place_musk_floor(force, position, surface) + BioInd.check_args(force, "string") + position = BioInd.normalize_position(position) or BioInd.arg_err(position, "position") + surface = BioInd.is_surface(surface) or BioInd.arg_err(surface, "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}) + created.minable = false + created.destructible = false + BioInd.writeDebug("Created %s: %s", {name, created.unit_number}) + end + + -- Add to global tables! + global.bi_musk_floor_table.tiles[x] = global.bi_musk_floor_table.tiles[x] or {} + global.bi_musk_floor_table.tiles[x][y] = force + + global.bi_musk_floor_table.forces[force] = global.bi_musk_floor_table.forces[force] or {} + global.bi_musk_floor_table.forces[force][x] = global.bi_musk_floor_table.forces[force][x] or {} + global.bi_musk_floor_table.forces[force][x][y] = true +end + +-------------------------------------------------------------------- +-- Solar mat was built +local 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" + + local tile = event.tile + local surface = game.surfaces[event.surface_index] + local player = event.player_index and game.players[event.player_index] + local robot = event.robot + local force = (BioInd.UseMuskForce and BioInd.MuskForceName) or + (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) + + -- Item that was used to place the tile + local item = event.item + local old_tiles = event.tiles + + + local position --, x, y + + + -- 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 ) + + --~ for index, old_tile in pairs(old_tiles or {}) do + 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.writeDebug("Building solar mat for force %s at position %s", + {tostring(type(force) == "table" and force.name or force), position}) + + place_musk_floor(force, position, surface) + end + + -- 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) + + -- We want to restore removed tiles if nothing is supposed to grow on them! + if global.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} + + -- Is that tile minable? + products = global.bi.barren_tiles[t.old_tile.name] + if type(products) == "table" then + --~ for p, product in ipairs(products) do + --~ if player then +--~ BioInd.writeDebug("Removing %s (%s) from player %s", {product.name, product.amount, player.name}) + --~ player.remove_item({name = product.name, count = product.amount}) + --~ elseif robot then +--~ BioInd.writeDebug("Removing %s (%s) from robot %s", {product.name, product.amount, robot.unit_number}) + --~ robot.remove_item({name = product.name, count = product.amount}) + --~ end + --~ end + for p, product in ipairs(products) do + 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}) + player.remove_item(remove_this) + elseif robot then + BioInd.writeDebug("Removing %s (%s) from robot %s", + {product.name, product.amount, robot.unit_number}) + robot.remove_item(remove_this) + end + end + end + end + end +BioInd.show("restore_tiles", restore_tiles) + if restore_tiles then + surface.set_tiles( + restore_tiles, + true, -- correct_tiles + true, -- remove_colliding_entities + true, -- remove_colliding_decoratives + true -- raise_event + ) + end + + -- Some other tile has been built -- check if it replaced musk floor! + else + local test + local removed_tiles = {} + for index, t in pairs(old_tiles or {tile}) do + position = BioInd.normalize_position(t.position) + test = global.bi_musk_floor_table and + global.bi_musk_floor_table.tiles and + global.bi_musk_floor_table.tiles[position.x] and + global.bi_musk_floor_table.tiles[position.x][position.y] + if test then + removed_tiles[#removed_tiles + 1] = { + old_tile = {name = "bi-solar-mat"}, + position = position + } + end + end + if next(removed_tiles) then + --~ solar_mat_removed(surface, 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}) + end + end + +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}) + + -- 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! + local new_musk_floor_tiles = {} + local old_musk_floor_tiles = {} + local remove_musk_floor_tiles = {} + local pos, old_tile, force + + local tile_force + + for t, tile in ipairs(event.tiles) do +BioInd.show("t", t) + pos = BioInd.normalize_position(tile.position) + tile_force = global.bi_musk_floor_table.tiles[pos.x] and + global.bi_musk_floor_table.tiles[pos.x][pos.y] + --~ -- Fall back to MuskForceName if it is available + --~ UseMuskForce and MuskForceName or + --~ -- Fall back to "neutral" + --~ "neutral" +BioInd.show("Placed tile", tile.name) + + -- Musk floor was placed + if tile.name == "bi-solar-mat" then + BioInd.writeDebug("Musk floor tile was placed!") + new_musk_floor_tiles[#new_musk_floor_tiles + 1] = { + old_tile = { name = tile.name }, + position = pos, + force = tile_force or + BioInd.UseMuskForce and BioInd.MuskForceName or + "neutral" + } + -- Other tile was placed -- by one of our fertilizers? + elseif tile.name:match("^vegetation%-green%-grass%-[13]$") or + tile.name:match("^green%-grass%-[13]$") then + 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) + if tile_force then + old_musk_floor_tiles[#old_musk_floor_tiles + 1] = { + old_tile = { name = "bi-solar-mat" }, + position = pos, + force = tile_force + } + end + -- Other tile was placed on a Musk floor tile -- remove Musk floor from lists! + elseif tile_force then + remove_musk_floor_tiles[#remove_musk_floor_tiles + 1] = { + old_tile = { name = "bi-solar-mat" }, + position = pos, + } + 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) + + if next(new_musk_floor_tiles) then + solar_mat_built({ + surface_index = event.surface_index, + tile = {name = "bi-solar-mat"}, + force = BioInd.MuskForceName, + tiles = new_musk_floor_tiles + }) + end + if next(old_musk_floor_tiles) then + solar_mat_built({ + surface_index = event.surface_index, + 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}) + end + BioInd.show("End of function", f_name) +end + + +-------------------------------------------------------------------- + + +Event.register(Event.core_events.configuration_changed, On_Config_Change) +Event.register(Event.core_events.init, init) +Event.register(Event.core_events.load, On_Load) + + +Event.build_events = { + defines.events.on_built_entity, + defines.events.on_robot_built_entity, + defines.events.script_raised_built, + defines.events.script_raised_revive +} +Event.pre_remove_events = { + defines.events.on_pre_player_mined_item, + defines.events.on_robot_pre_mined, + defines.events.on_player_mined_entity, + defines.events.on_robot_mined_entity, +} +--~ Event.remove_events = { + --~ defines.events.on_player_mined_entity, + --~ defines.events.on_robot_mined_entity, +--~ } +Event.death_events = { + defines.events.on_entity_died, + defines.events.script_raised_destroy +} +Event.tile_build_events = { + defines.events.on_player_built_tile, + defines.events.on_robot_built_tile +} +Event.tile_remove_events = { + defines.events.on_player_mined_tile, + defines.events.on_robot_mined_tile +} +Event.tile_script_action = { + defines.events.script_raised_set_tiles +} + +Event.register(Event.build_events, On_Built) +Event.register(Event.pre_remove_events, On_Pre_Remove) +--~ Event.register(Event.remove_events, On_Remove) +--~ Event.register(Event.remove_events, On_Remove) +Event.register(Event.death_events, On_Death) +Event.register(Event.tile_build_events, solar_mat_built) +Event.register(Event.tile_remove_events, solar_mat_removed) + + +Event.register(defines.events.on_entity_damaged, On_Damage, function(event) + -- A function is needed for event filtering with stdlib! + local entity = event.entity + + -- Ignore damage without effect (invulnerable/resistant entities) + if event.final_damage_amount ~= 0 and + -- Terraformer/Terraformer radar was damaged + (global.bi_arboretum_table[entity.unit_number] or + global.bi_arboretum_radar_table[entity.unit_number]) then + return true + end +end) + +-- Radar scan +Event.register(defines.events.on_sector_scanned, On_Sector_Scanned, function(event) + -- A function is needed for event filtering with stdlib! + if event.radar.name == BioInd.compound_entities["bi-arboretum"].hidden.radar.name then + return true + end +end) + +-- Tile changed +Event.register(Event.tile_script_action, Tile_Changed) + + +------------------------------------------------------------------------------------ +-- FIND LOCAL VARIABLES THAT ARE USED GLOBALLY -- +-- (Thanks to eradicator!) -- +------------------------------------------------------------------------------------ +setmetatable(_ENV, { + __newindex = function (self, key, value) --locked_global_write + error('\n\n[ER Global Lock] Forbidden global *write*:\n' + .. serpent.line{key = key or '', value = value or ''} .. '\n') + end, + __index = function (self, key) --locked_global_read + if not (key == "game" or key == "mods") then + error('\n\n[ER Global Lock] Forbidden global *read*:\n' + .. serpent.line{key = key or ''} .. '\n') + end + end +}) diff --git a/Bio_Industries_2/control_arboretum.lua b/Bio_Industries_2/control_arboretum.lua new file mode 100644 index 0000000..d053309 --- /dev/null +++ b/Bio_Industries_2/control_arboretum.lua @@ -0,0 +1,270 @@ +--~ local BioInd = require("__" .. script.mod_name .. "__.common")(script.mod_name) + +BioInd.writeDebug("Entered control_arboretum.lua") + +---Arboretum Stuff + +--~ local Event = require('__stdlib__/stdlib/event/event').set_protected_mode(true) +local Event = require('__stdlib__/stdlib/event/event').set_protected_mode(false) + +-- If a recipe with NORMAL FERTILIZER is used, don't fertilize tiles set have "true" +-- set! (Fertile tiles set to true in this table can't be made more fertile with +-- normal fertilizer, and nothing should grow on the other tiles.) +local Terrain_Check_1 = { + --~ ["landfill"] = true, + ["grass-1"] = true, -- Fertility: 100% + ["grass-3"] = true, -- Fertility: 85% + ["vegetation-green-grass-1"] = true, -- Fertility: 100% + ["vegetation-green-grass-3"] = true, -- Fertility: 85% +} + +-- If a recipe with ADVANCED FERTILIZER is used, don't fertilize tiles set have "true" set! +-- (Fertile tiles in this table can't be made more fertile, and nothing should grow on the +-- the others tiles!) +local Terrain_Check_2 = { + --~ ["landfill"] = true, + ["grass-1"] = true, -- Fertility: 100% + ["vegetation-green-grass-1"] = true, -- Fertility: 100% +} + +local plant_radius = 75 +--~ local plant_radius = 25 + +-- Different tiles are used if AlienBiomes is active +local AB, terrain_name_g1, terrain_name_g3 + +-- OmniFluid replaces all fluids with items, so the arboretum won't have a fluidbox! +--~ local OmniFluid + + +local function get_new_position(pos) + pos = BioInd.normalize_position(pos) or BioInd.arg_err("nil", position) + 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} +end + + +-- Check that all ingredients are available! +local function check_ingredients(arboretum) + local recipe = arboretum.get_recipe() + local need = recipe and global.bi_arboretum_recipe_table[recipe.name] + + local function check(need, have) + for name, amount in pairs(need or {}) do + if not (have and have[name]) or (have[name] < amount) then + BioInd.writeDebug("Missing ingredient %s (have %s of %s)", {name, have[name] or 0, amount}) + return false + end + end + return true + end + + local inventory = arboretum.get_inventory(defines.inventory.assembling_machine_input) + 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 +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}) + end +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}) + end +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}}, + true, -- correct_tiles + true, -- remove_colliding_entities + true, -- remove_colliding_decoratives + true -- raise_event + ) + end +end + +function Get_Arboretum_Recipe(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 + end + + local arboretum = ArboretumTable.base + --~ local new_position, currentTilename, can_be_placed + local new_position, currentTilename + local pos, surface, Inventory, stack + + -- 'AlienBiomes' is a bool value -- we don't want to read it again if it's false, + -- but only if it hasn't been set yet! + AB = global.compatible.AlienBiomes + --~ terrain_name_g1 = terrain_name_g1 or (AB and "vegetation-green-grass-1" or "grass-1") + --~ terrain_name_g3 = terrain_name_g3 or (AB and "vegetation-green-grass-3" or "grass-3") + terrain_name_g1 = terrain_name_g1 or (AB and "vegetation-green-grass-1" or "grass-1") + terrain_name_g3 = terrain_name_g3 or (AB and "vegetation-green-grass-3" or "grass-3") + + + local check = check_ingredients(arboretum) + local ingredients, recipe_name + if check then + ingredients, recipe_name = check.ingredients, check.name + end + + if ingredients then + local create_seedling, new_plant + pos = BioInd.normalize_position(arboretum.position) or + BioInd.arg_err("nil", "position") + surface = arboretum.surface + + -- Just plant a tree and hope the ground is fertile! + if recipe_name == "bi-arboretum-r1" then + BioInd.writeDebug(tostring(recipe_name) .. ": Just plant a tree") + + --- 10 attempts to find a random spot to plant a tree and/or change terrain + for k = 1, 10 do + new_position = get_new_position(pos) + new_plant = { + name= "seedling", + position = new_position, + force = "neutral" + } + + if surface.can_place_entity(new_plant) then + consume_ingredients(arboretum, ingredients) + create_seedling = surface.create_entity(new_plant) + seed_planted_arboretum(event, create_seedling) + --- After sucessfully planting a tree, break out of the loop. + break + else + BioInd.writeDebug("Can't plant here (attempt %s)", k) + end + end + -- Fertilize the ground with normal fertilizer. Ignore tiles listed in Terrain_Check_1! + elseif recipe_name == "bi-arboretum-r2" then + BioInd.writeDebug(tostring(recipe_name) .. ": Just change terrain to grass-3 (basic)") + + for k = 1, 10 do --- 10 attempts to find a random spot to plant a tree and / or change terrain + new_position = get_new_position(pos) + currentTilename = surface.get_tile(new_position.x, new_position.y).name + + -- We need to fertilize the ground! + 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)}) + 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"}) + end + end + -- Fertilize the ground with advanced fertilizer. Ignore tiles listed in Terrain_Check_2! + elseif recipe_name == "bi-arboretum-r3" then + BioInd.writeDebug(tostring(recipe_name) .. ": Just change terrain to grass-1 (advanced)") + + for k = 1, 10 do --- 10 attempts to find a random spot to plant a tree and / or change terrain + new_position = get_new_position(pos) + currentTilename = surface.get_tile(new_position.x, new_position.y).name + + 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)}) + 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"}) + end + end + -- Fertilize the ground with normal fertilizer. Ignore tiles listed in Terrain_Check_1! + -- Also plant a tree. + elseif recipe_name == "bi-arboretum-r4" then + BioInd.writeDebug(tostring(recipe_name) .. ": Plant Tree AND change the terrain to grass-3 (basic)") + + for k = 1, 10 do --- 10 attempts to find a random spot to plant a tree and / or change terrain + new_position = get_new_position(pos) + currentTilename = surface.get_tile(new_position.x, new_position.y).name + new_plant = { + name= "seedling", + position = new_position, + force = "neutral" + } + + -- Test to see if we can plant + if surface.can_place_entity(new_plant) and Bi_Industries.fertility[currentTilename] then + 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}) + BioInd.writeDebug("Refunded fertilizer!") + end + + set_tile(currentTilename, terrain_name_g3, surface, new_position) + create_seedling = surface.create_entity(new_plant) + 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"}) + end + end + -- Fertilize the ground with advanced fertilizer. Ignore tiles listed in Terrain_Check_2! + -- Also plant a tree. + elseif recipe_name == "bi-arboretum-r5" then + BioInd.writeDebug(tostring(recipe_name) .. ": Plant Tree and change the terrain to grass-1 (advanced)") + + for k = 1, 10 do --- 10 attempts to find a random spot to plant a tree and / or change terrain + new_position = get_new_position(pos) + currentTilename = surface.get_tile(new_position.x, new_position.y).name + new_plant = { + name= "seedling", + position = new_position, + force = "neutral" + } + + if surface.can_place_entity(new_plant) and Bi_Industries.fertility[currentTilename] then + consume_ingredients(arboretum, ingredients) + -- Refund fertilizer -- no need to waste it on fertile ground! + if Terrain_Check_2[currentTilename] then + arboretum.insert({ + name = "bi-adv-fertilizer", count = ingredients.items["bi-adv-fertilizer"] + }) + BioInd.writeDebug("Refunded advanced fertilizer!") + end + + set_tile(currentTilename, terrain_name_g1, surface, new_position) + create_seedling = surface.create_entity(new_plant) + 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"}) + end + end + else + BioInd.writeDebug("Terraformer has no recipe!") + end + end +end diff --git a/Bio_Industries_2/control_tree.lua b/Bio_Industries_2/control_tree.lua new file mode 100644 index 0000000..eb09e13 --- /dev/null +++ b/Bio_Industries_2/control_tree.lua @@ -0,0 +1,669 @@ +--~ local BioInd = require("__"..script.mod_name.."__.common")(script.mod_name) + +-- All tree Growing stuff +local Event = require('__stdlib__/stdlib/event/event').set_protected_mode(true) + +local terrains = require("libs/trees-and-terrains") + +Bi_Industries = {} + +Bi_Industries.fertility = { + ["vegetation-green-grass-1"] = 100, + ["grass-1"] = 100, + ["grass-3"] = 85, + ["grass-2"] = 70, + ["grass-4"] = 60, + ["red-desert-0"] = 50, + ["dirt-3"] = 40, + ["dirt-5"] = 37, + ["dirt-6"] = 34, + ["dirt-7"] = 31, + ["dirt-4"] = 28, + ["dry-dirt"] = 25, + ["dirt-2"] = 22, + ["dirt-1"] = 19, + ["red-desert-2"] = 16, + ["red-desert-3"] = 13, + ["sand-3"] = 10, + ["sand-2"] = 7, + ["sand-1"] = 4, + ["red-desert-1"] = 1, + ["frozen-snow-0"] = 1, + ["frozen-snow-1"] = 1, + ["frozen-snow-2"] = 1, + ["frozen-snow-3"] = 1, + ["frozen-snow-4"] = 1, + ["frozen-snow-5"] = 1, + ["frozen-snow-6"] = 1, + ["frozen-snow-7"] = 1, + ["frozen-snow-8"] = 1, + ["frozen-snow-9"] = 1, + ["mineral-aubergine-dirt-1"] = 45, + ["mineral-aubergine-dirt-2"] = 45, + ["mineral-aubergine-dirt-3"] = 25, + ["mineral-aubergine-dirt-4"] = 25, + ["mineral-aubergine-dirt-5"] = 25, + ["mineral-aubergine-dirt-6"] = 25, + ["mineral-aubergine-dirt-7"] = 25, + ["mineral-aubergine-dirt-8"] = 25, + ["mineral-aubergine-dirt-9"] = 25, + ["mineral-aubergine-sand-1"] = 15, + ["mineral-aubergine-sand-2"] = 15, + ["mineral-aubergine-sand-3"] = 10, + ["mineral-beige-dirt-1"] = 45, + ["mineral-beige-dirt-2"] = 45, + ["mineral-beige-dirt-3"] = 25, + ["mineral-beige-dirt-4"] = 25, + ["mineral-beige-dirt-5"] = 25, + ["mineral-beige-dirt-6"] = 25, + ["mineral-beige-dirt-7"] = 25, + ["mineral-beige-dirt-8"] = 25, + ["mineral-beige-dirt-9"] = 25, + ["mineral-beige-sand-1"] = 10, + ["mineral-beige-sand-2"] = 10, + ["mineral-beige-sand-3"] = 10, + ["mineral-black-dirt-1"] = 45, + ["mineral-black-dirt-2"] = 45, + ["mineral-black-dirt-3"] = 25, + ["mineral-black-dirt-4"] = 25, + ["mineral-black-dirt-5"] = 25, + ["mineral-black-dirt-6"] = 25, + ["mineral-black-dirt-7"] = 25, + ["mineral-black-dirt-8"] = 25, + ["mineral-black-dirt-9"] = 25, + ["mineral-black-sand-1"] = 10, + ["mineral-black-sand-2"] = 10, + ["mineral-black-sand-3"] = 10, + ["mineral-brown-dirt-1"] = 25, + ["mineral-brown-dirt-2"] = 25, + ["mineral-brown-dirt-3"] = 25, + ["mineral-brown-dirt-4"] = 25, + ["mineral-brown-dirt-5"] = 25, + ["mineral-brown-dirt-6"] = 25, + ["mineral-brown-dirt-7"] = 25, + ["mineral-brown-dirt-8"] = 25, + ["mineral-brown-dirt-9"] = 25, + ["mineral-brown-sand-1"] = 10, + ["mineral-brown-sand-2"] = 10, + ["mineral-brown-sand-3"] = 10, + ["mineral-cream-dirt-1"] = 25, + ["mineral-cream-dirt-2"] = 25, + ["mineral-cream-dirt-3"] = 25, + ["mineral-cream-dirt-4"] = 25, + ["mineral-cream-dirt-5"] = 25, + ["mineral-cream-dirt-6"] = 25, + ["mineral-cream-dirt-7"] = 25, + ["mineral-cream-dirt-8"] = 25, + ["mineral-cream-dirt-9"] = 25, + ["mineral-cream-sand-1"] = 10, + ["mineral-cream-sand-2"] = 10, + ["mineral-cream-sand-3"] = 10, + ["mineral-dustyrose-dirt-1"] = 25, + ["mineral-dustyrose-dirt-2"] = 25, + ["mineral-dustyrose-dirt-3"] = 25, + ["mineral-dustyrose-dirt-4"] = 25, + ["mineral-dustyrose-dirt-5"] = 25, + ["mineral-dustyrose-dirt-6"] = 25, + ["mineral-dustyrose-dirt-7"] = 25, + ["mineral-dustyrose-dirt-8"] = 25, + ["mineral-dustyrose-dirt-9"] = 25, + ["mineral-dustyrose-sand-1"] = 10, + ["mineral-dustyrose-sand-2"] = 10, + ["mineral-dustyrose-sand-3"] = 10, + ["mineral-grey-dirt-1"] = 25, + ["mineral-grey-dirt-2"] = 25, + ["mineral-grey-dirt-3"] = 25, + ["mineral-grey-dirt-4"] = 25, + ["mineral-grey-dirt-5"] = 25, + ["mineral-grey-dirt-6"] = 25, + ["mineral-grey-dirt-7"] = 25, + ["mineral-grey-dirt-8"] = 25, + ["mineral-grey-dirt-9"] = 25, + ["mineral-grey-sand-1"] = 10, + ["mineral-grey-sand-2"] = 10, + ["mineral-grey-sand-3"] = 10, + ["mineral-purple-dirt-1"] = 25, + ["mineral-purple-dirt-2"] = 25, + ["mineral-purple-dirt-3"] = 25, + ["mineral-purple-dirt-4"] = 25, + ["mineral-purple-dirt-5"] = 25, + ["mineral-purple-dirt-6"] = 25, + ["mineral-purple-dirt-7"] = 25, + ["mineral-purple-dirt-8"] = 25, + ["mineral-purple-dirt-9"] = 25, + ["mineral-purple-sand-1"] = 10, + ["mineral-purple-sand-2"] = 10, + ["mineral-purple-sand-3"] = 10, + ["mineral-red-dirt-1"] = 25, + ["mineral-red-dirt-2"] = 25, + ["mineral-red-dirt-3"] = 25, + ["mineral-red-dirt-4"] = 25, + ["mineral-red-dirt-5"] = 25, + ["mineral-red-dirt-6"] = 25, + ["mineral-red-dirt-7"] = 25, + ["mineral-red-dirt-8"] = 25, + ["mineral-red-dirt-9"] = 25, + ["mineral-red-sand-1"] = 10, + ["mineral-red-sand-2"] = 10, + ["mineral-red-sand-3"] = 10, + ["mineral-tan-dirt-1"] = 25, + ["mineral-tan-dirt-2"] = 25, + ["mineral-tan-dirt-3"] = 25, + ["mineral-tan-dirt-4"] = 25, + ["mineral-tan-dirt-5"] = 25, + ["mineral-tan-dirt-6"] = 25, + ["mineral-tan-dirt-7"] = 25, + ["mineral-tan-dirt-8"] = 25, + ["mineral-tan-dirt-9"] = 25, + ["mineral-tan-sand-1"] = 10, + ["mineral-tan-sand-2"] = 10, + ["mineral-tan-sand-3"] = 10, + ["mineral-violet-dirt-1"] = 25, + ["mineral-violet-dirt-2"] = 25, + ["mineral-violet-dirt-3"] = 25, + ["mineral-violet-dirt-4"] = 25, + ["mineral-violet-dirt-5"] = 25, + ["mineral-violet-dirt-6"] = 25, + ["mineral-violet-dirt-7"] = 25, + ["mineral-violet-dirt-8"] = 25, + ["mineral-violet-dirt-9"] = 25, + ["mineral-violet-sand-1"] = 10, + ["mineral-violet-sand-2"] = 10, + ["mineral-violet-sand-3"] = 10, + ["mineral-white-dirt-1"] = 25, + ["mineral-white-dirt-2"] = 25, + ["mineral-white-dirt-3"] = 25, + ["mineral-white-dirt-4"] = 25, + ["mineral-white-dirt-5"] = 25, + ["mineral-white-dirt-6"] = 25, + ["mineral-white-dirt-7"] = 25, + ["mineral-white-dirt-8"] = 25, + ["mineral-white-dirt-9"] = 25, + ["mineral-white-sand-1"] = 10, + ["mineral-white-sand-2"] = 10, + ["mineral-white-sand-3"] = 10, + ["vegetation-blue-grass-1"] = 70, + ["vegetation-blue-grass-2"] = 70, + ["vegetation-green-grass-2"] = 75, + ["vegetation-green-grass-3"] = 85, + ["vegetation-green-grass-4"] = 70, + ["vegetation-mauve-grass-1"] = 70, + ["vegetation-mauve-grass-2"] = 70, + ["vegetation-olive-grass-1"] = 70, + ["vegetation-olive-grass-2"] = 70, + ["vegetation-orange-grass-1"] = 70, + ["vegetation-orange-grass-2"] = 70, + ["vegetation-purple-grass-1"] = 70, + ["vegetation-purple-grass-2"] = 70, + ["vegetation-red-grass-1"] = 70, + ["vegetation-red-grass-2"] = 70, + ["vegetation-turquoise-grass-1"] = 70, + ["vegetation-turquoise-grass-2"] = 70, + ["vegetation-violet-grass-1"] = 70, + ["vegetation-violet-grass-2"] = 70, + ["vegetation-yellow-grass-1"] = 70, + ["vegetation-yellow-grass-2"] = 70, + ["volcanic-blue-heat-1"] = 1, + ["volcanic-blue-heat-2"] = 1, + ["volcanic-blue-heat-3"] = 1, + ["volcanic-blue-heat-4"] = 1, + ["volcanic-green-heat-1"] = 1, + ["volcanic-green-heat-2"] = 1, + ["volcanic-green-heat-3"] = 1, + ["volcanic-green-heat-4"] = 1, + ["volcanic-orange-heat-1"] = 1, + ["volcanic-orange-heat-2"] = 1, + ["volcanic-orange-heat-3"] = 1, + ["volcanic-orange-heat-4"] = 1, + ["volcanic-purple-heat-1"] = 1, + ["volcanic-purple-heat-2"] = 1, + ["volcanic-purple-heat-3"] = 1, + ["volcanic-purple-heat-4"] = 1, + ["landfill"] = 1, +} + +--~ local function get_tile_fertility(surface, position) + --~ surface = BioInd.is_surface(surface) or BioInd.arg_err(surface or "nil", "surface") + --~ position = BioInd.normalize_position(position) or BioInd.arg_err(position or "nil", "position") + + --~ local fertility = Bi_Industries.fertility[surface.get_tile(position.x, position.y).name] + + --~ return fertility and {fertility = fertility, key = "fertilizer"} or + --~ {fertility = 1, key = "default"} +--~ end + +-- If we get passed on a tile_name, we can skip getting the tile at position! +local function get_tile_fertility(surface, position, tile_name) + surface = BioInd.is_surface(surface) or BioInd.arg_err(surface or "nil", "surface") + position = BioInd.normalize_position(position) or BioInd.arg_err(position or "nil", "position") + + tile_name = tile_name or surface.get_tile(position.x, position.y).name + + local fertility = Bi_Industries.fertility[tile_name] + + return fertility and {fertility = fertility, key = "fertilizer"} or + {fertility = 1, key = "default"} +end + + +local function plant_tree(tabl, tree, create_entity) + BioInd.check_args(tabl, "table") + BioInd.check_args(tree, "table") + BioInd.check_args(tree.time, "number", "time") + -- tree.tree_name is only required if we really want to create a tree, + -- not if we just want to add a table entry! + if create_entity then + BioInd.check_args(tree.tree_name, "string", "tree_name") + end + + if not (tree.position and BioInd.normalize_position(tree.position)) then + BioInd.arg_err(tree.position or "nil", "position") + elseif not (tree.surface and BioInd.is_surface(tree.surface)) then + BioInd.arg_err(tree.surface or "nil", "surface") + end + + local grow_until_tick = tree.time +BioInd.show("grow_until_tick", grow_until_tick) + tabl[grow_until_tick] = tabl[grow_until_tick] or {} + + -- Update table + --~ table.insert(tabl, tree) + --~ table.sort(tabl, function(a, b) return a.time < b.time end) + --~ table.sort(tabl, function(a, b) return a.time > b.time end) + table.insert(tabl[grow_until_tick], tree) +BioInd.writeDebug("Added tree to table!") + + -- Plant the new tree + if create_entity then + tree.surface.create_entity({ + name = tree.tree_name, + position = tree.position, + force = "neutral" + }) + end +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"} + }) 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) + -- Seed Planted (Put the seedling in the table) + local entity = event.entity or event.created_entity or + BioInd.arg_err("nil", "entity") + local surface = BioInd.is_surface(entity.surface) or + BioInd.arg_err(entity.surface or "nil", "surface") + local pos = BioInd.normalize_position(entity.position) or + BioInd.arg_err(entity.position or "nil", "position") + + -- Minimum will always be 1 + local fertility = get_tile_fertility(surface, pos).fertility + + -- Things will grow faster on fertile than on barren tiles + -- (No penalty for tiles with maximum fertility) + local grow_time = math.max(1, math.random(t_base) + t_penalty - (40 * fertility)) + local tree_data = { + position = pos, + time = event.tick + grow_time, + surface = surface, + seed_bomb = seedbomb + } + plant_tree(global.bi.tree_growing, tree_data, false) +end + +function seed_planted(event) + plant_seed(event, 1000, 4000, false) +end + +function seed_planted_trigger(event) + plant_seed(event, 2000, 6000, true) +end + +function seed_planted_arboretum(event, entity) + event.created_entity = entity + plant_seed(event, 2000, 6000, false) +end + + +function summ_weight(tabl) + local summ = 0 + for i, tree_weights in pairs(tabl or {}) do + if (type(tree_weights) == "table") and tree_weights.weight then + summ = summ + tree_weights.weight + end + end + return summ +end + +function tree_from_max_index_tabl(max_index, tabl) + BioInd.check_args(max_index, "number") + + local rnd_index = math.random(max_index) + for tree_name, tree_weights in pairs(tabl or {}) do + if (type(tree_weights) == "table") and tree_weights.weight then + rnd_index = rnd_index - tree_weights.weight + if rnd_index <= 0 then + return tree_name + end + end + end + return nil +end + +local function random_tree(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}) + return tree_from_max_index_tabl(max_index, trees_table) + end +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}, + }, + [2] = { + 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}, + }, +} + +local function Grow_tree_first_stage(first_stage_table, event) + BioInd.check_args(first_stage_table, "table") + BioInd.check_args(event, "table") + local surface = BioInd.is_surface(first_stage_table.surface) or + BioInd.arg_err(first_stage_table.surface or "nil", "surface") + local position = BioInd.normalize_position(first_stage_table.position) or + BioInd.arg_err(first_stage_table.position or "nil", "position") + local seed_bomb = first_stage_table.seed_bomb + + local tree = surface.find_entity("seedling", position) + 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", + tree2 and tree2.valid and tree2.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) + -- 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!") + --~ tree_name = random_tree(surface, position) + tree_name = random_tree(tile_name) + end +BioInd.show("tree_name", tree_name) + + + if tree then + BioInd.writeDebug("Have tree") + if tree.valid then + tree.destroy() + BioInd.writeDebug("Destroyed tree!") + end + + if tree_name and key == "fertilizer" and not seed_bomb then + -- Depending on Terrain, choose tree type & Convert seedling into a tree + BioInd.writeDebug("Fertilizer and no seed bomb: New tree can grow!") + -- Grow the new tree + 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)) + + 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) + + local stage_1_tree_name = "bio-tree-"..tree_name.."-1" + if not (game.item_prototypes[stage_1_tree_name] or + game.entity_prototypes[stage_1_tree_name]) then + stage_1_tree_name = tree_name + end +BioInd.writeDebug("stage_1_tree_name: %s", {stage_1_tree_name}) + + local tree_data = { + tree_name = stage_1_tree_name, + final_tree = tree_name, + position = position, + time = event.tick + grow_time, + surface = surface + } + plant_tree(global.bi.tree_growing_stage_1, tree_data, true) + end + end + end + + --- Seed Bomb Code +BioInd.show("tree_name", tree_name) +BioInd.show("tree2", tree2) +BioInd.show("tree3", tree3) + + if seed_bomb then + BioInd.writeDebug("Seed bomb was used!") + if tree2 and tree2.valid then + tree2.destroy() + BioInd.writeDebug("Removed tree2!") + end + if tree3 and tree3.valid then + tree3.destroy() + BioInd.writeDebug("Removed tree3!") + end + + --- Depending on Terrain, choose tree type & Convert seedling into a tree +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"} + 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) + if can_be_placed and growth_chance <= fertility then + surface.create_entity(new_tree) + BioInd.writeDebug("Created new tree!") + end + else + BioInd.writeDebug("Tree not Found") + end + else + BioInd.writeDebug("Tile not Found") + end + end +end + +local function Grow_tree_last_stage(last_stage_table) + BioInd.check_args(last_stage_table, "table") + BioInd.check_args(last_stage_table.tree_name, "string", "tree_name") + BioInd.check_args(last_stage_table.final_tree, "string", "final_tree") + + local surface = BioInd.is_surface(last_stage_table.surface) or + BioInd.arg_err(last_stage_table.surface or "nil", "surface") + local position = BioInd.normalize_position(last_stage_table.position) or + BioInd.arg_err(last_stage_table.position or "nil", "position") + + local tree_name = last_stage_table.tree_name + local final_tree = last_stage_table.final_tree + + local tree = tree_name and surface.find_entity(tree_name, position) + + + if tree then + tree.destroy() + + -- fertility will be 1 if terrain type not listed above, so very small change to grow. + local f = get_tile_fertility(surface, position) + local fertility, key = f.fertility, f.key + + -- Random value. Tree will grow if this value is smaller than the 'Fertility' value + local growth_chance = math.random(100) + + --- 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}) + surface.create_entity({ + name = final_tree, + position = position, + force = "neutral" + }) + end + end +end + + +local function Grow_tree_stage(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") + + if stage == 4 then + 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"}, + }) do + BioInd.check_args(arg.arg, arg.type, arg.desc) + end + + local tree_name = stage_table.tree_name + local final_tree = stage_table.final_tree + local time_planted = stage_table.time + + local surface = BioInd.is_surface(stage_table.surface) or + BioInd.arg_err(stage_table.surface or "nil", "surface") + local position = BioInd.normalize_position(stage_table.position) or + BioInd.arg_err(stage_table.position or "nil", "position") + + + + local tree = tree_name and surface.find_entity(tree_name, position) + + if tree then + tree.destroy() + + local next_stage = stage + 1 + --- Depending on Terrain, choose tree type & Convert seedling into a tree + 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 + if not (game.item_prototypes[next_stage_tree_name] or + game.entity_prototypes[next_stage_tree_name]) then + next_stage_tree_name = final_tree + BioInd.writeDebug("Next stage %g: Prototype did not exist", {next_stage}) + else + BioInd.writeDebug("Next stage %g: %s", {next_stage, next_stage_tree_name}) + end + + 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({ + name = final_tree, + position = position, + force = "neutral" + }) + else + -- Trees will grow faster on fertile than on barren tiles! + local s = stage_settings[stage][key] + local grow_time = math.max(1, math.random(s.max) + s.penalty - (s.factor * fertility)) + + local tree_data = { + tree_name = next_stage_tree_name, + final_tree = final_tree, + position = position, + time = time_planted + grow_time, + surface = surface + } + plant_tree(global.bi["tree_growing_stage_"..next_stage], tree_data, true) + end + end + + else + BioInd.writeDebug("Did not find that tree I was looking for...") + end + end +end + + +---- Growing Tree +--Event.register(-12, function(event) +Event.register(defines.events.on_tick, function(event) + if global.bi.tree_growing_stage_1 == nil then + for i = 1, 4 do + global.bi["tree_growing_stage_"..i] = global.bi["tree_growing_stage_"..i] or {} + end + end + + local tick = event.tick + + if global.bi.tree_growing[tick] then + for t, tree_data in pairs(global.bi.tree_growing[tick]) do + BioInd.writeDebug("Trying to move tree %s to first grow stage!", {t}) + Grow_tree_first_stage(tree_data, event) + end + BioInd.writeDebug("Removing global.bi.tree_growing[%s]!", {tick}) + global.bi.tree_growing[tick] = nil + end + + local stage_table + for stage = 1, 4 do + stage_table = global.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}) + Grow_tree_stage(tree_data, stage) + end + BioInd.writeDebug("Removing global.bi.tree_growing_stage_%s[%s]!", + {stage, tick}) + stage_table[tick] = nil + end + end +end) diff --git a/Bio_Industries_2/credits.txt b/Bio_Industries_2/credits.txt new file mode 100644 index 0000000..9768ae3 --- /dev/null +++ b/Bio_Industries_2/credits.txt @@ -0,0 +1,33 @@ +------------------------------------------------------------------------------- +------------------------------------- Credits --------------------------------- +------------------------------------------------------------------------------- + +L0771 - For his help given to me to start this MOD. +AlyxDeLunar - For his MOD Dynamic Expansion that I've used in my MOD. +Albatrosv13 - For his MOD Alien Temple that I've used in my MOD. +FreeER - For his MOD Mind Control that I've used in my MOD. +Darkshadow1809 - For his Evolution MOD . +Rsending91, DOSorDIE and SpeedyBrain - Item/Corpse Collector Mod. +Orzelek - RSO, Coding help and answering questions! +Veden - He added some amazing code to my mod and has an amazing AI behavior mod: Rampant. Must have! +ThaPear, Semvoz, Billw, Adil, Rseding91, Chlue - Coding help! +Supercheese - Swarm Mod. +Afforess - Misanthrope Mod. +Darkfrei - Help with the solar-mat & tree stuff. Graphics and so much more! +d3x0r - Wooden Rail Bridge images and rail work in general +drs9999 - Tree Farm Mod +S_R_G - Graphics +Steinio - Use of his "steinios unlasting oil" mod. +DellAquila - Use of his "FiniteWater" mod +Eradicator - Lot of help on the forums +Veni - A lot of help with the Bio-Fuel section +SpeedDaemon - Greenhouse Mod +Simdezimon - Wood Floors +Klonan - Big Wooden Pole and Wooden Fence +LukeM212 & JJtJJ - Tree Mods +DySoch - DyTech, showing me what was possible +Bobingabout - Bob's Mods - Learned a lot from looking at your amazing work and am using a lot of your great code! +YuokiTani - Art!! Amazing work! +And everyone else who give feedback/suggestions/help on the forums! + +Sorry if I missed anyone! PM me!! diff --git a/Bio_Industries_2/data-final-fixes.lua b/Bio_Industries_2/data-final-fixes.lua new file mode 100644 index 0000000..8b2faa1 --- /dev/null +++ b/Bio_Industries_2/data-final-fixes.lua @@ -0,0 +1,534 @@ +local BioInd = require('common')('Bio_Industries') +local ICONPATH = "__Bio_Industries__/graphics/icons/" + +-- If OwnlyMe's or Tral'a "Robot Tree Farm" mods are active, they will create variatons +-- of our variations of tree prototypes. Remove them! +local ignore_trees = BioInd.get_tree_ignore_list() +local removed = 0 + +for name, _ in pairs(ignore_trees or {}) do + if name:match("rtf%-bio%-tree%-.+%-%d-%d+") then + data.raw.tree[name] = nil + ignore_trees[name] = nil + removed = removed + 1 + 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)}) + +BI.Settings.BI_Game_Tweaks_Emissions_Multiplier = settings.startup["BI_Game_Tweaks_Emissions_Multiplier"].value + + +-- Moved to data-updates.lua for 0.18.34/1.1.4! +--~ ---- 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}) + + --~ --- Stone Wall + --~ 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.remove_ingredient("bi-rail-wood", "stone") + --~ 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}) +--~ end + +---- Game Tweaks ---- Tree +if BI.Settings.BI_Game_Tweaks_Tree then + + local new_results = { + { + type = "item", + name = "wood", + amount_min = 1, + amount_max = 6 + } + } + + 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") + --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 + -- trees). In this case, overwriting mining.results with the data from + -- mining.result could break other mods (e.g. IR2's rubber trees should + -- yield "rubber-wood" instead of "wood"). + if tree.minable.result and not tree.minable.results then + 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}) + tree.minable.mining_particle = "wooden-particle" + tree.minable.mining_time = 1.5 + --~ tree.minable.results = { + --~ { + --~ type = "item", + --~ name = "wood", + --~ amount_min = 1, + --~ amount_max = 6 + --~ } + --~ } + tree.minable.results = new_results + -- CONVERT RESULT TO RESULTS + else + BioInd.writeDebug("Converting tree.minable.result to tree.minable.results!") + tree.minable.mining_particle = "wooden-particle" + tree.minable.results = { + { + type = "item", + name = tree.minable.result, + amount = tree.minable.count, + } + } + end + --CHECK FOR RESULTS TABLE + elseif tree.minable.results then + BioInd.writeDebug("Checking minable.results!") + 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") + result.amount = nil + result.amount_min = 1 + result.amount_max = 6 + end + end + tree.minable.result = nil + tree.minable.count = nil + -- NEITHER RESULT NOR RESULTS EXIST -- CREATE RESULTS! + else + BioInd.writeDebug("Creating minable.results!") + tree.minable.results = new_results + end + BioInd.writeDebug("New minable.results: %s", + {tree.minable and tree.minable.results or "nil"}, "line") + else + BioInd.writeDebug("Won't change results of %s!", {tree.name}) + end +--~ BioInd.show("tree.minable", tree.minable) + end +end + + +---- Game Tweaks ---- Player (Changed for 0.18.34/1.1.4!) +if BI.Settings.BI_Game_Tweaks_Player then + -- There may be more than one character in the game! Here's a list of + -- the character prototype names or patterns matching character prototype + -- names we want to ignore. + local blacklist = { + ------------------------------------------------------------------------------------ + -- Known dummies -- + ------------------------------------------------------------------------------------ + -- Autodrive + "autodrive-passenger", + -- AAI Programmable Vehicles + "^.+%-_%-driver$", + -- Minime + "minime_character_dummy", + -- Water Turret (currently the dummies are not characters -- but things may change!) + "^WT%-.+%-dummy$", + ------------------------------------------------------------------------------------ + -- Other characters -- + ------------------------------------------------------------------------------------ + -- Bob's Classes and Multiple characters mod + "^.*bob%-character%-.+$", + } + + local whitelist = { + -- Default character + "^character$", + -- Characters compatible with Minime + "^.*skin.*$", + } + + local tweaks = { + loot_pickup_distance = 5, -- default 2 + build_distance = 20, -- Vanilla 6 + drop_item_distance = 20, -- Vanilla 6 + reach_distance = 20, -- Vanilla 6 + item_pickup_distance = 6, -- Vanilla 1 + reach_resource_distance = 6, -- Vanilla 2.7 + } + + local found, ignore + for char_name, character in pairs(data.raw.character) do +BioInd.show("Checking character", char_name) + found = false + + for w, w_pattern in ipairs(whitelist) do +--~ BioInd.show("w_pattern", w_pattern) + if char_name == w_pattern or char_name:match(w_pattern) then + ignore = false +BioInd.show("Found whitelisted character name", char_name) + for b, b_pattern in ipairs(blacklist) do +--~ BioInd.show("b_pattern", b_pattern) + + if char_name == b_pattern or char_name:match(b_pattern) then +BioInd.writeDebug("%s is on the ignore list!", char_name) + -- Mark character as found + ignore = true + break + end + end + if not ignore then + found = true + break + end + end + if found then + break + end + end + + -- Apply tweaks + 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}) + character[tweak_name] = tweak + end + end + end + end +end + + +-- Moved to data-updates.lua for 0.18.34/1.1.4! +--~ ---- Game Tweaks ---- Disassemble Recipes +--~ require("prototypes.Bio_Tweaks.recipe") +--~ if BI.Settings.BI_Game_Tweaks_Disassemble then + --~ for recipe, tech in pairs({ + --~ ["bi-burner-mining-drill-disassemble"] = "automation-2", + --~ ["bi-burner-inserter-disassemble"] = "automation-2", + --~ ["bi-long-handed-inserter-disassemble"] = "automation-2", + --~ ["bi-stone-furnace-disassemble"] = "automation-2", + --~ ["bi-steel-furnace-disassemble"] = "advanced-material-processing", + --~ }) do + --~ thxbob.lib.tech.add_recipe_unlock(tech, recipe) + --~ end + +--~ end + +---- Game Tweaks ---- Production science pack recipe +if data.raw.recipe["bi-production-science-pack"] then + BI_Functions.lib.allow_productivity("bi-production-science-pack") + thxbob.lib.tech.add_recipe_unlock("production-science-pack", "bi-production-science-pack") + BioInd.writeDebug("Unlock for recipe \"bi-production-science-pack\" added.") +end + +---- Game Tweaks ---- Bots +if BI.Settings.BI_Game_Tweaks_Bot then + -- Logistic & Construction bots can't catch fire or be mined + local function immunify(bot) + -- Changed for 0.18.34/1.1.4! + --~ if not bot.flags then + --~ bot.flags = {} + --~ end + --~ if not bot.resistances then + --~ bot.resistances = {} + --~ end + local can_insert = true + bot.flags = bot.flags or {} + bot.resistances = bot.resistances or {} + for f, flag in pairs(bot.flags) do + if flag == "not-flammable" then + can_insert = false + break + end + end + if can_insert then + table.insert(bot.flags, "not-flammable") + 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} + 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}) + end + + bot.minable = nil + BioInd.writeDebug("Made %s unminable", {bot.name}) + end + + --catches modded bots too + for _, bot in pairs(data.raw['construction-robot']) do + immunify(bot) + end + + for _, bot in pairs(data.raw['logistic-robot']) do + immunify(bot) + end +end + + +---- Game Tweaks stack size ---- +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}, + } + local item + local five_dim = BioInd.get_startup_setting("5d-change-stack") + + for tweak_name, tweak in pairs(tweaks) do + item = data.raw.item[tweak_name] + if item 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.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 ) + end + end + end +end + + +--- Update fuel_emissions_multiplier values +if BI.Settings.BI_Game_Tweaks_Emissions_Multiplier then + for item, factor in pairs({ + ["pellet-coke"] = 0.80, + ["enriched-fuel"] = 0.90, + ["solid-fuel"] = 1.00, + ["solid-carbon"] = 1.05, + ["carbon"] = 1.05, + ["wood-bricks"] = 1.20, + ["rocket-fuel"] = 1.20, + ["bi-seed"] = 1.30, + ["seedling"] = 1.30, + ["bi-wooden-pole-big"] = 1.30, + ["bi-wooden-pole-huge"] = 1.30, + ["bi-wooden-fence"] = 1.30, + ["bi-wood-pipe"] = 1.30, + ["bi-wood-pipe-to-ground"] = 1.30, + ["bi-wooden-chest-large"] = 1.30, + ["bi-wooden-chest-huge"] = 1.30, + ["bi-wooden-chest-giga"] = 1.30, + ["bi-ash"] = 1.30, + ["ash"] = 1.30, + ["wood-charcoal"] = 1.25, + ["cellulose-fiber"] = 1.40, + ["bi-woodpulp"] = 1.40, + ["solid-coke"] = 1.40, + ["wood-pellets"] = 1.40, + ["coal-crushed"] = 1.50, + ["wood"] = 1.60, + ["coal"] = 2.00, + -- Removed in 0.17.48/0.18.16 + --~ ["thorium-fuel-cell"] = 5.00, + }) do + BI_Functions.lib.fuel_emissions_multiplier_update(item, factor) + end +end + + + + +-- Make vanilla and Bio boilers exchangeable +if BI.Settings.BI_Bio_Fuel then + local boiler = data.raw["boiler"]["boiler"] + local boiler_group = boiler.fast_replaceable_group or "boiler" + + boiler.fast_replaceable_group = boiler_group + data.raw["boiler"]["bi-bio-boiler"].fast_replaceable_group = boiler_group +end + + + + +if mods["Krastorio2"] then + -- Krastorio² needs much more wood than usually provided by Bio Industries. If Krastorio² is + -- active, BI should produce much more wood/wood pulp. For better baĺancing, our recipes should + -- also be changed to require more wood/wood pulp as ingredients. + -- Recipes for making wood should also use/produce more seeds, seedlings, and water. It shouldn't + -- be necessary to increase the input of ash and fertilizer in these recipes as they already + -- require more wood/wood pulp. + local update = { + "wood", "bi-woodpulp", + "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}) + if recipe.mod == "Bio_Industries" 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"}) + end + end +end + + + + +-- Make sure fertilizers have the "place_as_tile" property! +local AlienBiomes = data.raw.tile["vegetation-green-grass-3"] and + data.raw.tile["vegetation-green-grass-1"] and true or false + +-- We've already set place_as_tile. If it doesn't exist, our fertilizer definition has +-- been overwritten by some other mod, so we restore icons and localization and add +-- place_as_tile again! +local fertilizer = data.raw.item["fertilizer"] +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 = { "water-tile" } + } + fertilizer.icon = ICONPATH .. "fertilizer_64.png" + fertilizer.icon_size = 64 + fertilizer.icons = { + { + icon = ICONPATH .. "fertilizer_64.png", + icon_size = 64, + } + } + 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 = { "water-tile" } +} + +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.add_result("bi-basic-gas-processing", { + type = "item", + name = "ash", + amount = 15 + }) +end + + +-- Moved to data-updates.lua for 0.18.34/1.1.4! +--~ -- "Transport drones" ruins rails by removing object-layer from the collision mask. That +--~ -- causes problems for our "Wooden rail bridges" as they will also pass through cliffs. +--~ -- Fix the collision masks for rail bridges if "Transport drones" is active! +--~ if mods["Transport_Drones"] then + --~ for _, type in pairs({"straight-rail", "curved-rail"}) do + --~ data.raw[type]["bi-" .. type .. "-wood-bridge"].collision_mask = BioInd.RAIL_BRIDGE_MASK + --~ end +--~ end +--~ require("prototypes.Wood_Products.rail_updates") + + +--- If Space Exploration Mod is installed. +if mods["space-exploration"] then + -- Space Exploration Mod likes Stack Sizes to be 200 max. + -- Changed in 1.1.11 + local tweaks = { + ["bi-solar-mat"] = 400, + ["bi-seed"] = 800, + ["seedling"] = 400, + ["bi-woodpulp"] = 800, + ["bi-ash"] = 400, + ["wood-charcoal"] = 400, + ["pellet-coke"] = 400, + ["stone-crushed"] = 400, + } + local item + + for tweak_name, tweak in pairs(tweaks) do + item = data.raw.item[tweak_name] + if item and item.stack_size then + item.stack_size = 200 + end + end + + if not mods["Natural_Evolution_Buildings"] then + + local ammo_tweaks = { + ["bi-dart-magazine-basic"] = 400, + ["bi-dart-magazine-standard"] = 400, + ["bi-dart-magazine-enhanced"] = 400, + ["bi-dart-magazine-poison"] = 400, + } + local item + + for tweak_name, tweak in pairs(ammo_tweaks) do + item = data.raw.ammo[tweak_name] + item.stack_size = 200 + end + end +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 + 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"} + table.insert(worm.trigger_target_mask, "Bio_Cannon_Ammo") + end +end + +------------------------------------------------------------------------------------ +-- Add icons to our prototypes +BioInd.BI_add_icons() + + +---TESTING! +--~ for k,v in pairs(data.raw["curved-rail"]) do +--~ log(v.name) +--~ end +--~ for k,v in pairs(data.raw["straight-rail"]) do +--~ log(v.name) +--~ end +--~ for k,v in pairs(data.raw["rail-planner"]) do +--~ log(v.name) +--~ end + +--~ BioInd.writeDebug("Testing at end of data-final-fixes.lua!") +--~ for rail_name, rail in pairs(data.raw["straight-rail"]) do + --~ BioInd.show("rail_name", rail_name) + --~ BioInd.show("flags", rail.flags) + --~ BioInd.show("fast_replaceable_group", rail.fast_replaceable_group) + --~ BioInd.show("next_upgrade", rail.next_upgrade) + --~ BioInd.show("bounding_box", rail.bounding_box) + --~ BioInd.show("collision_mask", rail.collision_mask) +--~ end +--~ for r, recipe in pairs(data.raw.recipe) do + --~ if r:match("^.*boiler.*$") then + --~ BioInd.writeDebug("recipe: %s\torder: %s\tsubgroup: %s", {r, recipe.order or "", recipe.subgroup or "" }) + --~ end +--~ end + +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}) + end + end +end diff --git a/Bio_Industries_2/data-updates.lua b/Bio_Industries_2/data-updates.lua new file mode 100644 index 0000000..64c2e6f --- /dev/null +++ b/Bio_Industries_2/data-updates.lua @@ -0,0 +1,825 @@ +local BioInd = require('common')('Bio_Industries') + +for var, name in pairs({ + Bio_Cannon = "BI_Bio_Cannon", + BI_Bio_Fuel = "BI_Bio_Fuel", + BI_Easy_Bio_Gardens = "BI_Easy_Bio_Gardens", + BI_Game_Tweaks_Stack_Size = "BI_Game_Tweaks_Stack_Size", + BI_Game_Tweaks_Recipe = "BI_Game_Tweaks_Recipe", + BI_Game_Tweaks_Tree = "BI_Game_Tweaks_Tree", + BI_Game_Tweaks_Player = "BI_Game_Tweaks_Player", + BI_Game_Tweaks_Disassemble = "BI_Game_Tweaks_Disassemble", + BI_Game_Tweaks_Bot = "BI_Game_Tweaks_Bot", + BI_Solar_Additions = "BI_Solar_Additions", +}) do + BI.Settings[var] = BioInd.get_startup_setting(name) +end + + +--~ BioInd.show("data.raw.recipe[\"bi-sulfur\"]", data.raw.recipe["bi-sulfur"]) +BioInd.show("BI.Settings.BI_Easy_Bio_Gardens", BI.Settings.BI_Easy_Bio_Gardens) +local ICONPATH = "__Bio_Industries__/graphics/icons/" + +----Update the Wood Pipe Images +require("prototypes.Wood_Products.pipes") + +--- Update the images of Wooden rail bridges and their remnants +require("prototypes.Wood_Products.wooden_rail_bridge_update") + +--~ --- Bridge Rail Remnants +--~ require("prototypes.Wood_Products.update_bridge_rails_remnants") +require("prototypes.Wood_Products.tint_rails_remnants_function") + +-- Concrete Rail +---- Update Standard Rails to use and look like concrete +set_tint_to_rails( + { + data.raw["straight-rail"]["straight-rail"], + data.raw["curved-rail"]["curved-rail"] + }, + {r = 183/255, g = 183/255, b = 183/255, a = 1} +) -- concrete + +set_tint_to_remnants( + { + data.raw["rail-remnants"]["straight-rail-remnants"], + data.raw["rail-remnants"]["curved-rail-remnants"] + }, + {r = 183/255, g = 183/255, b = 183/255, a = 1} +) -- concrete + +-- Wood Rail +set_tint_to_rails( + { + data.raw["straight-rail"]["bi-straight-rail-wood"], + data.raw["curved-rail"]["bi-curved-rail-wood"] + }, + {r = 183/255, g = 125/255, b = 62/255, a = 1} +) -- wood + +set_tint_to_remnants( + { + data.raw["rail-remnants"]["straight-rail-remnants-wood"], + data.raw["rail-remnants"]["curved-rail-remnants-wood"] + }, + {r = 183/255, g = 125/255, b = 62/255, a = 1} +) -- wood + +--- Power Rail +set_tint_to_rails( + { + data.raw["straight-rail"]["straight-rail"], + data.raw["curved-rail"]["curved-rail"] + }, + {r = 150/255, g = 150/255, b = 150/255, a = 1} +) -- mix + +-- vanilla rail icon & images update +data.raw["straight-rail"]["straight-rail"].icon = ICONPATH .. "straight-rail-concrete.png" +data.raw["straight-rail"]["straight-rail"].icon_size = 64 +data.raw["straight-rail"]["straight-rail"].icon_mipmaps = 4 +data.raw["curved-rail"]["curved-rail"].icon = ICONPATH .. "curved-rail-concrete.png" +data.raw["curved-rail"]["curved-rail"].icon_size = 64 +data.raw["curved-rail"]["curved-rail"].icon_mipmaps = 4 +data.raw["rail-planner"]["rail"].icon = ICONPATH .. "rail-concrete.png" +data.raw["rail-planner"]["rail"].icon_size = 64 +data.raw["rail-planner"]["rail"].icon_mipmaps = 4 + +--- Wood Rail added to Tech +thxbob.lib.tech.add_recipe_unlock("railway", "bi-rail-wood") + + +--- If Bob, move Vanilla Rail to Rail 2, also add Power Rail. +if data.raw.technology["bob-railway-2"] then + thxbob.lib.tech.remove_recipe_unlock ("railway", "rail") + thxbob.lib.tech.add_recipe_unlock("bob-railway-2", "rail") + thxbob.lib.tech.add_recipe_unlock("bob-railway-2", "bi-rail-wood-to-concrete") + thxbob.lib.tech.add_recipe_unlock("bob-railway-2", "bi-rail-wood-bridge") + thxbob.lib.tech.add_recipe_unlock("bob-railway-2", "bi-rail-power") + thxbob.lib.tech.add_recipe_unlock("bob-railway-2", "bi-power-to-rail-pole") +else + thxbob.lib.tech.add_recipe_unlock("railway", "bi-rail-wood-to-concrete") + thxbob.lib.tech.add_recipe_unlock("rail-signals", "bi-rail-wood-bridge") + thxbob.lib.tech.add_recipe_unlock("rail-signals", "bi-rail-power") + thxbob.lib.tech.add_recipe_unlock("rail-signals", "bi-power-to-rail-pole") +end + +-- 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") +end + +require("prototypes.Bio_Turret.technology-updates") +require("prototypes.Bio_Cannon.technology-updates") + +if not mods["Natural_Evolution_Buildings"] and BI.Settings.Bio_Cannon then + -- add Prototype Artillery as pre req for artillery + thxbob.lib.tech.add_prerequisite("artillery", "bi-tech-bio-cannon") +end + + +--- Move Stone Crusher up in tech tree +thxbob.lib.tech.add_recipe_unlock("steel-processing", "bi-stone-crusher") +thxbob.lib.tech.add_recipe_unlock("steel-processing", "bi-crushed-stone-1") + +-- Unlock recipes for Crushed Stone from concrete/hazard concrete +thxbob.lib.tech.add_recipe_unlock("advanced-material-processing-2", "bi-crushed-stone-2") +thxbob.lib.tech.add_recipe_unlock("advanced-material-processing-2", "bi-crushed-stone-3") +thxbob.lib.tech.add_recipe_unlock("advanced-material-processing-2", "bi-crushed-stone-4") +thxbob.lib.tech.add_recipe_unlock("advanced-material-processing-2", "bi-crushed-stone-5") +--~ thxbob.lib.tech.add_prerequisite("advanced-material-processing-2", "concrete") + +-- Add Wooden Chests +thxbob.lib.tech.add_recipe_unlock("logistics", "bi-wooden-chest-large") +thxbob.lib.tech.add_recipe_unlock("logistics-2", "bi-wooden-chest-huge") +thxbob.lib.tech.add_recipe_unlock("logistics-3", "bi-wooden-chest-giga") + +-- Add Big and Huge electric poles to tech tree +--~ if mods["IndustrialRevolution"] then + --~ -- Our large wooden poles are unlocked by the "Logistics" research and require small + --~ -- electric poles, which are unlocked by IR2 after the Iron Age has been reached. So, + --~ -- if IR2 is active, we won't unlock our poles and use IR2's large wooden poles for + --~ -- our huge poles instead. + --~ local big_pole = "bi-wooden-pole-big" + --~ thxbob.lib.tech.add_recipe_unlock ("electric-energy-distribution-1", big_pole) + --~ thxbob.lib.tech.add_recipe_unlock ("electric-energy-distribution-2", "bi-wooden-pole-huge") + + --~ -- Adjust localizations + --~ for k, v in ipairs({"electric-pole", "item", "recipe"}) do +--~ BioInd.show("Changing localization for", v) + --~ data.raw[v][big_pole].localised_name = {"entity-name.bi-wooden-pole-bigger"} + --~ data.raw[v][big_pole].localised_description = {"entity-description.bi-wooden-pole-bigger"} + --~ end +--~ else + 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") +--~ end + +--- Wood Floors +-- Make wood placeable only if Dectorio isn't installed. Should leave existing flooring intact. +if not mods["Dectorio"] then + data.raw.item["wood"].place_as_tile = { + result = "bi-wood-floor", + condition_size = 4, + condition = { "water-tile" } + } +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 + BI_Functions.lib.remove_from_blueprint(tile) +end + +if mods["alien-biomes"] then + BioInd.writeDebug("Removing AB tiles from blueprints") + local patterns = { + "frozen%-snow%-%d", + "mineral%-aubergine%-dirt%-%d", + "mineral%-aubergine%-sand%-%d", + "mineral%-beige%-dirt%-%d", + "mineral%-beige%-sand%-%d", + "mineral%-black%-dirt%-%d", + "mineral%-black%-sand%-%d", + "mineral%-brown%-dirt%-%d", + "mineral%-brown%-sand%-%d", + "mineral%-cream%-dirt%-%d", + "mineral%-cream%-sand%-%d", + "mineral%-dustyrose%-dirt%-%d", + "mineral%-dustyrose%-sand%-%d", + "mineral%-grey%-dirt%-%d", + "mineral%-grey%-sand%-%d", + "mineral%-purple%-dirt%-%d", + "mineral%-purple%-sand%-%d", + "mineral%-red%-dirt%-%d", + "mineral%-red%-sand%-%d", + "mineral%-tan%-dirt%-%d", + "mineral%-tan%-sand%-%d", + "mineral%-violet%-dirt%-%d", + "mineral%-violet%-sand%-%d", + "mineral%-white%-dirt%-%d", + "mineral%-white%-sand%-%d", + "vegetation%-blue%-grass%-%d", + "vegetation%-green%-grass%-%d", + "vegetation%-mauve%-grass%-%d", + "vegetation%-olive%-grass%-%d", + "vegetation%-orange%-grass%-%d", + "vegetation%-purple%-grass%-%d", + "vegetation%-red%-grass%-%d", + "vegetation%-turquoise%-grass%-%d", + "vegetation%-violet%-grass%-%d", + "vegetation%-yellow%-grass%-%d", + "volcanic%-blue%-heat%-%d", + "volcanic%-green%-heat%-%d", + "volcanic%-orange%-heat%-%d", + "volcanic%-purple%-heat%-%d", + } + for tile_name, tile in pairs(data.raw.tile) do + for p, pattern in ipairs(patterns) do + if tile_name:match(pattern) then + BI_Functions.lib.remove_from_blueprint(tile) + break + end + end + end +end + +--- Adds Solar Farm, Solar Plant, Musk Floor, Bio Accumulator and Substation to Tech tree +if BI.Settings.BI_Solar_Additions then + if data.raw.technology["bob-solar-energy-2"] then + thxbob.lib.tech.add_recipe_unlock("bob-electric-energy-accumulators-3", "bi-bio-accumulator") + thxbob.lib.tech.add_recipe_unlock("electric-energy-distribution-2", "bi-large-substation") + thxbob.lib.tech.add_recipe_unlock("bob-solar-energy-2", "bi-bio-solar-farm") + thxbob.lib.tech.add_recipe_unlock("bob-solar-energy-2", "bi-solar-boiler-hidden-panel") + --~ thxbob.lib.tech.add_recipe_unlock("bob-solar-energy-2", "bi-solar-boiler") + else + thxbob.lib.tech.add_recipe_unlock("electric-energy-accumulators", "bi-bio-accumulator") + thxbob.lib.tech.add_recipe_unlock("electric-energy-distribution-2", "bi-large-substation") + thxbob.lib.tech.add_recipe_unlock("solar-energy", "bi-bio-solar-farm") + thxbob.lib.tech.add_recipe_unlock("solar-energy", "bi-solar-boiler-hidden-panel") + --~ thxbob.lib.tech.add_recipe_unlock("solar-energy", "bi-solar-boiler") + end + + if data.raw.technology["bob-solar-energy-3"] then + thxbob.lib.tech.add_recipe_unlock("bob-solar-energy-3", "bi-solar-mat") + else + thxbob.lib.tech.add_recipe_unlock("solar-energy", "bi-solar-mat") + end + + --- Electric redo if Bob' Electric + -- Huge Electric Pole + if data.raw.item["tinned-copper-cable"] then + thxbob.lib.recipe.remove_ingredient("bi-wooden-pole-huge", "wood") + thxbob.lib.recipe.add_new_ingredient("bi-wooden-pole-huge", { + type = "item", + name = "tinned-copper-cable", + amount = 15} + ) + end + + -- Solar Farm + if data.raw.item["solar-panel-large"] then + thxbob.lib.recipe.remove_ingredient("bi-bio-solar-farm", "solar-panel") + thxbob.lib.recipe.add_new_ingredient("bi-bio-solar-farm", { + type = "item", + name = "solar-panel-large", + amount = 30} + ) + end + + -- Huge Sub Station + if data.raw.item["substation-3"] then + thxbob.lib.recipe.remove_ingredient("bi-large-substation", "substation") + thxbob.lib.recipe.add_new_ingredient("bi-large-substation", { + type = "item", + name = "substation-3", + amount = 6} + ) + end + + if data.raw.item["electrum-alloy"] then + thxbob.lib.recipe.remove_ingredient("bi-large-substation", "steel-plate") + thxbob.lib.recipe.add_new_ingredient("bi-large-substation", { + type = "item", + name = "electrum-alloy", + amount = 10} + ) + end + + -- Huge Accumulator + if data.raw.item["large-accumulator-2"] then + thxbob.lib.recipe.remove_ingredient("bi-bio-accumulator", "accumulator") + thxbob.lib.recipe.add_new_ingredient("bi-bio-accumulator", { + type = "item", + name = "large-accumulator", + amount = 30} + ) + end + + if data.raw.item["aluminium-plate"] then + thxbob.lib.recipe.remove_ingredient("bi-bio-accumulator", "copper-cable") + thxbob.lib.recipe.add_new_ingredient("bi-bio-accumulator", { + type = "item", + name = "aluminium-plate", + amount = 50} + ) + end + + -- Solar Mat + if data.raw.item["aluminium-plate"] then + thxbob.lib.recipe.remove_ingredient("bi-solar-mat", "steel-plate") + thxbob.lib.recipe.add_new_ingredient("bi-solar-mat", { + type = "item", + name = "aluminium-plate", + amount = 1} + ) + end + + if data.raw.item["silicon-wafer"] then + thxbob.lib.recipe.remove_ingredient("bi-solar-mat", "copper-cable") + thxbob.lib.recipe.add_new_ingredient("bi-solar-mat", { + type = "item", + name = "silicon-wafer", + amount = 4} + ) + end + + -- Solar Boiler / Plant + if data.raw.item["angels-electric-boiler"] then + thxbob.lib.recipe.remove_ingredient("bi-solar-boiler-hidden-panel", "boiler") + thxbob.lib.recipe.add_new_ingredient("bi-solar-boiler-hidden-panel", { + type = "item", + name = "angels-electric-boiler", + amount = 1} + ) + --~ thxbob.lib.recipe.remove_ingredient ("bi-solar-boiler", "boiler") + --~ thxbob.lib.recipe.add_new_ingredient ("bi-solar-boiler", {type = "item", name = "angels-electric-boiler", amount = 1}) + end +end + +require("prototypes.Bio_Farm.compatible_recipes") -- Bob and Angels mesh +require("prototypes.Bio_Farm.technology2") + +-- Replace fertilizer/advanced fertilizer + water with fluid fertilizers in Bio garden recipes! +BioInd.show("data-updates.lua -- BI.Settings.BI_Easy_Bio_Gardens", BI.Settings.BI_Easy_Bio_Gardens) +if BI.Settings.BI_Easy_Bio_Gardens then + BioInd.writeDebug("Must create fluid fertilizers!") + require("prototypes.Bio_Garden.fluid_fertilizer") +end + + +-- Blacklist bioreactor in Assembler Pipe Passthrough +if mods["assembler-pipe-passthrough"] then + appmod.blacklist['bi-bio-reactor'] = true +end + +-- Adds Bio recipes +if BI.Settings.BI_Bio_Fuel then + --~ thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", "bi-bio-reactor") + thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", "bi-cellulose-1") + thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", "bi-cellulose-2") + + -- Remove unlock for biomass-1 and add it again so all biomass recipes are next to each + -- other in the preview of technology unlocks! + thxbob.lib.tech.remove_recipe_unlock("bi-tech-advanced-biotechnology", "bi-biomass-1") + for u, unlock in ipairs({ + "bi-biomass-1", "bi-biomass-2", "bi-biomass-3", + "bi-battery", + "bi-biomass-conversion-1", "bi-biomass-conversion-2", "bi-biomass-conversion-3", "bi-biomass-conversion-4", + "bi-acid", "bi-bio-boiler" + }) do + thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", unlock) + end + + -- Added for 0.17.49/0.18.17 (changed for 0.18.29) + --~ thxbob.lib.tech.add_recipe_unlock("bi-tech-coal-processing-1", "bi-basic-gas-processing") + thxbob.lib.tech.add_recipe_unlock("bi-tech-coal-processing-2", "bi-basic-gas-processing") + + --~ -- Blacklist bioreactor in Assembler Pipe Passthrough + --~ if mods["assembler-pipe-passthrough"] then + --~ appmod.blacklist['bi-bio-reactor'] = true + --~ end + + if mods["angelspetrochem"] then + thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", "bi-sulfur-angels") + else + thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", "bi-sulfur") + end + --~ thxbob.lib.recipe.add_new_ingredient("bi-adv-fertilizer-1", {type = "fluid", name = "bi-biomass", amount = 10}) + --~ thxbob.lib.recipe.add_new_ingredient("bi-adv-fertilizer-2", {type = "fluid", name = "bi-biomass", amount = 10}) +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 + + +--- if the Alien Artifact is in the game, use it for some recipes +if data.raw.item["alien-artifact"] then + --- Advanced fertilizer will use Alien Artifact + thxbob.lib.recipe.remove_ingredient("bi-adv-fertilizer-1", "bi-biomass") + thxbob.lib.recipe.add_new_ingredient("bi-adv-fertilizer-1", { + type = "item", + name = "alien-artifact", + amount = 5} + ) + thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", "bi-adv-fertilizer-1") +end + + +------- Adds a Mk3 recipe for wood if you're playing with Natural Evolution Buildings +if mods["Natural_Evolution_Buildings"] then + thxbob.lib.recipe.remove_ingredient("bi-adv-fertilizer-1", "bi-biomass") + thxbob.lib.recipe.remove_ingredient("bi-adv-fertilizer-1", "alien-artifact") + thxbob.lib.recipe.add_new_ingredient("bi-adv-fertilizer-1", { + type = "fluid", + name = "NE_enhanced-nutrient-solution", + amount = 50} + ) +end + + +------------ Support for Bob's Greenhouse +if data.raw["item"]["bob-greenhouse"] then + data.raw["item"]["seedling"].place_result = "seedling" + data.raw["item"]["seedling"].icon = ICONPATH .. "Seedling.png" + data.raw["item"]["seedling"].icon_size = 64 + data.raw["item"]["fertilizer"].icon = ICONPATH .. "fertilizer.png" + data.raw["item"]["fertilizer"].icon_size = 64 + + data.raw["item"]["fertilizer"].place_as_tile = { + result = BioInd.AB_tiles() and "vegetation-green-grass-3" or "grass-3", + condition_size = 1, + condition = { "water-tile" } + } +end + + +if settings.startup["angels-use-angels-barreling"] and settings.startup["angels-use-angels-barreling"].value then + data.raw.technology["bi-tech-fertilizer"].prerequisites = { + "bi-tech-bio-farming", + -- AND ( + "water-treatment", -- sulfur + -- OR + "angels-fluid-barreling", -- barreling (needed 'water-treatment' as prerequisites) + -- ) + } +end + + +----- Angels Merge ---- +if mods["angelspetrochem"] then + data.raw.item["pellet-coke"].icon = "__angelspetrochem__/graphics/icons/pellet-coke.png" + data.raw.item["pellet-coke"].icon_size = 32 + data.raw.item["pellet-coke"].fuel_acceleration_multiplier = 1.1 + 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.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") + + if mods["angelsrefining"] then + 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") + + 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") + + 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") + + data.raw.recipe["bi-sulfur"].icon = ICONPATH .. "py_bio_sulfur.png" + data.raw.recipe["bi-sulfur"].icon_size = 64 + end + + data.raw.item["bi-ash"] = nil + data.raw.recipe["bi-ash-1"].icon = "__pycoalprocessinggraphics__/graphics/icons/ash.png" + data.raw.recipe["bi-ash-1"].icon_size = 32 + data.raw.recipe["bi-ash-2"].icon = "__pycoalprocessinggraphics__/graphics/icons/ash.png" + data.raw.recipe["bi-ash-2"].icon_size = 32 + + -- Use ash icon from pycoalprocessing in icons of recipes using ash + data.raw.recipe["bi-seed-2"].icon = ICONPATH .. "py_bio_seed2.png" + data.raw.recipe["bi-seed-2"].icon_size = 64 + data.raw.recipe["bi-seedling-2"].icon = ICONPATH .. "py_Seedling2.png" + data.raw.recipe["bi-seedling-2"].icon_size = 64 + data.raw.recipe["bi-logs-2"].icon = ICONPATH .. "py_raw-wood-mk2.png" + data.raw.recipe["bi-logs-2"].icon_size = 64 + data.raw.recipe["bi-ash-1"].icon = ICONPATH .. "py_ash_raw-wood.png" + data.raw.recipe["bi-ash-1"].icon_size = 64 + data.raw.recipe["bi-ash-2"].icon = ICONPATH .. "py_ash_woodpulp.png" + 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 + --~ data.raw.recipe["bi-sulfur"].icon = ICONPATH .. "py_bio_sulfur.png" + --~ data.raw.recipe["bi-sulfur"].icon_size = 64 +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.add_recipe_unlock("solid-fuel", "bi-solid-fuel") +end + +----- If Simple Silicon is active, add solar cell to Musk floor (solar mat) recipe +if mods["SimpleSilicon"] then + thxbob.lib.recipe.add_new_ingredient("bi-solar-mat", { + type = "item", + name = "SiSi-solar-cell", + amount = 1 + }) +end + + +-- We may need liquid air and nitrogen -- but not if any of the following mods is active! +--~ local mod_list = {"angelspetrochem", "Krastorio", "Krastorio2", "pyrawores"} +--~ local check = true +--~ for for m, mod_name in ipairs(mod_list) do + --~ if mod[mod_name] then + --~ check = false + --~ break + --~ else + --~ BioInd.writeDebug("Check passed: %s is not active", mod_name) + --~ end +--~ end + +--~ if not (mods["angelspetrochem"] or mods["Krastorio"] or mods["Krastorio2"] or mods["pyrawores"]) then +--~ if check then + --~ BioInd.writeDebug("We can create the fluids now, if we need to!") + + 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 + data:extend({ + { + type = "fluid", + name = "nitrogen", + icon = ICONPATH .. "nitrogen.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "nitrogen.png", + icon_size = 64, + icon_mipmaps = 1, + } + }, + default_temperature = 25, + 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}, + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-b[nitrogen]" + }, + }) + --~ BI_Functions.lib.allow_productivity("bi-nitrogen") + BioInd.writeDebug("Made recipe for \"nitrogen\".") + + if not data.raw.fluid["liquid-air"] then + data:extend({ + { + type = "fluid", + name = "liquid-air", + icon = ICONPATH .. "liquid-air.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "liquid-air.png", + icon_size = 64, + icon_mipmaps = 1, + } + }, + default_temperature = 25, + 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}, + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-b[liquid-air]" + }, + }) + --~ BI_Functions.lib.allow_productivity("bi-liquid-air") + BioInd.writeDebug("Made recipe for \"liquid-air\".") + end + + -- Recipes for "bi-liquid-air" and "bi-nitrogen" aren't needed! + 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") + BioInd.writeDebug("Removed recipe unlocks for \"bi-liquid-air\" and \"bi-nitrogen\"") + + -- Replace liquid air with oxygen (from Krastorio/K2) in recipes for Algae Biomass 2 and 3 + if data.raw.fluid.oxygen then + thxbob.lib.recipe.replace_ingredient("bi-biomass-2", "liquid-air", "oxygen") + thxbob.lib.recipe.replace_ingredient("bi-biomass-3", "liquid-air", "oxygen") + BioInd.writeDebug("Replaced \"liquid-air\" with \"oxygen\" in recipes \"bi-biomass-2\" and \"bi-biomass-3\"") + -- Perhaps there is no oxygen? But there's nitrogen for sure, so we fall back to that! + elseif data.raw.fluid.nitrogen then + thxbob.lib.recipe.replace_ingredient("bi-biomass-2", "liquid-air", "nitrogen") + thxbob.lib.recipe.replace_ingredient("bi-biomass-3", "liquid-air", "nitrogen") + BioInd.writeDebug("Replaced \"liquid-air\" with \"nitrogen\" in recipes \"bi-biomass-2\" and \"bi-biomass-3\"") + end + + -- Remove recipes for these fluids + data.raw.recipe["bi-liquid-air"] = nil + data.raw.recipe["bi-nitrogen"] = nil + BioInd.writeDebug("Removed recipes for \"nitrogen\" and \"liquid air\".") + 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}) + + --- Stone Wall + 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.remove_ingredient("bi-rail-wood", "stone") + 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}) +end + + + +-- Moved here from data-final-fixes.lua for 0.18.34/1.1.4! +---- Game Tweaks ---- Disassemble Recipes +require("prototypes.Bio_Tweaks.recipe") +if BI.Settings.BI_Game_Tweaks_Disassemble then + for recipe, tech in pairs({ + ["bi-burner-mining-drill-disassemble"] = "automation-2", + ["bi-burner-inserter-disassemble"] = "automation-2", + ["bi-long-handed-inserter-disassemble"] = "automation-2", + ["bi-stone-furnace-disassemble"] = "automation-2", + ["bi-steel-furnace-disassemble"] = "advanced-material-processing", + }) do + thxbob.lib.tech.add_recipe_unlock(tech, recipe) + end + +end + +--- Enable Productivity in Recipes +for recipe, r in pairs(data.raw.recipe) do + for p, pattern in ipairs({ + "bi%-acid", + "bi%-battery", + "bi%-biomass%-%d", + "bi%-biomass%-conversion%-%d", + "bi%-cellulose%-%d", + "bi%-crushed%-stone%-%d", + "bi%-liquid%-air", + "bi%-logs%-%d", + "bi%-nitrogen", + "bi%-plastic%-%d", + "bi%-press%-wood", + "bi%-resin%-pulp", + "bi%-resin%-wood", + "bi%-seed%-%d", + "bi%-seedling%-%d", + "bi%-stone%-brick", + "bi%-sulfur", + "bi%-sulfur%-angels", + "bi%-wood%-from%-pulp", + "bi%-woodpulp", + -- Added for 0.17.49/0.18.17 + "bi%-basic%-gas%-processing", + }) do + if recipe:match(pattern) then + BI_Functions.lib.allow_productivity(recipe) + break + end + end +end + + +------------------------------------------------------------------------------------ +-- Add resistances to our hidden entities +------------------------------------------------------------------------------------ +-- Make resistances for each damage type +local resistances = {} +for damage, d in pairs(data.raw["damage-type"]) do + resistances[#resistances + 1] = { + type = damage, + percent = 100 + } +end + +-- Add resistances to prototypes +-- (h_type is not guaranteed to be a prototype type -- it's the short handle that we +-- use compound_entities.hidden!) +local h_type +for h_key, h_names in pairs(BI.hidden_entities.types) do + h_type = BioInd.HE_map[h_key] + for h_name, h in pairs(h_names) do +--~ BioInd.writeDebug("h_type: %s\th_name: %s\th:%s", {h_type, h_name, h}) + 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}) + end +end + +-- Adjust resistances for radar of the terraformers. Unlike the other hidden parts +-- of compound entities, this one is visible, and should suffer the same as the base +-- when it gets hurt. (Also, damaging the radar will damage the base entity as well.) +local compound = BioInd.compound_entities["bi-arboretum"] +local b = compound.base +local r = compound.hidden.radar +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}) + end +end +------------------------------------------------------------------------------------ +-- Omnifluid will be confused by our bi-solar-boiler (the compound boiler + solar +-- plant entity). Let's blacklist it if the mod is active! +BioInd.show("Omnifluid is active", mods["omnimatter_fluid"] or "false") +BioInd.show("forbidden_boilers", forbidden_boilers) + +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}) + + +------------------------------------------------------------------------------------ +-- If the Py-Suite is installed, we move our coal-processing unlocks to their techs! +local check, set +if mods["pyrawores"] then + -- Are all techs there? + check = true + for i = 1, 3 do + if not data.raw.technology["coal-mk0" .. i] then + check = false + break + end + end + + if check then + set = true + local unlocks = require("prototypes.Bio_Farm.coal_processing") + 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}) + end + end + end +end +-- PyRawOres has priority! +if mods["pycoalprocessing"] and not set then + -- Are all techs there? + check = true + for i = 1, 3 do + if not data.raw.technology["coal-processing-" .. i] then + check = false + break + end + end + + if check then + set = true + local unlocks = require("prototypes.Bio_Farm.coal_processing") + 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}) + end + end + end +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) + 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/5ff517c391699300236170a2) +-- "Transport drones" ruins rails by removing object-layer from the collision mask. That +-- causes problems for our "Wooden rail bridges" as they will also pass through cliffs. +require("prototypes.Wood_Products.rail_updates") + +-- Compatibility with Industrial Revolution +require("prototypes.Industrial_Revolution") + + + +------------------------------------------------------------------------------------ +-- Add icons to our prototypes +BioInd.BI_add_icons() diff --git a/Bio_Industries_2/data.lua b/Bio_Industries_2/data.lua new file mode 100644 index 0000000..ac9a67f --- /dev/null +++ b/Bio_Industries_2/data.lua @@ -0,0 +1,137 @@ +local BioInd = require('common')('Bio_Industries') + +if not BI then BI = {} end +if not BI.Settings then BI.Settings = {} end + +--~ if not BI_Config then BI_Config = {} end +--~ if not BI_Config.mod then BI_Config.mod = {} end +if not BI_Functions then BI_Functions = {} end +if not BI_Functions.lib then BI_Functions.lib = {} end + +if not thxbob then thxbob = {} end +if not thxbob.lib then thxbob.lib = {} end + +for var, name in pairs({ + Bio_Cannon = "BI_Bio_Cannon", + BI_Bio_Fuel = "BI_Bio_Fuel", + BI_Easy_Bio_Gardens = "BI_Easy_Bio_Gardens", + BI_Bigger_Wooden_Chests = "BI_Bigger_Wooden_Chests", + BI_Game_Tweaks_Stack_Size = "BI_Game_Tweaks_Stack_Size", + BI_Game_Tweaks_Recipe = "BI_Game_Tweaks_Recipe", + BI_Game_Tweaks_Tree = "BI_Game_Tweaks_Tree", + BI_Game_Tweaks_Small_Tree_Collisionbox = "BI_Game_Tweaks_Small_Tree_Collisionbox", + BI_Game_Tweaks_Player = "BI_Game_Tweaks_Player", + BI_Game_Tweaks_Disassemble = "BI_Game_Tweaks_Disassemble", + BI_Game_Tweaks_Bot = "BI_Game_Tweaks_Bot", + BI_Solar_Additions = "BI_Solar_Additions" +}) do + BI.Settings[var] = BioInd.get_startup_setting(name) +end + +--~ BioInd.show("BI.Settings.BI_Easy_Bio_Gardens", BI.Settings.BI_Easy_Bio_Gardens) +--~ BioInd.show("BI.Settings.BI_Game_Tweaks_Disassemble", BI.Settings.BI_Game_Tweaks_Disassemble) +--- 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 ("prototypes.category") + +--~ -- Create the hidden entities +--~ require("prototypes.compound_entities.hidden_entities") + +--~ BioInd.show("BioInd.compound_entities", BioInd.compound_entities) +--~ error("Break!") + + +--- 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") + +-- Bio Garden +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") + + +--- 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") + + +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") + + +--- Bio Cannon + + + -- Items Groups + 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") + + -- Projectiles + require ("prototypes.Bio_Cannon.projectiles-item") + require ("prototypes.Bio_Cannon.projectiles-recipe") + require ("prototypes.Bio_Cannon.projectiles-entity") + +end + +---- Add Bio Fuel & Plastic, etc. +require("prototypes.Bio_Fuel.item") +require("prototypes.Bio_Fuel.recipe") +require("prototypes.Bio_Fuel.entities") +require("prototypes.Bio_Fuel.technology") + + + +-- Create the hidden entities (Moved here so we can be sure the base +-- entities already exist and their properties can be read.) +require("prototypes.compound_entities.hidden_entities") + + +------------------------------------------------------------------------------------ +-- Alien Biomes will degrade tiles to "landfill" if more than 255 tiles are defined +-- in the game. We can register the musk-floor tiles with Alien Biomes so it will +-- try to prioritize the tiles if they exist. +alien_biomes_priority_tiles = alien_biomes_priority_tiles or {} +table.insert(alien_biomes_priority_tiles, "bi-solar-mat") + +--~ for i, item in pairs(data.raw.item) do +--~ BioInd.show("Item", i) +--~ end + + +------------------------------------------------------------------------------------ +-- Add icons to our prototypes +BioInd.BI_add_icons() diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon.png b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon.png new file mode 100644 index 0000000..f337667 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_anim.png b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_anim.png new file mode 100644 index 0000000..f202f0d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_anim.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_attack.png b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_attack.png new file mode 100644 index 0000000..85ea5a5 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_attack.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_closed.png b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_closed.png new file mode 100644 index 0000000..501caec Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_closed.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_open.png b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_open.png new file mode 100644 index 0000000..945ca43 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_open.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_open_shadow.png b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_open_shadow.png new file mode 100644 index 0000000..0503b28 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_open_shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_shadow.png b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_shadow.png new file mode 100644 index 0000000..5f7de59 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/bio_cannon_shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_anim.png b/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_anim.png new file mode 100644 index 0000000..9cc57ae Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_anim.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_open.png b/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_open.png new file mode 100644 index 0000000..4abbc49 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_open.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_open_shadow.png b/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_open_shadow.png new file mode 100644 index 0000000..1def132 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_open_shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_shadow.png b/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_shadow.png new file mode 100644 index 0000000..1c8589a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/hr_bio_cannon_shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_ammo-shadow.png b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_ammo-shadow.png new file mode 100644 index 0000000..fd5fac4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_ammo-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_basic_ammo.png b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_basic_ammo.png new file mode 100644 index 0000000..93fc3ae Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_basic_ammo.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_bio_ammo.png b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_bio_ammo.png new file mode 100644 index 0000000..07c29f6 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_bio_ammo.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_poison_ammo.png b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_poison_ammo.png new file mode 100644 index 0000000..e8832b8 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_poison_ammo.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_proto_ammo.png b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_proto_ammo.png new file mode 100644 index 0000000..c0de498 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/bio_cannon_proto_ammo.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/explosion.png b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/explosion.png new file mode 100644 index 0000000..dcc524f Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_cannon/projectiles/explosion.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Boiler.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Boiler.png new file mode 100644 index 0000000..5ab7410 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Boiler.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Boiler_on.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Boiler_on.png new file mode 100644 index 0000000..8f277ed Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Boiler_on.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off.png new file mode 100644 index 0000000..02a7c31 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off_alt.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off_alt.png new file mode 100644 index 0000000..4bc79b2 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off_alt.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On.png new file mode 100644 index 0000000..91767e5 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On_alt_old.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On_alt_old.png new file mode 100644 index 0000000..1efa2f8 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On_alt_old.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/LargeAccumulatorAnimated.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/LargeAccumulatorAnimated.png new file mode 100644 index 0000000..2287a01 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/LargeAccumulatorAnimated.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeAccumulator.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeAccumulator.png new file mode 100644 index 0000000..72806b1 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeAccumulator.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeAccumulatorAnimated.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeAccumulatorAnimated.png new file mode 100644 index 0000000..0c5497b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeAccumulatorAnimated.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeSubstation.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeSubstation.png new file mode 100644 index 0000000..e81cb4c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeSubstation.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeSubstation_Old.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeSubstation_Old.png new file mode 100644 index 0000000..dc69e31 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/bi_LargeSubstation_Old.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-inner-corner.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-inner-corner.png new file mode 100644 index 0000000..78802e0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-inner-corner.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-o.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-o.png new file mode 100644 index 0000000..6291f11 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-o.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-outer-corner.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-outer-corner.png new file mode 100644 index 0000000..c68bd03 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-outer-corner.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-side.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-side.png new file mode 100644 index 0000000..c630a88 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-side.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-u.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-u.png new file mode 100644 index 0000000..13492a4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar-u.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/solar1.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar1.png new file mode 100644 index 0000000..127c305 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar1.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/solar1x.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar1x.png new file mode 100644 index 0000000..0e931f0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar1x.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_solar_farm/solar2.png b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar2.png new file mode 100644 index 0000000..c865e1e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_solar_farm/solar2.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_turret/bio_turret.png b/Bio_Industries_2/graphics/entities/bio_turret/bio_turret.png new file mode 100644 index 0000000..4870a77 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_turret/bio_turret.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Idle.png b/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Idle.png new file mode 100644 index 0000000..a914d79 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Idle.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Idle_alt.png b/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Idle_alt.png new file mode 100644 index 0000000..341c20c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Idle_alt.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Working.png b/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Working.png new file mode 100644 index 0000000..dc258e0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Working.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Working_alt.png b/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Working_alt.png new file mode 100644 index 0000000..75d69c7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/Bio_Farm_Working_alt.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse.png b/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse.png new file mode 100644 index 0000000..451bdbe Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse_off.png b/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse_off.png new file mode 100644 index 0000000..4929795 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse_off.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse_on.png b/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse_on.png new file mode 100644 index 0000000..2908b5c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse_on.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse_x.png b/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse_x.png new file mode 100644 index 0000000..be1e772 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/bio_greenhouse_x.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-E_l.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-E_l.png new file mode 100644 index 0000000..b88fcdf Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-E_l.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-E_r.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-E_r.png new file mode 100644 index 0000000..befc747 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-E_r.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-N_l.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-N_l.png new file mode 100644 index 0000000..fc348f0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-N_l.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-N_r.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-N_r.png new file mode 100644 index 0000000..42f3876 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-N_r.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-S_l.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-S_l.png new file mode 100644 index 0000000..278aa54 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-S_l.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-S_r.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-S_r.png new file mode 100644 index 0000000..af3491c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-S_r.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-W_l.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-W_l.png new file mode 100644 index 0000000..3b246d3 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-W_l.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-W_r.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-W_r.png new file mode 100644 index 0000000..e6e00ed Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-W_r.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-E.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-E.png new file mode 100644 index 0000000..bc6a3db Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-E.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-N.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-N.png new file mode 100644 index 0000000..42d4b33 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-N.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-S.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-S.png new file mode 100644 index 0000000..bd66ea1 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-S.png differ diff --git a/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-W.png b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-W.png new file mode 100644 index 0000000..c48bd8c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biofarm/pipe_connections/x/Bio_Farm-pipe-W.png differ diff --git a/Bio_Industries_2/graphics/entities/biogarden/bio_garden_x.png b/Bio_Industries_2/graphics/entities/biogarden/bio_garden_x.png new file mode 100644 index 0000000..ef39292 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/biogarden/bio_garden_x.png differ diff --git a/Bio_Industries_2/graphics/entities/bioreactor/bioreactor.png b/Bio_Industries_2/graphics/entities/bioreactor/bioreactor.png new file mode 100644 index 0000000..0ccdf29 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bioreactor/bioreactor.png differ diff --git a/Bio_Industries_2/graphics/entities/bioreactor/pipe-east.png b/Bio_Industries_2/graphics/entities/bioreactor/pipe-east.png new file mode 100644 index 0000000..829f23e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bioreactor/pipe-east.png differ diff --git a/Bio_Industries_2/graphics/entities/bioreactor/pipe-south.png b/Bio_Industries_2/graphics/entities/bioreactor/pipe-south.png new file mode 100644 index 0000000..03bf04c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bioreactor/pipe-south.png differ diff --git a/Bio_Industries_2/graphics/entities/bioreactor/pipe-west.png b/Bio_Industries_2/graphics/entities/bioreactor/pipe-west.png new file mode 100644 index 0000000..f8d44f1 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bioreactor/pipe-west.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-01.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-01.png new file mode 100644 index 0000000..9296ebd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-01.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-02.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-02.png new file mode 100644 index 0000000..a4f7cb4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-02.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-03.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-03.png new file mode 100644 index 0000000..bc2b747 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-03.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-04.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-04.png new file mode 100644 index 0000000..3e8ff8d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-04.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-05.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-05.png new file mode 100644 index 0000000..473112b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-05.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-06.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-06.png new file mode 100644 index 0000000..da6491a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-06.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-07.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-07.png new file mode 100644 index 0000000..9ac3ccd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-07.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-08.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-08.png new file mode 100644 index 0000000..4bd00ff Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-08.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-09.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-09.png new file mode 100644 index 0000000..98c02f7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-09.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-10.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-10.png new file mode 100644 index 0000000..940b8ef Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-10.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-11.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-11.png new file mode 100644 index 0000000..8b8b73c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-11.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-12.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-12.png new file mode 100644 index 0000000..33d6739 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-12.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-13.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-13.png new file mode 100644 index 0000000..8cbb9a5 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-13.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-14.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-14.png new file mode 100644 index 0000000..3caba33 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-14.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-15.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-15.png new file mode 100644 index 0000000..7c7da9e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-15.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-16.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-16.png new file mode 100644 index 0000000..6bf9d2d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-16.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-17.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-17.png new file mode 100644 index 0000000..6fb0637 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-17.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-18.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-18.png new file mode 100644 index 0000000..68910dd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-18.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-19.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-19.png new file mode 100644 index 0000000..e8389f3 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-19.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-20.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-20.png new file mode 100644 index 0000000..c102635 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-20.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-21.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-21.png new file mode 100644 index 0000000..54727be Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-21.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-22.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-22.png new file mode 100644 index 0000000..689ad87 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-22.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-23.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-23.png new file mode 100644 index 0000000..b6ed1c4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-23.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-24.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-24.png new file mode 100644 index 0000000..dd146fd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-24.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-25.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-25.png new file mode 100644 index 0000000..6ab232e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-25.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-26.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-26.png new file mode 100644 index 0000000..32a117a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-26.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-27.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-27.png new file mode 100644 index 0000000..5632d8b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-27.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-28.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-28.png new file mode 100644 index 0000000..9e599aa Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-28.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-29.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-29.png new file mode 100644 index 0000000..33157d2 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-29.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-01.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-01.png new file mode 100644 index 0000000..3f83343 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-01.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-02.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-02.png new file mode 100644 index 0000000..d6f939b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-02.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-03.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-03.png new file mode 100644 index 0000000..f205e93 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-03.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-04.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-04.png new file mode 100644 index 0000000..5743c3a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-04.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-05.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-05.png new file mode 100644 index 0000000..a71fb63 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-05.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-06.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-06.png new file mode 100644 index 0000000..a2139b1 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-06.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-07.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-07.png new file mode 100644 index 0000000..9e3ee2b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-07.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-08.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-08.png new file mode 100644 index 0000000..d1cf2e7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-08.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-09.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-09.png new file mode 100644 index 0000000..c0d9764 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-09.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-10.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-10.png new file mode 100644 index 0000000..8ce400e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-10.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-11.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-11.png new file mode 100644 index 0000000..9ce6ca6 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-11.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-12.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-12.png new file mode 100644 index 0000000..a828908 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-12.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-13.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-13.png new file mode 100644 index 0000000..359b0f9 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-13.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-14.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-14.png new file mode 100644 index 0000000..cfc887f Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-14.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-15.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-15.png new file mode 100644 index 0000000..ca3afb8 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-15.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-16.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-16.png new file mode 100644 index 0000000..1fceb9b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-16.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-17.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-17.png new file mode 100644 index 0000000..1ddff55 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-17.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-18.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-18.png new file mode 100644 index 0000000..b269c9e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-18.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-19.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-19.png new file mode 100644 index 0000000..1afa206 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-19.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-20.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-20.png new file mode 100644 index 0000000..4221467 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-20.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-21.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-21.png new file mode 100644 index 0000000..3043cca Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-21.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-22.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-22.png new file mode 100644 index 0000000..5dcb466 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-22.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-23.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-23.png new file mode 100644 index 0000000..8845d3b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-23.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-24.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-24.png new file mode 100644 index 0000000..bd7c548 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-24.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-25.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-25.png new file mode 100644 index 0000000..d6b8fa1 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-25.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-26.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-26.png new file mode 100644 index 0000000..335cab7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-26.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-27.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-27.png new file mode 100644 index 0000000..ebe3f8b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-27.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-28.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-28.png new file mode 100644 index 0000000..958c94d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-28.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-29.png b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-29.png new file mode 100644 index 0000000..b2ea348 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/branch-particle-shadow-29.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-01.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-01.png new file mode 100644 index 0000000..2eeb389 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-01.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-02.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-02.png new file mode 100644 index 0000000..3e9bd14 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-02.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-03.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-03.png new file mode 100644 index 0000000..8d21e90 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-03.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-04.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-04.png new file mode 100644 index 0000000..49d5ddb Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-04.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-05.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-05.png new file mode 100644 index 0000000..05c57b1 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-05.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-06.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-06.png new file mode 100644 index 0000000..a5485b4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-06.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-07.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-07.png new file mode 100644 index 0000000..514bd7c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-07.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-08.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-08.png new file mode 100644 index 0000000..e10235d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-08.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-09.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-09.png new file mode 100644 index 0000000..0474f0d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-09.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-10.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-10.png new file mode 100644 index 0000000..37697b0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-10.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-11.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-11.png new file mode 100644 index 0000000..1f108fd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-11.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-12.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-12.png new file mode 100644 index 0000000..d982475 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-12.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-13.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-13.png new file mode 100644 index 0000000..cb768da Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-13.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-14.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-14.png new file mode 100644 index 0000000..783e74e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-14.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-15.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-15.png new file mode 100644 index 0000000..f43239c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-15.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-16.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-16.png new file mode 100644 index 0000000..1702223 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-16.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-17.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-17.png new file mode 100644 index 0000000..0b31004 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-17.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-18.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-18.png new file mode 100644 index 0000000..9081e9b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-18.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-19.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-19.png new file mode 100644 index 0000000..567642a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-19.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-20.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-20.png new file mode 100644 index 0000000..733f5b8 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-20.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-21.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-21.png new file mode 100644 index 0000000..beb57ce Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-21.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-22.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-22.png new file mode 100644 index 0000000..d21c567 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-22.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-23.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-23.png new file mode 100644 index 0000000..049cf01 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-23.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-24.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-24.png new file mode 100644 index 0000000..f3ca3bf Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-24.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-25.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-25.png new file mode 100644 index 0000000..b469b3e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-25.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-26.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-26.png new file mode 100644 index 0000000..0bc30bf Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-26.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-27.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-27.png new file mode 100644 index 0000000..e6fd35b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-27.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-28.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-28.png new file mode 100644 index 0000000..2be589d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-28.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-29.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-29.png new file mode 100644 index 0000000..b6efdef Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-29.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-01.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-01.png new file mode 100644 index 0000000..cd0c683 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-01.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-02.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-02.png new file mode 100644 index 0000000..0be650a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-02.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-03.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-03.png new file mode 100644 index 0000000..521fe10 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-03.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-04.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-04.png new file mode 100644 index 0000000..880c539 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-04.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-05.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-05.png new file mode 100644 index 0000000..154e16d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-05.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-06.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-06.png new file mode 100644 index 0000000..ff546eb Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-06.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-07.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-07.png new file mode 100644 index 0000000..8d94e53 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-07.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-08.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-08.png new file mode 100644 index 0000000..071eb2c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-08.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-09.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-09.png new file mode 100644 index 0000000..9b24c62 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-09.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-10.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-10.png new file mode 100644 index 0000000..d26db87 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-10.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-11.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-11.png new file mode 100644 index 0000000..fce5bba Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-11.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-12.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-12.png new file mode 100644 index 0000000..1818b2f Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-12.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-13.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-13.png new file mode 100644 index 0000000..6b5d70d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-13.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-14.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-14.png new file mode 100644 index 0000000..af1d0e3 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-14.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-15.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-15.png new file mode 100644 index 0000000..29ee90e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-15.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-16.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-16.png new file mode 100644 index 0000000..1e18476 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-16.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-17.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-17.png new file mode 100644 index 0000000..247b20d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-17.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-18.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-18.png new file mode 100644 index 0000000..c5f6b21 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-18.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-19.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-19.png new file mode 100644 index 0000000..aa94663 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-19.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-20.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-20.png new file mode 100644 index 0000000..e2f6d7a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-20.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-21.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-21.png new file mode 100644 index 0000000..8093ee6 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-21.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-22.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-22.png new file mode 100644 index 0000000..ecb47f1 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-22.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-23.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-23.png new file mode 100644 index 0000000..19d081d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-23.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-24.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-24.png new file mode 100644 index 0000000..16f4e62 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-24.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-25.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-25.png new file mode 100644 index 0000000..a8ee926 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-25.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-26.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-26.png new file mode 100644 index 0000000..722a2c9 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-26.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-27.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-27.png new file mode 100644 index 0000000..b14a220 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-27.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-28.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-28.png new file mode 100644 index 0000000..5d15047 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-28.png differ diff --git a/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-29.png b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-29.png new file mode 100644 index 0000000..dd212fc Binary files /dev/null and b/Bio_Industries_2/graphics/entities/branch-particle/hr-branch-particle-shadow-29.png differ diff --git a/Bio_Industries_2/graphics/entities/cokery/cokery-idle.png b/Bio_Industries_2/graphics/entities/cokery/cokery-idle.png new file mode 100644 index 0000000..765f841 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/cokery/cokery-idle.png differ diff --git a/Bio_Industries_2/graphics/entities/cokery/cokery_sheet.png b/Bio_Industries_2/graphics/entities/cokery/cokery_sheet.png new file mode 100644 index 0000000..baf2200 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/cokery/cokery_sheet.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-01-shadow.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-01-shadow.png new file mode 100644 index 0000000..4699e54 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-01-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-01.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-01.png new file mode 100644 index 0000000..850a49a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-01.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-02-shadow.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-02-shadow.png new file mode 100644 index 0000000..66a5eb5 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-02-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-02.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-02.png new file mode 100644 index 0000000..4dbcd61 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-02.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-03-shadow.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-03-shadow.png new file mode 100644 index 0000000..8bfb569 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-03-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-03.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-03.png new file mode 100644 index 0000000..4586c1c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-03.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-04-shadow.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-04-shadow.png new file mode 100644 index 0000000..480b709 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-04-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-04.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-04.png new file mode 100644 index 0000000..9bf85d8 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-04.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-05-shadow.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-05-shadow.png new file mode 100644 index 0000000..a916c00 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-05-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-05.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-05.png new file mode 100644 index 0000000..0eb102c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-05.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-06-shadow.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-06-shadow.png new file mode 100644 index 0000000..3e43355 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-06-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-06.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-06.png new file mode 100644 index 0000000..017954b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-06.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-07-shadow.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-07-shadow.png new file mode 100644 index 0000000..17b971d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-07-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-07.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-07.png new file mode 100644 index 0000000..0169eb8 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-07.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-08-shadow.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-08-shadow.png new file mode 100644 index 0000000..950e88c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-08-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-08.png b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-08.png new file mode 100644 index 0000000..c482432 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/leaf-particle/leaf-particle-08.png differ diff --git a/Bio_Industries_2/graphics/entities/remnants/bio_cannon_remnant.png b/Bio_Industries_2/graphics/entities/remnants/bio_cannon_remnant.png new file mode 100644 index 0000000..ee0cdaa Binary files /dev/null and b/Bio_Industries_2/graphics/entities/remnants/bio_cannon_remnant.png differ diff --git a/Bio_Industries_2/graphics/entities/remnants/hr_bio_cannon_remnant.png b/Bio_Industries_2/graphics/entities/remnants/hr_bio_cannon_remnant.png new file mode 100644 index 0000000..f2a9d4e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/remnants/hr_bio_cannon_remnant.png differ diff --git a/Bio_Industries_2/graphics/entities/small-lamp/light-on-patch.png b/Bio_Industries_2/graphics/entities/small-lamp/light-on-patch.png new file mode 100644 index 0000000..41c2221 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/small-lamp/light-on-patch.png differ diff --git a/Bio_Industries_2/graphics/entities/stone-crusher/stone-crusher-anim.png b/Bio_Industries_2/graphics/entities/stone-crusher/stone-crusher-anim.png new file mode 100644 index 0000000..7c34767 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/stone-crusher/stone-crusher-anim.png differ diff --git a/Bio_Industries_2/graphics/entities/stone-crusher/stone-crusher-off-anim.png b/Bio_Industries_2/graphics/entities/stone-crusher/stone-crusher-off-anim.png new file mode 100644 index 0000000..e0ba4a8 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/stone-crusher/stone-crusher-off-anim.png differ diff --git a/Bio_Industries_2/graphics/entities/stone-crusher/stone-crusher.png b/Bio_Industries_2/graphics/entities/stone-crusher/stone-crusher.png new file mode 100644 index 0000000..b815559 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/stone-crusher/stone-crusher.png differ diff --git a/Bio_Industries_2/graphics/entities/stone-crusher/stone_crusher_anim.png b/Bio_Industries_2/graphics/entities/stone-crusher/stone_crusher_anim.png new file mode 100644 index 0000000..3c5057d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/stone-crusher/stone_crusher_anim.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/big-wooden-pole-01.png b/Bio_Industries_2/graphics/entities/wood_products/big-wooden-pole-01.png new file mode 100644 index 0000000..945dfcf Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/big-wooden-pole-01.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/giga_wooden_chest.png b/Bio_Industries_2/graphics/entities/wood_products/giga_wooden_chest.png new file mode 100644 index 0000000..6ef25c4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/giga_wooden_chest.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/huge-wooden-pole.png b/Bio_Industries_2/graphics/entities/wood_products/huge-wooden-pole.png new file mode 100644 index 0000000..98c76f0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/huge-wooden-pole.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/huge_wooden_chest.png b/Bio_Industries_2/graphics/entities/wood_products/huge_wooden_chest.png new file mode 100644 index 0000000..535c450 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/huge_wooden_chest.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/large_wooden_chest.png b/Bio_Industries_2/graphics/entities/wood_products/large_wooden_chest.png new file mode 100644 index 0000000..a32a75e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/large_wooden_chest.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..caddd66 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path-background.png new file mode 100644 index 0000000..caddd66 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path-remnants.png new file mode 100644 index 0000000..c7eb854 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path.png new file mode 100644 index 0000000..c7eb854 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path-background-remnants.png new file mode 100644 index 0000000..b2886e8 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path-background.png new file mode 100644 index 0000000..b2886e8 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path-remnants.png new file mode 100644 index 0000000..dbb6640 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path.png new file mode 100644 index 0000000..dbb6640 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-left-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..fcaa85a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path-background.png new file mode 100644 index 0000000..fcaa85a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path-remnants.png new file mode 100644 index 0000000..e626f42 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path.png new file mode 100644 index 0000000..e626f42 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path-background-remnants.png new file mode 100644 index 0000000..1f0a71a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path-background.png new file mode 100644 index 0000000..1f0a71a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path-remnants.png new file mode 100644 index 0000000..208d493 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path.png new file mode 100644 index 0000000..208d493 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-horizontal-right-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..f751d53 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path-background.png new file mode 100644 index 0000000..f751d53 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path-remnants.png new file mode 100644 index 0000000..72e1827 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path.png new file mode 100644 index 0000000..72e1827 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path-background-remnants.png new file mode 100644 index 0000000..3c88cb3 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path-background.png new file mode 100644 index 0000000..3c88cb3 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path-remnants.png new file mode 100644 index 0000000..aada0af Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path.png new file mode 100644 index 0000000..aada0af Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-left-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..080509b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path-background.png new file mode 100644 index 0000000..080509b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path-remnants.png new file mode 100644 index 0000000..0ff89ae Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path.png new file mode 100644 index 0000000..0ff89ae Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path-background-remnants.png new file mode 100644 index 0000000..313571c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path-background.png new file mode 100644 index 0000000..313571c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path-remnants.png new file mode 100644 index 0000000..3a07e4c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path.png new file mode 100644 index 0000000..3a07e4c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/curved-rail-vertical-right-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..bff5763 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path-background.png new file mode 100644 index 0000000..bff5763 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path-remnants.png new file mode 100644 index 0000000..ddd3973 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path.png new file mode 100644 index 0000000..ddd3973 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path-background-remnants.png new file mode 100644 index 0000000..94f06b7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path-background.png new file mode 100644 index 0000000..94f06b7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path-remnants.png new file mode 100644 index 0000000..f27ac45 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path.png new file mode 100644 index 0000000..f27ac45 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-left-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..a86bf0f Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path-background.png new file mode 100644 index 0000000..a86bf0f Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path-remnants.png new file mode 100644 index 0000000..ffcdc54 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path.png new file mode 100644 index 0000000..ffcdc54 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path-background-remnants.png new file mode 100644 index 0000000..98f75a4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path-background.png new file mode 100644 index 0000000..98f75a4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path-remnants.png new file mode 100644 index 0000000..6cfd047 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path.png new file mode 100644 index 0000000..6cfd047 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-horizontal-right-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..7c2d00c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path-background.png new file mode 100644 index 0000000..7c2d00c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path-remnants.png new file mode 100644 index 0000000..1d62eee Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path.png new file mode 100644 index 0000000..1d62eee Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path-background-remnants.png new file mode 100644 index 0000000..3ced01c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path-background.png new file mode 100644 index 0000000..3ced01c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path-remnants.png new file mode 100644 index 0000000..bf13db6 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path.png new file mode 100644 index 0000000..bf13db6 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-left-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..7e3bb39 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path-background.png new file mode 100644 index 0000000..7e3bb39 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path-remnants.png new file mode 100644 index 0000000..cb30dec Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path.png new file mode 100644 index 0000000..cb30dec Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path-background-remnants.png new file mode 100644 index 0000000..e5dfa18 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path-background.png new file mode 100644 index 0000000..e5dfa18 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path-remnants.png new file mode 100644 index 0000000..6cb0f3e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path.png new file mode 100644 index 0000000..6cb0f3e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/curved-rail-bridge/hr-curved-rail-vertical-right-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/remnants/hr-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/remnants/hr-remnants.png new file mode 100644 index 0000000..baf9ef3 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/remnants/hr-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/remnants/remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/remnants/remnants.png new file mode 100644 index 0000000..69f0629 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/remnants/remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..1fda8bd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path-background.png new file mode 100644 index 0000000..1fda8bd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path-remnants.png new file mode 100644 index 0000000..f306f2e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path.png new file mode 100644 index 0000000..f306f2e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path-background-remnants.png new file mode 100644 index 0000000..7e11ceb Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path-background.png new file mode 100644 index 0000000..7e11ceb Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path-remnants.png new file mode 100644 index 0000000..c35edb4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path.png new file mode 100644 index 0000000..c35edb4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-left-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..b42161d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path-background.png new file mode 100644 index 0000000..b42161d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path-remnants.png new file mode 100644 index 0000000..e3ab980 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path.png new file mode 100644 index 0000000..e3ab980 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path-background-remnants.png new file mode 100644 index 0000000..cb0ca67 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path-background.png new file mode 100644 index 0000000..cb0ca67 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path-remnants.png new file mode 100644 index 0000000..e372909 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path.png new file mode 100644 index 0000000..e372909 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-diagonal-right-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path-background-remnants.png new file mode 100644 index 0000000..7640ed6 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path-background.png new file mode 100644 index 0000000..7640ed6 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path-remnants.png new file mode 100644 index 0000000..22d9fe9 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path.png new file mode 100644 index 0000000..22d9fe9 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-horizontal-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path-background-remnants.png new file mode 100644 index 0000000..3a271bb Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path-background.png new file mode 100644 index 0000000..3a271bb Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path-remnants.png new file mode 100644 index 0000000..d64efaf Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path.png new file mode 100644 index 0000000..d64efaf Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/hr-straight-rail-vertical-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..0c052d3 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path-background.png new file mode 100644 index 0000000..0c052d3 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path-remnants.png new file mode 100644 index 0000000..5aac793 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path.png new file mode 100644 index 0000000..5aac793 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path-background-remnants.png new file mode 100644 index 0000000..0c4de76 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path-background.png new file mode 100644 index 0000000..0c4de76 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path-remnants.png new file mode 100644 index 0000000..631d77d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path.png new file mode 100644 index 0000000..631d77d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-left-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path-background-remnants.png new file mode 100644 index 0000000..f83fcdd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path-background.png new file mode 100644 index 0000000..f83fcdd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path-remnants.png new file mode 100644 index 0000000..051c361 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path.png new file mode 100644 index 0000000..051c361 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-bottom-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path-background-remnants.png new file mode 100644 index 0000000..acd3887 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path-background.png new file mode 100644 index 0000000..acd3887 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path-remnants.png new file mode 100644 index 0000000..a365772 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path.png new file mode 100644 index 0000000..a365772 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-diagonal-right-top-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path-background-remnants.png new file mode 100644 index 0000000..2d11f9b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path-background.png new file mode 100644 index 0000000..2d11f9b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path-remnants.png new file mode 100644 index 0000000..cace4c1 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path.png new file mode 100644 index 0000000..cace4c1 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-horizontal-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path-background-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path-background-remnants.png new file mode 100644 index 0000000..4b561a2 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path-background-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path-background.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path-background.png new file mode 100644 index 0000000..4b561a2 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path-background.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path-remnants.png new file mode 100644 index 0000000..4c6677a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path.png b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path.png new file mode 100644 index 0000000..4c6677a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/straight-rail-bridge/straight-rail-vertical-stone-path.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-bottom-ties-remnants.png new file mode 100644 index 0000000..56e5910 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-bottom-ties.png new file mode 100644 index 0000000..7b15035 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-top-ties-remnants.png new file mode 100644 index 0000000..ae4aea5 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-top-ties.png new file mode 100644 index 0000000..931294e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-left-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-bottom-ties-remnants.png new file mode 100644 index 0000000..11bce5f Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-bottom-ties.png new file mode 100644 index 0000000..d1bf901 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-top-ties-remnants.png new file mode 100644 index 0000000..c36d35c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-top-ties.png new file mode 100644 index 0000000..a2b3111 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-horizontal-right-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-bottom-ties-remnants.png new file mode 100644 index 0000000..05df42a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-bottom-ties.png new file mode 100644 index 0000000..f011fd5 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-top-ties-remnants.png new file mode 100644 index 0000000..ffb7efd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-top-ties.png new file mode 100644 index 0000000..e054874 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-left-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-bottom-ties-remnants.png new file mode 100644 index 0000000..861edb0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-bottom-ties.png new file mode 100644 index 0000000..3a7bb8c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-top-ties-remnants.png new file mode 100644 index 0000000..0cd255a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-top-ties.png new file mode 100644 index 0000000..8abda2d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/curved-rail-vertical-right-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-bottom-ties-remnants.png new file mode 100644 index 0000000..c8d9bdc Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-bottom-ties.png new file mode 100644 index 0000000..5c5eca0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-top-ties-remnants.png new file mode 100644 index 0000000..8b58cad Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-top-ties.png new file mode 100644 index 0000000..a084168 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-left-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-bottom-ties-remnants.png new file mode 100644 index 0000000..a25c049 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-bottom-ties.png new file mode 100644 index 0000000..111f078 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-top-ties-remnants.png new file mode 100644 index 0000000..f1f4f0d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-top-ties.png new file mode 100644 index 0000000..05b9ae4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-horizontal-right-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-bottom-ties-remnants.png new file mode 100644 index 0000000..f9f466c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-bottom-ties.png new file mode 100644 index 0000000..62a19ec Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-top-ties-remnants.png new file mode 100644 index 0000000..3d392c7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-top-ties.png new file mode 100644 index 0000000..8504893 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-left-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-bottom-ties-remnants.png new file mode 100644 index 0000000..b04ce4a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-bottom-ties.png new file mode 100644 index 0000000..2b94321 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-top-ties-remnants.png new file mode 100644 index 0000000..842fc56 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-top-ties.png new file mode 100644 index 0000000..39a686a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-curved-rail-vertical-right-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-bottom-ties-remnants.png new file mode 100644 index 0000000..3706f2e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-bottom-ties.png new file mode 100644 index 0000000..fd64c58 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-top-ties-remnants.png new file mode 100644 index 0000000..a10b4aa Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-top-ties.png new file mode 100644 index 0000000..ebe950d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-left-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-bottom-ties-remnants.png new file mode 100644 index 0000000..8580aec Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-bottom-ties.png new file mode 100644 index 0000000..7978401 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-top-ties-remnants.png new file mode 100644 index 0000000..1dca62a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-top-ties.png new file mode 100644 index 0000000..c68b5cf Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-diagonal-right-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-horizontal-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-horizontal-ties-remnants.png new file mode 100644 index 0000000..71886ae Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-horizontal-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-horizontal-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-horizontal-ties.png new file mode 100644 index 0000000..bc77371 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-horizontal-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-vertical-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-vertical-ties-remnants.png new file mode 100644 index 0000000..b2cc9f9 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-vertical-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-vertical-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-vertical-ties.png new file mode 100644 index 0000000..2abc078 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/hr-straight-rail-vertical-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-bottom-ties-remnants.png new file mode 100644 index 0000000..37d80db Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-bottom-ties.png new file mode 100644 index 0000000..364dd36 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-top-ties-remnants.png new file mode 100644 index 0000000..acddd99 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-top-ties.png new file mode 100644 index 0000000..260d747 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-left-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-bottom-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-bottom-ties-remnants.png new file mode 100644 index 0000000..887f725 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-bottom-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-bottom-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-bottom-ties.png new file mode 100644 index 0000000..1ae7b85 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-bottom-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-top-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-top-ties-remnants.png new file mode 100644 index 0000000..3f8c1ff Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-top-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-top-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-top-ties.png new file mode 100644 index 0000000..5fa5da5 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-diagonal-right-top-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-horizontal-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-horizontal-ties-remnants.png new file mode 100644 index 0000000..ea3c352 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-horizontal-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-horizontal-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-horizontal-ties.png new file mode 100644 index 0000000..8de3b15 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-horizontal-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-vertical-ties-remnants.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-vertical-ties-remnants.png new file mode 100644 index 0000000..ebacedb Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-vertical-ties-remnants.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-vertical-ties.png b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-vertical-ties.png new file mode 100644 index 0000000..f115282 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/rails/ties/straight-rail-vertical-ties.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-left-down-shadow.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-left-down-shadow.png new file mode 100644 index 0000000..9a9df71 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-left-down-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-left-down.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-left-down.png new file mode 100644 index 0000000..ce87c50 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-left-down.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-right-down-shadow.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-right-down-shadow.png new file mode 100644 index 0000000..1864dde Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-right-down-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-right-down.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-right-down.png new file mode 100644 index 0000000..b7a7960 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-corner-right-down.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-left-shadow.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-left-shadow.png new file mode 100644 index 0000000..a6d236f Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-left-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-left.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-left.png new file mode 100644 index 0000000..abdc740 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-left.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-right-shadow.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-right-shadow.png new file mode 100644 index 0000000..0626476 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-right-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-right.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-right.png new file mode 100644 index 0000000..012550d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-ending-right.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-single-1.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-single-1.png new file mode 100644 index 0000000..0ae7442 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-single-1.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-single-shadow.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-single-shadow.png new file mode 100644 index 0000000..9ab7649 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-single-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-1.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-1.png new file mode 100644 index 0000000..cb48209 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-1.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-2.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-2.png new file mode 100644 index 0000000..625a85a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-2.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-3.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-3.png new file mode 100644 index 0000000..2e8a1de Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-3.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-shadow.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-shadow.png new file mode 100644 index 0000000..a552800 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-horizontal-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-vertical-1.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-vertical-1.png new file mode 100644 index 0000000..328e341 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-vertical-1.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-vertical-shadow.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-vertical-shadow.png new file mode 100644 index 0000000..390e246 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-straight-vertical-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-t-down-shadow.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-t-down-shadow.png new file mode 100644 index 0000000..f9825bc Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-t-down-shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-t-down.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-t-down.png new file mode 100644 index 0000000..e548305 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/fence-t-down.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_fence/wooden-fence.png b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/wooden-fence.png new file mode 100644 index 0000000..35d7e3d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_fence/wooden-fence.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-inner-corner.png b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-inner-corner.png new file mode 100644 index 0000000..b362399 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-inner-corner.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-o.png b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-o.png new file mode 100644 index 0000000..3d582e4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-o.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-outer-corner.png b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-outer-corner.png new file mode 100644 index 0000000..d8c06ed Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-outer-corner.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-side.png b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-side.png new file mode 100644 index 0000000..5539773 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-side.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-u.png b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-u.png new file mode 100644 index 0000000..7dc32ef Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood-u.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood1.png b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood1.png new file mode 100644 index 0000000..75e8c29 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood1.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood2.png b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood2.png new file mode 100644 index 0000000..ee65025 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_floor/wood2.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_pipe/hq_pipe_sheet.png b/Bio_Industries_2/graphics/entities/wood_products/wood_pipe/hq_pipe_sheet.png new file mode 100644 index 0000000..f7f6a72 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_pipe/hq_pipe_sheet.png differ diff --git a/Bio_Industries_2/graphics/entities/wood_products/wood_pipe/lq_pipe_sheet.png b/Bio_Industries_2/graphics/entities/wood_products/wood_pipe/lq_pipe_sheet.png new file mode 100644 index 0000000..2837929 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wood_products/wood_pipe/lq_pipe_sheet.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-01.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-01.png new file mode 100644 index 0000000..184edc6 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-01.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-02.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-02.png new file mode 100644 index 0000000..04e4510 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-02.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-03.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-03.png new file mode 100644 index 0000000..3fe5842 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-03.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-04.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-04.png new file mode 100644 index 0000000..60e2043 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-04.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-05.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-05.png new file mode 100644 index 0000000..0c7ccf9 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-05.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-06.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-06.png new file mode 100644 index 0000000..e7108ff Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-06.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-07.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-07.png new file mode 100644 index 0000000..6cb6b54 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-07.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-08.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-08.png new file mode 100644 index 0000000..1e945ea Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-08.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-09.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-09.png new file mode 100644 index 0000000..b50caab Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-09.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-10.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-10.png new file mode 100644 index 0000000..a92be4e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-10.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-11.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-11.png new file mode 100644 index 0000000..754ef36 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-11.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-12.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-12.png new file mode 100644 index 0000000..fab0922 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-12.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-13.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-13.png new file mode 100644 index 0000000..170f425 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-13.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-14.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-14.png new file mode 100644 index 0000000..ae6b436 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-14.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-15.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-15.png new file mode 100644 index 0000000..ca63804 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-15.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-16.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-16.png new file mode 100644 index 0000000..d63bbb4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-16.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-17.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-17.png new file mode 100644 index 0000000..1cd3cf7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-17.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-18.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-18.png new file mode 100644 index 0000000..76f7a76 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-18.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-19.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-19.png new file mode 100644 index 0000000..b37b874 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-19.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-20.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-20.png new file mode 100644 index 0000000..cdb37c4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-20.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-21.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-21.png new file mode 100644 index 0000000..77365d6 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-21.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-22.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-22.png new file mode 100644 index 0000000..a2992eb Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-22.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-23.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-23.png new file mode 100644 index 0000000..dca2004 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-23.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-24.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-24.png new file mode 100644 index 0000000..7f6bc45 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-24.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-25.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-25.png new file mode 100644 index 0000000..222f577 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-25.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-01.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-01.png new file mode 100644 index 0000000..aae0be6 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-01.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-02.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-02.png new file mode 100644 index 0000000..f19a655 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-02.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-03.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-03.png new file mode 100644 index 0000000..6e58f83 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-03.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-04.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-04.png new file mode 100644 index 0000000..262125c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-04.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-05.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-05.png new file mode 100644 index 0000000..48aeb26 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-05.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-06.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-06.png new file mode 100644 index 0000000..b870c48 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-06.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-07.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-07.png new file mode 100644 index 0000000..7fc7fd0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-07.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-08.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-08.png new file mode 100644 index 0000000..7fd59de Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-08.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-09.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-09.png new file mode 100644 index 0000000..673023e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-09.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-10.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-10.png new file mode 100644 index 0000000..052b7f7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-10.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-11.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-11.png new file mode 100644 index 0000000..71a0383 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-11.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-12.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-12.png new file mode 100644 index 0000000..a50c3e7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-12.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-13.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-13.png new file mode 100644 index 0000000..51fab9a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-13.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-14.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-14.png new file mode 100644 index 0000000..678d326 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-14.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-15.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-15.png new file mode 100644 index 0000000..3db8415 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-15.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-16.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-16.png new file mode 100644 index 0000000..59a018d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-16.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-17.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-17.png new file mode 100644 index 0000000..8a3b9b0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-17.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-18.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-18.png new file mode 100644 index 0000000..f3096d5 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-18.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-19.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-19.png new file mode 100644 index 0000000..52a37ca Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-19.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-20.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-20.png new file mode 100644 index 0000000..6f9c422 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-20.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-21.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-21.png new file mode 100644 index 0000000..002384b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-21.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-22.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-22.png new file mode 100644 index 0000000..803afd2 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-22.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-23.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-23.png new file mode 100644 index 0000000..da99f94 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-23.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-24.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-24.png new file mode 100644 index 0000000..a0c2b6a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-24.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-25.png b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-25.png new file mode 100644 index 0000000..21818fd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/hr-wooden-particle-shadow-25.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-01.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-01.png new file mode 100644 index 0000000..3905425 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-01.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-02.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-02.png new file mode 100644 index 0000000..5265b7d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-02.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-03.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-03.png new file mode 100644 index 0000000..665b873 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-03.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-04.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-04.png new file mode 100644 index 0000000..d0670f9 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-04.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-05.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-05.png new file mode 100644 index 0000000..8e4c37e Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-05.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-06.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-06.png new file mode 100644 index 0000000..80b14c9 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-06.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-07.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-07.png new file mode 100644 index 0000000..3d69ef3 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-07.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-08.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-08.png new file mode 100644 index 0000000..e045e35 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-08.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-09.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-09.png new file mode 100644 index 0000000..ff4e273 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-09.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-1.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-1.png new file mode 100644 index 0000000..07c6c2a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-1.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-10.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-10.png new file mode 100644 index 0000000..4eb7aa5 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-10.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-11.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-11.png new file mode 100644 index 0000000..3cb2b32 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-11.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-12.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-12.png new file mode 100644 index 0000000..412220a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-12.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-13.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-13.png new file mode 100644 index 0000000..53059e0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-13.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-14.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-14.png new file mode 100644 index 0000000..456e7ad Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-14.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-15.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-15.png new file mode 100644 index 0000000..54aea9b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-15.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-16.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-16.png new file mode 100644 index 0000000..303fa44 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-16.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-17.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-17.png new file mode 100644 index 0000000..65b2eed Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-17.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-18.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-18.png new file mode 100644 index 0000000..039bd2f Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-18.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-19.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-19.png new file mode 100644 index 0000000..7556685 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-19.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-2.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-2.png new file mode 100644 index 0000000..4eab673 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-2.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-20.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-20.png new file mode 100644 index 0000000..29e0f74 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-20.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-21.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-21.png new file mode 100644 index 0000000..ec64d41 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-21.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-22.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-22.png new file mode 100644 index 0000000..30b88dc Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-22.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-23.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-23.png new file mode 100644 index 0000000..0ebe654 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-23.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-24.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-24.png new file mode 100644 index 0000000..a549593 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-24.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-25.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-25.png new file mode 100644 index 0000000..bdfdeb0 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-25.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-3.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-3.png new file mode 100644 index 0000000..ee850f7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-3.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-4.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-4.png new file mode 100644 index 0000000..b0c05b2 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-4.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-01.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-01.png new file mode 100644 index 0000000..a24c1cd Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-01.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-02.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-02.png new file mode 100644 index 0000000..f07ef9a Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-02.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-03.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-03.png new file mode 100644 index 0000000..7274513 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-03.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-04.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-04.png new file mode 100644 index 0000000..7a09b87 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-04.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-05.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-05.png new file mode 100644 index 0000000..7830853 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-05.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-06.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-06.png new file mode 100644 index 0000000..1edc1a5 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-06.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-07.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-07.png new file mode 100644 index 0000000..b7897cb Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-07.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-08.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-08.png new file mode 100644 index 0000000..5895685 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-08.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-09.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-09.png new file mode 100644 index 0000000..af541b5 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-09.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-1.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-1.png new file mode 100644 index 0000000..50bb0c8 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-1.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-10.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-10.png new file mode 100644 index 0000000..202aa3f Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-10.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-11.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-11.png new file mode 100644 index 0000000..9fabd15 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-11.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-12.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-12.png new file mode 100644 index 0000000..d8a5e9b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-12.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-13.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-13.png new file mode 100644 index 0000000..5cf843d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-13.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-14.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-14.png new file mode 100644 index 0000000..f80b89c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-14.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-15.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-15.png new file mode 100644 index 0000000..d49306f Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-15.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-16.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-16.png new file mode 100644 index 0000000..e96b495 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-16.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-17.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-17.png new file mode 100644 index 0000000..e71bad6 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-17.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-18.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-18.png new file mode 100644 index 0000000..56420d7 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-18.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-19.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-19.png new file mode 100644 index 0000000..875076d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-19.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-2.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-2.png new file mode 100644 index 0000000..c8df35f Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-2.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-20.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-20.png new file mode 100644 index 0000000..8e8f4af Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-20.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-21.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-21.png new file mode 100644 index 0000000..1cae7f8 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-21.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-22.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-22.png new file mode 100644 index 0000000..855260d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-22.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-23.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-23.png new file mode 100644 index 0000000..807b6ac Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-23.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-24.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-24.png new file mode 100644 index 0000000..b51e9ea Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-24.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-25.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-25.png new file mode 100644 index 0000000..ca8acbb Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-25.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-3.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-3.png new file mode 100644 index 0000000..7a950d2 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-3.png differ diff --git a/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-4.png b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-4.png new file mode 100644 index 0000000..848c7c4 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/wooden-particle/wooden-particle-shadow-4.png differ diff --git a/Bio_Industries_2/graphics/icons/1_32.png b/Bio_Industries_2/graphics/icons/1_32.png new file mode 100644 index 0000000..062c09c Binary files /dev/null and b/Bio_Industries_2/graphics/icons/1_32.png differ diff --git a/Bio_Industries_2/graphics/icons/2_32.png b/Bio_Industries_2/graphics/icons/2_32.png new file mode 100644 index 0000000..1d78a16 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/2_32.png differ diff --git a/Bio_Industries_2/graphics/icons/3_32.png b/Bio_Industries_2/graphics/icons/3_32.png new file mode 100644 index 0000000..cd553ab Binary files /dev/null and b/Bio_Industries_2/graphics/icons/3_32.png differ diff --git a/Bio_Industries_2/graphics/icons/Arboretum_Icon.png b/Bio_Industries_2/graphics/icons/Arboretum_Icon.png new file mode 100644 index 0000000..21c85fb Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Arboretum_Icon.png differ diff --git a/Bio_Industries_2/graphics/icons/Arboretum_Icon_64.png b/Bio_Industries_2/graphics/icons/Arboretum_Icon_64.png new file mode 100644 index 0000000..343f80f Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Arboretum_Icon_64.png differ diff --git a/Bio_Industries_2/graphics/icons/Bio_Farm_Cabeling.png b/Bio_Industries_2/graphics/icons/Bio_Farm_Cabeling.png new file mode 100644 index 0000000..947aa6f Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Bio_Farm_Cabeling.png differ diff --git a/Bio_Industries_2/graphics/icons/Bio_Farm_Icon.png b/Bio_Industries_2/graphics/icons/Bio_Farm_Icon.png new file mode 100644 index 0000000..8e0dbe5 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Bio_Farm_Icon.png differ diff --git a/Bio_Industries_2/graphics/icons/Bio_Farm_Icon_64.png b/Bio_Industries_2/graphics/icons/Bio_Farm_Icon_64.png new file mode 100644 index 0000000..52a2f20 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Bio_Farm_Icon_64.png differ diff --git a/Bio_Industries_2/graphics/icons/Bio_Farm_Lamp.png b/Bio_Industries_2/graphics/icons/Bio_Farm_Lamp.png new file mode 100644 index 0000000..7b070ab Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Bio_Farm_Lamp.png differ diff --git a/Bio_Industries_2/graphics/icons/Bio_Farm_Solar.png b/Bio_Industries_2/graphics/icons/Bio_Farm_Solar.png new file mode 100644 index 0000000..690e958 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Bio_Farm_Solar.png differ diff --git a/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_64.png b/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_64.png new file mode 100644 index 0000000..133f55e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_64.png differ diff --git a/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_Boiler_Icon.png b/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_Boiler_Icon.png new file mode 100644 index 0000000..3eda816 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_Boiler_Icon.png differ diff --git a/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_Icon.png b/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_Icon.png new file mode 100644 index 0000000..d1a2fd0 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_Icon.png differ diff --git a/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_Panel_Icon.png b/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_Panel_Icon.png new file mode 100644 index 0000000..9911727 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Bio_Solar_Boiler_Panel_Icon.png differ diff --git a/Bio_Industries_2/graphics/icons/Bio_Solar_Farm_64.png b/Bio_Industries_2/graphics/icons/Bio_Solar_Farm_64.png new file mode 100644 index 0000000..af17922 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Bio_Solar_Farm_64.png differ diff --git a/Bio_Industries_2/graphics/icons/Bio_Solar_Farm_Icon.png b/Bio_Industries_2/graphics/icons/Bio_Solar_Farm_Icon.png new file mode 100644 index 0000000..cec7bb5 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Bio_Solar_Farm_Icon.png differ diff --git a/Bio_Industries_2/graphics/icons/Clean_Air2.png b/Bio_Industries_2/graphics/icons/Clean_Air2.png new file mode 100644 index 0000000..0c8b837 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Clean_Air2.png differ diff --git a/Bio_Industries_2/graphics/icons/Clean_Air2_alt.png b/Bio_Industries_2/graphics/icons/Clean_Air2_alt.png new file mode 100644 index 0000000..3cb365a Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Clean_Air2_alt.png differ diff --git a/Bio_Industries_2/graphics/icons/Fuel_Brick.png b/Bio_Industries_2/graphics/icons/Fuel_Brick.png new file mode 100644 index 0000000..b06eb47 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Fuel_Brick.png differ diff --git a/Bio_Industries_2/graphics/icons/Seed_bomb_icon_a.png b/Bio_Industries_2/graphics/icons/Seed_bomb_icon_a.png new file mode 100644 index 0000000..c4b7f4c Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Seed_bomb_icon_a.png differ diff --git a/Bio_Industries_2/graphics/icons/Seed_bomb_icon_b.png b/Bio_Industries_2/graphics/icons/Seed_bomb_icon_b.png new file mode 100644 index 0000000..602be90 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Seed_bomb_icon_b.png differ diff --git a/Bio_Industries_2/graphics/icons/Seed_bomb_icon_s.png b/Bio_Industries_2/graphics/icons/Seed_bomb_icon_s.png new file mode 100644 index 0000000..bb9adcb Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Seed_bomb_icon_s.png differ diff --git a/Bio_Industries_2/graphics/icons/Seedling.png b/Bio_Industries_2/graphics/icons/Seedling.png new file mode 100644 index 0000000..3141480 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Seedling.png differ diff --git a/Bio_Industries_2/graphics/icons/Seedling1.png b/Bio_Industries_2/graphics/icons/Seedling1.png new file mode 100644 index 0000000..279dde4 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Seedling1.png differ diff --git a/Bio_Industries_2/graphics/icons/Seedling2.png b/Bio_Industries_2/graphics/icons/Seedling2.png new file mode 100644 index 0000000..9f1ab4d Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Seedling2.png differ diff --git a/Bio_Industries_2/graphics/icons/Seedling3.png b/Bio_Industries_2/graphics/icons/Seedling3.png new file mode 100644 index 0000000..468bf1e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Seedling3.png differ diff --git a/Bio_Industries_2/graphics/icons/Seedling4.png b/Bio_Industries_2/graphics/icons/Seedling4.png new file mode 100644 index 0000000..9639877 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Seedling4.png differ diff --git a/Bio_Industries_2/graphics/icons/Seedling_a.png b/Bio_Industries_2/graphics/icons/Seedling_a.png new file mode 100644 index 0000000..56becb2 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Seedling_a.png differ diff --git a/Bio_Industries_2/graphics/icons/Seedling_b.png b/Bio_Industries_2/graphics/icons/Seedling_b.png new file mode 100644 index 0000000..72a93a4 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Seedling_b.png differ diff --git a/Bio_Industries_2/graphics/icons/Woodpulp_raw-wood.png b/Bio_Industries_2/graphics/icons/Woodpulp_raw-wood.png new file mode 100644 index 0000000..e963697 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/Woodpulp_raw-wood.png differ diff --git a/Bio_Industries_2/graphics/icons/advanced_fertilizer.png b/Bio_Industries_2/graphics/icons/advanced_fertilizer.png new file mode 100644 index 0000000..5f8dfc7 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/advanced_fertilizer.png differ diff --git a/Bio_Industries_2/graphics/icons/advanced_fertilizer_64.png b/Bio_Industries_2/graphics/icons/advanced_fertilizer_64.png new file mode 100644 index 0000000..d57b6d9 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/advanced_fertilizer_64.png differ diff --git a/Bio_Industries_2/graphics/icons/ash-recipes/py_Seedling2.png b/Bio_Industries_2/graphics/icons/ash-recipes/py_Seedling2.png new file mode 100644 index 0000000..efdbf13 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/ash-recipes/py_Seedling2.png differ diff --git a/Bio_Industries_2/graphics/icons/ash-recipes/py_ash_raw-wood.png b/Bio_Industries_2/graphics/icons/ash-recipes/py_ash_raw-wood.png new file mode 100644 index 0000000..caad3ca Binary files /dev/null and b/Bio_Industries_2/graphics/icons/ash-recipes/py_ash_raw-wood.png differ diff --git a/Bio_Industries_2/graphics/icons/ash-recipes/py_ash_woodpulp.png b/Bio_Industries_2/graphics/icons/ash-recipes/py_ash_woodpulp.png new file mode 100644 index 0000000..2378cbe Binary files /dev/null and b/Bio_Industries_2/graphics/icons/ash-recipes/py_ash_woodpulp.png differ diff --git a/Bio_Industries_2/graphics/icons/ash-recipes/py_bi_stone_brick.png b/Bio_Industries_2/graphics/icons/ash-recipes/py_bi_stone_brick.png new file mode 100644 index 0000000..ce7ca94 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/ash-recipes/py_bi_stone_brick.png differ diff --git a/Bio_Industries_2/graphics/icons/ash-recipes/py_bio_seed2.png b/Bio_Industries_2/graphics/icons/ash-recipes/py_bio_seed2.png new file mode 100644 index 0000000..62ab8f2 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/ash-recipes/py_bio_seed2.png differ diff --git a/Bio_Industries_2/graphics/icons/ash-recipes/py_bio_sulfur.png b/Bio_Industries_2/graphics/icons/ash-recipes/py_bio_sulfur.png new file mode 100644 index 0000000..1b3c7ef Binary files /dev/null and b/Bio_Industries_2/graphics/icons/ash-recipes/py_bio_sulfur.png differ diff --git a/Bio_Industries_2/graphics/icons/ash-recipes/py_raw-wood-mk2.png b/Bio_Industries_2/graphics/icons/ash-recipes/py_raw-wood-mk2.png new file mode 100644 index 0000000..7475060 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/ash-recipes/py_raw-wood-mk2.png differ diff --git a/Bio_Industries_2/graphics/icons/ash.png b/Bio_Industries_2/graphics/icons/ash.png new file mode 100644 index 0000000..37fe5b8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/ash.png differ diff --git a/Bio_Industries_2/graphics/icons/ash_64.png b/Bio_Industries_2/graphics/icons/ash_64.png new file mode 100644 index 0000000..37fe5b8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/ash_64.png differ diff --git a/Bio_Industries_2/graphics/icons/ash_raw-wood.png b/Bio_Industries_2/graphics/icons/ash_raw-wood.png new file mode 100644 index 0000000..504e0de Binary files /dev/null and b/Bio_Industries_2/graphics/icons/ash_raw-wood.png differ diff --git a/Bio_Industries_2/graphics/icons/ash_woodpulp.png b/Bio_Industries_2/graphics/icons/ash_woodpulp.png new file mode 100644 index 0000000..09e8f00 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/ash_woodpulp.png differ diff --git a/Bio_Industries_2/graphics/icons/basic_dart_icon.png b/Bio_Industries_2/graphics/icons/basic_dart_icon.png new file mode 100644 index 0000000..9299513 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/basic_dart_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_LargeAccumulator.png b/Bio_Industries_2/graphics/icons/bi_LargeAccumulator.png new file mode 100644 index 0000000..ae07e67 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_LargeAccumulator.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_LargeAccumulator_64.png b/Bio_Industries_2/graphics/icons/bi_LargeAccumulator_64.png new file mode 100644 index 0000000..6e7f266 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_LargeAccumulator_64.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_LargeSubstation_64.png b/Bio_Industries_2/graphics/icons/bi_LargeSubstation_64.png new file mode 100644 index 0000000..8e4b3a3 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_LargeSubstation_64.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_LargeSubstation_icon.png b/Bio_Industries_2/graphics/icons/bi_LargeSubstation_icon.png new file mode 100644 index 0000000..d879cb5 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_LargeSubstation_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_basic_gas_processing.png b/Bio_Industries_2/graphics/icons/bi_basic_gas_processing.png new file mode 100644 index 0000000..dd44fe7 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_basic_gas_processing.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_basic_gas_processing_angels.png b/Bio_Industries_2/graphics/icons/bi_basic_gas_processing_angels.png new file mode 100644 index 0000000..049223b Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_basic_gas_processing_angels.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_change_1.png b/Bio_Industries_2/graphics/icons/bi_change_1.png new file mode 100644 index 0000000..cf55d25 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_change_1.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_change_2.png b/Bio_Industries_2/graphics/icons/bi_change_2.png new file mode 100644 index 0000000..b735410 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_change_2.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_change_plant_1.png b/Bio_Industries_2/graphics/icons/bi_change_plant_1.png new file mode 100644 index 0000000..a669a21 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_change_plant_1.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_change_plant_2.png b/Bio_Industries_2/graphics/icons/bi_change_plant_2.png new file mode 100644 index 0000000..868ef39 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_change_plant_2.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_dart_rifle_icon.png b/Bio_Industries_2/graphics/icons/bi_dart_rifle_icon.png new file mode 100644 index 0000000..678d265 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_dart_rifle_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_mineralized_sulfuric.png b/Bio_Industries_2/graphics/icons/bi_mineralized_sulfuric.png new file mode 100644 index 0000000..9db4ade Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_mineralized_sulfuric.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_resin.png b/Bio_Industries_2/graphics/icons/bi_resin.png new file mode 100644 index 0000000..e4bc205 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_resin.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_resin_pulp.png b/Bio_Industries_2/graphics/icons/bi_resin_pulp.png new file mode 100644 index 0000000..16a1ba2 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_resin_pulp.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_resin_wood.png b/Bio_Industries_2/graphics/icons/bi_resin_wood.png new file mode 100644 index 0000000..4d80708 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_resin_wood.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_slurry.png b/Bio_Industries_2/graphics/icons/bi_slurry.png new file mode 100644 index 0000000..bb19cd4 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_slurry.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_solid_fuel_wood_brick.png b/Bio_Industries_2/graphics/icons/bi_solid_fuel_wood_brick.png new file mode 100644 index 0000000..c337706 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_solid_fuel_wood_brick.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_stone_brick.png b/Bio_Industries_2/graphics/icons/bi_stone_brick.png new file mode 100644 index 0000000..949453a Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_stone_brick.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_water_1_icon.png b/Bio_Industries_2/graphics/icons/bi_water_1_icon.png new file mode 100644 index 0000000..efb594e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_water_1_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_water_2_icon.png b/Bio_Industries_2/graphics/icons/bi_water_2_icon.png new file mode 100644 index 0000000..31abaaa Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_water_2_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_wood_resin_pulp.png b/Bio_Industries_2/graphics/icons/bi_wood_resin_pulp.png new file mode 100644 index 0000000..40ba5b0 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_wood_resin_pulp.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_wooden_board.png b/Bio_Industries_2/graphics/icons/bi_wooden_board.png new file mode 100644 index 0000000..cd66413 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_wooden_board.png differ diff --git a/Bio_Industries_2/graphics/icons/bi_wooden_board_shiny.png b/Bio_Industries_2/graphics/icons/bi_wooden_board_shiny.png new file mode 100644 index 0000000..dfd68be Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bi_wooden_board_shiny.png differ diff --git a/Bio_Industries_2/graphics/icons/big-wooden-pole.png b/Bio_Industries_2/graphics/icons/big-wooden-pole.png new file mode 100644 index 0000000..1e6c22f Binary files /dev/null and b/Bio_Industries_2/graphics/icons/big-wooden-pole.png differ diff --git a/Bio_Industries_2/graphics/icons/big-wooden-pole_64.png b/Bio_Industries_2/graphics/icons/big-wooden-pole_64.png new file mode 100644 index 0000000..517c060 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/big-wooden-pole_64.png differ diff --git a/Bio_Industries_2/graphics/icons/bio-battery/battery_64_vanilla.xcf b/Bio_Industries_2/graphics/icons/bio-battery/battery_64_vanilla.xcf new file mode 100644 index 0000000..166a065 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio-battery/battery_64_vanilla.xcf differ diff --git a/Bio_Industries_2/graphics/icons/bio-battery/bio_battery_vanilla.png b/Bio_Industries_2/graphics/icons/bio-battery/bio_battery_vanilla.png new file mode 100644 index 0000000..c48c7d6 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio-battery/bio_battery_vanilla.png differ diff --git a/Bio_Industries_2/graphics/icons/bio-battery/bio_battery_vanilla.xcf b/Bio_Industries_2/graphics/icons/bio-battery/bio_battery_vanilla.xcf new file mode 100644 index 0000000..82403c8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio-battery/bio_battery_vanilla.xcf differ diff --git a/Bio_Industries_2/graphics/icons/bio-fuel.png b/Bio_Industries_2/graphics/icons/bio-fuel.png new file mode 100644 index 0000000..19f83f5 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio-fuel.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_acid.png b/Bio_Industries_2/graphics/icons/bio_acid.png new file mode 100644 index 0000000..250da27 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_acid.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_battery.png b/Bio_Industries_2/graphics/icons/bio_battery.png new file mode 100644 index 0000000..c4a6f35 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_battery.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_battery_64.png b/Bio_Industries_2/graphics/icons/bio_battery_64.png new file mode 100644 index 0000000..b286261 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_battery_64.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_boiler.png b/Bio_Industries_2/graphics/icons/bio_boiler.png new file mode 100644 index 0000000..4b91f99 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_boiler.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_conversion.png b/Bio_Industries_2/graphics/icons/bio_conversion.png new file mode 100644 index 0000000..053bf6d Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_conversion.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_conversion_1.png b/Bio_Industries_2/graphics/icons/bio_conversion_1.png new file mode 100644 index 0000000..43d2681 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_conversion_1.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_conversion_2.png b/Bio_Industries_2/graphics/icons/bio_conversion_2.png new file mode 100644 index 0000000..b4620b1 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_conversion_2.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_conversion_2_angels.png b/Bio_Industries_2/graphics/icons/bio_conversion_2_angels.png new file mode 100644 index 0000000..d8b1761 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_conversion_2_angels.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_conversion_3.png b/Bio_Industries_2/graphics/icons/bio_conversion_3.png new file mode 100644 index 0000000..ba9fba2 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_conversion_3.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_conversion_4.png b/Bio_Industries_2/graphics/icons/bio_conversion_4.png new file mode 100644 index 0000000..6b42c6a Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_conversion_4.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_garden_64.png b/Bio_Industries_2/graphics/icons/bio_garden_64.png new file mode 100644 index 0000000..96572e7 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_garden_64.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_garden_icon.png b/Bio_Industries_2/graphics/icons/bio_garden_icon.png new file mode 100644 index 0000000..a8442d3 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_garden_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_greenhouse.png b/Bio_Industries_2/graphics/icons/bio_greenhouse.png new file mode 100644 index 0000000..77b5c2f Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_greenhouse.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_greenhouse_64.png b/Bio_Industries_2/graphics/icons/bio_greenhouse_64.png new file mode 100644 index 0000000..4497b0b Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_greenhouse_64.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_seed.png b/Bio_Industries_2/graphics/icons/bio_seed.png new file mode 100644 index 0000000..c8f74c8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_seed.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_seed1.png b/Bio_Industries_2/graphics/icons/bio_seed1.png new file mode 100644 index 0000000..7d0f7c6 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_seed1.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_seed2.png b/Bio_Industries_2/graphics/icons/bio_seed2.png new file mode 100644 index 0000000..fd7ddbf Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_seed2.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_seed3.png b/Bio_Industries_2/graphics/icons/bio_seed3.png new file mode 100644 index 0000000..e594e6b Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_seed3.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_seed4.png b/Bio_Industries_2/graphics/icons/bio_seed4.png new file mode 100644 index 0000000..55cf5b8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_seed4.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_sulfur.png b/Bio_Industries_2/graphics/icons/bio_sulfur.png new file mode 100644 index 0000000..b25b126 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_sulfur.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_turret_icon.png b/Bio_Industries_2/graphics/icons/bio_turret_icon.png new file mode 100644 index 0000000..8c06802 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_turret_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/bio_turret_icon_64.png b/Bio_Industries_2/graphics/icons/bio_turret_icon_64.png new file mode 100644 index 0000000..703054e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bio_turret_icon_64.png differ diff --git a/Bio_Industries_2/graphics/icons/biocannon_icon.png b/Bio_Industries_2/graphics/icons/biocannon_icon.png new file mode 100644 index 0000000..aeb0a4b Binary files /dev/null and b/Bio_Industries_2/graphics/icons/biocannon_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/biocannon_icon_64.png b/Bio_Industries_2/graphics/icons/biocannon_icon_64.png new file mode 100644 index 0000000..749492b Binary files /dev/null and b/Bio_Industries_2/graphics/icons/biocannon_icon_64.png differ diff --git a/Bio_Industries_2/graphics/icons/biomass.png b/Bio_Industries_2/graphics/icons/biomass.png new file mode 100644 index 0000000..f7dd399 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/biomass.png differ diff --git a/Bio_Industries_2/graphics/icons/biomass_1.png b/Bio_Industries_2/graphics/icons/biomass_1.png new file mode 100644 index 0000000..48e92dd Binary files /dev/null and b/Bio_Industries_2/graphics/icons/biomass_1.png differ diff --git a/Bio_Industries_2/graphics/icons/biomass_2.png b/Bio_Industries_2/graphics/icons/biomass_2.png new file mode 100644 index 0000000..18cc8fd Binary files /dev/null and b/Bio_Industries_2/graphics/icons/biomass_2.png differ diff --git a/Bio_Industries_2/graphics/icons/biomass_3.png b/Bio_Industries_2/graphics/icons/biomass_3.png new file mode 100644 index 0000000..be1e8dd Binary files /dev/null and b/Bio_Industries_2/graphics/icons/biomass_3.png differ diff --git a/Bio_Industries_2/graphics/icons/bioreactor.png b/Bio_Industries_2/graphics/icons/bioreactor.png new file mode 100644 index 0000000..ff20ba5 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bioreactor.png differ diff --git a/Bio_Industries_2/graphics/icons/bioreactor_64.png b/Bio_Industries_2/graphics/icons/bioreactor_64.png new file mode 100644 index 0000000..c0eda23 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/bioreactor_64.png differ diff --git a/Bio_Industries_2/graphics/icons/blank.png b/Bio_Industries_2/graphics/icons/blank.png new file mode 100644 index 0000000..5be0385 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/blank.png differ diff --git a/Bio_Industries_2/graphics/icons/burner-mining-drill_disassemble.png b/Bio_Industries_2/graphics/icons/burner-mining-drill_disassemble.png new file mode 100644 index 0000000..3ab91c4 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/burner-mining-drill_disassemble.png differ diff --git a/Bio_Industries_2/graphics/icons/burner_inserter_disassemble.png b/Bio_Industries_2/graphics/icons/burner_inserter_disassemble.png new file mode 100644 index 0000000..a8a74d2 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/burner_inserter_disassemble.png differ diff --git a/Bio_Industries_2/graphics/icons/cellulose.png b/Bio_Industries_2/graphics/icons/cellulose.png new file mode 100644 index 0000000..8a0ed13 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/cellulose.png differ diff --git a/Bio_Industries_2/graphics/icons/cellulose_2.png b/Bio_Industries_2/graphics/icons/cellulose_2.png new file mode 100644 index 0000000..b8f1270 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/cellulose_2.png differ diff --git a/Bio_Industries_2/graphics/icons/charcoal.png b/Bio_Industries_2/graphics/icons/charcoal.png new file mode 100644 index 0000000..9f1fc85 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/charcoal.png differ diff --git a/Bio_Industries_2/graphics/icons/charcoal_64.png b/Bio_Industries_2/graphics/icons/charcoal_64.png new file mode 100644 index 0000000..9f1fc85 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/charcoal_64.png differ diff --git a/Bio_Industries_2/graphics/icons/charcoal_pellets.png b/Bio_Industries_2/graphics/icons/charcoal_pellets.png new file mode 100644 index 0000000..4501d73 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/charcoal_pellets.png differ diff --git a/Bio_Industries_2/graphics/icons/charcoal_raw-wood.png b/Bio_Industries_2/graphics/icons/charcoal_raw-wood.png new file mode 100644 index 0000000..0dafa98 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/charcoal_raw-wood.png differ diff --git a/Bio_Industries_2/graphics/icons/charcoal_woodpulp.png b/Bio_Industries_2/graphics/icons/charcoal_woodpulp.png new file mode 100644 index 0000000..20728cc Binary files /dev/null and b/Bio_Industries_2/graphics/icons/charcoal_woodpulp.png differ diff --git a/Bio_Industries_2/graphics/icons/clean-air.png b/Bio_Industries_2/graphics/icons/clean-air.png new file mode 100644 index 0000000..4ed2017 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/clean-air.png differ diff --git a/Bio_Industries_2/graphics/icons/clean-air_mk1.png b/Bio_Industries_2/graphics/icons/clean-air_mk1.png new file mode 100644 index 0000000..39b3b1f Binary files /dev/null and b/Bio_Industries_2/graphics/icons/clean-air_mk1.png differ diff --git a/Bio_Industries_2/graphics/icons/clean-air_mk2.png b/Bio_Industries_2/graphics/icons/clean-air_mk2.png new file mode 100644 index 0000000..178bcd8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/clean-air_mk2.png differ diff --git a/Bio_Industries_2/graphics/icons/coal_64.png b/Bio_Industries_2/graphics/icons/coal_64.png new file mode 100644 index 0000000..f75d12e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/coal_64.png differ diff --git a/Bio_Industries_2/graphics/icons/coal_mk1.png b/Bio_Industries_2/graphics/icons/coal_mk1.png new file mode 100644 index 0000000..8a9f0aa Binary files /dev/null and b/Bio_Industries_2/graphics/icons/coal_mk1.png differ diff --git a/Bio_Industries_2/graphics/icons/coal_mk2.png b/Bio_Industries_2/graphics/icons/coal_mk2.png new file mode 100644 index 0000000..f75d12e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/coal_mk2.png differ diff --git a/Bio_Industries_2/graphics/icons/coke-coal.png b/Bio_Industries_2/graphics/icons/coke-coal.png new file mode 100644 index 0000000..13a8904 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/coke-coal.png differ diff --git a/Bio_Industries_2/graphics/icons/cokery.png b/Bio_Industries_2/graphics/icons/cokery.png new file mode 100644 index 0000000..d6c0192 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/cokery.png differ diff --git a/Bio_Industries_2/graphics/icons/cokery_64.png b/Bio_Industries_2/graphics/icons/cokery_64.png new file mode 100644 index 0000000..cc3ca28 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/cokery_64.png differ diff --git a/Bio_Industries_2/graphics/icons/cokery_alt.png b/Bio_Industries_2/graphics/icons/cokery_alt.png new file mode 100644 index 0000000..32fabed Binary files /dev/null and b/Bio_Industries_2/graphics/icons/cokery_alt.png differ diff --git a/Bio_Industries_2/graphics/icons/concrete_rail_64.png b/Bio_Industries_2/graphics/icons/concrete_rail_64.png new file mode 100644 index 0000000..1e667ff Binary files /dev/null and b/Bio_Industries_2/graphics/icons/concrete_rail_64.png differ diff --git a/Bio_Industries_2/graphics/icons/copper-wire_tweak.png b/Bio_Industries_2/graphics/icons/copper-wire_tweak.png new file mode 100644 index 0000000..dd8e734 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/copper-wire_tweak.png differ diff --git a/Bio_Industries_2/graphics/icons/crude-oil_64.png b/Bio_Industries_2/graphics/icons/crude-oil_64.png new file mode 100644 index 0000000..38c1ab6 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crude-oil_64.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-concrete.png new file mode 100644 index 0000000..a7e5139 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-hazard-concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-hazard-concrete.png new file mode 100644 index 0000000..10bd670 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-hazard-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-recipes/concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/concrete.png new file mode 100644 index 0000000..18fba97 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-concrete.png new file mode 100644 index 0000000..2a2a508 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-hazard-concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-hazard-concrete.png new file mode 100644 index 0000000..a9d4ca9 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-hazard-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-refined-concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-refined-concrete.png new file mode 100644 index 0000000..6d33319 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-refined-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-refined-hazard-concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-refined-hazard-concrete.png new file mode 100644 index 0000000..7bc34ff Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-refined-hazard-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-stone.png b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-stone.png new file mode 100644 index 0000000..e652f8e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone-stone.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone.png b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone.png new file mode 100644 index 0000000..a78584d Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/crushed-stone.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-recipes/hazard-concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/hazard-concrete.png new file mode 100644 index 0000000..43e7669 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/hazard-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-recipes/refined-concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/refined-concrete.png new file mode 100644 index 0000000..532f3d8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/refined-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-recipes/refined-hazard-concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/refined-hazard-concrete.png new file mode 100644 index 0000000..a7f2897 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/refined-hazard-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-recipes/stone.png b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/stone.png new file mode 100644 index 0000000..008fbab Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-recipes/stone.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-refined-concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-refined-concrete.png new file mode 100644 index 0000000..7d30e18 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-refined-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-refined-hazard-concrete.png b/Bio_Industries_2/graphics/icons/crushed-stone-refined-hazard-concrete.png new file mode 100644 index 0000000..1c0eb17 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-refined-hazard-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone-stone.png b/Bio_Industries_2/graphics/icons/crushed-stone-stone.png new file mode 100644 index 0000000..fe7fedd Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone-stone.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone.png b/Bio_Industries_2/graphics/icons/crushed-stone.png new file mode 100644 index 0000000..81f548c Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone.png differ diff --git a/Bio_Industries_2/graphics/icons/crushed-stone_64.png b/Bio_Industries_2/graphics/icons/crushed-stone_64.png new file mode 100644 index 0000000..81f548c Binary files /dev/null and b/Bio_Industries_2/graphics/icons/crushed-stone_64.png differ diff --git a/Bio_Industries_2/graphics/icons/curved-rail-concrete.png b/Bio_Industries_2/graphics/icons/curved-rail-concrete.png new file mode 100644 index 0000000..ba99c60 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/curved-rail-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/curved-rail-wood.png b/Bio_Industries_2/graphics/icons/curved-rail-wood.png new file mode 100644 index 0000000..a029412 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/curved-rail-wood.png differ diff --git a/Bio_Industries_2/graphics/icons/electric-to-rail.png b/Bio_Industries_2/graphics/icons/electric-to-rail.png new file mode 100644 index 0000000..8f71fff Binary files /dev/null and b/Bio_Industries_2/graphics/icons/electric-to-rail.png differ diff --git a/Bio_Industries_2/graphics/icons/empty-electric-pole.png b/Bio_Industries_2/graphics/icons/empty-electric-pole.png new file mode 100644 index 0000000..29f8b89 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/empty-electric-pole.png differ diff --git a/Bio_Industries_2/graphics/icons/empty.png b/Bio_Industries_2/graphics/icons/empty.png new file mode 100644 index 0000000..5be0385 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/empty.png differ diff --git a/Bio_Industries_2/graphics/icons/enhanced_dart_icon.png b/Bio_Industries_2/graphics/icons/enhanced_dart_icon.png new file mode 100644 index 0000000..e240098 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/enhanced_dart_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/fertilizer.png b/Bio_Industries_2/graphics/icons/fertilizer.png new file mode 100644 index 0000000..063f9b1 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/fertilizer.png differ diff --git a/Bio_Industries_2/graphics/icons/fertilizer_64.png b/Bio_Industries_2/graphics/icons/fertilizer_64.png new file mode 100644 index 0000000..13e0a53 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/fertilizer_64.png differ diff --git a/Bio_Industries_2/graphics/icons/fertilizer_sodium_hydroxide.png b/Bio_Industries_2/graphics/icons/fertilizer_sodium_hydroxide.png new file mode 100644 index 0000000..08c978a Binary files /dev/null and b/Bio_Industries_2/graphics/icons/fertilizer_sodium_hydroxide.png differ diff --git a/Bio_Industries_2/graphics/icons/fertilizer_solid_sodium_hydroxide.png b/Bio_Industries_2/graphics/icons/fertilizer_solid_sodium_hydroxide.png new file mode 100644 index 0000000..c54ae5e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/fertilizer_solid_sodium_hydroxide.png differ diff --git a/Bio_Industries_2/graphics/icons/fertilizer_sulfur.png b/Bio_Industries_2/graphics/icons/fertilizer_sulfur.png new file mode 100644 index 0000000..14ab8fa Binary files /dev/null and b/Bio_Industries_2/graphics/icons/fertilizer_sulfur.png differ diff --git a/Bio_Industries_2/graphics/icons/fluid_advanced_fertilizer_64.png b/Bio_Industries_2/graphics/icons/fluid_advanced_fertilizer_64.png new file mode 100644 index 0000000..76ff8e4 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/fluid_advanced_fertilizer_64.png differ diff --git a/Bio_Industries_2/graphics/icons/fluid_advanced_fertilizer_recipe_64.png b/Bio_Industries_2/graphics/icons/fluid_advanced_fertilizer_recipe_64.png new file mode 100644 index 0000000..2237f21 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/fluid_advanced_fertilizer_recipe_64.png differ diff --git a/Bio_Industries_2/graphics/icons/fluid_fertilizer_64.png b/Bio_Industries_2/graphics/icons/fluid_fertilizer_64.png new file mode 100644 index 0000000..c7f6bbf Binary files /dev/null and b/Bio_Industries_2/graphics/icons/fluid_fertilizer_64.png differ diff --git a/Bio_Industries_2/graphics/icons/fluid_fertilizer_recipe_64.png b/Bio_Industries_2/graphics/icons/fluid_fertilizer_recipe_64.png new file mode 100644 index 0000000..995dee8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/fluid_fertilizer_recipe_64.png differ diff --git a/Bio_Industries_2/graphics/icons/giga_wooden_chest_64.png b/Bio_Industries_2/graphics/icons/giga_wooden_chest_64.png new file mode 100644 index 0000000..31c7c09 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/giga_wooden_chest_64.png differ diff --git a/Bio_Industries_2/graphics/icons/giga_wooden_chest_icon.png b/Bio_Industries_2/graphics/icons/giga_wooden_chest_icon.png new file mode 100644 index 0000000..021b9dc Binary files /dev/null and b/Bio_Industries_2/graphics/icons/giga_wooden_chest_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/heavy-oil_64.png b/Bio_Industries_2/graphics/icons/heavy-oil_64.png new file mode 100644 index 0000000..c3460a3 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/heavy-oil_64.png differ diff --git a/Bio_Industries_2/graphics/icons/huge-wooden-pole.png b/Bio_Industries_2/graphics/icons/huge-wooden-pole.png new file mode 100644 index 0000000..4ccc0d8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/huge-wooden-pole.png differ diff --git a/Bio_Industries_2/graphics/icons/huge-wooden-pole_64.png b/Bio_Industries_2/graphics/icons/huge-wooden-pole_64.png new file mode 100644 index 0000000..77b7461 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/huge-wooden-pole_64.png differ diff --git a/Bio_Industries_2/graphics/icons/huge_wooden_chest_64.png b/Bio_Industries_2/graphics/icons/huge_wooden_chest_64.png new file mode 100644 index 0000000..bd94d8a Binary files /dev/null and b/Bio_Industries_2/graphics/icons/huge_wooden_chest_64.png differ diff --git a/Bio_Industries_2/graphics/icons/huge_wooden_chest_icon.png b/Bio_Industries_2/graphics/icons/huge_wooden_chest_icon.png new file mode 100644 index 0000000..8073d3f Binary files /dev/null and b/Bio_Industries_2/graphics/icons/huge_wooden_chest_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/large_wooden_chest_64.png b/Bio_Industries_2/graphics/icons/large_wooden_chest_64.png new file mode 100644 index 0000000..294e993 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/large_wooden_chest_64.png differ diff --git a/Bio_Industries_2/graphics/icons/large_wooden_chest_icon.png b/Bio_Industries_2/graphics/icons/large_wooden_chest_icon.png new file mode 100644 index 0000000..b3ce101 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/large_wooden_chest_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/liquid-air.png b/Bio_Industries_2/graphics/icons/liquid-air.png new file mode 100644 index 0000000..f7eeedb Binary files /dev/null and b/Bio_Industries_2/graphics/icons/liquid-air.png differ diff --git a/Bio_Industries_2/graphics/icons/liquid-air_alt.png b/Bio_Industries_2/graphics/icons/liquid-air_alt.png new file mode 100644 index 0000000..4a9f602 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/liquid-air_alt.png differ diff --git a/Bio_Industries_2/graphics/icons/liquid-nitrogen.png b/Bio_Industries_2/graphics/icons/liquid-nitrogen.png new file mode 100644 index 0000000..bdf24e6 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/liquid-nitrogen.png differ diff --git a/Bio_Industries_2/graphics/icons/lithia-water.png b/Bio_Industries_2/graphics/icons/lithia-water.png new file mode 100644 index 0000000..4cf2eb2 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/lithia-water.png differ diff --git a/Bio_Industries_2/graphics/icons/long_handed_inserter_disassemble.png b/Bio_Industries_2/graphics/icons/long_handed_inserter_disassemble.png new file mode 100644 index 0000000..e5fe3d8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/long_handed_inserter_disassemble.png differ diff --git a/Bio_Industries_2/graphics/icons/lubricant_64.png b/Bio_Industries_2/graphics/icons/lubricant_64.png new file mode 100644 index 0000000..2bc3dee Binary files /dev/null and b/Bio_Industries_2/graphics/icons/lubricant_64.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Ash_1.png b/Bio_Industries_2/graphics/icons/mips/Ash_1.png new file mode 100644 index 0000000..c895dfc Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Ash_1.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Ash_2.png b/Bio_Industries_2/graphics/icons/mips/Ash_2.png new file mode 100644 index 0000000..90d4fc5 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Ash_2.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Ash_3.png b/Bio_Industries_2/graphics/icons/mips/Ash_3.png new file mode 100644 index 0000000..deb2c5b Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Ash_3.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Ash_4.png b/Bio_Industries_2/graphics/icons/mips/Ash_4.png new file mode 100644 index 0000000..6789685 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Ash_4.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Charcoal_1.png b/Bio_Industries_2/graphics/icons/mips/Charcoal_1.png new file mode 100644 index 0000000..0c816a4 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Charcoal_1.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Charcoal_2.png b/Bio_Industries_2/graphics/icons/mips/Charcoal_2.png new file mode 100644 index 0000000..be1e391 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Charcoal_2.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Charcoal_3.png b/Bio_Industries_2/graphics/icons/mips/Charcoal_3.png new file mode 100644 index 0000000..3ac772c Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Charcoal_3.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Charcoal_4.png b/Bio_Industries_2/graphics/icons/mips/Charcoal_4.png new file mode 100644 index 0000000..67ef3e5 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Charcoal_4.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Crush_1.png b/Bio_Industries_2/graphics/icons/mips/Crush_1.png new file mode 100644 index 0000000..2018d64 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Crush_1.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Crush_2.png b/Bio_Industries_2/graphics/icons/mips/Crush_2.png new file mode 100644 index 0000000..d381596 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Crush_2.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Crush_3.png b/Bio_Industries_2/graphics/icons/mips/Crush_3.png new file mode 100644 index 0000000..4414cc7 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Crush_3.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Crush_4.png b/Bio_Industries_2/graphics/icons/mips/Crush_4.png new file mode 100644 index 0000000..37c11b7 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Crush_4.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Resin_1.png b/Bio_Industries_2/graphics/icons/mips/Resin_1.png new file mode 100644 index 0000000..721d1ac Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Resin_1.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Resin_2.png b/Bio_Industries_2/graphics/icons/mips/Resin_2.png new file mode 100644 index 0000000..6bedd75 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Resin_2.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Resin_3.png b/Bio_Industries_2/graphics/icons/mips/Resin_3.png new file mode 100644 index 0000000..c39b4f4 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Resin_3.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Resin_4.png b/Bio_Industries_2/graphics/icons/mips/Resin_4.png new file mode 100644 index 0000000..c76b6cd Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Resin_4.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Seedling_1.png b/Bio_Industries_2/graphics/icons/mips/Seedling_1.png new file mode 100644 index 0000000..38440fa Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Seedling_1.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Seedling_2.png b/Bio_Industries_2/graphics/icons/mips/Seedling_2.png new file mode 100644 index 0000000..4b5ff3b Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Seedling_2.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Seedling_3.png b/Bio_Industries_2/graphics/icons/mips/Seedling_3.png new file mode 100644 index 0000000..4d76d61 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Seedling_3.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Seedling_4.png b/Bio_Industries_2/graphics/icons/mips/Seedling_4.png new file mode 100644 index 0000000..600515c Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Seedling_4.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Seedling_5.png b/Bio_Industries_2/graphics/icons/mips/Seedling_5.png new file mode 100644 index 0000000..0cdf499 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Seedling_5.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Seedling_6.png b/Bio_Industries_2/graphics/icons/mips/Seedling_6.png new file mode 100644 index 0000000..ce039f6 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Seedling_6.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Seedling_7.png b/Bio_Industries_2/graphics/icons/mips/Seedling_7.png new file mode 100644 index 0000000..56becb2 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Seedling_7.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Seedling_8.png b/Bio_Industries_2/graphics/icons/mips/Seedling_8.png new file mode 100644 index 0000000..72a93a4 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Seedling_8.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Seedling_9.png b/Bio_Industries_2/graphics/icons/mips/Seedling_9.png new file mode 100644 index 0000000..3141480 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Seedling_9.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Woodpulp_1.png b/Bio_Industries_2/graphics/icons/mips/Woodpulp_1.png new file mode 100644 index 0000000..b4fa21d Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Woodpulp_1.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Woodpulp_2.png b/Bio_Industries_2/graphics/icons/mips/Woodpulp_2.png new file mode 100644 index 0000000..a32890a Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Woodpulp_2.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Woodpulp_3.png b/Bio_Industries_2/graphics/icons/mips/Woodpulp_3.png new file mode 100644 index 0000000..435c6cf Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Woodpulp_3.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/Woodpulp_4.png b/Bio_Industries_2/graphics/icons/mips/Woodpulp_4.png new file mode 100644 index 0000000..fae84df Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/Woodpulp_4.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/bio_seed_1.png b/Bio_Industries_2/graphics/icons/mips/bio_seed_1.png new file mode 100644 index 0000000..9ed5eba Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/bio_seed_1.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/bio_seed_2.png b/Bio_Industries_2/graphics/icons/mips/bio_seed_2.png new file mode 100644 index 0000000..79e5688 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/bio_seed_2.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/bio_seed_3.png b/Bio_Industries_2/graphics/icons/mips/bio_seed_3.png new file mode 100644 index 0000000..4be7e79 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/bio_seed_3.png differ diff --git a/Bio_Industries_2/graphics/icons/mips/bio_seed_4.png b/Bio_Industries_2/graphics/icons/mips/bio_seed_4.png new file mode 100644 index 0000000..c8f74c8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/mips/bio_seed_4.png differ diff --git a/Bio_Industries_2/graphics/icons/new/battery.png b/Bio_Industries_2/graphics/icons/new/battery.png new file mode 100644 index 0000000..716b2fa Binary files /dev/null and b/Bio_Industries_2/graphics/icons/new/battery.png differ diff --git a/Bio_Industries_2/graphics/icons/new/battery.xcf b/Bio_Industries_2/graphics/icons/new/battery.xcf new file mode 100644 index 0000000..245a960 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/new/battery.xcf differ diff --git a/Bio_Industries_2/graphics/icons/new/biomass.png b/Bio_Industries_2/graphics/icons/new/biomass.png new file mode 100644 index 0000000..f7dd399 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/new/biomass.png differ diff --git a/Bio_Industries_2/graphics/icons/new/fluid_fertilizer.xcf b/Bio_Industries_2/graphics/icons/new/fluid_fertilizer.xcf new file mode 100644 index 0000000..931260b Binary files /dev/null and b/Bio_Industries_2/graphics/icons/new/fluid_fertilizer.xcf differ diff --git a/Bio_Industries_2/graphics/icons/new/fluid_fertilizer_recipe.xcf b/Bio_Industries_2/graphics/icons/new/fluid_fertilizer_recipe.xcf new file mode 100644 index 0000000..d9ad06c Binary files /dev/null and b/Bio_Industries_2/graphics/icons/new/fluid_fertilizer_recipe.xcf differ diff --git a/Bio_Industries_2/graphics/icons/nitrogen.png b/Bio_Industries_2/graphics/icons/nitrogen.png new file mode 100644 index 0000000..41bbaef Binary files /dev/null and b/Bio_Industries_2/graphics/icons/nitrogen.png differ diff --git a/Bio_Industries_2/graphics/icons/no-entry-sign.png b/Bio_Industries_2/graphics/icons/no-entry-sign.png new file mode 100644 index 0000000..ec0f775 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/no-entry-sign.png differ diff --git a/Bio_Industries_2/graphics/icons/pellet-coke.png b/Bio_Industries_2/graphics/icons/pellet-coke.png new file mode 100644 index 0000000..adf2892 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/pellet-coke.png differ diff --git a/Bio_Industries_2/graphics/icons/pellet_coke_1.png b/Bio_Industries_2/graphics/icons/pellet_coke_1.png new file mode 100644 index 0000000..a2ee820 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/pellet_coke_1.png differ diff --git a/Bio_Industries_2/graphics/icons/pellet_coke_a.png b/Bio_Industries_2/graphics/icons/pellet_coke_a.png new file mode 100644 index 0000000..8190064 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/pellet_coke_a.png differ diff --git a/Bio_Industries_2/graphics/icons/pellet_coke_b.png b/Bio_Industries_2/graphics/icons/pellet_coke_b.png new file mode 100644 index 0000000..dc76058 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/pellet_coke_b.png differ diff --git a/Bio_Industries_2/graphics/icons/pellet_coke_c.png b/Bio_Industries_2/graphics/icons/pellet_coke_c.png new file mode 100644 index 0000000..4c51595 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/pellet_coke_c.png differ diff --git a/Bio_Industries_2/graphics/icons/pellet_coke_coal.png b/Bio_Industries_2/graphics/icons/pellet_coke_coal.png new file mode 100644 index 0000000..ff51630 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/pellet_coke_coal.png differ diff --git a/Bio_Industries_2/graphics/icons/pellet_coke_solid.png b/Bio_Industries_2/graphics/icons/pellet_coke_solid.png new file mode 100644 index 0000000..a5012f1 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/pellet_coke_solid.png differ diff --git a/Bio_Industries_2/graphics/icons/petroleum-gas_64.png b/Bio_Industries_2/graphics/icons/petroleum-gas_64.png new file mode 100644 index 0000000..c9fc0df Binary files /dev/null and b/Bio_Industries_2/graphics/icons/petroleum-gas_64.png differ diff --git a/Bio_Industries_2/graphics/icons/phosphate.png b/Bio_Industries_2/graphics/icons/phosphate.png new file mode 100644 index 0000000..6acfcd7 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/phosphate.png differ diff --git a/Bio_Industries_2/graphics/icons/pipe-to-ground-wood.png b/Bio_Industries_2/graphics/icons/pipe-to-ground-wood.png new file mode 100644 index 0000000..8b814f2 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/pipe-to-ground-wood.png differ diff --git a/Bio_Industries_2/graphics/icons/plastic_bar_1.png b/Bio_Industries_2/graphics/icons/plastic_bar_1.png new file mode 100644 index 0000000..45ef7f4 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/plastic_bar_1.png differ diff --git a/Bio_Industries_2/graphics/icons/plastic_bar_2.png b/Bio_Industries_2/graphics/icons/plastic_bar_2.png new file mode 100644 index 0000000..a85368e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/plastic_bar_2.png differ diff --git a/Bio_Industries_2/graphics/icons/poison_dart_icon.png b/Bio_Industries_2/graphics/icons/poison_dart_icon.png new file mode 100644 index 0000000..434f9b8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/poison_dart_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/potassium.png b/Bio_Industries_2/graphics/icons/potassium.png new file mode 100644 index 0000000..fd2b742 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/potassium.png differ diff --git a/Bio_Industries_2/graphics/icons/py_Seedling2.png b/Bio_Industries_2/graphics/icons/py_Seedling2.png new file mode 100644 index 0000000..69a442a Binary files /dev/null and b/Bio_Industries_2/graphics/icons/py_Seedling2.png differ diff --git a/Bio_Industries_2/graphics/icons/py_ash_raw-wood.png b/Bio_Industries_2/graphics/icons/py_ash_raw-wood.png new file mode 100644 index 0000000..de47b1d Binary files /dev/null and b/Bio_Industries_2/graphics/icons/py_ash_raw-wood.png differ diff --git a/Bio_Industries_2/graphics/icons/py_ash_woodpulp.png b/Bio_Industries_2/graphics/icons/py_ash_woodpulp.png new file mode 100644 index 0000000..ab218cf Binary files /dev/null and b/Bio_Industries_2/graphics/icons/py_ash_woodpulp.png differ diff --git a/Bio_Industries_2/graphics/icons/py_bi_stone_brick.png b/Bio_Industries_2/graphics/icons/py_bi_stone_brick.png new file mode 100644 index 0000000..19a33cf Binary files /dev/null and b/Bio_Industries_2/graphics/icons/py_bi_stone_brick.png differ diff --git a/Bio_Industries_2/graphics/icons/py_bio_seed2.png b/Bio_Industries_2/graphics/icons/py_bio_seed2.png new file mode 100644 index 0000000..f51e716 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/py_bio_seed2.png differ diff --git a/Bio_Industries_2/graphics/icons/py_bio_sulfur.png b/Bio_Industries_2/graphics/icons/py_bio_sulfur.png new file mode 100644 index 0000000..79fa28a Binary files /dev/null and b/Bio_Industries_2/graphics/icons/py_bio_sulfur.png differ diff --git a/Bio_Industries_2/graphics/icons/py_raw-wood-mk2.png b/Bio_Industries_2/graphics/icons/py_raw-wood-mk2.png new file mode 100644 index 0000000..56cf51f Binary files /dev/null and b/Bio_Industries_2/graphics/icons/py_raw-wood-mk2.png differ diff --git a/Bio_Industries_2/graphics/icons/rail-concrete-power.png b/Bio_Industries_2/graphics/icons/rail-concrete-power.png new file mode 100644 index 0000000..f765418 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/rail-concrete-power.png differ diff --git a/Bio_Industries_2/graphics/icons/rail-concrete.png b/Bio_Industries_2/graphics/icons/rail-concrete.png new file mode 100644 index 0000000..b5ea793 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/rail-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/rail-wood-bridge.png b/Bio_Industries_2/graphics/icons/rail-wood-bridge.png new file mode 100644 index 0000000..40c57aa Binary files /dev/null and b/Bio_Industries_2/graphics/icons/rail-wood-bridge.png differ diff --git a/Bio_Industries_2/graphics/icons/rail-wood-bridge_64.png b/Bio_Industries_2/graphics/icons/rail-wood-bridge_64.png new file mode 100644 index 0000000..4b6fca4 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/rail-wood-bridge_64.png differ diff --git a/Bio_Industries_2/graphics/icons/rail-wood-to-concrete.png b/Bio_Industries_2/graphics/icons/rail-wood-to-concrete.png new file mode 100644 index 0000000..a472277 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/rail-wood-to-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/rail-wood.png b/Bio_Industries_2/graphics/icons/rail-wood.png new file mode 100644 index 0000000..4c528ab Binary files /dev/null and b/Bio_Industries_2/graphics/icons/rail-wood.png differ diff --git a/Bio_Industries_2/graphics/icons/raw-wood-mk1.png b/Bio_Industries_2/graphics/icons/raw-wood-mk1.png new file mode 100644 index 0000000..6f5138b Binary files /dev/null and b/Bio_Industries_2/graphics/icons/raw-wood-mk1.png differ diff --git a/Bio_Industries_2/graphics/icons/raw-wood-mk2.png b/Bio_Industries_2/graphics/icons/raw-wood-mk2.png new file mode 100644 index 0000000..5b58026 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/raw-wood-mk2.png differ diff --git a/Bio_Industries_2/graphics/icons/raw-wood-mk3.png b/Bio_Industries_2/graphics/icons/raw-wood-mk3.png new file mode 100644 index 0000000..7e81927 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/raw-wood-mk3.png differ diff --git a/Bio_Industries_2/graphics/icons/raw-wood-mk4.png b/Bio_Industries_2/graphics/icons/raw-wood-mk4.png new file mode 100644 index 0000000..dc67c79 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/raw-wood-mk4.png differ diff --git a/Bio_Industries_2/graphics/icons/recycle_64.png b/Bio_Industries_2/graphics/icons/recycle_64.png new file mode 100644 index 0000000..f776e36 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/recycle_64.png differ diff --git a/Bio_Industries_2/graphics/icons/resin_64.png b/Bio_Industries_2/graphics/icons/resin_64.png new file mode 100644 index 0000000..e4bc205 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/resin_64.png differ diff --git a/Bio_Industries_2/graphics/icons/sand-Krastorio.png b/Bio_Industries_2/graphics/icons/sand-Krastorio.png new file mode 100644 index 0000000..dd0124d Binary files /dev/null and b/Bio_Industries_2/graphics/icons/sand-Krastorio.png differ diff --git a/Bio_Industries_2/graphics/icons/sand-aai.png b/Bio_Industries_2/graphics/icons/sand-aai.png new file mode 100644 index 0000000..cd6c459 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/sand-aai.png differ diff --git a/Bio_Industries_2/graphics/icons/solar-mat.png b/Bio_Industries_2/graphics/icons/solar-mat.png new file mode 100644 index 0000000..4275398 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/solar-mat.png differ diff --git a/Bio_Industries_2/graphics/icons/solid-fuel_64.png b/Bio_Industries_2/graphics/icons/solid-fuel_64.png new file mode 100644 index 0000000..477e01a Binary files /dev/null and b/Bio_Industries_2/graphics/icons/solid-fuel_64.png differ diff --git a/Bio_Industries_2/graphics/icons/standard_dart_icon.png b/Bio_Industries_2/graphics/icons/standard_dart_icon.png new file mode 100644 index 0000000..528123e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/standard_dart_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/steam_64.png b/Bio_Industries_2/graphics/icons/steam_64.png new file mode 100644 index 0000000..d9d0b22 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/steam_64.png differ diff --git a/Bio_Industries_2/graphics/icons/steel-furnace_disassemble.png b/Bio_Industries_2/graphics/icons/steel-furnace_disassemble.png new file mode 100644 index 0000000..2aa0572 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/steel-furnace_disassemble.png differ diff --git a/Bio_Industries_2/graphics/icons/stone-brick_64.png b/Bio_Industries_2/graphics/icons/stone-brick_64.png new file mode 100644 index 0000000..e7336e8 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/stone-brick_64.png differ diff --git a/Bio_Industries_2/graphics/icons/stone_crusher.png b/Bio_Industries_2/graphics/icons/stone_crusher.png new file mode 100644 index 0000000..6cd2519 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/stone_crusher.png differ diff --git a/Bio_Industries_2/graphics/icons/stone_crusher_64.png b/Bio_Industries_2/graphics/icons/stone_crusher_64.png new file mode 100644 index 0000000..e7437fc Binary files /dev/null and b/Bio_Industries_2/graphics/icons/stone_crusher_64.png differ diff --git a/Bio_Industries_2/graphics/icons/stone_furnace_disassemble.png b/Bio_Industries_2/graphics/icons/stone_furnace_disassemble.png new file mode 100644 index 0000000..d60f7e1 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/stone_furnace_disassemble.png differ diff --git a/Bio_Industries_2/graphics/icons/straight-rail-concrete.png b/Bio_Industries_2/graphics/icons/straight-rail-concrete.png new file mode 100644 index 0000000..b5ea793 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/straight-rail-concrete.png differ diff --git a/Bio_Industries_2/graphics/icons/straight-rail-wood.png b/Bio_Industries_2/graphics/icons/straight-rail-wood.png new file mode 100644 index 0000000..83f6739 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/straight-rail-wood.png differ diff --git a/Bio_Industries_2/graphics/icons/sulfur_64.png b/Bio_Industries_2/graphics/icons/sulfur_64.png new file mode 100644 index 0000000..8926732 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/sulfur_64.png differ diff --git a/Bio_Industries_2/graphics/icons/water-lithia.png b/Bio_Industries_2/graphics/icons/water-lithia.png new file mode 100644 index 0000000..9690aca Binary files /dev/null and b/Bio_Industries_2/graphics/icons/water-lithia.png differ diff --git a/Bio_Industries_2/graphics/icons/water-saline.png b/Bio_Industries_2/graphics/icons/water-saline.png new file mode 100644 index 0000000..f375d16 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/water-saline.png differ diff --git a/Bio_Industries_2/graphics/icons/water_64.png b/Bio_Industries_2/graphics/icons/water_64.png new file mode 100644 index 0000000..9db28c0 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/water_64.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/basic_dart_icon.png b/Bio_Industries_2/graphics/icons/weapon/basic_dart_icon.png new file mode 100644 index 0000000..7d6cafc Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/basic_dart_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/bi_dart_rifle_icon.png b/Bio_Industries_2/graphics/icons/weapon/bi_dart_rifle_icon.png new file mode 100644 index 0000000..e1c992c Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/bi_dart_rifle_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/bio_cannon_ammo-shadow.png b/Bio_Industries_2/graphics/icons/weapon/bio_cannon_ammo-shadow.png new file mode 100644 index 0000000..fd5fac4 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/bio_cannon_ammo-shadow.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/bio_cannon_basic_ammo_icon.png b/Bio_Industries_2/graphics/icons/weapon/bio_cannon_basic_ammo_icon.png new file mode 100644 index 0000000..f6f08e6 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/bio_cannon_basic_ammo_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/bio_cannon_poison_ammo_icon.png b/Bio_Industries_2/graphics/icons/weapon/bio_cannon_poison_ammo_icon.png new file mode 100644 index 0000000..a9109aa Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/bio_cannon_poison_ammo_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/bio_cannon_proto_ammo_icon.png b/Bio_Industries_2/graphics/icons/weapon/bio_cannon_proto_ammo_icon.png new file mode 100644 index 0000000..ad479f9 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/bio_cannon_proto_ammo_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/enhanced_dart_icon.png b/Bio_Industries_2/graphics/icons/weapon/enhanced_dart_icon.png new file mode 100644 index 0000000..eeae36c Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/enhanced_dart_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/poison_dart_icon.png b/Bio_Industries_2/graphics/icons/weapon/poison_dart_icon.png new file mode 100644 index 0000000..346db3b Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/poison_dart_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/seed_bomb_icon_a.png b/Bio_Industries_2/graphics/icons/weapon/seed_bomb_icon_a.png new file mode 100644 index 0000000..ba41b48 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/seed_bomb_icon_a.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/seed_bomb_icon_b.png b/Bio_Industries_2/graphics/icons/weapon/seed_bomb_icon_b.png new file mode 100644 index 0000000..b87e44a Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/seed_bomb_icon_b.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/seed_bomb_icon_s.png b/Bio_Industries_2/graphics/icons/weapon/seed_bomb_icon_s.png new file mode 100644 index 0000000..49675a0 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/seed_bomb_icon_s.png differ diff --git a/Bio_Industries_2/graphics/icons/weapon/standard_dart_icon.png b/Bio_Industries_2/graphics/icons/weapon/standard_dart_icon.png new file mode 100644 index 0000000..68f785e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/weapon/standard_dart_icon.png differ diff --git a/Bio_Industries_2/graphics/icons/wood.png b/Bio_Industries_2/graphics/icons/wood.png new file mode 100644 index 0000000..4793240 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/wood.png differ diff --git a/Bio_Industries_2/graphics/icons/wood_64.png b/Bio_Industries_2/graphics/icons/wood_64.png new file mode 100644 index 0000000..d8a355e Binary files /dev/null and b/Bio_Industries_2/graphics/icons/wood_64.png differ diff --git a/Bio_Industries_2/graphics/icons/wood_from_pulp.png b/Bio_Industries_2/graphics/icons/wood_from_pulp.png new file mode 100644 index 0000000..ad505b3 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/wood_from_pulp.png differ diff --git a/Bio_Industries_2/graphics/icons/wood_pipe.png b/Bio_Industries_2/graphics/icons/wood_pipe.png new file mode 100644 index 0000000..84d2d63 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/wood_pipe.png differ diff --git a/Bio_Industries_2/graphics/icons/wood_pipe_alt.png b/Bio_Industries_2/graphics/icons/wood_pipe_alt.png new file mode 100644 index 0000000..6d5fd98 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/wood_pipe_alt.png differ diff --git a/Bio_Industries_2/graphics/icons/wooden-fence.png b/Bio_Industries_2/graphics/icons/wooden-fence.png new file mode 100644 index 0000000..2d20b14 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/wooden-fence.png differ diff --git a/Bio_Industries_2/graphics/icons/woodpulp_64.png b/Bio_Industries_2/graphics/icons/woodpulp_64.png new file mode 100644 index 0000000..262bbc3 Binary files /dev/null and b/Bio_Industries_2/graphics/icons/woodpulp_64.png differ diff --git a/Bio_Industries_2/graphics/icons/woodrail_64.png b/Bio_Industries_2/graphics/icons/woodrail_64.png new file mode 100644 index 0000000..96d50de Binary files /dev/null and b/Bio_Industries_2/graphics/icons/woodrail_64.png differ diff --git a/Bio_Industries_2/graphics/renamed_files.txt b/Bio_Industries_2/graphics/renamed_files.txt new file mode 100644 index 0000000..70ef7ca --- /dev/null +++ b/Bio_Industries_2/graphics/renamed_files.txt @@ -0,0 +1,9 @@ +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 + diff --git a/Bio_Industries_2/graphics/technology/Basic_Petroleum_Gas_Processing.png b/Bio_Industries_2/graphics/technology/Basic_Petroleum_Gas_Processing.png new file mode 100644 index 0000000..dd44fe7 Binary files /dev/null and b/Bio_Industries_2/graphics/technology/Basic_Petroleum_Gas_Processing.png differ diff --git a/Bio_Industries_2/graphics/technology/BioIndustries_128.png b/Bio_Industries_2/graphics/technology/BioIndustries_128.png new file mode 100644 index 0000000..9ddfadc Binary files /dev/null and b/Bio_Industries_2/graphics/technology/BioIndustries_128.png differ diff --git a/Bio_Industries_2/graphics/technology/BioIndustries_64.png b/Bio_Industries_2/graphics/technology/BioIndustries_64.png new file mode 100644 index 0000000..50350a1 Binary files /dev/null and b/Bio_Industries_2/graphics/technology/BioIndustries_64.png differ diff --git a/Bio_Industries_2/graphics/technology/Bio_Farm_Tech_128.png b/Bio_Industries_2/graphics/technology/Bio_Farm_Tech_128.png new file mode 100644 index 0000000..1b3ca69 Binary files /dev/null and b/Bio_Industries_2/graphics/technology/Bio_Farm_Tech_128.png differ diff --git a/Bio_Industries_2/graphics/technology/Biomass_128.png b/Bio_Industries_2/graphics/technology/Biomass_128.png new file mode 100644 index 0000000..e78f038 Binary files /dev/null and b/Bio_Industries_2/graphics/technology/Biomass_128.png differ diff --git a/Bio_Industries_2/graphics/technology/Cellulose_128.png b/Bio_Industries_2/graphics/technology/Cellulose_128.png new file mode 100644 index 0000000..3ca6961 Binary files /dev/null and b/Bio_Industries_2/graphics/technology/Cellulose_128.png differ diff --git a/Bio_Industries_2/graphics/technology/Coal_128.png b/Bio_Industries_2/graphics/technology/Coal_128.png new file mode 100644 index 0000000..6f1fc13 Binary files /dev/null and b/Bio_Industries_2/graphics/technology/Coal_128.png differ diff --git a/Bio_Industries_2/graphics/technology/Fertilizer_128.png b/Bio_Industries_2/graphics/technology/Fertilizer_128.png new file mode 100644 index 0000000..4ee6965 Binary files /dev/null and b/Bio_Industries_2/graphics/technology/Fertilizer_128.png differ diff --git a/Bio_Industries_2/graphics/technology/bi-tech-bio_cannon.png b/Bio_Industries_2/graphics/technology/bi-tech-bio_cannon.png new file mode 100644 index 0000000..71c393d Binary files /dev/null and b/Bio_Industries_2/graphics/technology/bi-tech-bio_cannon.png differ diff --git a/Bio_Industries_2/graphics/wood_gasification/source.psd b/Bio_Industries_2/graphics/wood_gasification/source.psd new file mode 100644 index 0000000..8620945 Binary files /dev/null and b/Bio_Industries_2/graphics/wood_gasification/source.psd differ diff --git a/Bio_Industries_2/graphics/wood_gasification/technology.psd b/Bio_Industries_2/graphics/wood_gasification/technology.psd new file mode 100644 index 0000000..41d4aac Binary files /dev/null and b/Bio_Industries_2/graphics/wood_gasification/technology.psd differ diff --git a/Bio_Industries_2/graphics/wood_gasification/thumbnail.psd b/Bio_Industries_2/graphics/wood_gasification/thumbnail.psd new file mode 100644 index 0000000..5a0afe9 Binary files /dev/null and b/Bio_Industries_2/graphics/wood_gasification/thumbnail.psd differ diff --git a/Bio_Industries_2/info.json b/Bio_Industries_2/info.json new file mode 100644 index 0000000..00574b8 --- /dev/null +++ b/Bio_Industries_2/info.json @@ -0,0 +1,21 @@ +{ + "name": "Bio_Industries_2", + "version": "2.0.0", + "factorio_version": "2.0", + "title": "Bio Industries", + "author": "TheSAguy - Had a few Ideas, Pi-C (Programming Genius), Snouz (Graphics Wizard)", + "contact": "vvwmisc@hotmail.com", + "homepage": "https://forums.factorio.com/viewtopic.php?f=93&t=17548", + "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", + "kry_stdlib >= 2.0.6", + "? alien-biomes", + "? Krastorio2", + "(?) angelspetrochem", + "(?) Transport_Drones", + "(?) Natural_Evolution_Buildings", + "(?) Natural_Evolution_Enemies", + "!space-age" + ] +} diff --git a/Bio_Industries_2/libs/bi_functions.lua b/Bio_Industries_2/libs/bi_functions.lua new file mode 100644 index 0000000..fa90165 --- /dev/null +++ b/Bio_Industries_2/libs/bi_functions.lua @@ -0,0 +1,25 @@ + +function BI_Functions.lib.allow_productivity(recipe_name) + if data.raw.recipe[recipe_name] then + for i, module in pairs(data.raw.module) do + if module.limitation and module.effect.productivity then + table.insert(module.limitation, recipe_name) + end + end + end +end + + +function BI_Functions.lib.remove_from_blueprint(check_tile) + if data.raw.tile[check_tile] then + data.raw.tile[check_tile].can_be_part_of_blueprint = false + end +end + + +function BI_Functions.lib.fuel_emissions_multiplier_update(item2update, value) + local target = data.raw.item[item2update] + if target and target.fuel_value then + target.fuel_emissions_multiplier = value + end +end diff --git a/Bio_Industries_2/libs/category-functions.lua b/Bio_Industries_2/libs/category-functions.lua new file mode 100644 index 0000000..d226f63 --- /dev/null +++ b/Bio_Industries_2/libs/category-functions.lua @@ -0,0 +1,117 @@ +local BioInd = require('common')('Bio_Industries') + +if not thxbob.lib.machine then thxbob.lib.machine = {} end + + +function thxbob.lib.machine.has_category(machine, category_in) + local hasit = false + if machine and machine.crafting_categories then + for i, category in pairs(machine.crafting_categories) do + if category == category_in then + hasit = true + end + end + end + return hasit +end + +function thxbob.lib.machine.add_category(machine, category) + if machine and data.raw["recipe-category"][category] then + if not machine.crafting_categories then + machine.crafting_categories = {category} + elseif not thxbob.lib.machine.has_category(machine, category) then + table.insert(machine.crafting_categories, category) + end + else + if not data.raw["recipe-category"][category] then + BioInd.writeDebug("Crafting category %s does not exist.", {category}) + end + end +end + +function thxbob.lib.machine.if_add_category(machine, category, category_to_add) + if machine and data.raw["recipe-category"][category] and data.raw["recipe-category"][category_to_add] then + if thxbob.lib.machine.has_category(machine, category) then + thxbob.lib.machine.add_category(machine, category_to_add) + end + else + if not data.raw["recipe-category"][category] then + BioInd.writeDebug("Crafting category %s does not exist.", {category}) + end + if not data.raw["recipe-category"][category_to_add] then + BioInd.writeDebug("Crafting category %s does not exist.", {category_to_add}) + end + end +end + +function thxbob.lib.machine.type_if_add_category(machine_type, category, category_to_add) + if data.raw["recipe-category"][category] and data.raw["recipe-category"][category_to_add] then + for i, machine in pairs(data.raw[machine_type]) do + thxbob.lib.machine.if_add_category(machine, category, category_to_add) + end + else + if not data.raw["recipe-category"][category] then + BioInd.writeDebug("Crafting category %s does not exist.", {category}) + end + if not data.raw["recipe-category"][category_to_add] then + BioInd.writeDebug("Crafting category %s does not exist.", {category_to_add}) + end + end +end + + +function thxbob.lib.machine.has_resource_category(machine, category_in) + local hasit = false + if machine and machine.resource_categories then + for i, category in pairs(machine.resource_categories) do + if category == category_in then + hasit = true + end + end + end + return hasit +end + +function thxbob.lib.machine.add_resource_category(machine, category) + if machine and data.raw["resource-category"][category] then + if not machine.resource_categories then + machine.resource_categories = {category} + elseif not thxbob.lib.machine.has_resource_category(machine, category) then + table.insert(machine.resource_categories, category) + end + else + if not data.raw["resource-category"][category] then + BioInd.writeDebug("Resource category %s does not exist.", {category}) + end + end +end + +function thxbob.lib.machine.if_add_resource_category(machine, category, category_to_add) + if machine and data.raw["resource-category"][category] and data.raw["resource-category"][category_to_add] then + if thxbob.lib.machine.has_resource_category(machine, category) then + thxbob.lib.machine.add_resource_category(machine, category_to_add) + end + else + if not data.raw["resource-category"][category] then + BioInd.writeDebug("Resource category %s does not exist.", {category}) + end + if not data.raw["resource-category"][category_to_add] then + BioInd.writeDebug("Resource category %s does not exist.", {category_to_add}) + end + end +end + +function thxbob.lib.machine.type_if_add_resource_category(machine_type, category, category_to_add) + if data.raw["resource-category"][category] and data.raw["resource-category"][category_to_add] then + for i, machine in pairs(data.raw[machine_type]) do + thxbob.lib.machine.if_add_resource_category(machine, category, category_to_add) + end + else + if not data.raw["resource-category"][category] then + BioInd.writeDebug("Resource category %s does not exist.", {category}) + end + if not data.raw["resource-category"][category_to_add] then + BioInd.writeDebug("Resource category %s does not exist.", {category_to_add}) + end + end +end diff --git a/Bio_Industries_2/libs/functions.lua b/Bio_Industries_2/libs/functions.lua new file mode 100644 index 0000000..9864627 --- /dev/null +++ b/Bio_Industries_2/libs/functions.lua @@ -0,0 +1,81 @@ +local BioInd = require('common')('Bio_Industries') + + +-- Merges table2's contents into table1. +function thxbob.lib.table_merge(table1, table2) + for index, value in pairs(table2) do + if type(value) == "table" then + if type(table1[index]) == "table" then + thxbob.lib.table_merge(table1[index], table2[index]) + else + table1[index] = util.table.deepcopy(table2[index]) + end + else + table1[index] = value + end + end +end + + +-- Converts recipe.result to recipe.results! +function thxbob.lib.result_check(object) +BioInd.show("Entered function result_check", object) + if object then + object.results = object.results or {} + + if object.result then + local item = thxbob.lib.item.basic_item({name = object.result}) +BioInd.show("item", item) + if object.result_count then + item.amount = object.result_count + object.result_count = nil + end + +BioInd.show("object.result", object.result) + thxbob.lib.item.add_new(object.results, item) +BioInd.show("object.results after add_new", object.results) + + if object.ingredients then -- It's a recipe + if not object.main_product then + if object.icon or object.subgroup or object.order or item.type ~= "item" then -- if we already have one, add the rest +BioInd.writeDebug("data.raw[%s][%s]: %s", {item.type, object.result, data.raw[item.type][object.result] or "nil"}) + if (not object.icon) and data.raw[item.type][object.result] and + data.raw[item.type][object.result].icon then + object.icon = data.raw[item.type][object.result].icon + object.icon_size = data.raw[item.type][object.result].icon_size + --~ end + -- Make sure objects also have an icons definition + elseif not object.icons and data.raw[item.type][object.result] and + data.raw[item.type][object.result].icons and + -- Don't assume that an icon already exists, + -- it could be set later on! + data.raw[item.type][object.result].icon then + object.icons = { + {icon = data.raw[item.type][object.result].icon, icon_size = 64} + } + end + if not object.subgroup and data.raw[item.type][object.result] and + data.raw[item.type][object.result].subgroup then + object.subgroup = data.raw[item.type][object.result].subgroup + end + if not object.order and data.raw[item.type][object.result] and + data.raw[item.type][object.result].order then + object.order = data.raw[item.type][object.result].order + end + else -- otherwise just use main_product as a cheap way to set them all. + object.main_product = object.result + end + end + end + object.result = nil + end + + else + BioInd.writeDebug("%s does not exist.", {object}) + end +end + + +function thxbob.lib.belt_speed_ips(ips) + return ips * 1/480 +end diff --git a/Bio_Industries_2/libs/item-functions.lua b/Bio_Industries_2/libs/item-functions.lua new file mode 100644 index 0000000..f29d722 --- /dev/null +++ b/Bio_Industries_2/libs/item-functions.lua @@ -0,0 +1,179 @@ +local BioInd = require('common')('Bio_Industries') + +if not thxbob.lib.item then thxbob.lib.item = {} end + + +function thxbob.lib.item.get_type(name) + local item_types = { + "ammo", + "armor", + "capsule", + "fluid", + "gun", + "item", + "mining-tool", + "module", + "tool", + "item-with-entity-data" + } + local item_type = nil + for i, type_name in pairs(item_types) do + if data.raw[type_name][name] then item_type = type_name end + end + return item_type +end + +function thxbob.lib.item.get_basic_type(name) + local item_type = "item" + if data.raw.fluid[name] then item_type = "fluid" end + return item_type +end + + +function thxbob.lib.item.basic_item(inputs) + local item = {} + + if inputs.name then + item.name = inputs.name + else + item.name = inputs[1] + end + + if inputs.amount then + item.amount = inputs.amount + else + if inputs[2] then + item.amount = inputs[2] + end + end + if not item.amount then + item.amount = 1 + end + + if inputs.type then + item.type = inputs.type + else + item.type = thxbob.lib.item.get_basic_type(item.name) + end + + if item.type == "item" then + if item.amount > 0 and item.amount < 1 then + item.amount = 1 + else + item.amount = math.floor(item.amount) + end + end + + return item +end + +function thxbob.lib.item.item(inputs) + local item = {} + + if inputs.name then + item.name = inputs.name + else + item.name = inputs[1] + end + + if inputs.amount then + item.amount = inputs.amount + else + if inputs[2] then + item.amount = inputs[2] + end + end + if not item.amount then + if inputs.amount_min and inputs.amount_max then + item.amount_min = inputs.amount_min + item.amount_max = inputs.amount_max + else + item.amount = 1 + end + end + if inputs.probability then item.probability = inputs.probability end + + if inputs.type then + item.type = inputs.type + else + item.type = thxbob.lib.item.get_basic_type(item.name) + end + + return item +end + + +function thxbob.lib.item.combine(item1_in, item2_in) + local item = {} + local item1 = thxbob.lib.item.item(item1_in) + local item2 = thxbob.lib.item.item(item2_in) + + item.name = item1.name + item.type = item1.type + + if item1.amount and item2.amount then + item.amount = item1.amount + item2.amount + elseif item1.amount_min and item1.amount_max and item2.amount_min and item2.amount_max then + item.amount_min = item1.amount_min + item2.amount_min + item.amount_max = item1.amount_max + item2.amount_max + else + if item1.amount_min and item1.amount_max and item2.amount then + item.amount_min = item1.amount_min + item2.amount + item.amount_max = item1.amount_max + item2.amount + elseif item1.amount and item2.amount_min and item2.amount_max then + item.amount_min = item1.amount + item2.amount_min + item.amount_max = item1.amount + item2.amount_max + end + end + + if item1.probability and item2.probability then + item.probability = (item1.probability + item2.probability) / 2 + elseif item1.probability then + item.probability = (item1.probability + 1) / 2 + elseif item2.probability then + item.probability = (item2.probability + 1) / 2 + end + + return item +end + + +function thxbob.lib.item.add(list, item_in) --increments amount if exists + local item = thxbob.lib.item.item(item_in) + local addit = true + for i, object in pairs(list) do + if object[1] == item.name or object.name == item.name then + addit = false + list[i] = thxbob.lib.item.combine(object, item) + end + end + if addit then table.insert(list, item) end +end + +function thxbob.lib.item.add_new(list, item_in) --ignores if exists + local item = thxbob.lib.item.item(item_in) + local addit = true + for i, object in pairs(list) do + if item.name == thxbob.lib.item.basic_item(object).name then addit = false end + end + if addit then + table.insert(list, item) + end +end + +function thxbob.lib.item.remove(list, item) + for i, object in ipairs(list) do + if object[1] == item or object.name == item then + table.remove(list, i) + end + end +end + +function thxbob.lib.item.set(list, item_in) + local item = thxbob.lib.item.item(item_in) + for i, object in pairs(list) do + if object[1] == item.name or object.name == item.name then + list[i] = item + end + end +end diff --git a/Bio_Industries_2/libs/recipe-functions.lua b/Bio_Industries_2/libs/recipe-functions.lua new file mode 100644 index 0000000..271e60e --- /dev/null +++ b/Bio_Industries_2/libs/recipe-functions.lua @@ -0,0 +1,404 @@ +local BioInd = require('common')('Bio_Industries') + +if not thxbob.lib.recipe then thxbob.lib.recipe = {} end + + +function thxbob.lib.recipe.replace_ingredient(recipe, old, new) + local retval = false + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(new) then + + local amount = 0 + if data.raw.recipe[recipe].ingredients and not data.raw.recipe[recipe].normal and not data.raw.recipe[recipe].expensive then + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + local item = thxbob.lib.item.basic_item(ingredient) + if item.name == old then + amount = item.amount + amount + end + end + if amount > 0 then + if thxbob.lib.item.get_type(old) == "fluid" and thxbob.lib.item.get_type(new) == "item" then + amount = math.ceil(amount / 10) + end + if thxbob.lib.item.get_type(old) == "item" and thxbob.lib.item.get_type(new) == "fluid" then + amount = amount * 10 + end + thxbob.lib.recipe.remove_ingredient(recipe, old) + thxbob.lib.recipe.add_ingredient(recipe, {new, amount}) + return true + else + return false + end + end + + --~ local retval = false + if data.raw.recipe[recipe].normal then + amount = 0 + for i, ingredient in pairs(data.raw.recipe[recipe].normal.ingredients) do + local item = thxbob.lib.item.basic_item(ingredient) + if item.name == old then + amount = item.amount + amount + end + end + if amount > 0 then + if thxbob.lib.item.get_type(old) == "fluid" and thxbob.lib.item.get_type(new) == "item" then + amount = math.ceil(amount / 10) + end + if thxbob.lib.item.get_type(old) == "item" and thxbob.lib.item.get_type(new) == "fluid" then + amount = amount * 10 + end + thxbob.lib.recipe.remove_difficulty_ingredient(recipe, "normal", old) + thxbob.lib.recipe.add_difficulty_ingredient(recipe, "normal", {new, amount}) + retval = true + end + end + + if data.raw.recipe[recipe].expensive then + amount = 0 + for i, ingredient in pairs(data.raw.recipe[recipe].expensive.ingredients) do + local item = thxbob.lib.item.basic_item(ingredient) + if item.name == old then + amount = item.amount + amount + end + end + if amount > 0 then + if thxbob.lib.item.get_type(old) == "fluid" and thxbob.lib.item.get_type(new) == "item" then + amount = math.ceil(amount / 10) + end + if thxbob.lib.item.get_type(old) == "item" and thxbob.lib.item.get_type(new) == "fluid" then + amount = amount * 10 + end + thxbob.lib.recipe.remove_difficulty_ingredient(recipe, "expensive", old) + thxbob.lib.recipe.add_difficulty_ingredient(recipe, "expensive", {new, amount}) + retval = true + end + end + + --~ return retval + else + if not data.raw.recipe[recipe] then + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end + if not thxbob.lib.item.get_type(new) then + BioInd.writeDebug("Ingredient %s does not exist.", {new}) + end + --~ return false + end + + return retval +end + + +function thxbob.lib.recipe.replace_ingredient_in_all(old, new) + if thxbob.lib.item.get_basic_type(new) then + for i, recipe in pairs(data.raw.recipe) do + thxbob.lib.recipe.replace_ingredient(recipe.name, old, new) + end + else + BioInd.writeDebug("Ingredient %s does not exist.", {new}) + end +end + + +function thxbob.lib.recipe.remove_ingredient(recipe, item) + if data.raw.recipe[recipe] then + + if data.raw.recipe[recipe].expensive then + thxbob.lib.item.remove(data.raw.recipe[recipe].expensive.ingredients, item) + end + if data.raw.recipe[recipe].normal then + thxbob.lib.item.remove(data.raw.recipe[recipe].normal.ingredients, item) + end + if data.raw.recipe[recipe].ingredients then + thxbob.lib.item.remove(data.raw.recipe[recipe].ingredients, item) + end + + else + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end +end + + +function thxbob.lib.recipe.add_new_ingredient(recipe, item) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) then + + if data.raw.recipe[recipe].expensive then + thxbob.lib.item.add_new(data.raw.recipe[recipe].expensive.ingredients, thxbob.lib.item.basic_item(item)) + end + if data.raw.recipe[recipe].normal then + thxbob.lib.item.add_new(data.raw.recipe[recipe].normal.ingredients, thxbob.lib.item.basic_item(item)) + end + if data.raw.recipe[recipe].ingredients then + thxbob.lib.item.add_new(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) + end + + else + if not data.raw.recipe[recipe] then + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end + if not thxbob.lib.item.get_type(item) then + BioInd.writeDebug("Ingredient %s does not exist.", {thxbob.lib.item.basic_item(item).name}) + end + end +end + +function thxbob.lib.recipe.add_ingredient(recipe, item) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) then + + if data.raw.recipe[recipe].expensive then + thxbob.lib.item.add(data.raw.recipe[recipe].expensive.ingredients, thxbob.lib.item.basic_item(item)) + end + if data.raw.recipe[recipe].normal then + thxbob.lib.item.add(data.raw.recipe[recipe].normal.ingredients, thxbob.lib.item.basic_item(item)) + end + if data.raw.recipe[recipe].ingredients then + thxbob.lib.item.add(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) + end + + else + if not data.raw.recipe[recipe] then + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + BioInd.writeDebug("Ingredient %s does not exist.", {thxbob.lib.item.basic_item(item).name}) + end + end +end + +function thxbob.lib.recipe.set_ingredient(recipe, item) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) then + + if data.raw.recipe[recipe].expensive then + thxbob.lib.item.set(data.raw.recipe[recipe].expensive.ingredients, thxbob.lib.item.basic_item(item)) + end + if data.raw.recipe[recipe].normal then + thxbob.lib.item.set(data.raw.recipe[recipe].normal.ingredients, thxbob.lib.item.basic_item(item)) + end + if data.raw.recipe[recipe].ingredients then + thxbob.lib.item.set(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) + end + + else + if not data.raw.recipe[recipe] then + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + BioInd.writeDebug("Ingredient %s does not exist.", {thxbob.lib.item.basic_item(item).name}) + end + end +end + + +function thxbob.lib.recipe.add_result(recipe, item) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) then + if data.raw.recipe[recipe].expensive then + thxbob.lib.result_check(data.raw.recipe[recipe].expensive) + thxbob.lib.item.add(data.raw.recipe[recipe].expensive.results, item) + end + if data.raw.recipe[recipe].normal then + thxbob.lib.result_check(data.raw.recipe[recipe].normal) + thxbob.lib.item.add(data.raw.recipe[recipe].normal.results, item) + end + if data.raw.recipe[recipe].result or data.raw.recipe[recipe].results then + thxbob.lib.result_check(data.raw.recipe[recipe]) + thxbob.lib.item.add(data.raw.recipe[recipe].results, item) + end + + else + if not data.raw.recipe[recipe] then + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + BioInd.writeDebug("Item %s does not exist.", {thxbob.lib.item.basic_item(item).name}) + end + end +end + +function thxbob.lib.recipe.set_result(recipe, item) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) then + + if data.raw.recipe[recipe].expensive then + thxbob.lib.result_check(data.raw.recipe[recipe].expensive) + thxbob.lib.item.set(data.raw.recipe[recipe].expensive.results, item) + end + if data.raw.recipe[recipe].normal then + thxbob.lib.result_check(data.raw.recipe[recipe].normal) + thxbob.lib.item.set(data.raw.recipe[recipe].normal.results, item) + end + if data.raw.recipe[recipe].result or data.raw.recipe[recipe].results then + thxbob.lib.result_check(data.raw.recipe[recipe]) + thxbob.lib.item.set(data.raw.recipe[recipe].results, item) + end + + else + if not data.raw.recipe[recipe] then + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + BioInd.writeDebug("Item %s does not exist.", {thxbob.lib.item.basic_item(item).name}) + end + end +end + +function thxbob.lib.recipe.remove_result(recipe, item) +local f_name = "remove_result" +BioInd.writeDebug("Entered function %s(%s, %s)", {f_name, recipe, item}) + if data.raw.recipe[recipe] then + + if data.raw.recipe[recipe].expensive then + thxbob.lib.result_check(data.raw.recipe[recipe].expensive) + thxbob.lib.item.remove(data.raw.recipe[recipe].expensive.results, item) + end + if data.raw.recipe[recipe].normal then + thxbob.lib.result_check(data.raw.recipe[recipe].normal) + thxbob.lib.item.remove(data.raw.recipe[recipe].normal.results, item) + end + if data.raw.recipe[recipe].result or data.raw.recipe[recipe].results then + thxbob.lib.result_check(data.raw.recipe[recipe]) + thxbob.lib.item.remove(data.raw.recipe[recipe].results, item) + end + + else + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end +end + + + +local function split_line(recipe, tag) + if data.raw.recipe[recipe][tag] then + if not data.raw.recipe[recipe].normal[tag] then + data.raw.recipe[recipe].normal[tag] = table.deepcopy(data.raw.recipe[recipe][tag]) + end + if not data.raw.recipe[recipe].expensive[tag] then + data.raw.recipe[recipe].expensive[tag] = table.deepcopy(data.raw.recipe[recipe][tag]) + end + end +end + + +function thxbob.lib.recipe.difficulty_split(recipe) + if data.raw.recipe[recipe] then + if not data.raw.recipe[recipe].normal then + data.raw.recipe[recipe].normal = {} + end + if not data.raw.recipe[recipe].expensive then + data.raw.recipe[recipe].expensive = {} + end + split_line(recipe, "energy_required") + if data.raw.recipe[recipe].enabled == false then + if data.raw.recipe[recipe].normal.enabled ~= true then + data.raw.recipe[recipe].normal.enabled = false + end + if data.raw.recipe[recipe].expensive.enabled ~= true then + data.raw.recipe[recipe].expensive.enabled = false + end + end + split_line(recipe, "ingredients") + split_line(recipe, "result") + split_line(recipe, "results") + split_line(recipe, "result_count") + split_line(recipe, "requester_paste_multiplier") + else + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end +end + + + +function thxbob.lib.recipe.remove_difficulty_ingredient(recipe, difficulty, item) + if data.raw.recipe[recipe] and (difficulty == "normal" or difficulty == "expensive") then + + if not data.raw.recipe[recipe][difficulty] then + thxbob.lib.recipe.difficulty_split(recipe) + end + thxbob.lib.item.remove(data.raw.recipe[recipe][difficulty].ingredients, item) + + else + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end +end + + +function thxbob.lib.recipe.add_new_difficulty_ingredient(recipe, difficulty, item) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) and (difficulty == "normal" or difficulty == "expensive") then + + if not data.raw.recipe[recipe][difficulty] then + thxbob.lib.recipe.difficulty_split(recipe) + end + thxbob.lib.item.add_new(data.raw.recipe[recipe][difficulty].ingredients, thxbob.lib.item.basic_item(item)) + + else + if not data.raw.recipe[recipe] then + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end + if not thxbob.lib.item.get_type(item) then + BioInd.writeDebug("Ingredient %s does not exist.", {thxbob.lib.item.basic_item(item).name}) + end + if not (difficulty == "normal" or difficulty == "expensive") then + BioInd.writeDebug("Difficulty %s is invalid.", {difficulty}) + end + end +end + +function thxbob.lib.recipe.add_difficulty_ingredient(recipe, difficulty, item) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) and (difficulty == "normal" or difficulty == "expensive") then + + if not data.raw.recipe[recipe][difficulty] then + thxbob.lib.recipe.difficulty_split(recipe) + end + thxbob.lib.item.add(data.raw.recipe[recipe][difficulty].ingredients, thxbob.lib.item.basic_item(item)) + + else + if not data.raw.recipe[recipe] then + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + BioInd.writeDebug("Ingredient %s does not exist.", {thxbob.lib.item.basic_item(item).name}) + end + if not (difficulty == "normal" or difficulty == "expensive") then + BioInd.writeDebug("Difficulty %s is invalid.", {difficulty}) + end + end +end + + +function thxbob.lib.recipe.add_difficulty_result(recipe, difficulty, item) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) and (difficulty == "normal" or difficulty == "expensive") then + + if not data.raw.recipe[recipe][difficulty] then + thxbob.lib.recipe.difficulty_split(recipe) + end + thxbob.lib.result_check(data.raw.recipe[recipe][difficulty]) + thxbob.lib.item.add(data.raw.recipe[recipe][difficulty].results, item) + + else + if not data.raw.recipe[recipe] then + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + BioInd.writeDebug("Item %s does not exist.", {thxbob.lib.item.basic_item(item).name}) + end + if not (difficulty == "normal" or difficulty == "expensive") then + BioInd.writeDebug("Difficulty %s is invalid.", {difficulty}) + end + end +end + +function thxbob.lib.recipe.remove_difficulty_result(recipe, difficulty, item) + if data.raw.recipe[recipe] and (difficulty == "normal" or difficulty == "expensive") then + + if not data.raw.recipe[recipe][difficulty] then + thxbob.lib.recipe.difficulty_split(recipe) + end + thxbob.lib.result_check(data.raw.recipe[recipe][difficulty]) + thxbob.lib.item.remove(data.raw.recipe[recipe][difficulty].results, item) + + else + if not data.raw.recipe[recipe] then + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end + if not (difficulty == "normal" or difficulty == "expensive") then + BioInd.writeDebug("Difficulty %s is invalid.", {difficulty}) + end + end +end diff --git a/Bio_Industries_2/libs/technology-functions.lua b/Bio_Industries_2/libs/technology-functions.lua new file mode 100644 index 0000000..7ac5936 --- /dev/null +++ b/Bio_Industries_2/libs/technology-functions.lua @@ -0,0 +1,173 @@ +local BioInd = require('common')('Bio_Industries') + +if not thxbob.lib.tech then thxbob.lib.tech = {} end + + +function thxbob.lib.tech.replace_science_pack(technology, old, new) + if data.raw.technology[technology] and data.raw.tool[new] then + local doit = false + local amount = 0 + for i, ingredient in pairs(data.raw.technology[technology].unit.ingredients) do + if ingredient[1] == old then + doit = true + amount = ingredient[2] + amount + end + if ingredient.name == old then + doit = true + amount = ingredient.amount + amount + end + end + if doit then + thxbob.lib.tech.remove_science_pack(technology, old) + thxbob.lib.tech.add_science_pack(technology, new, amount) + end + else + if not data.raw.technology[technology] then + BioInd.writeDebug("Technology %s does not exist.", {technology}) + end + if not data.raw.tool[new] then + BioInd.writeDebug("Science pack %s does not exist.", {new}) + end + end +end + +function thxbob.lib.tech.add_new_science_pack(technology, pack, amount) + if data.raw.technology[technology] and data.raw.tool[pack] then + local addit = true + for i, ingredient in pairs(data.raw.technology[technology].unit.ingredients) do + if ingredient[1] == pack or ingredient.name == pack then addit = false end + end + if addit then table.insert(data.raw.technology[technology].unit.ingredients, {pack, amount}) end + else + if not data.raw.technology[technology] then + BioInd.writeDebug("Technology %s does not exist.", {technology}) + end + if not data.raw.tool[pack] then + BioInd.writeDebug("Science pack %s does not exist.", {pack}) + end + end +end + +function thxbob.lib.tech.add_science_pack(technology, pack, amount) + if data.raw.technology[technology] and data.raw.tool[pack] then + local addit = true + for i, ingredient in pairs(data.raw.technology[technology].unit.ingredients) do + if ingredient[1] == pack then + addit = false + ingredient[2] = ingredient[2] + amount + end + if ingredient.name == pack then + addit = false + ingredient.amount = ingredient.amount + amount + end + end + if addit then + table.insert(data.raw.technology[technology].unit.ingredients, {pack, amount}) + end + else + if not data.raw.technology[technology] then + BioInd.writeDebug("Technology " .. tostring(technology) .. " does not exist.") + end + if not data.raw.tool[pack] then + BioInd.writeDebug("Science pack %s does not exist.", {pack}) + end + end +end + +function thxbob.lib.tech.remove_science_pack(technology, pack) + if data.raw.technology[technology] then + for i, ingredient in pairs(data.raw.technology[technology].unit.ingredients) do + if ingredient[1] == pack or ingredient.name == pack then + table.remove(data.raw.technology[technology].unit.ingredients, i) + end + end + else + BioInd.writeDebug("Technology %s does not exist.", {technology}) + end +end + + +function thxbob.lib.tech.add_recipe_unlock(technology, recipe) + if data.raw.technology[technology] and data.raw.recipe[recipe] then + local addit = true + if not data.raw.technology[technology].effects then + data.raw.technology[technology].effects = {} + end + for i, effect in pairs(data.raw.technology[technology].effects) do + if effect.type == "unlock-recipe" and effect.recipe == recipe then addit = false end + end + if addit then table.insert(data.raw.technology[technology].effects, {type = "unlock-recipe", recipe = recipe}) end + else + if not data.raw.technology[technology] then + BioInd.writeDebug("Technology %s does not exist.", {technology}) + end + if not data.raw.recipe[recipe] then + BioInd.writeDebug("Recipe %s does not exist.", {recipe}) + end + end +end + +function thxbob.lib.tech.remove_recipe_unlock(technology, recipe) + if data.raw.technology[technology] and data.raw.technology[technology].effects then + for i, effect in pairs(data.raw.technology[technology].effects) do + if effect.type == "unlock-recipe" and effect.recipe == recipe then + table.remove(data.raw.technology[technology].effects, i) + end + end + else + if not data.raw.technology[technology] then + BioInd.writeDebug("Technology %s does not exist.", {technology}) + end + end +end + +function thxbob.lib.tech.replace_prerequisite(technology, old, new) + if data.raw.technology[technology] and data.raw.technology[new] then + for i, prerequisite in ipairs(data.raw.technology[technology].prerequisites) do + if prerequisite == old then + thxbob.lib.tech.remove_prerequisite(technology, old) + thxbob.lib.tech.add_prerequisite(technology, new) + end + end + else + if not data.raw.technology[technology] then + BioInd.writeDebug("Technology %s does not exist.", {technology}) + end + if not data.raw.technology[new] then + BioInd.writeDebug("Technology %s does not exist.", {new}) + end + end +end + +function thxbob.lib.tech.add_prerequisite(technology, prerequisite) + if data.raw.technology[technology] and data.raw.technology[prerequisite] then + local addit = true + if data.raw.technology[technology].prerequisites then + for i, check in ipairs(data.raw.technology[technology].prerequisites) do + if check == prerequisite then addit = false end + end + else + data.raw.technology[technology].prerequisites = {} + end + if addit then table.insert(data.raw.technology[technology].prerequisites, prerequisite) end + else + if not data.raw.technology[technology] then + BioInd.writeDebug("Technology %s does not exist.", {technology}) + end + if not data.raw.technology[prerequisite] then + BioInd.writeDebug("Technology %s does not exist.", {prerequisite}) + end + end +end + +function thxbob.lib.tech.remove_prerequisite(technology, prerequisite) + if data.raw.technology[technology] then + for i, check in ipairs(data.raw.technology[technology].prerequisites) do + if check == prerequisite then + table.remove(data.raw.technology[technology].prerequisites, i) + end + end + else + BioInd.writeDebug("Technology %s does not exist.", {technology}) + end +end diff --git a/Bio_Industries_2/libs/trees-and-terrains.lua b/Bio_Industries_2/libs/trees-and-terrains.lua new file mode 100644 index 0000000..9b2e660 --- /dev/null +++ b/Bio_Industries_2/libs/trees-and-terrains.lua @@ -0,0 +1,20078 @@ +--~ local BioInd = require('common')('Bio_Industries') + +local terrains = {} + + +terrains["vegetation-green-grass-2"] = { + name = "vegetation-green-grass-2", + ["tree-desert-h"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-desert-i", + weight = 3 + }, + ["tree-dryland-e"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-dryland-e", + weight = 206 + }, + ["tree-dryland-g"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-dryland-g", + weight = 52 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-dryland-h", + weight = 113 + }, + ["tree-dryland-j"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-dryland-j", + weight = 43 + }, + ["tree-dryland-k"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-dryland-k", + weight = 596 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-dryland-l", + weight = 1179 + }, + ["tree-dryland-m"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-dryland-m", + weight = 7 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-b", + weight = 496 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-c", + weight = 1702 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-d", + weight = 170 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-e", + weight = 114 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-f", + weight = 728 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-g", + weight = 128178 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-h", + weight = 77174 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-h2", + weight = 461 + }, + ["tree-grassland-h3"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-h3", + weight = 115 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-i", + weight = 2348 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-k", + weight = 16418 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-l", + weight = 87434 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-m", + weight = 188 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-n", + weight = 36938 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-grassland-p", + weight = 611 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-b", + weight = 1647 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-c", + weight = 48 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-d", + weight = 76729 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-e", + weight = 218471 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-f", + weight = 21 + }, + ["tree-wetland-g"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-g", + weight = 2618 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-h", + weight = 1837 + }, + ["tree-wetland-i"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-i", + weight = 295 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-j", + weight = 35231 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-k", + weight = 82588 + }, + ["tree-wetland-l"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-l", + weight = 689 + }, + ["tree-wetland-m"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-m", + weight = 315 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-n", + weight = 749 + }, + ["tree-wetland-o"] = { + tile_name = "vegetation-green-grass-2", + tree_name = "tree-wetland-o", + weight = 943 + } +} +terrains["vegetation-green-grass-4"] = { + name = "vegetation-green-grass-4", + ["tree-desert-f"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-desert-f", + weight = 3 + }, + ["tree-dryland-e"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-dryland-e", + weight = 158 + }, + ["tree-dryland-g"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-dryland-g", + weight = 2 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-dryland-h", + weight = 30 + }, + ["tree-dryland-j"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-dryland-j", + weight = 8 + }, + ["tree-dryland-k"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-dryland-k", + weight = 86 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-dryland-l", + weight = 197 + }, + ["tree-dryland-m"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-dryland-m", + weight = 7 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-b", + weight = 164 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-c", + weight = 497 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-d", + weight = 48 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-e", + weight = 25 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-f", + weight = 260 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-g", + weight = 42054 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-h", + weight = 30744 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-h2", + weight = 117 + }, + ["tree-grassland-h3"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-h3", + weight = 38 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-i", + weight = 606 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-k", + weight = 2667 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-l", + weight = 22365 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-m", + weight = 26 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-n", + weight = 10137 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-grassland-p", + weight = 182 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-b", + weight = 575 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-c", + weight = 10 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-d", + weight = 31558 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-e", + weight = 57035 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-f", + weight = 6 + }, + ["tree-wetland-g"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-g", + weight = 765 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-h", + weight = 364 + }, + ["tree-wetland-i"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-i", + weight = 44 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-j", + weight = 7926 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-k", + weight = 29873 + }, + ["tree-wetland-l"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-l", + weight = 172 + }, + ["tree-wetland-m"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-m", + weight = 151 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-n", + weight = 130 + }, + ["tree-wetland-o"] = { + tile_name = "vegetation-green-grass-4", + tree_name = "tree-wetland-o", + weight = 286 + } +} +terrains["vegetation-mauve-grass-2"] = { + name = "vegetation-mauve-grass-2", + ["tree-dryland-l"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-dryland-l", + weight = 115 + }, + ["tree-dryland-m"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-dryland-m", + weight = 334 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-grassland-d", + weight = 311 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-grassland-e", + weight = 40 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-grassland-g", + weight = 43 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-grassland-h", + weight = 491 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-grassland-h2", + weight = 111 + }, + ["tree-grassland-h3"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-grassland-h3", + weight = 289 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-grassland-i", + weight = 6233 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-grassland-k", + weight = 399 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-grassland-l", + weight = 179 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-grassland-m", + weight = 11537 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-grassland-n", + weight = 56 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-wetland-c", + weight = 256 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-wetland-d", + weight = 59 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-wetland-e", + weight = 3474 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-wetland-f", + weight = 109 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-wetland-h", + weight = 208 + }, + ["tree-wetland-i"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-wetland-i", + weight = 23 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-wetland-j", + weight = 620 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-wetland-k", + weight = 40240 + }, + ["tree-wetland-l"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-wetland-l", + weight = 16352 + }, + ["tree-wetland-m"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-wetland-m", + weight = 87 + }, + ["tree-wetland-o"] = { + tile_name = "vegetation-mauve-grass-2", + tree_name = "tree-wetland-o", + weight = 405 + } +} +terrains["vegetation-green-grass-1"] = { + name = "vegetation-green-grass-1", + ["tree-desert-f"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-desert-f", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-desert-i", + weight = 2 + }, + ["tree-dryland-e"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-dryland-e", + weight = 99 + }, + ["tree-dryland-g"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-dryland-g", + weight = 8 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-dryland-h", + weight = 130 + }, + ["tree-dryland-j"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-dryland-j", + weight = 63 + }, + ["tree-dryland-k"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-dryland-k", + weight = 817 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-dryland-l", + weight = 1568 + }, + ["tree-dryland-m"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-dryland-m", + weight = 15 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-b", + weight = 925 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-c", + weight = 3050 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-d", + weight = 329 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-e", + weight = 256 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-f", + weight = 1486 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-g", + weight = 233551 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-h", + weight = 157690 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-h2", + weight = 808 + }, + ["tree-grassland-h3"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-h3", + weight = 171 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-i", + weight = 4758 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-k", + weight = 28573 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-l", + weight = 165778 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-m", + weight = 155 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-n", + weight = 55828 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-grassland-p", + weight = 1232 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-b", + weight = 2951 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-c", + weight = 24 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-d", + weight = 145682 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-e", + weight = 384640 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-f", + weight = 10 + }, + ["tree-wetland-g"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-g", + weight = 3712 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-h", + weight = 2945 + }, + ["tree-wetland-i"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-i", + weight = 364 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-j", + weight = 50003 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-k", + weight = 131060 + }, + ["tree-wetland-l"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-l", + weight = 942 + }, + ["tree-wetland-m"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-m", + weight = 312 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-n", + weight = 607 + }, + ["tree-wetland-o"] = { + tile_name = "vegetation-green-grass-1", + tree_name = "tree-wetland-o", + weight = 1114 + } +} +terrains["vegetation-purple-grass-1"] = { + name = "vegetation-purple-grass-1", + ["tree-desert-h"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-dryland-h", + weight = 328 + }, + ["tree-dryland-i"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-dryland-i", + weight = 3 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-dryland-l", + weight = 8 + }, + ["tree-dryland-m"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-dryland-m", + weight = 34 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-a", + weight = 5 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-c", + weight = 17 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-d", + weight = 578 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-e", + weight = 511 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-f", + weight = 3 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-g", + weight = 215 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-h", + weight = 1115 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-h2", + weight = 724 + }, + ["tree-grassland-h3"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-h3", + weight = 2 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-i", + weight = 8020 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-k", + weight = 2 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-l", + weight = 3 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-grassland-m", + weight = 26 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-wetland-c", + weight = 18 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-wetland-d", + weight = 2 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-wetland-e", + weight = 2644 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-wetland-f", + weight = 10 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-wetland-h", + weight = 10 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-wetland-k", + weight = 52 + }, + ["tree-wetland-l"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-wetland-l", + weight = 7 + }, + ["tree-wetland-o"] = { + tile_name = "vegetation-purple-grass-1", + tree_name = "tree-wetland-o", + weight = 5 + } +} +terrains["vegetation-mauve-grass-1"] = { + name = "vegetation-mauve-grass-1", + ["tree-dryland-h"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-dryland-h", + weight = 2 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-dryland-l", + weight = 256 + }, + ["tree-dryland-m"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-dryland-m", + weight = 525 + }, + ["tree-dryland-o"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-dryland-o", + weight = 3 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-c", + weight = 2 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-d", + weight = 319 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-e", + weight = 92 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-g", + weight = 6 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-h", + weight = 895 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-h2", + weight = 39 + }, + ["tree-grassland-h3"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-h3", + weight = 545 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-i", + weight = 11278 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-k", + weight = 499 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-l", + weight = 188 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-m", + weight = 17910 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-grassland-n", + weight = 103 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-wetland-c", + weight = 509 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-wetland-d", + weight = 108 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-wetland-e", + weight = 7703 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-wetland-f", + weight = 245 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-wetland-h", + weight = 394 + }, + ["tree-wetland-i"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-wetland-i", + weight = 71 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-wetland-j", + weight = 447 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-wetland-k", + weight = 68141 + }, + ["tree-wetland-l"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-wetland-l", + weight = 25595 + }, + ["tree-wetland-m"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-wetland-m", + weight = 115 + }, + ["tree-wetland-o"] = { + tile_name = "vegetation-mauve-grass-1", + tree_name = "tree-wetland-o", + weight = 729 + } +} +terrains["vegetation-green-grass-3"] = { + name = "vegetation-green-grass-3", + ["tree-desert-h"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-dryland-e"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-dryland-e", + weight = 24 + }, + ["tree-dryland-g"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-dryland-g", + weight = 5 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-dryland-h", + weight = 37 + }, + ["tree-dryland-j"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-dryland-j", + weight = 37 + }, + ["tree-dryland-k"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-dryland-k", + weight = 213 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-dryland-l", + weight = 360 + }, + ["tree-dryland-m"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-dryland-m", + weight = 3 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-b", + weight = 322 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-c", + weight = 1093 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-d", + weight = 105 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-e", + weight = 225 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-f", + weight = 535 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-g", + weight = 75960 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-h", + weight = 47696 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-h2", + weight = 504 + }, + ["tree-grassland-h3"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-h3", + weight = 355 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-i", + weight = 1447 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-k", + weight = 8625 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-l", + weight = 49431 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-m", + weight = 127 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-n", + weight = 22749 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-grassland-p", + weight = 471 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-b", + weight = 1006 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-c", + weight = 37 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-d", + weight = 43066 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-e", + weight = 130003 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-f", + weight = 6 + }, + ["tree-wetland-g"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-g", + weight = 1560 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-h", + weight = 743 + }, + ["tree-wetland-i"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-i", + weight = 191 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-j", + weight = 17872 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-k", + weight = 49745 + }, + ["tree-wetland-l"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-l", + weight = 350 + }, + ["tree-wetland-m"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-m", + weight = 125 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-n", + weight = 417 + }, + ["tree-wetland-o"] = { + tile_name = "vegetation-green-grass-3", + tree_name = "tree-wetland-o", + weight = 316 + } +} +terrains["vegetation-purple-grass-2"] = { + name = "vegetation-purple-grass-2", + ["tree-dryland-h"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-dryland-h", + weight = 270 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-dryland-l", + weight = 2 + }, + ["tree-dryland-m"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-dryland-m", + weight = 3 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-grassland-a", + weight = 7 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-grassland-c", + weight = 12 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-grassland-d", + weight = 161 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-grassland-e", + weight = 254 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-grassland-f", + weight = 14 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-grassland-g", + weight = 140 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-grassland-h", + weight = 844 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-grassland-h2", + weight = 383 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-grassland-i", + weight = 6951 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-grassland-m", + weight = 15 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-wetland-d", + weight = 3 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-wetland-e", + weight = 1702 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-purple-grass-2", + tree_name = "tree-wetland-k", + weight = 5 + } +} +terrains["mineral-dustyrose-dirt-3"] = { + name = "mineral-dustyrose-dirt-3", + ["tree-desert-h"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-desert-h", + weight = 1533 + }, + ["tree-desert-j"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-desert-j", + weight = 1043 + }, + ["tree-desert-k"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-desert-k", + weight = 453 + }, + ["tree-desert-n"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-desert-n", + weight = 3 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-dryland-b", + weight = 64 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-dryland-c", + weight = 6 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-dryland-e", + weight = 60 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-dryland-f", + weight = 95 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-dryland-g", + weight = 47 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-dryland-h", + weight = 58239 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-dryland-j", + weight = 3 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-dryland-k", + weight = 18 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-dryland-l", + weight = 20436 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-dryland-m", + weight = 3671 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-a", + weight = 22 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-c", + weight = 67 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-d", + weight = 141 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-e", + weight = 136 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-g", + weight = 77 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-h", + weight = 9445 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-h2", + weight = 70852 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-h3", + weight = 12475 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-i", + weight = 1005 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-k", + weight = 3 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-l", + weight = 17 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-grassland-m", + weight = 105 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-wetland-e", + weight = 2772 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-wetland-h", + weight = 30 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-dustyrose-dirt-3", + tree_name = "tree-wetland-k", + weight = 483 + } +} +terrains["mineral-dustyrose-dirt-1"] = { + name = "mineral-dustyrose-dirt-1", + ["tree-desert-h"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-desert-h", + weight = 2625 + }, + ["tree-desert-j"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-desert-j", + weight = 2467 + }, + ["tree-desert-k"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-desert-k", + weight = 1212 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-dryland-b", + weight = 197 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-dryland-c", + weight = 46 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-dryland-e", + weight = 248 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-dryland-f", + weight = 339 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-dryland-g", + weight = 157 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-dryland-h", + weight = 189274 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-dryland-j", + weight = 25 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-dryland-k", + weight = 76 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-dryland-l", + weight = 81171 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-dryland-m", + weight = 12640 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-a", + weight = 39 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-c", + weight = 114 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-d", + weight = 154 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-e", + weight = 102 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-f", + weight = 4 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-g", + weight = 271 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-h", + weight = 17545 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-h2", + weight = 221098 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-h3", + weight = 46849 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-i", + weight = 2134 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-k", + weight = 25 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-l", + weight = 46 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-grassland-m", + weight = 10 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-wetland-e", + weight = 7483 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-wetland-h", + weight = 7 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-dustyrose-dirt-1", + tree_name = "tree-wetland-k", + weight = 852 + } +} +terrains["mineral-dustyrose-dirt-4"] = { + name = "mineral-dustyrose-dirt-4", + ["tree-desert-g"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-desert-h", + weight = 1195 + }, + ["tree-desert-i"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-desert-i", + weight = 2 + }, + ["tree-desert-j"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-desert-j", + weight = 1078 + }, + ["tree-desert-k"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-desert-k", + weight = 721 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-dryland-b", + weight = 26 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-dryland-c", + weight = 9 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-dryland-e", + weight = 61 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-dryland-f", + weight = 39 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-dryland-g", + weight = 28 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-dryland-h", + weight = 32687 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-dryland-j", + weight = 7 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-dryland-k", + weight = 5 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-dryland-l", + weight = 10503 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-dryland-m", + weight = 1883 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-grassland-a", + weight = 18 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-grassland-c", + weight = 110 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-grassland-d", + weight = 96 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-grassland-e", + weight = 45 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-grassland-f", + weight = 11 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-grassland-g", + weight = 119 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-grassland-h", + weight = 6024 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-grassland-h2", + weight = 40015 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-grassland-h3", + weight = 6676 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-grassland-i", + weight = 349 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-grassland-m", + weight = 16 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-wetland-e", + weight = 2501 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-wetland-h", + weight = 24 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-wetland-j", + weight = 2 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-dustyrose-dirt-4", + tree_name = "tree-wetland-k", + weight = 236 + } +} +terrains["mineral-dustyrose-dirt-6"] = { + name = "mineral-dustyrose-dirt-6", + ["tree-desert-g"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-desert-h", + weight = 691 + }, + ["tree-desert-j"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-desert-j", + weight = 483 + }, + ["tree-desert-k"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-desert-k", + weight = 267 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-dryland-b", + weight = 16 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-dryland-c", + weight = 3 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-dryland-e", + weight = 7 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-dryland-f", + weight = 14 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-dryland-g", + weight = 4 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-dryland-h", + weight = 9890 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-dryland-k", + weight = 2 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-dryland-l", + weight = 3572 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-dryland-m", + weight = 246 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-a", + weight = 3 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-c", + weight = 84 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-d", + weight = 52 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-e", + weight = 44 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-f", + weight = 12 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-g", + weight = 156 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-h", + weight = 4249 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-h2", + weight = 11243 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-h3", + weight = 1518 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-i", + weight = 327 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-k", + weight = 8 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-grassland-m", + weight = 26 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-wetland-e", + weight = 1003 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-dustyrose-dirt-6", + tree_name = "tree-wetland-k", + weight = 241 + } +} +terrains["mineral-dustyrose-dirt-5"] = { + name = "mineral-dustyrose-dirt-5", + ["tree-desert-h"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-desert-h", + weight = 834 + }, + ["tree-desert-j"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-desert-j", + weight = 623 + }, + ["tree-desert-k"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-desert-k", + weight = 375 + }, + ["tree-desert-l"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-desert-l", + weight = 2 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-dryland-b", + weight = 21 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-dryland-e", + weight = 25 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-dryland-f", + weight = 24 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-dryland-g", + weight = 15 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-dryland-h", + weight = 15414 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-dryland-j", + weight = 5 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-dryland-k", + weight = 5 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-dryland-l", + weight = 4683 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-dryland-m", + weight = 729 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-a", + weight = 5 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-c", + weight = 48 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-d", + weight = 57 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-e", + weight = 111 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-f", + weight = 6 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-g", + weight = 119 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-h", + weight = 4863 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-h2", + weight = 17537 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-h3", + weight = 3420 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-i", + weight = 636 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-l", + weight = 10 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-grassland-m", + weight = 6 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-wetland-e", + weight = 1125 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-wetland-f", + weight = 2 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-wetland-h", + weight = 4 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-wetland-k", + weight = 424 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-dustyrose-dirt-5", + tree_name = "tree-wetland-l", + weight = 2 + } +} +terrains["mineral-dustyrose-dirt-2"] = { + name = "mineral-dustyrose-dirt-2", + ["tree-desert-f"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-desert-f", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-desert-h", + weight = 1874 + }, + ["tree-desert-j"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-desert-j", + weight = 1285 + }, + ["tree-desert-k"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-desert-k", + weight = 1046 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-dryland-b", + weight = 120 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-dryland-c", + weight = 18 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-dryland-e", + weight = 143 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-dryland-f", + weight = 187 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-dryland-g", + weight = 114 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-dryland-h", + weight = 99866 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-dryland-j", + weight = 17 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-dryland-k", + weight = 30 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-dryland-l", + weight = 39143 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-dryland-m", + weight = 5324 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-a", + weight = 9 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-c", + weight = 247 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-d", + weight = 102 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-e", + weight = 113 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-f", + weight = 2 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-g", + weight = 189 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-h", + weight = 10730 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-h2", + weight = 113469 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-h3", + weight = 23488 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-i", + weight = 1290 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-k", + weight = 4 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-l", + weight = 12 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-grassland-m", + weight = 17 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-wetland-e", + weight = 5028 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-wetland-h", + weight = 2 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-dustyrose-dirt-2", + tree_name = "tree-wetland-k", + weight = 702 + } +} +terrains["mineral-beige-dirt-1"] = { + name = "mineral-beige-dirt-1", + ["tree-desert-c"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-desert-c", + weight = 3 + }, + ["tree-desert-f"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-desert-f", + weight = 2037 + }, + ["tree-desert-h"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-desert-h", + weight = 2595 + }, + ["tree-desert-i"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-desert-i", + weight = 3785 + }, + ["tree-desert-j"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-desert-j", + weight = 2670 + }, + ["tree-desert-n"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-desert-n", + weight = 2 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-a", + weight = 304 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-b", + weight = 504 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-e", + weight = 364 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-f", + weight = 1113 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-g", + weight = 87481 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-h", + weight = 90348 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-i", + weight = 202 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-j", + weight = 247 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-k", + weight = 89847 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-l", + weight = 114208 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-m", + weight = 183 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-dryland-n", + weight = 335 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-a", + weight = 17 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-b", + weight = 23 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-c", + weight = 186 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-f", + weight = 755 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-g", + weight = 40826 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-h", + weight = 33224 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-h2", + weight = 3895 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-h3", + weight = 1089 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-i", + weight = 386 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-k", + weight = 2814 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-l", + weight = 48995 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-m", + weight = 45 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-n", + weight = 448 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-grassland-p", + weight = 64 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-wetland-d", + weight = 2865 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-wetland-e", + weight = 16085 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-wetland-j", + weight = 2740 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-beige-dirt-1", + tree_name = "tree-wetland-k", + weight = 2925 + } +} +terrains["mineral-grey-dirt-6"] = { + name = "mineral-grey-dirt-6", + ["tree-desert-i"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-desert-i", + weight = 181 + }, + ["tree-desert-j"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-desert-j", + weight = 72 + }, + ["tree-desert-m"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-desert-m", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-desert-n", + weight = 383 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-dryland-b", + weight = 8 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-dryland-f", + weight = 7 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-dryland-g", + weight = 3 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-dryland-h", + weight = 3 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-dryland-j", + weight = 11 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-dryland-k", + weight = 1037 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-dryland-l", + weight = 6830 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-dryland-m", + weight = 6 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-dryland-n", + weight = 26 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-dryland-o", + weight = 2 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-c", + weight = 4 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-d", + weight = 11 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-e", + weight = 2 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-g", + weight = 16 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-h", + weight = 6017 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-h3", + weight = 181 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-i", + weight = 3 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-k", + weight = 219 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-l", + weight = 2225 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-m", + weight = 2 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-n", + weight = 6232 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-p", + weight = 15491 + }, + ["tree-grassland-q"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-grassland-q", + weight = 10 + }, + ["tree-snow-a"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-snow-a", + weight = 5 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-wetland-j", + weight = 378 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-wetland-k", + weight = 328 + }, + ["tree-wetland-n"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-wetland-n", + weight = 283 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-grey-dirt-6", + tree_name = "tree-wetland-o", + weight = 350 + } +} +terrains["mineral-black-dirt-4"] = { + name = "mineral-black-dirt-4", + ["tree-desert-j"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-desert-j", + weight = 88 + }, + ["tree-desert-k"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-desert-k", + weight = 259 + }, + ["tree-desert-n"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-desert-n", + weight = 396 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-dryland-c", + weight = 36 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-dryland-f", + weight = 3 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-dryland-h", + weight = 81 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-dryland-i", + weight = 2 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-dryland-j", + weight = 32 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-dryland-k", + weight = 10 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-dryland-l", + weight = 14473 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-dryland-m", + weight = 2007 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-dryland-n", + weight = 74 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-dryland-o", + weight = 5149 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-grassland-d", + weight = 130 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-grassland-e", + weight = 101 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-grassland-h", + weight = 597 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-grassland-h2", + weight = 23 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-grassland-h3", + weight = 14477 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-grassland-i", + weight = 159 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-grassland-k", + weight = 57 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-grassland-l", + weight = 4 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-grassland-m", + weight = 2618 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-grassland-n", + weight = 33 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-grassland-p", + weight = 2958 + }, + ["tree-snow-a"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-snow-a", + weight = 4 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-wetland-k", + weight = 850 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-wetland-l", + weight = 254 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-black-dirt-4", + tree_name = "tree-wetland-o", + weight = 2273 + } +} +terrains["mineral-black-dirt-6"] = { + name = "mineral-black-dirt-6", + ["tree-desert-j"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-desert-j", + weight = 82 + }, + ["tree-desert-k"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-desert-k", + weight = 120 + }, + ["tree-desert-l"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-desert-l", + weight = 3 + }, + ["tree-desert-n"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-desert-n", + weight = 212 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-dryland-f", + weight = 4 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-dryland-h", + weight = 13 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-dryland-j", + weight = 10 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-dryland-k", + weight = 3 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-dryland-l", + weight = 7496 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-dryland-m", + weight = 733 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-dryland-n", + weight = 5 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-dryland-o", + weight = 1057 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-grassland-d", + weight = 79 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-grassland-e", + weight = 25 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-grassland-h", + weight = 138 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-grassland-h2", + weight = 4 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-grassland-h3", + weight = 5768 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-grassland-i", + weight = 272 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-grassland-k", + weight = 40 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-grassland-l", + weight = 3 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-grassland-m", + weight = 1111 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-grassland-n", + weight = 32 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-grassland-p", + weight = 3240 + }, + ["tree-snow-a"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-snow-a", + weight = 10 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-wetland-k", + weight = 739 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-wetland-l", + weight = 75 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-black-dirt-6", + tree_name = "tree-wetland-o", + weight = 901 + } +} +terrains["mineral-black-dirt-5"] = { + name = "mineral-black-dirt-5", + ["tree-desert-j"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-desert-j", + weight = 42 + }, + ["tree-desert-k"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-desert-k", + weight = 218 + }, + ["tree-desert-n"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-desert-n", + weight = 161 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-dryland-b", + weight = 2 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-dryland-c", + weight = 8 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-dryland-f", + weight = 13 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-dryland-h", + weight = 21 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-dryland-i", + weight = 2 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-dryland-j", + weight = 7 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-dryland-k", + weight = 2 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-dryland-l", + weight = 9405 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-dryland-m", + weight = 932 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-dryland-n", + weight = 18 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-dryland-o", + weight = 1626 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-grassland-d", + weight = 116 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-grassland-e", + weight = 96 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-grassland-h", + weight = 248 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-grassland-h2", + weight = 10 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-grassland-h3", + weight = 7989 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-grassland-i", + weight = 317 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-grassland-k", + weight = 21 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-grassland-l", + weight = 9 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-grassland-m", + weight = 2395 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-grassland-n", + weight = 20 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-grassland-p", + weight = 4647 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-wetland-e", + weight = 9 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-wetland-k", + weight = 643 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-wetland-l", + weight = 170 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-black-dirt-5", + tree_name = "tree-wetland-o", + weight = 1186 + } +} +terrains["mineral-grey-dirt-3"] = { + name = "mineral-grey-dirt-3", + ["tree-desert-b"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-desert-b", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-desert-i", + weight = 459 + }, + ["tree-desert-j"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-desert-j", + weight = 403 + }, + ["tree-desert-m"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-desert-m", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-desert-n", + weight = 955 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-dryland-a", + weight = 2 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-dryland-b", + weight = 69 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-dryland-f", + weight = 93 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-dryland-g", + weight = 4 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-dryland-h", + weight = 14 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-dryland-j", + weight = 85 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-dryland-k", + weight = 8013 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-dryland-l", + weight = 58493 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-dryland-m", + weight = 7 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-dryland-n", + weight = 238 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-dryland-o", + weight = 70 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-c", + weight = 29 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-d", + weight = 3 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-e", + weight = 3 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-g", + weight = 29 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-h", + weight = 24912 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-h2", + weight = 3 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-h3", + weight = 1664 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-i", + weight = 5 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-k", + weight = 268 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-l", + weight = 6407 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-m", + weight = 43 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-n", + weight = 20420 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-p", + weight = 45600 + }, + ["tree-grassland-q"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-grassland-q", + weight = 66 + }, + ["tree-snow-a"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-snow-a", + weight = 76 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-wetland-j", + weight = 1664 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-wetland-k", + weight = 1999 + }, + ["tree-wetland-n"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-wetland-n", + weight = 1708 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-grey-dirt-3", + tree_name = "tree-wetland-o", + weight = 1290 + } +} +terrains["mineral-grey-dirt-2"] = { + name = "mineral-grey-dirt-2", + ["tree-desert-i"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-desert-i", + weight = 267 + }, + ["tree-desert-j"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-desert-j", + weight = 346 + }, + ["tree-desert-k"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-desert-k", + weight = 21 + }, + ["tree-desert-n"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-desert-n", + weight = 1294 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-dryland-a", + weight = 7 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-dryland-b", + weight = 120 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-dryland-f", + weight = 165 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-dryland-g", + weight = 28 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-dryland-h", + weight = 6 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-dryland-j", + weight = 123 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-dryland-k", + weight = 12825 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-dryland-l", + weight = 103569 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-dryland-m", + weight = 8 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-dryland-n", + weight = 873 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-dryland-o", + weight = 157 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-c", + weight = 9 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-d", + weight = 2 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-e", + weight = 3 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-g", + weight = 30 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-h", + weight = 26773 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-h3", + weight = 4437 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-i", + weight = 2 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-k", + weight = 247 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-l", + weight = 7453 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-m", + weight = 65 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-n", + weight = 25771 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-p", + weight = 54510 + }, + ["tree-grassland-q"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-grassland-q", + weight = 46 + }, + ["tree-snow-a"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-snow-a", + weight = 53 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-wetland-j", + weight = 2729 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-wetland-k", + weight = 2642 + }, + ["tree-wetland-n"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-wetland-n", + weight = 1836 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-grey-dirt-2", + tree_name = "tree-wetland-o", + weight = 2527 + } +} +terrains["mineral-grey-dirt-1"] = { + name = "mineral-grey-dirt-1", + ["tree-desert-i"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-desert-i", + weight = 792 + }, + ["tree-desert-j"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-desert-j", + weight = 248 + }, + ["tree-desert-k"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-desert-k", + weight = 9 + }, + ["tree-desert-m"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-desert-m", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-desert-n", + weight = 2073 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-dryland-a", + weight = 17 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-dryland-b", + weight = 200 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-dryland-f", + weight = 289 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-dryland-g", + weight = 55 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-dryland-h", + weight = 38 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-dryland-j", + weight = 364 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-dryland-k", + weight = 26654 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-dryland-l", + weight = 212583 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-dryland-m", + weight = 2 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-dryland-n", + weight = 1255 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-dryland-o", + weight = 224 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-c", + weight = 39 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-d", + weight = 6 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-e", + weight = 6 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-g", + weight = 104 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-h", + weight = 48870 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-h3", + weight = 8785 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-i", + weight = 3 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-k", + weight = 365 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-l", + weight = 11729 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-m", + weight = 80 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-n", + weight = 51268 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-p", + weight = 97855 + }, + ["tree-grassland-q"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-grassland-q", + weight = 164 + }, + ["tree-snow-a"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-snow-a", + weight = 9 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-wetland-j", + weight = 6413 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-wetland-k", + weight = 5409 + }, + ["tree-wetland-n"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-wetland-n", + weight = 4809 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-grey-dirt-1", + tree_name = "tree-wetland-o", + weight = 4208 + } +} +terrains["mineral-beige-dirt-2"] = { + name = "mineral-beige-dirt-2", + ["tree-desert-c"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-desert-c", + weight = 3 + }, + ["tree-desert-f"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-desert-f", + weight = 1180 + }, + ["tree-desert-h"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-desert-h", + weight = 1419 + }, + ["tree-desert-i"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-desert-i", + weight = 2702 + }, + ["tree-desert-j"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-desert-j", + weight = 1421 + }, + ["tree-desert-l"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-desert-l", + weight = 2 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-a", + weight = 126 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-b", + weight = 266 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-e", + weight = 249 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-f", + weight = 551 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-g", + weight = 40265 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-h", + weight = 50055 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-i", + weight = 110 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-j", + weight = 153 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-k", + weight = 44445 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-l", + weight = 64734 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-m", + weight = 127 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-dryland-n", + weight = 208 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-a", + weight = 16 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-b", + weight = 14 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-c", + weight = 98 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-f", + weight = 230 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-g", + weight = 27297 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-h", + weight = 23085 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-h2", + weight = 3568 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-h3", + weight = 1189 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-i", + weight = 265 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-k", + weight = 1792 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-l", + weight = 27374 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-m", + weight = 14 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-n", + weight = 293 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-grassland-p", + weight = 28 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-wetland-d", + weight = 1415 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-wetland-e", + weight = 9809 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-wetland-j", + weight = 1580 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-beige-dirt-2", + tree_name = "tree-wetland-k", + weight = 1655 + } +} +terrains["mineral-black-dirt-1"] = { + name = "mineral-black-dirt-1", + ["tree-desert-j"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-desert-j", + weight = 208 + }, + ["tree-desert-k"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-desert-k", + weight = 775 + }, + ["tree-desert-n"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-desert-n", + weight = 746 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-b", + weight = 17 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-c", + weight = 120 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-d", + weight = 2 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-f", + weight = 47 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-h", + weight = 384 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-i", + weight = 8 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-j", + weight = 227 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-k", + weight = 47 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-l", + weight = 78153 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-m", + weight = 18610 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-n", + weight = 456 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-dryland-o", + weight = 32970 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-grassland-d", + weight = 337 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-grassland-e", + weight = 392 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-grassland-h", + weight = 266 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-grassland-h2", + weight = 82 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-grassland-h3", + weight = 80750 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-grassland-i", + weight = 400 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-grassland-k", + weight = 59 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-grassland-l", + weight = 15 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-grassland-m", + weight = 13202 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-grassland-n", + weight = 42 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-grassland-p", + weight = 9470 + }, + ["tree-snow-a"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-snow-a", + weight = 33 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-wetland-e", + weight = 2 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-wetland-k", + weight = 4831 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-wetland-l", + weight = 2204 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-black-dirt-1", + tree_name = "tree-wetland-o", + weight = 11300 + } +} +terrains["mineral-black-dirt-2"] = { + name = "mineral-black-dirt-2", + ["tree-desert-i"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-desert-i", + weight = 2 + }, + ["tree-desert-j"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-desert-j", + weight = 111 + }, + ["tree-desert-k"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-desert-k", + weight = 324 + }, + ["tree-desert-n"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-desert-n", + weight = 476 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-b", + weight = 9 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-c", + weight = 77 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-d", + weight = 10 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-f", + weight = 23 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-h", + weight = 296 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-i", + weight = 6 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-j", + weight = 131 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-k", + weight = 20 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-l", + weight = 46932 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-m", + weight = 10473 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-n", + weight = 259 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-dryland-o", + weight = 16493 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-grassland-d", + weight = 333 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-grassland-e", + weight = 457 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-grassland-h", + weight = 229 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-grassland-h2", + weight = 44 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-grassland-h3", + weight = 48376 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-grassland-i", + weight = 112 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-grassland-k", + weight = 42 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-grassland-l", + weight = 17 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-grassland-m", + weight = 5559 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-grassland-n", + weight = 38 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-grassland-p", + weight = 6685 + }, + ["tree-snow-a"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-snow-a", + weight = 80 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-wetland-k", + weight = 3359 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-wetland-l", + weight = 1142 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-black-dirt-2", + tree_name = "tree-wetland-o", + weight = 7060 + } +} +terrains["mineral-beige-dirt-3"] = { + name = "mineral-beige-dirt-3", + ["tree-desert-c"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-desert-c", + weight = 4 + }, + ["tree-desert-f"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-desert-f", + weight = 655 + }, + ["tree-desert-h"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-desert-h", + weight = 1338 + }, + ["tree-desert-i"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-desert-i", + weight = 1724 + }, + ["tree-desert-j"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-desert-j", + weight = 1649 + }, + ["tree-desert-m"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-desert-m", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-desert-n", + weight = 2 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-a", + weight = 90 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-b", + weight = 113 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-e", + weight = 127 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-f", + weight = 320 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-g", + weight = 26741 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-h", + weight = 37264 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-i", + weight = 71 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-j", + weight = 64 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-k", + weight = 24608 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-l", + weight = 41838 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-m", + weight = 59 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-dryland-n", + weight = 107 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-a", + weight = 19 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-b", + weight = 11 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-c", + weight = 159 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-f", + weight = 348 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-g", + weight = 22598 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-h", + weight = 20913 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-h2", + weight = 3592 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-h3", + weight = 613 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-i", + weight = 170 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-k", + weight = 1560 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-l", + weight = 18399 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-m", + weight = 13 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-n", + weight = 410 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-grassland-p", + weight = 48 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-wetland-d", + weight = 697 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-wetland-e", + weight = 7120 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-wetland-j", + weight = 1147 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-beige-dirt-3", + tree_name = "tree-wetland-k", + weight = 943 + } +} +terrains["mineral-black-dirt-3"] = { + name = "mineral-black-dirt-3", + ["tree-desert-j"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-desert-j", + weight = 32 + }, + ["tree-desert-k"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-desert-k", + weight = 319 + }, + ["tree-desert-n"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-desert-n", + weight = 681 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-dryland-b", + weight = 14 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-dryland-c", + weight = 25 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-dryland-f", + weight = 19 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-dryland-h", + weight = 106 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-dryland-j", + weight = 50 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-dryland-k", + weight = 20 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-dryland-l", + weight = 22236 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-dryland-m", + weight = 3972 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-dryland-n", + weight = 60 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-dryland-o", + weight = 7996 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-grassland-d", + weight = 188 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-grassland-e", + weight = 156 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-grassland-h", + weight = 224 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-grassland-h2", + weight = 64 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-grassland-h3", + weight = 20998 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-grassland-i", + weight = 163 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-grassland-k", + weight = 73 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-grassland-l", + weight = 19 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-grassland-m", + weight = 3814 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-grassland-n", + weight = 18 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-grassland-p", + weight = 3099 + }, + ["tree-snow-a"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-snow-a", + weight = 5 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-wetland-k", + weight = 1369 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-wetland-l", + weight = 384 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-black-dirt-3", + tree_name = "tree-wetland-o", + weight = 2852 + } +} +terrains["mineral-grey-dirt-4"] = { + name = "mineral-grey-dirt-4", + ["tree-desert-i"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-desert-i", + weight = 543 + }, + ["tree-desert-j"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-desert-j", + weight = 331 + }, + ["tree-desert-n"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-desert-n", + weight = 689 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-dryland-b", + weight = 47 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-dryland-f", + weight = 44 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-dryland-g", + weight = 16 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-dryland-h", + weight = 2 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-dryland-j", + weight = 45 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-dryland-k", + weight = 3336 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-dryland-l", + weight = 32349 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-dryland-m", + weight = 4 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-dryland-n", + weight = 406 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-dryland-o", + weight = 43 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-c", + weight = 12 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-d", + weight = 5 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-f", + weight = 2 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-g", + weight = 48 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-h", + weight = 12331 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-h3", + weight = 1272 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-k", + weight = 777 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-l", + weight = 3955 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-m", + weight = 22 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-n", + weight = 15211 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-p", + weight = 27260 + }, + ["tree-grassland-q"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-grassland-q", + weight = 11 + }, + ["tree-snow-a"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-snow-a", + weight = 3 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-wetland-j", + weight = 1427 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-wetland-k", + weight = 1054 + }, + ["tree-wetland-n"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-wetland-n", + weight = 934 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-grey-dirt-4", + tree_name = "tree-wetland-o", + weight = 861 + } +} +terrains["mineral-beige-dirt-5"] = { + name = "mineral-beige-dirt-5", + ["tree-desert-c"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-desert-c", + weight = 2 + }, + ["tree-desert-f"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-desert-f", + weight = 195 + }, + ["tree-desert-h"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-desert-h", + weight = 718 + }, + ["tree-desert-i"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-desert-i", + weight = 1113 + }, + ["tree-desert-j"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-desert-j", + weight = 778 + }, + ["tree-desert-m"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-desert-m", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-desert-n", + weight = 2 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-a", + weight = 11 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-b", + weight = 42 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-e", + weight = 45 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-f", + weight = 77 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-g", + weight = 7072 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-h", + weight = 12518 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-i", + weight = 13 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-j", + weight = 11 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-k", + weight = 6116 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-l", + weight = 11284 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-m", + weight = 28 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-dryland-n", + weight = 24 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-a", + weight = 4 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-b", + weight = 3 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-c", + weight = 36 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-f", + weight = 143 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-g", + weight = 10109 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-h", + weight = 6490 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-h2", + weight = 2378 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-h3", + weight = 661 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-i", + weight = 82 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-k", + weight = 1724 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-l", + weight = 10192 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-n", + weight = 168 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-grassland-p", + weight = 8 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-wetland-d", + weight = 185 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-wetland-e", + weight = 1912 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-wetland-j", + weight = 481 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-beige-dirt-5", + tree_name = "tree-wetland-k", + weight = 367 + } +} +terrains["mineral-beige-dirt-4"] = { + name = "mineral-beige-dirt-4", + ["tree-desert-f"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-desert-f", + weight = 486 + }, + ["tree-desert-g"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-desert-g", + weight = 3 + }, + ["tree-desert-h"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-desert-h", + weight = 1121 + }, + ["tree-desert-i"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-desert-i", + weight = 1188 + }, + ["tree-desert-j"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-desert-j", + weight = 972 + }, + ["tree-desert-l"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-desert-l", + weight = 2 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-a", + weight = 25 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-b", + weight = 78 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-e", + weight = 83 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-f", + weight = 167 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-g", + weight = 11801 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-h", + weight = 20994 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-i", + weight = 35 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-j", + weight = 35 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-k", + weight = 11944 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-l", + weight = 23578 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-m", + weight = 51 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-dryland-n", + weight = 52 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-a", + weight = 2 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-c", + weight = 50 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-f", + weight = 65 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-g", + weight = 13274 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-h", + weight = 11458 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-h2", + weight = 2614 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-h3", + weight = 515 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-i", + weight = 110 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-k", + weight = 1559 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-l", + weight = 12179 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-m", + weight = 60 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-n", + weight = 156 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-grassland-p", + weight = 17 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-wetland-d", + weight = 460 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-wetland-e", + weight = 3101 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-wetland-j", + weight = 564 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-beige-dirt-4", + tree_name = "tree-wetland-k", + weight = 290 + } +} +terrains["mineral-beige-dirt-6"] = { + name = "mineral-beige-dirt-6", + ["tree-desert-f"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-desert-f", + weight = 260 + }, + ["tree-desert-h"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-desert-h", + weight = 599 + }, + ["tree-desert-i"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-desert-i", + weight = 1243 + }, + ["tree-desert-j"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-desert-j", + weight = 524 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-a", + weight = 13 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-b", + weight = 38 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-e", + weight = 32 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-f", + weight = 88 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-g", + weight = 4970 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-h", + weight = 8794 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-i", + weight = 12 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-j", + weight = 11 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-k", + weight = 4719 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-l", + weight = 10614 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-m", + weight = 10 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-dryland-n", + weight = 17 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-a", + weight = 22 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-c", + weight = 80 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-f", + weight = 23 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-g", + weight = 6803 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-h", + weight = 8325 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-h2", + weight = 1841 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-h3", + weight = 417 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-i", + weight = 131 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-k", + weight = 1157 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-l", + weight = 10643 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-m", + weight = 2 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-n", + weight = 152 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-grassland-p", + weight = 17 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-wetland-d", + weight = 365 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-wetland-e", + weight = 2731 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-wetland-j", + weight = 331 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-beige-dirt-6", + tree_name = "tree-wetland-k", + weight = 100 + } +} +terrains["mineral-grey-dirt-5"] = { + name = "mineral-grey-dirt-5", + ["tree-desert-i"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-desert-i", + weight = 254 + }, + ["tree-desert-j"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-desert-j", + weight = 239 + }, + ["tree-desert-k"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-desert-k", + weight = 16 + }, + ["tree-desert-m"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-desert-m", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-desert-n", + weight = 529 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-dryland-b", + weight = 11 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-dryland-f", + weight = 18 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-dryland-g", + weight = 9 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-dryland-h", + weight = 4 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-dryland-j", + weight = 29 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-dryland-k", + weight = 2817 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-dryland-l", + weight = 15494 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-dryland-m", + weight = 6 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-dryland-n", + weight = 72 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-dryland-o", + weight = 20 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-c", + weight = 26 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-d", + weight = 2 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-g", + weight = 14 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-h", + weight = 11995 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-h3", + weight = 617 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-i", + weight = 6 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-k", + weight = 202 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-l", + weight = 3710 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-m", + weight = 24 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-n", + weight = 11498 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-p", + weight = 20100 + }, + ["tree-grassland-q"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-grassland-q", + weight = 53 + }, + ["tree-snow-a"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-snow-a", + weight = 54 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-wetland-j", + weight = 830 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-wetland-k", + weight = 723 + }, + ["tree-wetland-n"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-wetland-n", + weight = 500 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-grey-dirt-5", + tree_name = "tree-wetland-o", + weight = 991 + } +} +terrains["mineral-beige-sand-2"] = { + name = "mineral-beige-sand-2", + ["tree-desert-b"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-desert-b", + weight = 5 + }, + ["tree-desert-c"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-desert-c", + weight = 13 + }, + ["tree-desert-f"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-desert-f", + weight = 4498 + }, + ["tree-desert-g"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-desert-g", + weight = 10 + }, + ["tree-desert-h"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-desert-h", + weight = 12406 + }, + ["tree-desert-i"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-desert-i", + weight = 14757 + }, + ["tree-desert-j"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-desert-j", + weight = 17672 + }, + ["tree-desert-k"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-desert-k", + weight = 2 + }, + ["tree-desert-l"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-desert-l", + weight = 13 + }, + ["tree-desert-m"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-desert-m", + weight = 13 + }, + ["tree-desert-n"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-desert-n", + weight = 12 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-dryland-b", + weight = 6 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-dryland-e", + weight = 8 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-dryland-f", + weight = 3 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-dryland-g", + weight = 1029 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-dryland-h", + weight = 2526 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-dryland-j", + weight = 2 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-dryland-k", + weight = 525 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-dryland-l", + weight = 1956 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-dryland-m", + weight = 2 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-grassland-f", + weight = 14 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-grassland-g", + weight = 1272 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-grassland-h", + weight = 660 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-grassland-h2", + weight = 398 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-grassland-h3", + weight = 3 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-grassland-k", + weight = 11 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-grassland-l", + weight = 704 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-wetland-d", + weight = 3536 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-wetland-e", + weight = 28039 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-wetland-j", + weight = 2322 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-beige-sand-2", + tree_name = "tree-wetland-k", + weight = 2194 + } +} +terrains["mineral-beige-sand-1"] = { + name = "mineral-beige-sand-1", + ["tree-desert-b"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-desert-b", + weight = 4 + }, + ["tree-desert-c"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-desert-c", + weight = 20 + }, + ["tree-desert-f"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-desert-f", + weight = 8040 + }, + ["tree-desert-g"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-desert-g", + weight = 9 + }, + ["tree-desert-h"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-desert-h", + weight = 21726 + }, + ["tree-desert-i"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-desert-i", + weight = 28380 + }, + ["tree-desert-j"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-desert-j", + weight = 26124 + }, + ["tree-desert-k"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-desert-k", + weight = 11 + }, + ["tree-desert-l"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-desert-l", + weight = 12 + }, + ["tree-desert-m"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-desert-m", + weight = 16 + }, + ["tree-desert-n"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-desert-n", + weight = 19 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-dryland-a", + weight = 4 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-dryland-b", + weight = 3 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-dryland-f", + weight = 7 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-dryland-g", + weight = 891 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-dryland-h", + weight = 2263 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-dryland-j", + weight = 2 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-dryland-k", + weight = 1086 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-dryland-l", + weight = 2771 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-grassland-f", + weight = 61 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-grassland-g", + weight = 3228 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-grassland-h", + weight = 1323 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-grassland-h2", + weight = 500 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-grassland-h3", + weight = 75 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-grassland-k", + weight = 14 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-grassland-l", + weight = 1180 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-wetland-d", + weight = 5370 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-wetland-e", + weight = 49252 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-wetland-j", + weight = 3000 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-beige-sand-1", + tree_name = "tree-wetland-k", + weight = 3339 + } +} +terrains["mineral-beige-sand-3"] = { + name = "mineral-beige-sand-3", + ["tree-desert-b"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-desert-b", + weight = 4 + }, + ["tree-desert-c"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-desert-c", + weight = 3 + }, + ["tree-desert-f"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-desert-f", + weight = 2357 + }, + ["tree-desert-g"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-desert-g", + weight = 5 + }, + ["tree-desert-h"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-desert-h", + weight = 6567 + }, + ["tree-desert-i"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-desert-i", + weight = 8653 + }, + ["tree-desert-j"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-desert-j", + weight = 8815 + }, + ["tree-desert-k"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-desert-k", + weight = 5 + }, + ["tree-desert-l"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-desert-l", + weight = 6 + }, + ["tree-desert-m"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-desert-m", + weight = 12 + }, + ["tree-desert-n"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-desert-n", + weight = 12 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-dryland-f", + weight = 3 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-dryland-g", + weight = 215 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-dryland-h", + weight = 1264 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-dryland-k", + weight = 460 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-dryland-l", + weight = 1263 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-dryland-n", + weight = 2 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-grassland-f", + weight = 30 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-grassland-g", + weight = 717 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-grassland-h", + weight = 550 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-grassland-h2", + weight = 347 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-grassland-h3", + weight = 34 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-grassland-k", + weight = 3 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-grassland-l", + weight = 328 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-wetland-d", + weight = 1889 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-wetland-e", + weight = 16231 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-wetland-j", + weight = 558 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-beige-sand-3", + tree_name = "tree-wetland-k", + weight = 1392 + } +} +terrains["mineral-cream-dirt-1"] = { + name = "mineral-cream-dirt-1", + ["tree-desert-f"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-desert-f", + weight = 671 + }, + ["tree-desert-g"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-desert-g", + weight = 190 + }, + ["tree-desert-i"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-desert-i", + weight = 915 + }, + ["tree-desert-m"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-desert-m", + weight = 152 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-dryland-a", + weight = 12 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-dryland-e", + weight = 41341 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-dryland-f", + weight = 8 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-dryland-g", + weight = 9666 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-dryland-h", + weight = 118 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-dryland-i", + weight = 47 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-dryland-j", + weight = 13161 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-dryland-k", + weight = 10256 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-dryland-l", + weight = 15 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-dryland-m", + weight = 16 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-dryland-n", + weight = 27 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-grassland-a", + weight = 48 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-grassland-b", + weight = 8 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-grassland-f", + weight = 776 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-grassland-g", + weight = 36 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-grassland-h", + weight = 141 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-grassland-h2", + weight = 88 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-grassland-h3", + weight = 2 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-grassland-i", + weight = 49 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-grassland-k", + weight = 3680 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-grassland-l", + weight = 131 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-wetland-d", + weight = 128 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-wetland-g", + weight = 5106 + }, + ["tree-wetland-i"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-wetland-i", + weight = 428 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-cream-dirt-1", + tree_name = "tree-wetland-j", + weight = 44 + } +} +terrains["mineral-cream-dirt-4"] = { + name = "mineral-cream-dirt-4", + ["tree-desert-f"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-desert-f", + weight = 329 + }, + ["tree-desert-g"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-desert-g", + weight = 20 + }, + ["tree-desert-i"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-desert-i", + weight = 331 + }, + ["tree-desert-m"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-desert-m", + weight = 47 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-dryland-e", + weight = 6037 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-dryland-f", + weight = 2 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-dryland-g", + weight = 2191 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-dryland-h", + weight = 29 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-dryland-i", + weight = 12 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-dryland-j", + weight = 2305 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-dryland-k", + weight = 1277 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-dryland-n", + weight = 3 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-grassland-a", + weight = 40 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-grassland-f", + weight = 213 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-grassland-g", + weight = 28 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-grassland-h", + weight = 73 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-grassland-h2", + weight = 27 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-grassland-i", + weight = 93 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-grassland-k", + weight = 754 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-grassland-l", + weight = 207 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-wetland-d", + weight = 59 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-wetland-g", + weight = 1099 + }, + ["tree-wetland-i"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-wetland-i", + weight = 71 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-cream-dirt-4", + tree_name = "tree-wetland-j", + weight = 20 + } +} +terrains["mineral-cream-dirt-6"] = { + name = "mineral-cream-dirt-6", + ["tree-desert-f"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-desert-f", + weight = 65 + }, + ["tree-desert-g"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-desert-g", + weight = 4 + }, + ["tree-desert-i"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-desert-i", + weight = 126 + }, + ["tree-desert-k"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-desert-k", + weight = 2 + }, + ["tree-desert-m"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-desert-m", + weight = 111 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-dryland-e", + weight = 2088 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-dryland-g", + weight = 668 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-dryland-h", + weight = 11 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-dryland-i", + weight = 7 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-dryland-j", + weight = 921 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-dryland-k", + weight = 397 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-dryland-l", + weight = 2 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-dryland-m", + weight = 2 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-dryland-n", + weight = 2 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-grassland-a", + weight = 21 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-grassland-f", + weight = 141 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-grassland-g", + weight = 6 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-grassland-h", + weight = 32 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-grassland-h2", + weight = 8 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-grassland-i", + weight = 31 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-grassland-k", + weight = 279 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-grassland-l", + weight = 89 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-grassland-n", + weight = 3 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-grassland-p", + weight = 2 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-wetland-d", + weight = 17 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-wetland-g", + weight = 331 + }, + ["tree-wetland-i"] = { + tile_name = "mineral-cream-dirt-6", + tree_name = "tree-wetland-i", + weight = 14 + } +} +terrains["mineral-cream-dirt-2"] = { + name = "mineral-cream-dirt-2", + ["tree-desert-f"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-desert-f", + weight = 535 + }, + ["tree-desert-g"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-desert-g", + weight = 148 + }, + ["tree-desert-i"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-desert-i", + weight = 797 + }, + ["tree-desert-m"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-desert-m", + weight = 45 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-dryland-a", + weight = 8 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-dryland-e", + weight = 21399 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-dryland-f", + weight = 8 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-dryland-g", + weight = 6434 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-dryland-h", + weight = 88 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-dryland-i", + weight = 15 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-dryland-j", + weight = 5729 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-dryland-k", + weight = 5794 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-dryland-l", + weight = 2 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-dryland-m", + weight = 34 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-dryland-n", + weight = 16 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-grassland-a", + weight = 207 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-grassland-b", + weight = 8 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-grassland-f", + weight = 507 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-grassland-g", + weight = 233 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-grassland-h", + weight = 65 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-grassland-h2", + weight = 66 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-grassland-i", + weight = 105 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-grassland-k", + weight = 2567 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-grassland-l", + weight = 752 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-grassland-p", + weight = 5 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-wetland-d", + weight = 82 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-wetland-g", + weight = 2326 + }, + ["tree-wetland-i"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-wetland-i", + weight = 422 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-cream-dirt-2", + tree_name = "tree-wetland-j", + weight = 26 + } +} +terrains["mineral-cream-sand-1"] = { + name = "mineral-cream-sand-1", + ["tree-desert-a"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-desert-a", + weight = 2 + }, + ["tree-desert-b"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-desert-b", + weight = 4 + }, + ["tree-desert-f"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-desert-f", + weight = 1609 + }, + ["tree-desert-g"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-desert-g", + weight = 45 + }, + ["tree-desert-h"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-desert-i", + weight = 2700 + }, + ["tree-desert-k"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-desert-k", + weight = 3 + }, + ["tree-desert-m"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-desert-m", + weight = 1389 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-dryland-e", + weight = 305 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-dryland-g", + weight = 123 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-dryland-j", + weight = 252 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-dryland-k", + weight = 189 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-grassland-f", + weight = 6 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-grassland-k", + weight = 149 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-wetland-d", + weight = 877 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-wetland-g", + weight = 77 + }, + ["tree-wetland-i"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-wetland-i", + weight = 651 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-wetland-j", + weight = 258 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-cream-sand-1", + tree_name = "tree-wetland-m", + weight = 4 + } +} +terrains["mineral-cream-dirt-3"] = { + name = "mineral-cream-dirt-3", + ["tree-desert-a"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-desert-a", + weight = 2 + }, + ["tree-desert-f"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-desert-f", + weight = 143 + }, + ["tree-desert-g"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-desert-g", + weight = 33 + }, + ["tree-desert-i"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-desert-i", + weight = 340 + }, + ["tree-desert-m"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-desert-m", + weight = 78 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-dryland-a", + weight = 3 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-dryland-e", + weight = 7845 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-dryland-f", + weight = 5 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-dryland-g", + weight = 2119 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-dryland-h", + weight = 29 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-dryland-i", + weight = 6 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-dryland-j", + weight = 2927 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-dryland-k", + weight = 2659 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-dryland-l", + weight = 3 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-dryland-m", + weight = 36 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-dryland-n", + weight = 17 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-grassland-a", + weight = 186 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-grassland-b", + weight = 10 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-grassland-f", + weight = 315 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-grassland-g", + weight = 9 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-grassland-h", + weight = 56 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-grassland-h2", + weight = 29 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-grassland-i", + weight = 43 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-grassland-k", + weight = 1768 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-grassland-l", + weight = 354 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-grassland-p", + weight = 2 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-wetland-d", + weight = 36 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-wetland-g", + weight = 1158 + }, + ["tree-wetland-i"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-wetland-i", + weight = 269 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-cream-dirt-3", + tree_name = "tree-wetland-j", + weight = 41 + } +} +terrains["mineral-cream-sand-2"] = { + name = "mineral-cream-sand-2", + ["tree-desert-b"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-desert-b", + weight = 3 + }, + ["tree-desert-f"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-desert-f", + weight = 1120 + }, + ["tree-desert-g"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-desert-g", + weight = 3 + }, + ["tree-desert-i"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-desert-i", + weight = 2128 + }, + ["tree-desert-j"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-desert-j", + weight = 2 + }, + ["tree-desert-m"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-desert-m", + weight = 1109 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-dryland-e", + weight = 145 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-dryland-g", + weight = 38 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-dryland-j", + weight = 229 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-dryland-k", + weight = 521 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-grassland-f", + weight = 5 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-grassland-h2", + weight = 7 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-grassland-k", + weight = 131 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-wetland-d", + weight = 705 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-wetland-g", + weight = 38 + }, + ["tree-wetland-i"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-wetland-i", + weight = 95 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-wetland-j", + weight = 119 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-cream-sand-2", + tree_name = "tree-wetland-m", + weight = 6 + } +} +terrains["mineral-cream-dirt-5"] = { + name = "mineral-cream-dirt-5", + ["tree-desert-f"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-desert-f", + weight = 142 + }, + ["tree-desert-g"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-desert-g", + weight = 32 + }, + ["tree-desert-i"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-desert-i", + weight = 307 + }, + ["tree-desert-m"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-desert-m", + weight = 71 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-dryland-a", + weight = 2 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-dryland-e", + weight = 2398 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-dryland-g", + weight = 787 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-dryland-h", + weight = 13 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-dryland-i", + weight = 7 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-dryland-j", + weight = 553 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-dryland-k", + weight = 532 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-dryland-n", + weight = 6 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-grassland-a", + weight = 204 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-grassland-b", + weight = 4 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-grassland-f", + weight = 116 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-grassland-g", + weight = 5 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-grassland-h", + weight = 16 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-grassland-h2", + weight = 9 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-grassland-i", + weight = 47 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-grassland-k", + weight = 1248 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-grassland-l", + weight = 575 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-grassland-n", + weight = 4 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-wetland-d", + weight = 16 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-wetland-g", + weight = 437 + }, + ["tree-wetland-i"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-wetland-i", + weight = 52 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-cream-dirt-5", + tree_name = "tree-wetland-j", + weight = 17 + } +} +terrains["mineral-cream-sand-3"] = { + name = "mineral-cream-sand-3", + ["tree-desert-b"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-desert-b", + weight = 3 + }, + ["tree-desert-f"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-desert-f", + weight = 571 + }, + ["tree-desert-g"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-desert-g", + weight = 21 + }, + ["tree-desert-i"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-desert-i", + weight = 1057 + }, + ["tree-desert-m"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-desert-m", + weight = 588 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-dryland-e", + weight = 86 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-dryland-g", + weight = 35 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-dryland-j", + weight = 92 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-dryland-k", + weight = 150 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-grassland-f", + weight = 2 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-grassland-k", + weight = 45 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-wetland-d", + weight = 308 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-wetland-g", + weight = 42 + }, + ["tree-wetland-i"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-wetland-i", + weight = 5 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-wetland-j", + weight = 86 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-cream-sand-3", + tree_name = "tree-wetland-m", + weight = 2 + } +} +terrains["mineral-tan-sand-3"] = { + name = "mineral-tan-sand-3", + ["tree-desert-a"] = { + tile_name = "mineral-tan-sand-3", + tree_name = "tree-desert-a", + weight = 2 + }, + ["tree-desert-b"] = { + tile_name = "mineral-tan-sand-3", + tree_name = "tree-desert-b", + weight = 312 + }, + ["tree-desert-d"] = { + tile_name = "mineral-tan-sand-3", + tree_name = "tree-desert-d", + weight = 2 + }, + ["tree-desert-f"] = { + tile_name = "mineral-tan-sand-3", + tree_name = "tree-desert-f", + weight = 269 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-tan-sand-3", + tree_name = "tree-dryland-a", + weight = 19 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-tan-sand-3", + tree_name = "tree-dryland-f", + weight = 19 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-tan-sand-3", + tree_name = "tree-grassland-b", + weight = 8 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-tan-sand-3", + tree_name = "tree-grassland-c", + weight = 11 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-tan-sand-3", + tree_name = "tree-grassland-f", + weight = 17 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-tan-sand-3", + tree_name = "tree-wetland-d", + weight = 264 + } +} +terrains["mineral-tan-sand-2"] = { + name = "mineral-tan-sand-2", + ["tree-desert-b"] = { + tile_name = "mineral-tan-sand-2", + tree_name = "tree-desert-b", + weight = 656 + }, + ["tree-desert-f"] = { + tile_name = "mineral-tan-sand-2", + tree_name = "tree-desert-f", + weight = 427 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-tan-sand-2", + tree_name = "tree-dryland-a", + weight = 30 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-tan-sand-2", + tree_name = "tree-dryland-f", + weight = 93 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-tan-sand-2", + tree_name = "tree-dryland-g", + weight = 3 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-tan-sand-2", + tree_name = "tree-grassland-b", + weight = 56 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-tan-sand-2", + tree_name = "tree-grassland-f", + weight = 58 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-tan-sand-2", + tree_name = "tree-wetland-b", + weight = 4 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-tan-sand-2", + tree_name = "tree-wetland-d", + weight = 617 + } +} +terrains["mineral-tan-sand-1"] = { + name = "mineral-tan-sand-1", + ["tree-desert-b"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-desert-b", + weight = 431 + }, + ["tree-desert-e"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-desert-e", + weight = 2 + }, + ["tree-desert-f"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-desert-f", + weight = 1113 + }, + ["tree-desert-h"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-dryland-a", + weight = 72 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-dryland-f", + weight = 111 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-dryland-g", + weight = 28 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-grassland-b", + weight = 135 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-grassland-f", + weight = 195 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-wetland-b", + weight = 34 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-wetland-d", + weight = 460 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-tan-sand-1", + tree_name = "tree-wetland-g", + weight = 2 + } +} +terrains["mineral-tan-dirt-1"] = { + name = "mineral-tan-dirt-1", + ["tree-desert-b"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-desert-b", + weight = 99 + }, + ["tree-desert-f"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-desert-f", + weight = 224 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-dryland-a", + weight = 480 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-dryland-c", + weight = 6 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-dryland-d", + weight = 2 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-dryland-e", + weight = 634 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-dryland-f", + weight = 758 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-dryland-g", + weight = 407 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-dryland-n", + weight = 2 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-grassland-a", + weight = 650 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-grassland-b", + weight = 109 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-grassland-c", + weight = 22 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-grassland-f", + weight = 282 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-grassland-g", + weight = 3 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-grassland-h", + weight = 7 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-grassland-i", + weight = 26 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-grassland-k", + weight = 4 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-grassland-p", + weight = 3 + }, + ["tree-wetland-a"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-wetland-a", + weight = 26 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-wetland-d", + weight = 61 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-tan-dirt-1", + tree_name = "tree-wetland-g", + weight = 70 + } +} +terrains["mineral-tan-dirt-5"] = { + name = "mineral-tan-dirt-5", + ["tree-desert-b"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-desert-b", + weight = 8 + }, + ["tree-desert-f"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-desert-f", + weight = 30 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-dryland-a", + weight = 111 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-dryland-e", + weight = 136 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-dryland-f", + weight = 127 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-dryland-g", + weight = 97 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-dryland-h", + weight = 4 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-dryland-n", + weight = 3 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-grassland-a", + weight = 418 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-grassland-b", + weight = 140 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-grassland-f", + weight = 363 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-grassland-g", + weight = 2 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-grassland-h", + weight = 20 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-grassland-h2", + weight = 2 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-grassland-i", + weight = 3 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-grassland-k", + weight = 3 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-tan-dirt-5", + tree_name = "tree-wetland-d", + weight = 40 + } +} +terrains["mineral-tan-dirt-2"] = { + name = "mineral-tan-dirt-2", + ["tree-desert-b"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-desert-b", + weight = 4 + }, + ["tree-desert-f"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-desert-f", + weight = 41 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-dryland-a", + weight = 19 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-dryland-e", + weight = 295 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-dryland-f", + weight = 379 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-dryland-g", + weight = 598 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-dryland-i", + weight = 3 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-dryland-k", + weight = 4 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-grassland-a", + weight = 274 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-grassland-b", + weight = 4 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-grassland-f", + weight = 704 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-grassland-h", + weight = 14 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-grassland-h2", + weight = 8 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-grassland-i", + weight = 2 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-grassland-k", + weight = 6 + }, + ["tree-wetland-a"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-wetland-a", + weight = 4 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-wetland-d", + weight = 73 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-tan-dirt-2", + tree_name = "tree-wetland-g", + weight = 20 + } +} +terrains["mineral-tan-dirt-3"] = { + name = "mineral-tan-dirt-3", + ["tree-desert-a"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-desert-a", + weight = 2 + }, + ["tree-desert-b"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-desert-b", + weight = 58 + }, + ["tree-desert-f"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-desert-f", + weight = 113 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-dryland-a", + weight = 59 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-dryland-d", + weight = 2 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-dryland-e", + weight = 105 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-dryland-f", + weight = 188 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-dryland-g", + weight = 246 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-dryland-h", + weight = 6 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-dryland-i", + weight = 3 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-dryland-n", + weight = 3 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-grassland-a", + weight = 355 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-grassland-b", + weight = 27 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-grassland-f", + weight = 162 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-grassland-g", + weight = 3 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-grassland-h", + weight = 8 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-grassland-h2", + weight = 3 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-grassland-i", + weight = 25 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-grassland-k", + weight = 18 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-tan-dirt-3", + tree_name = "tree-wetland-d", + weight = 157 + } +} +terrains["mineral-tan-dirt-4"] = { + name = "mineral-tan-dirt-4", + ["tree-desert-b"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-desert-b", + weight = 2 + }, + ["tree-desert-f"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-desert-f", + weight = 57 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-dryland-a", + weight = 63 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-dryland-e", + weight = 34 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-dryland-f", + weight = 179 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-dryland-g", + weight = 17 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-grassland-a", + weight = 251 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-grassland-b", + weight = 69 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-grassland-c", + weight = 3 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-grassland-f", + weight = 1217 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-grassland-g", + weight = 2 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-grassland-h", + weight = 8 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-grassland-i", + weight = 28 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-grassland-k", + weight = 3 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-wetland-d", + weight = 95 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-tan-dirt-4", + tree_name = "tree-wetland-g", + weight = 30 + } +} +terrains["mineral-tan-dirt-6"] = { + name = "mineral-tan-dirt-6", + ["tree-desert-b"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-desert-b", + weight = 11 + }, + ["tree-desert-f"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-desert-f", + weight = 17 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-dryland-a", + weight = 3 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-dryland-e", + weight = 4 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-dryland-f", + weight = 32 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-dryland-g", + weight = 36 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-dryland-h", + weight = 2 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-dryland-i", + weight = 3 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-grassland-a", + weight = 241 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-grassland-b", + weight = 57 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-grassland-f", + weight = 424 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-grassland-h", + weight = 2 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-grassland-i", + weight = 3 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-wetland-d", + weight = 41 + }, + ["tree-wetland-g"] = { + tile_name = "mineral-tan-dirt-6", + tree_name = "tree-wetland-g", + weight = 2 + } +} +terrains["mineral-white-sand-1"] = { + name = "mineral-white-sand-1", + ["tree-desert-a"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-desert-a", + weight = 2 + }, + ["tree-desert-b"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-desert-b", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-desert-i", + weight = 3009 + }, + ["tree-desert-k"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-desert-k", + weight = 2 + }, + ["tree-desert-l"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-desert-l", + weight = 2 + }, + ["tree-desert-m"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-desert-m", + weight = 1605 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-dryland-j", + weight = 69 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-dryland-k", + weight = 148 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-dryland-n", + weight = 8 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-grassland-k", + weight = 488 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-wetland-j", + weight = 166 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-white-sand-1", + tree_name = "tree-wetland-m", + weight = 736 + } +} +terrains["mineral-white-dirt-2"] = { + name = "mineral-white-dirt-2", + ["tree-desert-i"] = { + tile_name = "mineral-white-dirt-2", + tree_name = "tree-desert-i", + weight = 274 + }, + ["tree-desert-m"] = { + tile_name = "mineral-white-dirt-2", + tree_name = "tree-desert-m", + weight = 29 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-white-dirt-2", + tree_name = "tree-dryland-j", + weight = 194 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-white-dirt-2", + tree_name = "tree-dryland-k", + weight = 530 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-white-dirt-2", + tree_name = "tree-dryland-m", + weight = 6 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-white-dirt-2", + tree_name = "tree-grassland-k", + weight = 129 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-white-dirt-2", + tree_name = "tree-grassland-l", + weight = 36 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-white-dirt-2", + tree_name = "tree-grassland-n", + weight = 34 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-white-dirt-2", + tree_name = "tree-wetland-j", + weight = 3 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-white-dirt-2", + tree_name = "tree-wetland-m", + weight = 7 + } +} +terrains["mineral-white-dirt-1"] = { + name = "mineral-white-dirt-1", + ["tree-desert-a"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-desert-a", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-desert-i", + weight = 319 + }, + ["tree-desert-k"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-desert-k", + weight = 2 + }, + ["tree-desert-m"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-desert-m", + weight = 73 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-dryland-a", + weight = 3 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-dryland-e", + weight = 3 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-dryland-j", + weight = 1167 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-dryland-k", + weight = 1264 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-dryland-m", + weight = 2 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-grassland-f", + weight = 7 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-grassland-h3", + weight = 2 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-grassland-k", + weight = 396 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-grassland-l", + weight = 173 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-grassland-n", + weight = 162 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-wetland-j", + weight = 5 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-white-dirt-1", + tree_name = "tree-wetland-m", + weight = 298 + } +} +terrains["mineral-white-dirt-5"] = { + name = "mineral-white-dirt-5", + ["tree-desert-i"] = { + tile_name = "mineral-white-dirt-5", + tree_name = "tree-desert-i", + weight = 291 + }, + ["tree-desert-m"] = { + tile_name = "mineral-white-dirt-5", + tree_name = "tree-desert-m", + weight = 72 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-white-dirt-5", + tree_name = "tree-dryland-j", + weight = 58 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-white-dirt-5", + tree_name = "tree-dryland-k", + weight = 85 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-white-dirt-5", + tree_name = "tree-grassland-k", + weight = 65 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-white-dirt-5", + tree_name = "tree-grassland-l", + weight = 32 + }, + ["tree-wetland-i"] = { + tile_name = "mineral-white-dirt-5", + tree_name = "tree-wetland-i", + weight = 8 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-white-dirt-5", + tree_name = "tree-wetland-m", + weight = 155 + } +} +terrains["mineral-white-sand-3"] = { + name = "mineral-white-sand-3", + ["tree-desert-i"] = { + tile_name = "mineral-white-sand-3", + tree_name = "tree-desert-i", + weight = 811 + }, + ["tree-desert-m"] = { + tile_name = "mineral-white-sand-3", + tree_name = "tree-desert-m", + weight = 372 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-white-sand-3", + tree_name = "tree-dryland-j", + weight = 6 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-white-sand-3", + tree_name = "tree-dryland-k", + weight = 55 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-white-sand-3", + tree_name = "tree-grassland-k", + weight = 85 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-white-sand-3", + tree_name = "tree-wetland-j", + weight = 4 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-white-sand-3", + tree_name = "tree-wetland-m", + weight = 206 + } +} +terrains["mineral-white-sand-2"] = { + name = "mineral-white-sand-2", + ["tree-desert-a"] = { + tile_name = "mineral-white-sand-2", + tree_name = "tree-desert-a", + weight = 2 + }, + ["tree-desert-g"] = { + tile_name = "mineral-white-sand-2", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "mineral-white-sand-2", + tree_name = "tree-desert-i", + weight = 1182 + }, + ["tree-desert-m"] = { + tile_name = "mineral-white-sand-2", + tree_name = "tree-desert-m", + weight = 616 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-white-sand-2", + tree_name = "tree-dryland-j", + weight = 28 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-white-sand-2", + tree_name = "tree-dryland-k", + weight = 144 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-white-sand-2", + tree_name = "tree-grassland-k", + weight = 227 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-white-sand-2", + tree_name = "tree-grassland-n", + weight = 3 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-white-sand-2", + tree_name = "tree-wetland-j", + weight = 56 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-white-sand-2", + tree_name = "tree-wetland-m", + weight = 399 + } +} +terrains["mineral-white-dirt-3"] = { + name = "mineral-white-dirt-3", + ["tree-desert-i"] = { + tile_name = "mineral-white-dirt-3", + tree_name = "tree-desert-i", + weight = 150 + }, + ["tree-desert-m"] = { + tile_name = "mineral-white-dirt-3", + tree_name = "tree-desert-m", + weight = 29 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-white-dirt-3", + tree_name = "tree-dryland-j", + weight = 178 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-white-dirt-3", + tree_name = "tree-dryland-k", + weight = 237 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-white-dirt-3", + tree_name = "tree-grassland-k", + weight = 242 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-white-dirt-3", + tree_name = "tree-grassland-l", + weight = 47 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-white-dirt-3", + tree_name = "tree-wetland-j", + weight = 20 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-white-dirt-3", + tree_name = "tree-wetland-m", + weight = 23 + } +} +terrains["mineral-white-dirt-6"] = { + name = "mineral-white-dirt-6", + ["tree-desert-i"] = { + tile_name = "mineral-white-dirt-6", + tree_name = "tree-desert-i", + weight = 114 + }, + ["tree-desert-m"] = { + tile_name = "mineral-white-dirt-6", + tree_name = "tree-desert-m", + weight = 59 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-white-dirt-6", + tree_name = "tree-dryland-j", + weight = 121 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-white-dirt-6", + tree_name = "tree-dryland-k", + weight = 109 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-white-dirt-6", + tree_name = "tree-grassland-f", + weight = 3 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-white-dirt-6", + tree_name = "tree-grassland-k", + weight = 100 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-white-dirt-6", + tree_name = "tree-grassland-l", + weight = 111 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-white-dirt-6", + tree_name = "tree-grassland-n", + weight = 4 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-white-dirt-6", + tree_name = "tree-wetland-j", + weight = 4 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-white-dirt-6", + tree_name = "tree-wetland-m", + weight = 12 + } +} +terrains["mineral-white-dirt-4"] = { + name = "mineral-white-dirt-4", + ["tree-desert-i"] = { + tile_name = "mineral-white-dirt-4", + tree_name = "tree-desert-i", + weight = 151 + }, + ["tree-desert-m"] = { + tile_name = "mineral-white-dirt-4", + tree_name = "tree-desert-m", + weight = 25 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-white-dirt-4", + tree_name = "tree-dryland-j", + weight = 88 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-white-dirt-4", + tree_name = "tree-dryland-k", + weight = 227 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-white-dirt-4", + tree_name = "tree-grassland-k", + weight = 44 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-white-dirt-4", + tree_name = "tree-grassland-l", + weight = 191 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-white-dirt-4", + tree_name = "tree-grassland-n", + weight = 13 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-white-dirt-4", + tree_name = "tree-wetland-j", + weight = 21 + }, + ["tree-wetland-m"] = { + tile_name = "mineral-white-dirt-4", + tree_name = "tree-wetland-m", + weight = 37 + } +} +terrains["vegetation-olive-grass-1"] = { + name = "vegetation-olive-grass-1", + ["tree-desert-f"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-desert-f", + weight = 4 + }, + ["tree-desert-h"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-desert-h", + weight = 3 + }, + ["tree-dryland-e"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-dryland-e", + weight = 565 + }, + ["tree-dryland-g"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-dryland-g", + weight = 8 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-dryland-h", + weight = 442 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-a", + weight = 5756 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-b", + weight = 492 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-c", + weight = 2560 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-d", + weight = 126 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-e", + weight = 155 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-f", + weight = 66378 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-g", + weight = 247274 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-h", + weight = 107218 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-h2", + weight = 1114 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-i", + weight = 3403 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-k", + weight = 553 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-l", + weight = 1651 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-n", + weight = 1572 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-grassland-p", + weight = 654 + }, + ["tree-wetland-a"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-wetland-a", + weight = 34 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-wetland-b", + weight = 2139 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-wetland-d", + weight = 216786 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-wetland-e", + weight = 125666 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-wetland-f", + weight = 1237 + }, + ["tree-wetland-g"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-wetland-g", + weight = 5517 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-wetland-h", + weight = 2530 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-wetland-j", + weight = 2052 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-wetland-k", + weight = 3 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-olive-grass-1", + tree_name = "tree-wetland-n", + weight = 1437 + } +} +terrains["vegetation-olive-grass-2"] = { + name = "vegetation-olive-grass-2", + ["tree-desert-f"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-desert-f", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-dryland-e"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-dryland-e", + weight = 343 + }, + ["tree-dryland-g"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-dryland-g", + weight = 5 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-dryland-h", + weight = 109 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-a", + weight = 2947 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-b", + weight = 291 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-c", + weight = 1511 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-d", + weight = 62 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-e", + weight = 48 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-f", + weight = 36058 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-g", + weight = 145692 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-h", + weight = 69559 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-h2", + weight = 361 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-i", + weight = 1924 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-k", + weight = 337 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-l", + weight = 1122 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-n", + weight = 1042 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-grassland-p", + weight = 395 + }, + ["tree-wetland-a"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-wetland-a", + weight = 14 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-wetland-b", + weight = 926 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-wetland-d", + weight = 105981 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-wetland-e", + weight = 63871 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-wetland-f", + weight = 814 + }, + ["tree-wetland-g"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-wetland-g", + weight = 2060 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-wetland-h", + weight = 1551 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-wetland-j", + weight = 1478 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-wetland-k", + weight = 6 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-olive-grass-2", + tree_name = "tree-wetland-n", + weight = 735 + } +} +terrains["vegetation-yellow-grass-2"] = { + name = "vegetation-yellow-grass-2", + ["tree-desert-h"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-dryland-c"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-dryland-c", + weight = 31 + }, + ["tree-dryland-e"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-dryland-e", + weight = 3 + }, + ["tree-dryland-f"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-dryland-f", + weight = 492 + }, + ["tree-dryland-g"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-dryland-g", + weight = 4 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-dryland-h", + weight = 38 + }, + ["tree-dryland-k"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-dryland-k", + weight = 2 + }, + ["tree-dryland-n"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-dryland-n", + weight = 3 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-a", + weight = 1136 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-b", + weight = 81 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-c", + weight = 25685 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-d", + weight = 26 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-e", + weight = 1450 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-f", + weight = 31147 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-g", + weight = 62257 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-h", + weight = 33508 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-h2", + weight = 237 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-i", + weight = 563 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-k", + weight = 20 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-l", + weight = 442 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-n", + weight = 238 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-grassland-p", + weight = 96 + }, + ["tree-wetland-a"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-wetland-a", + weight = 110 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-wetland-b", + weight = 84 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-wetland-d", + weight = 19497 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-wetland-e", + weight = 6576 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-wetland-f", + weight = 140 + }, + ["tree-wetland-g"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-wetland-g", + weight = 47 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-wetland-h", + weight = 7 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-wetland-j", + weight = 67 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-yellow-grass-2", + tree_name = "tree-wetland-n", + weight = 38 + } +} +terrains["vegetation-yellow-grass-1"] = { + name = "vegetation-yellow-grass-1", + ["tree-desert-c"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-desert-c", + weight = 2 + }, + ["tree-dryland-c"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-dryland-c", + weight = 94 + }, + ["tree-dryland-e"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-dryland-e", + weight = 3 + }, + ["tree-dryland-f"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-dryland-f", + weight = 908 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-dryland-h", + weight = 24 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-dryland-l", + weight = 3 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-a", + weight = 2097 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-b", + weight = 151 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-c", + weight = 51083 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-d", + weight = 32 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-e", + weight = 3763 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-f", + weight = 55271 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-g", + weight = 119284 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-h", + weight = 47088 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-h2", + weight = 111 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-i", + weight = 904 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-k", + weight = 57 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-l", + weight = 1063 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-n", + weight = 460 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-grassland-p", + weight = 116 + }, + ["tree-wetland-a"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-wetland-a", + weight = 50 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-wetland-b", + weight = 24 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-wetland-d", + weight = 14775 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-wetland-e", + weight = 10783 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-wetland-f", + weight = 110 + }, + ["tree-wetland-g"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-wetland-g", + weight = 93 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-wetland-h", + weight = 104 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-wetland-j", + weight = 103 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-yellow-grass-1", + tree_name = "tree-wetland-n", + weight = 64 + } +} +terrains["vegetation-orange-grass-1"] = { + name = "vegetation-orange-grass-1", + ["tree-dryland-a"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-dryland-a", + weight = 309 + }, + ["tree-dryland-b"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-dryland-b", + weight = 482 + }, + ["tree-dryland-c"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-dryland-c", + weight = 5 + }, + ["tree-dryland-f"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-dryland-f", + weight = 483 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-dryland-h", + weight = 2 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-grassland-a", + weight = 2300 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-grassland-b", + weight = 49269 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-grassland-c", + weight = 498960 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-grassland-d", + weight = 9540 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-grassland-e", + weight = 20238 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-grassland-f", + weight = 18398 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-grassland-g", + weight = 1990 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-grassland-h", + weight = 99 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-grassland-l", + weight = 1433 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-grassland-n", + weight = 2946 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-grassland-p", + weight = 1800 + }, + ["tree-wetland-a"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-wetland-a", + weight = 84 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-wetland-b", + weight = 38015 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-wetland-c", + weight = 420 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-wetland-d", + weight = 12548 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-wetland-e", + weight = 13451 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-wetland-f", + weight = 18 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-wetland-j", + weight = 220 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-orange-grass-1", + tree_name = "tree-wetland-n", + weight = 177 + } +} +terrains["vegetation-orange-grass-2"] = { + name = "vegetation-orange-grass-2", + ["tree-desert-c"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-desert-c", + weight = 2 + }, + ["tree-dryland-a"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-dryland-a", + weight = 350 + }, + ["tree-dryland-b"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-dryland-b", + weight = 670 + }, + ["tree-dryland-c"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-dryland-c", + weight = 11 + }, + ["tree-dryland-f"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-dryland-f", + weight = 451 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-a", + weight = 1457 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-b", + weight = 32149 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-c", + weight = 299174 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-d", + weight = 7333 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-e", + weight = 10762 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-f", + weight = 8989 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-g", + weight = 1510 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-h", + weight = 371 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-i", + weight = 2 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-k", + weight = 2 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-l", + weight = 955 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-n", + weight = 1561 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-grassland-p", + weight = 1037 + }, + ["tree-wetland-a"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-wetland-a", + weight = 52 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-wetland-b", + weight = 20847 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-wetland-c", + weight = 149 + }, + ["tree-wetland-d"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-wetland-d", + weight = 5300 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-wetland-e", + weight = 6589 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-wetland-f", + weight = 9 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-wetland-j", + weight = 59 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-orange-grass-2", + tree_name = "tree-wetland-n", + weight = 96 + } +} +terrains["mineral-brown-dirt-1"] = { + name = "mineral-brown-dirt-1", + ["tree-desert-a"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-desert-a", + weight = 5 + }, + ["tree-desert-b"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-desert-b", + weight = 673 + }, + ["tree-desert-c"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-desert-c", + weight = 4456 + }, + ["tree-desert-d"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-desert-d", + weight = 5 + }, + ["tree-desert-f"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-desert-f", + weight = 1649 + }, + ["tree-desert-h"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-desert-h", + weight = 2940 + }, + ["tree-desert-n"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-desert-n", + weight = 4 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-a", + weight = 18093 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-b", + weight = 94976 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-c", + weight = 118 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-d", + weight = 461 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-e", + weight = 370 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-f", + weight = 205397 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-g", + weight = 23042 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-h", + weight = 47828 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-i", + weight = 60 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-k", + weight = 105 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-l", + weight = 160 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-dryland-n", + weight = 75 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-a", + weight = 303 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-b", + weight = 4186 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-c", + weight = 67890 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-d", + weight = 36 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-e", + weight = 133 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-f", + weight = 4758 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-g", + weight = 25269 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-h", + weight = 31832 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-h2", + weight = 3351 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-i", + weight = 213 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-l", + weight = 210 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-n", + weight = 114 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-grassland-p", + weight = 126 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-wetland-b", + weight = 5815 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-wetland-d", + weight = 1788 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-brown-dirt-1", + tree_name = "tree-wetland-e", + weight = 22434 + } +} +terrains["mineral-brown-dirt-6"] = { + name = "mineral-brown-dirt-6", + ["tree-desert-b"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-desert-b", + weight = 61 + }, + ["tree-desert-c"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-desert-c", + weight = 1300 + }, + ["tree-desert-f"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-desert-f", + weight = 477 + }, + ["tree-desert-h"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-desert-h", + weight = 791 + }, + ["tree-desert-j"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-desert-j", + weight = 3 + }, + ["tree-desert-n"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-desert-n", + weight = 3 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-a", + weight = 1207 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-b", + weight = 6187 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-c", + weight = 20 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-d", + weight = 41 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-e", + weight = 35 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-f", + weight = 16441 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-g", + weight = 1429 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-h", + weight = 5806 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-i", + weight = 2 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-k", + weight = 4 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-l", + weight = 14 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-dryland-n", + weight = 5 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-a", + weight = 108 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-b", + weight = 797 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-c", + weight = 16471 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-d", + weight = 7 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-e", + weight = 32 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-f", + weight = 1953 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-g", + weight = 5684 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-h", + weight = 7299 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-h2", + weight = 2005 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-h3", + weight = 3 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-i", + weight = 93 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-l", + weight = 85 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-n", + weight = 70 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-grassland-p", + weight = 41 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-wetland-b", + weight = 606 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-wetland-d", + weight = 228 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-brown-dirt-6", + tree_name = "tree-wetland-e", + weight = 2464 + } +} +terrains["mineral-brown-dirt-5"] = { + name = "mineral-brown-dirt-5", + ["tree-desert-a"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-desert-a", + weight = 6 + }, + ["tree-desert-b"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-desert-b", + weight = 122 + }, + ["tree-desert-c"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-desert-c", + weight = 1368 + }, + ["tree-desert-d"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-desert-d", + weight = 3 + }, + ["tree-desert-f"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-desert-f", + weight = 314 + }, + ["tree-desert-h"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-desert-h", + weight = 799 + }, + ["tree-desert-j"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-desert-j", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-desert-n", + weight = 2 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-a", + weight = 2563 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-b", + weight = 10535 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-c", + weight = 18 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-d", + weight = 50 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-e", + weight = 37 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-f", + weight = 27269 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-g", + weight = 1219 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-h", + weight = 8353 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-i", + weight = 9 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-k", + weight = 11 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-l", + weight = 16 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-dryland-n", + weight = 11 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-a", + weight = 95 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-b", + weight = 1174 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-c", + weight = 21526 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-d", + weight = 23 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-e", + weight = 30 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-f", + weight = 2605 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-g", + weight = 7961 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-h", + weight = 6395 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-h2", + weight = 2034 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-h3", + weight = 6 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-i", + weight = 55 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-l", + weight = 101 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-n", + weight = 53 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-grassland-p", + weight = 41 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-wetland-b", + weight = 1191 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-wetland-d", + weight = 383 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-brown-dirt-5", + tree_name = "tree-wetland-e", + weight = 3294 + } +} +terrains["mineral-brown-dirt-2"] = { + name = "mineral-brown-dirt-2", + ["tree-desert-a"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-desert-a", + weight = 4 + }, + ["tree-desert-b"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-desert-b", + weight = 367 + }, + ["tree-desert-c"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-desert-c", + weight = 2762 + }, + ["tree-desert-e"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-desert-e", + weight = 2 + }, + ["tree-desert-f"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-desert-f", + weight = 841 + }, + ["tree-desert-g"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-desert-h", + weight = 2261 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-a", + weight = 9728 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-b", + weight = 49205 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-c", + weight = 66 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-d", + weight = 253 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-e", + weight = 208 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-f", + weight = 112952 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-g", + weight = 11216 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-h", + weight = 28540 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-i", + weight = 40 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-k", + weight = 29 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-l", + weight = 80 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-dryland-n", + weight = 55 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-a", + weight = 242 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-b", + weight = 4237 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-c", + weight = 49853 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-d", + weight = 25 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-e", + weight = 82 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-f", + weight = 4823 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-g", + weight = 15957 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-h", + weight = 23517 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-h2", + weight = 3040 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-h3", + weight = 4 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-i", + weight = 107 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-l", + weight = 144 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-n", + weight = 186 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-grassland-p", + weight = 71 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-wetland-b", + weight = 3704 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-wetland-d", + weight = 1109 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-brown-dirt-2", + tree_name = "tree-wetland-e", + weight = 11432 + } +} +terrains["mineral-brown-dirt-3"] = { + name = "mineral-brown-dirt-3", + ["tree-desert-a"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-desert-a", + weight = 3 + }, + ["tree-desert-b"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-desert-b", + weight = 177 + }, + ["tree-desert-c"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-desert-c", + weight = 1883 + }, + ["tree-desert-f"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-desert-f", + weight = 452 + }, + ["tree-desert-g"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-desert-g", + weight = 3 + }, + ["tree-desert-h"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-desert-h", + weight = 1337 + }, + ["tree-desert-n"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-desert-n", + weight = 2 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-a", + weight = 5893 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-b", + weight = 28623 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-c", + weight = 25 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-d", + weight = 102 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-e", + weight = 87 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-f", + weight = 55882 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-g", + weight = 5474 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-h", + weight = 19579 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-i", + weight = 10 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-k", + weight = 13 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-l", + weight = 67 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-dryland-n", + weight = 33 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-a", + weight = 157 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-b", + weight = 2954 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-c", + weight = 33959 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-d", + weight = 23 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-e", + weight = 42 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-f", + weight = 3369 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-g", + weight = 12790 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-h", + weight = 10527 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-h2", + weight = 2151 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-h3", + weight = 5 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-i", + weight = 56 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-l", + weight = 112 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-n", + weight = 159 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-grassland-p", + weight = 92 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-wetland-b", + weight = 1864 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-wetland-d", + weight = 589 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-brown-dirt-3", + tree_name = "tree-wetland-e", + weight = 6682 + } +} +terrains["mineral-brown-dirt-4"] = { + name = "mineral-brown-dirt-4", + ["tree-desert-a"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-desert-a", + weight = 2 + }, + ["tree-desert-b"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-desert-b", + weight = 250 + }, + ["tree-desert-c"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-desert-c", + weight = 1887 + }, + ["tree-desert-f"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-desert-f", + weight = 409 + }, + ["tree-desert-h"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-desert-h", + weight = 998 + }, + ["tree-desert-j"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-desert-j", + weight = 2 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-a", + weight = 2424 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-b", + weight = 13394 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-c", + weight = 16 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-d", + weight = 92 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-e", + weight = 72 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-f", + weight = 34218 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-g", + weight = 4661 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-h", + weight = 10271 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-i", + weight = 6 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-k", + weight = 13 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-l", + weight = 30 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-dryland-n", + weight = 17 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-a", + weight = 152 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-b", + weight = 844 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-c", + weight = 20822 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-d", + weight = 2 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-e", + weight = 53 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-f", + weight = 2412 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-g", + weight = 7248 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-h", + weight = 10630 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-h2", + weight = 1801 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-h3", + weight = 4 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-i", + weight = 74 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-l", + weight = 128 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-n", + weight = 137 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-grassland-p", + weight = 80 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-wetland-b", + weight = 1279 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-wetland-d", + weight = 243 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-brown-dirt-4", + tree_name = "tree-wetland-e", + weight = 5027 + } +} +terrains["vegetation-turquoise-grass-1"] = { + name = "vegetation-turquoise-grass-1", + ["tree-desert-n"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-desert-n", + weight = 7 + }, + ["tree-dryland-b"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-dryland-b", + weight = 2 + }, + ["tree-dryland-j"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-dryland-j", + weight = 3 + }, + ["tree-dryland-k"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-dryland-k", + weight = 91 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-dryland-l", + weight = 2734 + }, + ["tree-dryland-n"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-dryland-n", + weight = 7 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-c", + weight = 1183 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-d", + weight = 36 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-e", + weight = 24 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-g", + weight = 286 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-h", + weight = 112541 + }, + ["tree-grassland-h3"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-h3", + weight = 326 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-k", + weight = 487 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-l", + weight = 324 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-m", + weight = 240 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-n", + weight = 84944 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-p", + weight = 217191 + }, + ["tree-grassland-q"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-grassland-q", + weight = 506 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-wetland-b", + weight = 23 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-wetland-c", + weight = 12 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-wetland-e", + weight = 550 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-wetland-j", + weight = 26790 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-wetland-k", + weight = 108332 + }, + ["tree-wetland-l"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-wetland-l", + weight = 836 + }, + ["tree-wetland-m"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-wetland-m", + weight = 886 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-wetland-n", + weight = 216 + }, + ["tree-wetland-o"] = { + tile_name = "vegetation-turquoise-grass-1", + tree_name = "tree-wetland-o", + weight = 3124 + } +} +terrains["vegetation-turquoise-grass-2"] = { + name = "vegetation-turquoise-grass-2", + ["tree-desert-n"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-desert-n", + weight = 4 + }, + ["tree-dryland-f"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-dryland-f", + weight = 2 + }, + ["tree-dryland-j"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-dryland-j", + weight = 3 + }, + ["tree-dryland-k"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-dryland-k", + weight = 136 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-dryland-l", + weight = 1189 + }, + ["tree-dryland-n"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-dryland-n", + weight = 15 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-c", + weight = 856 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-d", + weight = 38 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-e", + weight = 11 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-g", + weight = 199 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-h", + weight = 65406 + }, + ["tree-grassland-h3"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-h3", + weight = 150 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-k", + weight = 338 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-l", + weight = 252 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-m", + weight = 239 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-n", + weight = 55524 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-p", + weight = 134901 + }, + ["tree-grassland-q"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-grassland-q", + weight = 377 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-wetland-b", + weight = 18 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-wetland-e", + weight = 284 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-wetland-j", + weight = 18099 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-wetland-k", + weight = 60185 + }, + ["tree-wetland-l"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-wetland-l", + weight = 488 + }, + ["tree-wetland-m"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-wetland-m", + weight = 239 + }, + ["tree-wetland-n"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-wetland-n", + weight = 137 + }, + ["tree-wetland-o"] = { + tile_name = "vegetation-turquoise-grass-2", + tree_name = "tree-wetland-o", + weight = 1987 + } +} +terrains["vegetation-blue-grass-2"] = { + name = "vegetation-blue-grass-2", + ["tree-desert-j"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-desert-j", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-desert-n", + weight = 5 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-dryland-h", + weight = 3 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-dryland-l", + weight = 217 + }, + ["tree-dryland-m"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-dryland-m", + weight = 91 + }, + ["tree-dryland-o"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-dryland-o", + weight = 153 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-grassland-c", + weight = 31 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-grassland-d", + weight = 1075 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-grassland-e", + weight = 684 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-grassland-h", + weight = 1092 + }, + ["tree-grassland-h3"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-grassland-h3", + weight = 376 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-grassland-i", + weight = 378 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-grassland-k", + weight = 891 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-grassland-m", + weight = 35923 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-grassland-n", + weight = 572 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-grassland-p", + weight = 6382 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-wetland-c", + weight = 57 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-wetland-e", + weight = 217 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-wetland-f", + weight = 52 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-wetland-h", + weight = 155 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-wetland-j", + weight = 337 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-wetland-k", + weight = 45630 + }, + ["tree-wetland-l"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-wetland-l", + weight = 36774 + }, + ["tree-wetland-m"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-wetland-m", + weight = 245 + }, + ["tree-wetland-o"] = { + tile_name = "vegetation-blue-grass-2", + tree_name = "tree-wetland-o", + weight = 3489 + } +} +terrains["vegetation-blue-grass-1"] = { + name = "vegetation-blue-grass-1", + ["tree-desert-n"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-desert-n", + weight = 11 + }, + ["tree-dryland-c"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-dryland-c", + weight = 2 + }, + ["tree-dryland-l"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-dryland-l", + weight = 526 + }, + ["tree-dryland-m"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-dryland-m", + weight = 50 + }, + ["tree-dryland-n"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-dryland-n", + weight = 2 + }, + ["tree-dryland-o"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-dryland-o", + weight = 359 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-c", + weight = 42 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-d", + weight = 1974 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-e", + weight = 990 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-h", + weight = 2247 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-h2", + weight = 4 + }, + ["tree-grassland-h3"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-h3", + weight = 622 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-i", + weight = 775 + }, + ["tree-grassland-k"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-k", + weight = 1054 + }, + ["tree-grassland-l"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-l", + weight = 7 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-m", + weight = 53412 + }, + ["tree-grassland-n"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-n", + weight = 684 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-grassland-p", + weight = 14362 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-wetland-c", + weight = 116 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-wetland-e", + weight = 437 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-wetland-f", + weight = 148 + }, + ["tree-wetland-h"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-wetland-h", + weight = 567 + }, + ["tree-wetland-j"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-wetland-j", + weight = 530 + }, + ["tree-wetland-k"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-wetland-k", + weight = 59120 + }, + ["tree-wetland-l"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-wetland-l", + weight = 53635 + }, + ["tree-wetland-m"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-wetland-m", + weight = 346 + }, + ["tree-wetland-o"] = { + tile_name = "vegetation-blue-grass-1", + tree_name = "tree-wetland-o", + weight = 6742 + } +} +terrains["mineral-aubergine-dirt-5"] = { + name = "mineral-aubergine-dirt-5", + ["tree-desert-h"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-desert-h", + weight = 294 + }, + ["tree-desert-k"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-desert-k", + weight = 468 + }, + ["tree-desert-l"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-desert-l", + weight = 4 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-dryland-c", + weight = 8 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-dryland-e", + weight = 5 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-dryland-g", + weight = 5 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-dryland-h", + weight = 2968 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-dryland-i", + weight = 609 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-dryland-j", + weight = 2 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-dryland-k", + weight = 2 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-dryland-l", + weight = 419 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-dryland-m", + weight = 2569 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-dryland-o", + weight = 7 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-grassland-d", + weight = 2 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-grassland-e", + weight = 19 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-grassland-g", + weight = 12 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-grassland-h", + weight = 11 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-grassland-h2", + weight = 4408 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-grassland-h3", + weight = 1819 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-grassland-i", + weight = 1058 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-grassland-k", + weight = 10 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-grassland-m", + weight = 259 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-wetland-e", + weight = 261 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-wetland-f", + weight = 11 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-wetland-h", + weight = 157 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-wetland-k", + weight = 11 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-aubergine-dirt-5", + tree_name = "tree-wetland-l", + weight = 5 + } +} +terrains["mineral-aubergine-dirt-3"] = { + name = "mineral-aubergine-dirt-3", + ["tree-desert-h"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-desert-h", + weight = 554 + }, + ["tree-desert-k"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-desert-k", + weight = 552 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-dryland-c", + weight = 18 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-dryland-d", + weight = 10 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-dryland-e", + weight = 5 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-dryland-g", + weight = 19 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-dryland-h", + weight = 6048 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-dryland-i", + weight = 3400 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-dryland-k", + weight = 3 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-dryland-l", + weight = 400 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-dryland-m", + weight = 2602 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-dryland-o", + weight = 12 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-grassland-e", + weight = 9 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-grassland-f", + weight = 2 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-grassland-h", + weight = 4 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-grassland-h2", + weight = 7345 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-grassland-h3", + weight = 2441 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-grassland-i", + weight = 2781 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-grassland-k", + weight = 9 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-grassland-m", + weight = 179 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-wetland-e", + weight = 153 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-wetland-f", + weight = 19 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-wetland-h", + weight = 533 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-wetland-k", + weight = 24 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-aubergine-dirt-3", + tree_name = "tree-wetland-l", + weight = 46 + } +} +terrains["mineral-aubergine-dirt-1"] = { + name = "mineral-aubergine-dirt-1", + ["tree-desert-h"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-desert-h", + weight = 1133 + }, + ["tree-desert-i"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-desert-i", + weight = 3 + }, + ["tree-desert-k"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-desert-k", + weight = 493 + }, + ["tree-desert-l"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-desert-l", + weight = 14 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-dryland-c", + weight = 9 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-dryland-d", + weight = 3 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-dryland-e", + weight = 29 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-dryland-g", + weight = 29 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-dryland-h", + weight = 15223 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-dryland-i", + weight = 8571 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-dryland-l", + weight = 247 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-dryland-m", + weight = 7463 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-dryland-o", + weight = 4 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-grassland-d", + weight = 64 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-grassland-e", + weight = 6 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-grassland-h", + weight = 5 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-grassland-h2", + weight = 17059 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-grassland-h3", + weight = 5840 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-grassland-i", + weight = 6384 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-grassland-k", + weight = 16 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-grassland-m", + weight = 229 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-wetland-e", + weight = 383 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-wetland-f", + weight = 11 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-wetland-h", + weight = 1882 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-wetland-k", + weight = 45 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-aubergine-dirt-1", + tree_name = "tree-wetland-l", + weight = 33 + } +} +terrains["mineral-aubergine-dirt-4"] = { + name = "mineral-aubergine-dirt-4", + ["tree-desert-g"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-desert-h", + weight = 325 + }, + ["tree-desert-i"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-desert-i", + weight = 2 + }, + ["tree-desert-k"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-desert-k", + weight = 323 + }, + ["tree-desert-l"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-desert-l", + weight = 51 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-dryland-c", + weight = 3 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-dryland-e", + weight = 22 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-dryland-g", + weight = 10 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-dryland-h", + weight = 3480 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-dryland-i", + weight = 2680 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-dryland-k", + weight = 2 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-dryland-l", + weight = 582 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-dryland-m", + weight = 3328 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-dryland-o", + weight = 7 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-grassland-d", + weight = 8 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-grassland-e", + weight = 8 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-grassland-h", + weight = 25 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-grassland-h2", + weight = 5878 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-grassland-h3", + weight = 2463 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-grassland-i", + weight = 1786 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-grassland-k", + weight = 6 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-grassland-m", + weight = 250 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-wetland-e", + weight = 187 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-wetland-f", + weight = 46 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-wetland-h", + weight = 620 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-wetland-k", + weight = 28 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-aubergine-dirt-4", + tree_name = "tree-wetland-l", + weight = 22 + } +} +terrains["mineral-aubergine-dirt-2"] = { + name = "mineral-aubergine-dirt-2", + ["tree-desert-h"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-desert-h", + weight = 398 + }, + ["tree-desert-k"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-desert-k", + weight = 736 + }, + ["tree-desert-l"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-desert-l", + weight = 21 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-dryland-c", + weight = 8 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-dryland-d", + weight = 4 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-dryland-e", + weight = 25 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-dryland-g", + weight = 16 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-dryland-h", + weight = 11587 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-dryland-i", + weight = 4412 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-dryland-k", + weight = 2 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-dryland-l", + weight = 419 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-dryland-m", + weight = 7218 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-dryland-o", + weight = 3 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-grassland-d", + weight = 24 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-grassland-e", + weight = 15 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-grassland-g", + weight = 14 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-grassland-h", + weight = 55 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-grassland-h2", + weight = 11751 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-grassland-h3", + weight = 5631 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-grassland-i", + weight = 4814 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-grassland-k", + weight = 14 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-grassland-m", + weight = 459 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-wetland-e", + weight = 210 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-wetland-f", + weight = 3 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-wetland-h", + weight = 811 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-wetland-k", + weight = 70 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-aubergine-dirt-2", + tree_name = "tree-wetland-l", + weight = 16 + } +} +terrains["mineral-aubergine-dirt-6"] = { + name = "mineral-aubergine-dirt-6", + ["tree-desert-h"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-desert-h", + weight = 150 + }, + ["tree-desert-k"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-desert-k", + weight = 202 + }, + ["tree-desert-l"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-desert-l", + weight = 2 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-dryland-c", + weight = 2 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-dryland-d", + weight = 3 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-dryland-e", + weight = 7 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-dryland-g", + weight = 7 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-dryland-h", + weight = 2578 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-dryland-i", + weight = 792 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-dryland-k", + weight = 2 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-dryland-l", + weight = 414 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-dryland-m", + weight = 1907 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-dryland-o", + weight = 2 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-grassland-d", + weight = 3 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-grassland-e", + weight = 3 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-grassland-g", + weight = 11 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-grassland-h", + weight = 4 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-grassland-h2", + weight = 2295 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-grassland-h3", + weight = 1711 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-grassland-i", + weight = 2445 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-grassland-k", + weight = 7 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-grassland-m", + weight = 115 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-wetland-e", + weight = 115 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-wetland-f", + weight = 5 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-wetland-h", + weight = 175 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-wetland-k", + weight = 13 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-aubergine-dirt-6", + tree_name = "tree-wetland-l", + weight = 4 + } +} +terrains["mineral-grey-sand-2"] = { + name = "mineral-grey-sand-2", + ["tree-desert-h"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-desert-i", + weight = 1872 + }, + ["tree-desert-j"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-desert-j", + weight = 3270 + }, + ["tree-desert-k"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-desert-k", + weight = 349 + }, + ["tree-desert-l"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-desert-l", + weight = 2 + }, + ["tree-desert-m"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-desert-m", + weight = 8 + }, + ["tree-desert-n"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-desert-n", + weight = 5842 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-dryland-k", + weight = 105 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-dryland-l", + weight = 808 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-dryland-n", + weight = 42 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-grassland-h", + weight = 335 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-grassland-h3", + weight = 139 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-grassland-k", + weight = 16 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-grassland-l", + weight = 6 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-grassland-n", + weight = 42 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-grassland-p", + weight = 97 + }, + ["tree-snow-a"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-snow-a", + weight = 16 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-wetland-e", + weight = 22 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-wetland-j", + weight = 487 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-wetland-k", + weight = 1937 + }, + ["tree-wetland-n"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-wetland-n", + weight = 3003 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-grey-sand-2", + tree_name = "tree-wetland-o", + weight = 405 + } +} +terrains["mineral-grey-sand-1"] = { + name = "mineral-grey-sand-1", + ["tree-desert-c"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-desert-c", + weight = 3 + }, + ["tree-desert-h"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-desert-h", + weight = 6 + }, + ["tree-desert-i"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-desert-i", + weight = 5436 + }, + ["tree-desert-j"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-desert-j", + weight = 6394 + }, + ["tree-desert-k"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-desert-k", + weight = 413 + }, + ["tree-desert-l"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-desert-l", + weight = 5 + }, + ["tree-desert-m"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-desert-m", + weight = 9 + }, + ["tree-desert-n"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-desert-n", + weight = 11138 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-dryland-b", + weight = 2 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-dryland-f", + weight = 3 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-dryland-k", + weight = 144 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-dryland-l", + weight = 1325 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-dryland-m", + weight = 4 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-dryland-n", + weight = 40 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-dryland-o", + weight = 7 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-grassland-h", + weight = 990 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-grassland-h3", + weight = 215 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-grassland-k", + weight = 31 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-grassland-l", + weight = 7 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-grassland-n", + weight = 33 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-grassland-p", + weight = 72 + }, + ["tree-snow-a"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-snow-a", + weight = 34 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-wetland-e", + weight = 70 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-wetland-j", + weight = 1188 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-wetland-k", + weight = 5007 + }, + ["tree-wetland-n"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-wetland-n", + weight = 4919 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-grey-sand-1", + tree_name = "tree-wetland-o", + weight = 952 + } +} +terrains["mineral-black-sand-3"] = { + name = "mineral-black-sand-3", + ["tree-desert-d"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-desert-d", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-desert-i", + weight = 3 + }, + ["tree-desert-j"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-desert-j", + weight = 1377 + }, + ["tree-desert-k"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-desert-k", + weight = 3609 + }, + ["tree-desert-n"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-desert-n", + weight = 1740 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-dryland-h", + weight = 9 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-dryland-l", + weight = 388 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-dryland-m", + weight = 81 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-dryland-n", + weight = 2 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-dryland-o", + weight = 40 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-grassland-h", + weight = 10 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-grassland-h3", + weight = 543 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-grassland-i", + weight = 44 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-grassland-m", + weight = 7 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-grassland-p", + weight = 105 + }, + ["tree-snow-a"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-snow-a", + weight = 32 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-wetland-e", + weight = 10 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-wetland-k", + weight = 3179 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-wetland-l", + weight = 53 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-black-sand-3", + tree_name = "tree-wetland-o", + weight = 500 + } +} +terrains["mineral-black-sand-2"] = { + name = "mineral-black-sand-2", + ["tree-desert-c"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-desert-c", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-desert-h", + weight = 3 + }, + ["tree-desert-i"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-desert-i", + weight = 5 + }, + ["tree-desert-j"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-desert-j", + weight = 2396 + }, + ["tree-desert-k"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-desert-k", + weight = 6576 + }, + ["tree-desert-l"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-desert-l", + weight = 3 + }, + ["tree-desert-n"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-desert-n", + weight = 2361 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-dryland-l", + weight = 464 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-dryland-m", + weight = 269 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-grassland-h", + weight = 4 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-grassland-h3", + weight = 837 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-grassland-i", + weight = 2 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-grassland-p", + weight = 35 + }, + ["tree-snow-a"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-snow-a", + weight = 3 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-wetland-e", + weight = 30 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-wetland-k", + weight = 4516 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-wetland-l", + weight = 220 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-black-sand-2", + tree_name = "tree-wetland-o", + weight = 709 + } +} +terrains["mineral-black-sand-1"] = { + name = "mineral-black-sand-1", + ["tree-desert-d"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-desert-d", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-desert-i", + weight = 5 + }, + ["tree-desert-j"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-desert-j", + weight = 3034 + }, + ["tree-desert-k"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-desert-k", + weight = 15145 + }, + ["tree-desert-l"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-desert-l", + weight = 3 + }, + ["tree-desert-m"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-desert-m", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-desert-n", + weight = 4921 + }, + ["tree-dryland-j"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-dryland-j", + weight = 5 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-dryland-l", + weight = 1012 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-dryland-m", + weight = 166 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-dryland-n", + weight = 3 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-dryland-o", + weight = 4 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-grassland-h", + weight = 5 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-grassland-h3", + weight = 1250 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-grassland-i", + weight = 10 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-grassland-m", + weight = 6 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-grassland-p", + weight = 261 + }, + ["tree-snow-a"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-snow-a", + weight = 43 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-wetland-e", + weight = 23 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-wetland-k", + weight = 8538 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-wetland-l", + weight = 408 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-black-sand-1", + tree_name = "tree-wetland-o", + weight = 2037 + } +} +terrains["mineral-grey-sand-3"] = { + name = "mineral-grey-sand-3", + ["tree-desert-c"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-desert-c", + weight = 3 + }, + ["tree-desert-i"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-desert-i", + weight = 1887 + }, + ["tree-desert-j"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-desert-j", + weight = 2374 + }, + ["tree-desert-k"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-desert-k", + weight = 303 + }, + ["tree-desert-m"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-desert-m", + weight = 4 + }, + ["tree-desert-n"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-desert-n", + weight = 3610 + }, + ["tree-dryland-k"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-dryland-k", + weight = 105 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-dryland-l", + weight = 523 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-dryland-n", + weight = 2 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-grassland-h", + weight = 337 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-grassland-h3", + weight = 70 + }, + ["tree-grassland-k"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-grassland-k", + weight = 194 + }, + ["tree-grassland-n"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-grassland-n", + weight = 12 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-grassland-p", + weight = 57 + }, + ["tree-snow-a"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-snow-a", + weight = 15 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-wetland-e", + weight = 48 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-wetland-j", + weight = 422 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-wetland-k", + weight = 2076 + }, + ["tree-wetland-n"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-wetland-n", + weight = 1630 + }, + ["tree-wetland-o"] = { + tile_name = "mineral-grey-sand-3", + tree_name = "tree-wetland-o", + weight = 295 + } +} +terrains["frozen-snow-0"] = { + name = "frozen-snow-0", + ["tree-desert-c"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-desert-c", + weight = 57 + }, + ["tree-desert-d"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-desert-d", + weight = 28 + }, + ["tree-desert-h"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-desert-h", + weight = 73 + }, + ["tree-desert-i"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-desert-i", + weight = 510 + }, + ["tree-desert-j"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-desert-j", + weight = 14 + }, + ["tree-desert-k"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-desert-k", + weight = 28 + }, + ["tree-desert-m"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-desert-m", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-desert-n", + weight = 2067 + }, + ["tree-dryland-b"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-b", + weight = 271 + }, + ["tree-dryland-c"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-c", + weight = 308 + }, + ["tree-dryland-f"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-f", + weight = 457 + }, + ["tree-dryland-g"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-g", + weight = 8 + }, + ["tree-dryland-h"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-h", + weight = 692 + }, + ["tree-dryland-i"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-i", + weight = 47 + }, + ["tree-dryland-j"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-j", + weight = 78 + }, + ["tree-dryland-k"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-k", + weight = 3 + }, + ["tree-dryland-l"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-l", + weight = 24859 + }, + ["tree-dryland-m"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-m", + weight = 37 + }, + ["tree-dryland-n"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-n", + weight = 134 + }, + ["tree-dryland-o"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-dryland-o", + weight = 2782 + }, + ["tree-grassland-h2"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-grassland-h2", + weight = 559 + }, + ["tree-grassland-h3"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-grassland-h3", + weight = 599 + }, + ["tree-grassland-p"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-grassland-p", + weight = 291 + }, + ["tree-snow-a"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-snow-a", + weight = 862441 + }, + ["tree-wetland-n"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-wetland-n", + weight = 1876 + }, + ["tree-wetland-o"] = { + tile_name = "frozen-snow-0", + tree_name = "tree-wetland-o", + weight = 2774 + } +} +terrains["frozen-snow-2"] = { + name = "frozen-snow-2", + ["tree-desert-c"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-desert-c", + weight = 10 + }, + ["tree-desert-d"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-desert-d", + weight = 5 + }, + ["tree-desert-h"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-desert-h", + weight = 13 + }, + ["tree-desert-i"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-desert-i", + weight = 304 + }, + ["tree-desert-j"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-desert-j", + weight = 8 + }, + ["tree-desert-k"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-desert-k", + weight = 8 + }, + ["tree-desert-n"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-desert-n", + weight = 1273 + }, + ["tree-dryland-b"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-dryland-b", + weight = 50 + }, + ["tree-dryland-c"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-dryland-c", + weight = 72 + }, + ["tree-dryland-f"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-dryland-f", + weight = 111 + }, + ["tree-dryland-g"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-dryland-g", + weight = 5 + }, + ["tree-dryland-h"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-dryland-h", + weight = 168 + }, + ["tree-dryland-i"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-dryland-i", + weight = 10 + }, + ["tree-dryland-j"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-dryland-j", + weight = 41 + }, + ["tree-dryland-l"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-dryland-l", + weight = 9868 + }, + ["tree-dryland-m"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-dryland-m", + weight = 43 + }, + ["tree-dryland-n"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-dryland-n", + weight = 49 + }, + ["tree-dryland-o"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-dryland-o", + weight = 1359 + }, + ["tree-grassland-h2"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-grassland-h2", + weight = 101 + }, + ["tree-grassland-h3"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-grassland-h3", + weight = 150 + }, + ["tree-grassland-p"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-grassland-p", + weight = 155 + }, + ["tree-snow-a"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-snow-a", + weight = 200074 + }, + ["tree-wetland-n"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-wetland-n", + weight = 858 + }, + ["tree-wetland-o"] = { + tile_name = "frozen-snow-2", + tree_name = "tree-wetland-o", + weight = 1198 + } +} +terrains["mineral-dustyrose-sand-3"] = { + name = "mineral-dustyrose-sand-3", + ["tree-desert-c"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-desert-c", + weight = 4 + }, + ["tree-desert-d"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-desert-d", + weight = 3 + }, + ["tree-desert-f"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-desert-f", + weight = 3 + }, + ["tree-desert-g"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-desert-g", + weight = 3 + }, + ["tree-desert-h"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-desert-h", + weight = 5852 + }, + ["tree-desert-i"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-desert-i", + weight = 8 + }, + ["tree-desert-j"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-desert-j", + weight = 9067 + }, + ["tree-desert-k"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-desert-k", + weight = 6148 + }, + ["tree-desert-l"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-desert-l", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-desert-n", + weight = 10 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-dryland-c", + weight = 2 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-dryland-h", + weight = 773 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-dryland-l", + weight = 759 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-dryland-m", + weight = 168 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-grassland-g", + weight = 6 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-grassland-h", + weight = 195 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-grassland-h2", + weight = 1448 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-grassland-h3", + weight = 846 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-grassland-i", + weight = 13 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-wetland-e", + weight = 13707 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-wetland-f", + weight = 9 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-wetland-h", + weight = 96 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-wetland-k", + weight = 3575 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-dustyrose-sand-3", + tree_name = "tree-wetland-l", + weight = 22 + } +} +terrains["frozen-snow-1"] = { + name = "frozen-snow-1", + ["tree-desert-b"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-desert-b", + weight = 2 + }, + ["tree-desert-c"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-desert-c", + weight = 32 + }, + ["tree-desert-d"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-desert-d", + weight = 15 + }, + ["tree-desert-f"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-desert-f", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-desert-h", + weight = 24 + }, + ["tree-desert-i"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-desert-i", + weight = 260 + }, + ["tree-desert-j"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-desert-j", + weight = 2 + }, + ["tree-desert-k"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-desert-k", + weight = 15 + }, + ["tree-desert-n"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-desert-n", + weight = 1182 + }, + ["tree-dryland-b"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-dryland-b", + weight = 150 + }, + ["tree-dryland-c"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-dryland-c", + weight = 181 + }, + ["tree-dryland-f"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-dryland-f", + weight = 247 + }, + ["tree-dryland-g"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-dryland-g", + weight = 12 + }, + ["tree-dryland-h"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-dryland-h", + weight = 433 + }, + ["tree-dryland-i"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-dryland-i", + weight = 39 + }, + ["tree-dryland-j"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-dryland-j", + weight = 50 + }, + ["tree-dryland-l"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-dryland-l", + weight = 17673 + }, + ["tree-dryland-m"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-dryland-m", + weight = 11 + }, + ["tree-dryland-n"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-dryland-n", + weight = 228 + }, + ["tree-dryland-o"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-dryland-o", + weight = 2898 + }, + ["tree-grassland-h2"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-grassland-h2", + weight = 175 + }, + ["tree-grassland-h3"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-grassland-h3", + weight = 281 + }, + ["tree-grassland-p"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-grassland-p", + weight = 140 + }, + ["tree-snow-a"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-snow-a", + weight = 429666 + }, + ["tree-wetland-n"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-wetland-n", + weight = 1042 + }, + ["tree-wetland-o"] = { + tile_name = "frozen-snow-1", + tree_name = "tree-wetland-o", + weight = 2188 + } +} +terrains["frozen-snow-3"] = { + name = "frozen-snow-3", + ["tree-desert-c"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-desert-c", + weight = 5 + }, + ["tree-desert-d"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-desert-d", + weight = 3 + }, + ["tree-desert-h"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-desert-h", + weight = 11 + }, + ["tree-desert-i"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-desert-i", + weight = 145 + }, + ["tree-desert-j"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-desert-j", + weight = 2 + }, + ["tree-desert-k"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-desert-k", + weight = 7 + }, + ["tree-desert-m"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-desert-m", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-desert-n", + weight = 679 + }, + ["tree-dryland-b"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-dryland-b", + weight = 40 + }, + ["tree-dryland-c"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-dryland-c", + weight = 30 + }, + ["tree-dryland-f"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-dryland-f", + weight = 111 + }, + ["tree-dryland-g"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-dryland-g", + weight = 2 + }, + ["tree-dryland-h"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-dryland-h", + weight = 116 + }, + ["tree-dryland-i"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-dryland-i", + weight = 2 + }, + ["tree-dryland-j"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-dryland-j", + weight = 32 + }, + ["tree-dryland-l"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-dryland-l", + weight = 10815 + }, + ["tree-dryland-m"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-dryland-m", + weight = 11 + }, + ["tree-dryland-n"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-dryland-n", + weight = 121 + }, + ["tree-dryland-o"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-dryland-o", + weight = 1144 + }, + ["tree-grassland-h2"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-grassland-h2", + weight = 29 + }, + ["tree-grassland-h3"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-grassland-h3", + weight = 89 + }, + ["tree-grassland-p"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-grassland-p", + weight = 123 + }, + ["tree-snow-a"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-snow-a", + weight = 110979 + }, + ["tree-wetland-n"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-wetland-n", + weight = 813 + }, + ["tree-wetland-o"] = { + tile_name = "frozen-snow-3", + tree_name = "tree-wetland-o", + weight = 977 + } +} +terrains["frozen-snow-6"] = { + name = "frozen-snow-6", + ["tree-desert-c"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-desert-c", + weight = 4 + }, + ["tree-desert-d"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-desert-d", + weight = 4 + }, + ["tree-desert-h"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-desert-i", + weight = 72 + }, + ["tree-desert-j"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-desert-j", + weight = 2 + }, + ["tree-desert-k"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-desert-k", + weight = 4 + }, + ["tree-desert-n"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-desert-n", + weight = 355 + }, + ["tree-dryland-b"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-dryland-b", + weight = 37 + }, + ["tree-dryland-c"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-dryland-c", + weight = 13 + }, + ["tree-dryland-f"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-dryland-f", + weight = 27 + }, + ["tree-dryland-h"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-dryland-h", + weight = 51 + }, + ["tree-dryland-j"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-dryland-j", + weight = 20 + }, + ["tree-dryland-l"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-dryland-l", + weight = 5866 + }, + ["tree-dryland-m"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-dryland-m", + weight = 14 + }, + ["tree-dryland-n"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-dryland-n", + weight = 12 + }, + ["tree-dryland-o"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-dryland-o", + weight = 590 + }, + ["tree-grassland-h2"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-grassland-h2", + weight = 15 + }, + ["tree-grassland-h3"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-grassland-h3", + weight = 50 + }, + ["tree-grassland-p"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-grassland-p", + weight = 22 + }, + ["tree-wetland-n"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-wetland-n", + weight = 285 + }, + ["tree-wetland-o"] = { + tile_name = "frozen-snow-6", + tree_name = "tree-wetland-o", + weight = 440 + } +} +terrains["mineral-dustyrose-sand-1"] = { + name = "mineral-dustyrose-sand-1", + ["tree-desert-c"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-desert-c", + weight = 14 + }, + ["tree-desert-d"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-desert-d", + weight = 14 + }, + ["tree-desert-f"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-desert-f", + weight = 10 + }, + ["tree-desert-g"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-desert-g", + weight = 9 + }, + ["tree-desert-h"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-desert-h", + weight = 22139 + }, + ["tree-desert-i"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-desert-i", + weight = 26 + }, + ["tree-desert-j"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-desert-j", + weight = 30913 + }, + ["tree-desert-k"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-desert-k", + weight = 21378 + }, + ["tree-desert-l"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-desert-l", + weight = 5 + }, + ["tree-desert-m"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-desert-m", + weight = 7 + }, + ["tree-desert-n"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-desert-n", + weight = 26 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-dryland-h", + weight = 1522 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-dryland-l", + weight = 1938 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-dryland-m", + weight = 449 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-grassland-g", + weight = 2 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-grassland-h", + weight = 1037 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-grassland-h2", + weight = 4020 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-grassland-h3", + weight = 1826 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-grassland-i", + weight = 32 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-wetland-e", + weight = 46457 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-wetland-f", + weight = 7 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-wetland-h", + weight = 288 + }, + ["tree-wetland-j"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-wetland-j", + weight = 2 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-wetland-k", + weight = 9599 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-dustyrose-sand-1", + tree_name = "tree-wetland-l", + weight = 27 + } +} +terrains["frozen-snow-5"] = { + name = "frozen-snow-5", + ["tree-desert-c"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-desert-c", + weight = 2 + }, + ["tree-desert-d"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-desert-d", + weight = 4 + }, + ["tree-desert-h"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-desert-h", + weight = 4 + }, + ["tree-desert-i"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-desert-i", + weight = 70 + }, + ["tree-desert-j"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-desert-j", + weight = 2 + }, + ["tree-desert-k"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-desert-k", + weight = 6 + }, + ["tree-desert-n"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-desert-n", + weight = 572 + }, + ["tree-dryland-b"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-dryland-b", + weight = 75 + }, + ["tree-dryland-c"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-dryland-c", + weight = 31 + }, + ["tree-dryland-d"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-dryland-d", + weight = 4 + }, + ["tree-dryland-f"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-dryland-f", + weight = 76 + }, + ["tree-dryland-h"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-dryland-h", + weight = 83 + }, + ["tree-dryland-i"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-dryland-i", + weight = 12 + }, + ["tree-dryland-j"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-dryland-j", + weight = 24 + }, + ["tree-dryland-l"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-dryland-l", + weight = 5919 + }, + ["tree-dryland-m"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-dryland-m", + weight = 37 + }, + ["tree-dryland-n"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-dryland-n", + weight = 39 + }, + ["tree-dryland-o"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-dryland-o", + weight = 877 + }, + ["tree-grassland-h2"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-grassland-h2", + weight = 49 + }, + ["tree-grassland-h3"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-grassland-h3", + weight = 76 + }, + ["tree-grassland-p"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-grassland-p", + weight = 109 + }, + ["tree-wetland-n"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-wetland-n", + weight = 319 + }, + ["tree-wetland-o"] = { + tile_name = "frozen-snow-5", + tree_name = "tree-wetland-o", + weight = 918 + } +} +terrains["frozen-snow-4"] = { + name = "frozen-snow-4", + ["tree-desert-c"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-desert-c", + weight = 3 + }, + ["tree-desert-d"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-desert-d", + weight = 4 + }, + ["tree-desert-i"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-desert-i", + weight = 109 + }, + ["tree-desert-j"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-desert-j", + weight = 3 + }, + ["tree-desert-k"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-desert-k", + weight = 7 + }, + ["tree-desert-n"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-desert-n", + weight = 554 + }, + ["tree-dryland-b"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-dryland-b", + weight = 37 + }, + ["tree-dryland-c"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-dryland-c", + weight = 42 + }, + ["tree-dryland-f"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-dryland-f", + weight = 39 + }, + ["tree-dryland-g"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-dryland-g", + weight = 3 + }, + ["tree-dryland-h"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-dryland-h", + weight = 79 + }, + ["tree-dryland-i"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-dryland-i", + weight = 5 + }, + ["tree-dryland-j"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-dryland-j", + weight = 18 + }, + ["tree-dryland-l"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-dryland-l", + weight = 7603 + }, + ["tree-dryland-m"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-dryland-m", + weight = 10 + }, + ["tree-dryland-n"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-dryland-n", + weight = 29 + }, + ["tree-dryland-o"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-dryland-o", + weight = 1232 + }, + ["tree-grassland-h2"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-grassland-h2", + weight = 25 + }, + ["tree-grassland-h3"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-grassland-h3", + weight = 54 + }, + ["tree-grassland-p"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-grassland-p", + weight = 60 + }, + ["tree-snow-a"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-snow-a", + weight = 68627 + }, + ["tree-wetland-n"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-wetland-n", + weight = 462 + }, + ["tree-wetland-o"] = { + tile_name = "frozen-snow-4", + tree_name = "tree-wetland-o", + weight = 1027 + } +} +terrains["mineral-dustyrose-sand-2"] = { + name = "mineral-dustyrose-sand-2", + ["tree-desert-c"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-desert-c", + weight = 7 + }, + ["tree-desert-d"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-desert-d", + weight = 3 + }, + ["tree-desert-g"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-desert-g", + weight = 8 + }, + ["tree-desert-h"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-desert-h", + weight = 11303 + }, + ["tree-desert-i"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-desert-i", + weight = 17 + }, + ["tree-desert-j"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-desert-j", + weight = 17332 + }, + ["tree-desert-k"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-desert-k", + weight = 10703 + }, + ["tree-desert-l"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-desert-l", + weight = 5 + }, + ["tree-desert-m"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-desert-m", + weight = 5 + }, + ["tree-desert-n"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-desert-n", + weight = 18 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-dryland-b", + weight = 3 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-dryland-h", + weight = 1237 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-dryland-l", + weight = 1043 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-dryland-m", + weight = 151 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-grassland-g", + weight = 2 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-grassland-h", + weight = 558 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-grassland-h2", + weight = 1941 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-grassland-h3", + weight = 882 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-grassland-i", + weight = 38 + }, + ["tree-grassland-l"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-grassland-l", + weight = 2 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-wetland-e", + weight = 24102 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-wetland-f", + weight = 12 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-wetland-h", + weight = 161 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-wetland-k", + weight = 5674 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-dustyrose-sand-2", + tree_name = "tree-wetland-l", + weight = 6 + } +} +terrains["frozen-snow-9"] = { + name = "frozen-snow-9", + ["tree-desert-i"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-desert-i", + weight = 8 + }, + ["tree-desert-k"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-desert-k", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-desert-n", + weight = 194 + }, + ["tree-dryland-b"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-dryland-b", + weight = 10 + }, + ["tree-dryland-c"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-dryland-c", + weight = 5 + }, + ["tree-dryland-f"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-dryland-f", + weight = 7 + }, + ["tree-dryland-h"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-dryland-h", + weight = 6 + }, + ["tree-dryland-j"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-dryland-j", + weight = 14 + }, + ["tree-dryland-l"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-dryland-l", + weight = 3187 + }, + ["tree-dryland-m"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-dryland-m", + weight = 3 + }, + ["tree-dryland-n"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-dryland-n", + weight = 8 + }, + ["tree-dryland-o"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-dryland-o", + weight = 632 + }, + ["tree-grassland-h2"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-grassland-h2", + weight = 2 + }, + ["tree-grassland-h3"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-grassland-h3", + weight = 15 + }, + ["tree-grassland-p"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-grassland-p", + weight = 19 + }, + ["tree-wetland-n"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-wetland-n", + weight = 252 + }, + ["tree-wetland-o"] = { + tile_name = "frozen-snow-9", + tree_name = "tree-wetland-o", + weight = 266 + } +} +terrains["frozen-snow-7"] = { + name = "frozen-snow-7", + ["tree-desert-d"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-desert-d", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-desert-h", + weight = 2 + }, + ["tree-desert-i"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-desert-i", + weight = 58 + }, + ["tree-desert-k"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-desert-k", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-desert-n", + weight = 298 + }, + ["tree-dryland-b"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-dryland-b", + weight = 4 + }, + ["tree-dryland-c"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-dryland-c", + weight = 21 + }, + ["tree-dryland-f"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-dryland-f", + weight = 19 + }, + ["tree-dryland-h"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-dryland-h", + weight = 31 + }, + ["tree-dryland-j"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-dryland-j", + weight = 21 + }, + ["tree-dryland-l"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-dryland-l", + weight = 3525 + }, + ["tree-dryland-m"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-dryland-m", + weight = 15 + }, + ["tree-dryland-n"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-dryland-n", + weight = 16 + }, + ["tree-dryland-o"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-dryland-o", + weight = 434 + }, + ["tree-grassland-h2"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-grassland-h2", + weight = 6 + }, + ["tree-grassland-h3"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-grassland-h3", + weight = 42 + }, + ["tree-grassland-p"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-grassland-p", + weight = 50 + }, + ["tree-wetland-n"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-wetland-n", + weight = 280 + }, + ["tree-wetland-o"] = { + tile_name = "frozen-snow-7", + tree_name = "tree-wetland-o", + weight = 480 + } +} +terrains["frozen-snow-8"] = { + name = "frozen-snow-8", + ["tree-desert-c"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-desert-c", + weight = 3 + }, + ["tree-desert-h"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-desert-h", + weight = 3 + }, + ["tree-desert-i"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-desert-i", + weight = 27 + }, + ["tree-desert-j"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-desert-j", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-desert-n", + weight = 224 + }, + ["tree-dryland-b"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-dryland-b", + weight = 8 + }, + ["tree-dryland-c"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-dryland-c", + weight = 2 + }, + ["tree-dryland-f"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-dryland-f", + weight = 7 + }, + ["tree-dryland-h"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-dryland-h", + weight = 12 + }, + ["tree-dryland-j"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-dryland-j", + weight = 6 + }, + ["tree-dryland-l"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-dryland-l", + weight = 2918 + }, + ["tree-dryland-m"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-dryland-m", + weight = 2 + }, + ["tree-dryland-n"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-dryland-n", + weight = 11 + }, + ["tree-dryland-o"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-dryland-o", + weight = 320 + }, + ["tree-grassland-h3"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-grassland-h3", + weight = 9 + }, + ["tree-grassland-p"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-grassland-p", + weight = 41 + }, + ["tree-wetland-n"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-wetland-n", + weight = 180 + }, + ["tree-wetland-o"] = { + tile_name = "frozen-snow-8", + tree_name = "tree-wetland-o", + weight = 411 + } +} +terrains["mineral-red-dirt-1"] = { + name = "mineral-red-dirt-1", + ["tree-desert-a"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-desert-a", + weight = 8 + }, + ["tree-desert-c"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-desert-c", + weight = 2376 + }, + ["tree-desert-d"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-desert-d", + weight = 1064 + }, + ["tree-desert-h"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-desert-h", + weight = 2650 + }, + ["tree-desert-j"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-desert-j", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-desert-n", + weight = 3 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-dryland-a", + weight = 17 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-dryland-b", + weight = 15464 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-dryland-c", + weight = 81723 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-dryland-d", + weight = 234 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-dryland-e", + weight = 215 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-dryland-f", + weight = 111728 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-dryland-g", + weight = 47 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-dryland-h", + weight = 60737 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-dryland-i", + weight = 17 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-dryland-l", + weight = 38 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-dryland-m", + weight = 38 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-a", + weight = 198 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-b", + weight = 54 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-c", + weight = 18911 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-d", + weight = 1354 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-e", + weight = 26861 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-f", + weight = 137 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-g", + weight = 88 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-h", + weight = 11158 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-h2", + weight = 105119 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-h3", + weight = 347 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-i", + weight = 2914 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-grassland-p", + weight = 23 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-wetland-b", + weight = 973 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-wetland-c", + weight = 55 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-wetland-e", + weight = 17177 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-wetland-f", + weight = 142 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-red-dirt-1", + tree_name = "tree-wetland-h", + weight = 21 + } +} +terrains["mineral-brown-sand-1"] = { + name = "mineral-brown-sand-1", + ["tree-desert-a"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-desert-a", + weight = 103 + }, + ["tree-desert-b"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-desert-b", + weight = 8872 + }, + ["tree-desert-c"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-desert-c", + weight = 88244 + }, + ["tree-desert-d"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-desert-d", + weight = 48 + }, + ["tree-desert-e"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-desert-e", + weight = 20 + }, + ["tree-desert-f"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-desert-f", + weight = 12883 + }, + ["tree-desert-g"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-desert-g", + weight = 16 + }, + ["tree-desert-h"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-desert-h", + weight = 27525 + }, + ["tree-desert-i"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-desert-i", + weight = 5 + }, + ["tree-desert-j"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-desert-j", + weight = 24 + }, + ["tree-desert-n"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-desert-n", + weight = 27 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-dryland-a", + weight = 397 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-dryland-b", + weight = 3373 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-dryland-d", + weight = 7 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-dryland-e", + weight = 2 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-dryland-f", + weight = 5758 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-dryland-g", + weight = 97 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-dryland-h", + weight = 496 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-grassland-b", + weight = 48 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-grassland-c", + weight = 23723 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-grassland-f", + weight = 525 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-grassland-g", + weight = 2246 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-grassland-h2", + weight = 144 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-wetland-b", + weight = 32137 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-wetland-d", + weight = 2612 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-brown-sand-1", + tree_name = "tree-wetland-e", + weight = 93121 + } +} +terrains["mineral-brown-sand-2"] = { + name = "mineral-brown-sand-2", + ["tree-desert-a"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-desert-a", + weight = 62 + }, + ["tree-desert-b"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-desert-b", + weight = 4196 + }, + ["tree-desert-c"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-desert-c", + weight = 47866 + }, + ["tree-desert-d"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-desert-d", + weight = 38 + }, + ["tree-desert-e"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-desert-e", + weight = 7 + }, + ["tree-desert-f"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-desert-f", + weight = 7450 + }, + ["tree-desert-g"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-desert-g", + weight = 11 + }, + ["tree-desert-h"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-desert-h", + weight = 15084 + }, + ["tree-desert-i"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-desert-i", + weight = 5 + }, + ["tree-desert-j"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-desert-j", + weight = 13 + }, + ["tree-desert-n"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-desert-n", + weight = 10 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-dryland-a", + weight = 152 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-dryland-b", + weight = 1870 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-dryland-e", + weight = 2 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-dryland-f", + weight = 4133 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-dryland-g", + weight = 118 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-dryland-h", + weight = 501 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-dryland-l", + weight = 2 + }, + ["tree-dryland-n"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-dryland-n", + weight = 2 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-grassland-b", + weight = 71 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-grassland-c", + weight = 12218 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-grassland-f", + weight = 244 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-grassland-g", + weight = 1653 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-grassland-h2", + weight = 183 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-wetland-b", + weight = 16091 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-wetland-d", + weight = 1390 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-brown-sand-2", + tree_name = "tree-wetland-e", + weight = 50743 + } +} +terrains["mineral-brown-sand-3"] = { + name = "mineral-brown-sand-3", + ["tree-desert-a"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-desert-a", + weight = 22 + }, + ["tree-desert-b"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-desert-b", + weight = 3031 + }, + ["tree-desert-c"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-desert-c", + weight = 27151 + }, + ["tree-desert-d"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-desert-d", + weight = 15 + }, + ["tree-desert-e"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-desert-e", + weight = 3 + }, + ["tree-desert-f"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-desert-f", + weight = 4030 + }, + ["tree-desert-g"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-desert-g", + weight = 6 + }, + ["tree-desert-h"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-desert-h", + weight = 8125 + }, + ["tree-desert-i"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-desert-i", + weight = 4 + }, + ["tree-desert-j"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-desert-j", + weight = 12 + }, + ["tree-desert-n"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-desert-n", + weight = 11 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-dryland-a", + weight = 50 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-dryland-b", + weight = 990 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-dryland-f", + weight = 2025 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-dryland-g", + weight = 62 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-dryland-h", + weight = 466 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-grassland-b", + weight = 102 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-grassland-c", + weight = 7015 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-grassland-f", + weight = 256 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-grassland-g", + weight = 672 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-grassland-h2", + weight = 86 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-wetland-b", + weight = 7896 + }, + ["tree-wetland-d"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-wetland-d", + weight = 860 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-brown-sand-3", + tree_name = "tree-wetland-e", + weight = 27219 + } +} +terrains["mineral-red-sand-1"] = { + name = "mineral-red-sand-1", + ["tree-desert-a"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-desert-a", + weight = 53 + }, + ["tree-desert-b"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-desert-b", + weight = 5 + }, + ["tree-desert-c"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-desert-c", + weight = 30909 + }, + ["tree-desert-d"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-desert-d", + weight = 11170 + }, + ["tree-desert-e"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-desert-e", + weight = 4 + }, + ["tree-desert-f"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-desert-f", + weight = 6 + }, + ["tree-desert-g"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-desert-g", + weight = 4 + }, + ["tree-desert-h"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-desert-h", + weight = 19830 + }, + ["tree-desert-j"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-desert-j", + weight = 7 + }, + ["tree-desert-n"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-desert-n", + weight = 7 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-dryland-b", + weight = 939 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-dryland-c", + weight = 1091 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-dryland-f", + weight = 1174 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-dryland-h", + weight = 734 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-grassland-c", + weight = 5546 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-grassland-d", + weight = 617 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-grassland-e", + weight = 1197 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-grassland-h2", + weight = 1614 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-grassland-i", + weight = 150 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-wetland-b", + weight = 9876 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-wetland-c", + weight = 2322 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-wetland-e", + weight = 28896 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-wetland-f", + weight = 405 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-red-sand-1", + tree_name = "tree-wetland-h", + weight = 226 + } +} +terrains["volcanic-orange-heat-1"] = { + name = "volcanic-orange-heat-1", + ["tree-volcanic-a"] = { + tile_name = "volcanic-orange-heat-1", + tree_name = "tree-volcanic-a", + weight = 110410 + } +} +terrains["mineral-red-sand-2"] = { + name = "mineral-red-sand-2", + ["tree-desert-a"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-desert-a", + weight = 21 + }, + ["tree-desert-b"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-desert-b", + weight = 5 + }, + ["tree-desert-c"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-desert-c", + weight = 14756 + }, + ["tree-desert-d"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-desert-d", + weight = 5612 + }, + ["tree-desert-f"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-desert-f", + weight = 4 + }, + ["tree-desert-g"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-desert-h", + weight = 10535 + }, + ["tree-desert-j"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-desert-j", + weight = 3 + }, + ["tree-desert-n"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-desert-n", + weight = 2 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-dryland-b", + weight = 570 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-dryland-c", + weight = 423 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-dryland-f", + weight = 708 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-dryland-h", + weight = 220 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-grassland-c", + weight = 2550 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-grassland-d", + weight = 256 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-grassland-e", + weight = 420 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-grassland-h2", + weight = 773 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-grassland-i", + weight = 66 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-wetland-b", + weight = 5551 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-wetland-c", + weight = 1877 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-wetland-e", + weight = 16203 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-wetland-f", + weight = 257 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-red-sand-2", + tree_name = "tree-wetland-h", + weight = 173 + } +} +terrains["mineral-red-sand-3"] = { + name = "mineral-red-sand-3", + ["tree-desert-a"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-desert-a", + weight = 10 + }, + ["tree-desert-b"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-desert-b", + weight = 4 + }, + ["tree-desert-c"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-desert-c", + weight = 9095 + }, + ["tree-desert-d"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-desert-d", + weight = 2547 + }, + ["tree-desert-f"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-desert-f", + weight = 6 + }, + ["tree-desert-g"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-desert-g", + weight = 6 + }, + ["tree-desert-h"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-desert-h", + weight = 5425 + }, + ["tree-desert-j"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-desert-j", + weight = 3 + }, + ["tree-desert-n"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-desert-n", + weight = 10 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-dryland-b", + weight = 178 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-dryland-c", + weight = 174 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-dryland-f", + weight = 250 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-dryland-h", + weight = 312 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-grassland-c", + weight = 1454 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-grassland-d", + weight = 39 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-grassland-e", + weight = 247 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-grassland-h2", + weight = 680 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-grassland-i", + weight = 120 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-wetland-b", + weight = 2328 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-wetland-c", + weight = 342 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-wetland-e", + weight = 7465 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-wetland-f", + weight = 530 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-red-sand-3", + tree_name = "tree-wetland-h", + weight = 97 + } +} +terrains["mineral-red-dirt-4"] = { + name = "mineral-red-dirt-4", + ["tree-desert-c"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-desert-c", + weight = 859 + }, + ["tree-desert-d"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-desert-d", + weight = 558 + }, + ["tree-desert-f"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-desert-f", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-desert-h", + weight = 1194 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-dryland-a", + weight = 2 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-dryland-b", + weight = 2531 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-dryland-c", + weight = 13235 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-dryland-d", + weight = 38 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-dryland-e", + weight = 26 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-dryland-f", + weight = 13147 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-dryland-g", + weight = 9 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-dryland-h", + weight = 9691 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-dryland-l", + weight = 16 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-dryland-m", + weight = 10 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-a", + weight = 112 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-b", + weight = 12 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-c", + weight = 6305 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-d", + weight = 425 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-e", + weight = 8963 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-f", + weight = 85 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-g", + weight = 109 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-h", + weight = 4069 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-h2", + weight = 16780 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-h3", + weight = 55 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-i", + weight = 1210 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-grassland-p", + weight = 18 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-wetland-b", + weight = 306 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-wetland-c", + weight = 28 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-wetland-e", + weight = 2840 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-red-dirt-4", + tree_name = "tree-wetland-f", + weight = 75 + } +} +terrains["mineral-red-dirt-3"] = { + name = "mineral-red-dirt-3", + ["tree-desert-a"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-desert-a", + weight = 3 + }, + ["tree-desert-c"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-desert-c", + weight = 922 + }, + ["tree-desert-d"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-desert-d", + weight = 494 + }, + ["tree-desert-h"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-desert-h", + weight = 1195 + }, + ["tree-desert-n"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-desert-n", + weight = 2 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-dryland-b", + weight = 3267 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-dryland-c", + weight = 20038 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-dryland-d", + weight = 41 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-dryland-e", + weight = 55 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-dryland-f", + weight = 27698 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-dryland-g", + weight = 11 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-dryland-h", + weight = 18516 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-dryland-i", + weight = 13 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-dryland-l", + weight = 21 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-dryland-m", + weight = 7 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-a", + weight = 218 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-b", + weight = 31 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-c", + weight = 8645 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-d", + weight = 567 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-e", + weight = 12198 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-f", + weight = 114 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-g", + weight = 43 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-h", + weight = 3332 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-h2", + weight = 32322 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-h3", + weight = 86 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-i", + weight = 1579 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-grassland-p", + weight = 5 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-wetland-b", + weight = 228 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-wetland-c", + weight = 74 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-wetland-e", + weight = 4967 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-wetland-f", + weight = 16 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-red-dirt-3", + tree_name = "tree-wetland-h", + weight = 29 + } +} +terrains["mineral-red-dirt-2"] = { + name = "mineral-red-dirt-2", + ["tree-desert-a"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-desert-a", + weight = 3 + }, + ["tree-desert-c"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-desert-c", + weight = 1692 + }, + ["tree-desert-d"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-desert-d", + weight = 881 + }, + ["tree-desert-g"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-desert-h", + weight = 1840 + }, + ["tree-desert-j"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-desert-j", + weight = 3 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-dryland-a", + weight = 23 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-dryland-b", + weight = 9438 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-dryland-c", + weight = 45744 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-dryland-d", + weight = 112 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-dryland-e", + weight = 69 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-dryland-f", + weight = 51719 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-dryland-g", + weight = 22 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-dryland-h", + weight = 35276 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-dryland-l", + weight = 23 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-dryland-m", + weight = 21 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-a", + weight = 307 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-b", + weight = 15 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-c", + weight = 10848 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-d", + weight = 469 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-e", + weight = 20330 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-f", + weight = 111 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-g", + weight = 38 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-h", + weight = 7952 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-h2", + weight = 57311 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-h3", + weight = 120 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-i", + weight = 1671 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-grassland-p", + weight = 9 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-wetland-b", + weight = 543 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-wetland-c", + weight = 20 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-wetland-e", + weight = 8670 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-wetland-f", + weight = 24 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-red-dirt-2", + tree_name = "tree-wetland-h", + weight = 11 + } +} +terrains["mineral-red-dirt-6"] = { + name = "mineral-red-dirt-6", + ["tree-desert-c"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-desert-c", + weight = 438 + }, + ["tree-desert-d"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-desert-d", + weight = 140 + }, + ["tree-desert-h"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-desert-h", + weight = 636 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-dryland-b", + weight = 367 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-dryland-c", + weight = 3577 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-dryland-d", + weight = 5 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-dryland-e", + weight = 3 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-dryland-f", + weight = 3147 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-dryland-h", + weight = 2452 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-dryland-i", + weight = 18 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-dryland-m", + weight = 8 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-a", + weight = 31 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-b", + weight = 27 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-c", + weight = 3117 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-d", + weight = 323 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-e", + weight = 4219 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-f", + weight = 61 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-g", + weight = 14 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-h", + weight = 2540 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-h2", + weight = 4644 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-h3", + weight = 12 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-i", + weight = 640 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-grassland-p", + weight = 7 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-wetland-b", + weight = 167 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-wetland-c", + weight = 4 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-wetland-e", + weight = 978 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-wetland-f", + weight = 16 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-red-dirt-6", + tree_name = "tree-wetland-h", + weight = 5 + } +} +terrains["mineral-red-dirt-5"] = { + name = "mineral-red-dirt-5", + ["tree-desert-a"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-desert-a", + weight = 2 + }, + ["tree-desert-c"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-desert-c", + weight = 685 + }, + ["tree-desert-d"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-desert-d", + weight = 317 + }, + ["tree-desert-h"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-desert-h", + weight = 514 + }, + ["tree-dryland-a"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-dryland-a", + weight = 4 + }, + ["tree-dryland-b"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-dryland-b", + weight = 1088 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-dryland-c", + weight = 4857 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-dryland-d", + weight = 6 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-dryland-e", + weight = 17 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-dryland-f", + weight = 5772 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-dryland-g", + weight = 4 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-dryland-h", + weight = 3866 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-dryland-i", + weight = 11 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-dryland-m", + weight = 2 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-a", + weight = 74 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-b", + weight = 26 + }, + ["tree-grassland-c"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-c", + weight = 4218 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-d", + weight = 888 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-e", + weight = 4506 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-f", + weight = 61 + }, + ["tree-grassland-g"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-g", + weight = 30 + }, + ["tree-grassland-h"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-h", + weight = 1976 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-h2", + weight = 8928 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-h3", + weight = 24 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-i", + weight = 1937 + }, + ["tree-grassland-p"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-grassland-p", + weight = 5 + }, + ["tree-wetland-b"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-wetland-b", + weight = 298 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-wetland-c", + weight = 10 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-red-dirt-5", + tree_name = "tree-wetland-e", + weight = 1580 + } +} +terrains["vegetation-red-grass-1"] = { + name = "vegetation-red-grass-1", + ["tree-dryland-c"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-dryland-c", + weight = 183 + }, + ["tree-dryland-f"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-dryland-f", + weight = 19 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-grassland-a", + weight = 242 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-grassland-b", + weight = 76 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-grassland-c", + weight = 9147 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-grassland-d", + weight = 8854 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-grassland-e", + weight = 33971 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-grassland-f", + weight = 84 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-grassland-h2", + weight = 2 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-grassland-i", + weight = 11 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-grassland-p", + weight = 3 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-wetland-b", + weight = 15 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-wetland-c", + weight = 255 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-wetland-e", + weight = 1142 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-red-grass-1", + tree_name = "tree-wetland-f", + weight = 308 + } +} +terrains["vegetation-red-grass-2"] = { + name = "vegetation-red-grass-2", + ["tree-dryland-c"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-dryland-c", + weight = 92 + }, + ["tree-dryland-f"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-dryland-f", + weight = 30 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-grassland-a", + weight = 101 + }, + ["tree-grassland-b"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-grassland-b", + weight = 71 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-grassland-c", + weight = 7794 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-grassland-d", + weight = 3862 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-grassland-e", + weight = 26632 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-grassland-f", + weight = 31 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-grassland-h2", + weight = 8 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-grassland-i", + weight = 35 + }, + ["tree-grassland-p"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-grassland-p", + weight = 12 + }, + ["tree-wetland-b"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-wetland-b", + weight = 59 + }, + ["tree-wetland-c"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-wetland-c", + weight = 72 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-wetland-e", + weight = 857 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-red-grass-2", + tree_name = "tree-wetland-f", + weight = 18 + } +} +terrains["volcanic-green-heat-1"] = { + name = "volcanic-green-heat-1", + ["tree-volcanic-a"] = { + tile_name = "volcanic-green-heat-1", + tree_name = "tree-volcanic-a", + weight = 3045 + } +} +terrains["mineral-violet-sand-2"] = { + name = "mineral-violet-sand-2", + ["tree-desert-a"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-desert-a", + weight = 2 + }, + ["tree-desert-d"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-desert-d", + weight = 148 + }, + ["tree-desert-e"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-desert-e", + weight = 30 + }, + ["tree-desert-f"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-desert-f", + weight = 2 + }, + ["tree-desert-g"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-desert-g", + weight = 3 + }, + ["tree-desert-h"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-desert-h", + weight = 1866 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-dryland-c", + weight = 6 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-dryland-d", + weight = 6 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-dryland-h", + weight = 42 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-grassland-e", + weight = 16 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-grassland-h2", + weight = 24 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-grassland-i", + weight = 194 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-wetland-c", + weight = 2 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-wetland-e", + weight = 289 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-wetland-f", + weight = 1198 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-violet-sand-2", + tree_name = "tree-wetland-h", + weight = 220 + } +} +terrains["mineral-violet-sand-3"] = { + name = "mineral-violet-sand-3", + ["tree-desert-a"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-desert-a", + weight = 2 + }, + ["tree-desert-d"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-desert-d", + weight = 23 + }, + ["tree-desert-e"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-desert-e", + weight = 2 + }, + ["tree-desert-g"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-desert-h", + weight = 820 + }, + ["tree-desert-k"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-desert-k", + weight = 3 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-dryland-c", + weight = 8 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-dryland-h", + weight = 12 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-grassland-e", + weight = 2 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-grassland-i", + weight = 49 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-wetland-c", + weight = 3 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-wetland-e", + weight = 222 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-wetland-f", + weight = 502 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-violet-sand-3", + tree_name = "tree-wetland-h", + weight = 160 + } +} +terrains["vegetation-violet-grass-2"] = { + name = "vegetation-violet-grass-2", + ["tree-dryland-c"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-dryland-c", + weight = 217 + }, + ["tree-dryland-f"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-dryland-f", + weight = 138 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-dryland-h", + weight = 23 + }, + ["tree-dryland-i"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-dryland-i", + weight = 7 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-grassland-a", + weight = 248 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-grassland-c", + weight = 2687 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-grassland-d", + weight = 288 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-grassland-e", + weight = 12138 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-grassland-f", + weight = 396 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-grassland-g", + weight = 137 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-grassland-h", + weight = 825 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-grassland-h2", + weight = 182 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-grassland-i", + weight = 2608 + }, + ["tree-grassland-m"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-grassland-m", + weight = 5 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-wetland-e", + weight = 1301 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-violet-grass-2", + tree_name = "tree-wetland-f", + weight = 73 + } +} +terrains["vegetation-violet-grass-1"] = { + name = "vegetation-violet-grass-1", + ["tree-dryland-c"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-dryland-c", + weight = 385 + }, + ["tree-dryland-f"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-dryland-f", + weight = 64 + }, + ["tree-dryland-h"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-dryland-h", + weight = 37 + }, + ["tree-dryland-i"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-dryland-i", + weight = 31 + }, + ["tree-grassland-a"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-grassland-a", + weight = 366 + }, + ["tree-grassland-c"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-grassland-c", + weight = 5552 + }, + ["tree-grassland-d"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-grassland-d", + weight = 297 + }, + ["tree-grassland-e"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-grassland-e", + weight = 19221 + }, + ["tree-grassland-f"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-grassland-f", + weight = 558 + }, + ["tree-grassland-g"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-grassland-g", + weight = 146 + }, + ["tree-grassland-h"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-grassland-h", + weight = 199 + }, + ["tree-grassland-h2"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-grassland-h2", + weight = 543 + }, + ["tree-grassland-i"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-grassland-i", + weight = 3697 + }, + ["tree-wetland-e"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-wetland-e", + weight = 2478 + }, + ["tree-wetland-f"] = { + tile_name = "vegetation-violet-grass-1", + tree_name = "tree-wetland-f", + weight = 56 + } +} +terrains["mineral-violet-dirt-1"] = { + name = "mineral-violet-dirt-1", + ["tree-desert-d"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-desert-d", + weight = 3 + }, + ["tree-desert-h"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-desert-h", + weight = 71 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-dryland-c", + weight = 3885 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-dryland-d", + weight = 100 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-dryland-e", + weight = 5 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-dryland-f", + weight = 5 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-dryland-g", + weight = 7 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-dryland-h", + weight = 4763 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-dryland-i", + weight = 2001 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-dryland-m", + weight = 29 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-dryland-o", + weight = 7 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-grassland-e", + weight = 71 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-grassland-h2", + weight = 6235 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-grassland-h3", + weight = 9 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-grassland-i", + weight = 2072 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-wetland-e", + weight = 5 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-wetland-f", + weight = 114 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-violet-dirt-1", + tree_name = "tree-wetland-h", + weight = 87 + } +} +terrains["mineral-violet-sand-1"] = { + name = "mineral-violet-sand-1", + ["tree-desert-d"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-desert-d", + weight = 151 + }, + ["tree-desert-g"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-desert-g", + weight = 3 + }, + ["tree-desert-h"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-desert-h", + weight = 2719 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-dryland-c", + weight = 25 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-dryland-h", + weight = 41 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-dryland-i", + weight = 4 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-grassland-e", + weight = 12 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-grassland-h2", + weight = 37 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-grassland-i", + weight = 398 + }, + ["tree-wetland-c"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-wetland-c", + weight = 7 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-wetland-e", + weight = 336 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-wetland-f", + weight = 1462 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-violet-sand-1", + tree_name = "tree-wetland-h", + weight = 698 + } +} +terrains["mineral-violet-dirt-4"] = { + name = "mineral-violet-dirt-4", + ["tree-desert-d"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-desert-d", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-desert-h", + weight = 10 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-dryland-c", + weight = 516 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-dryland-d", + weight = 11 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-dryland-h", + weight = 222 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-dryland-i", + weight = 420 + }, + ["tree-grassland-a"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-grassland-a", + weight = 2 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-grassland-b", + weight = 4 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-grassland-d", + weight = 2 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-grassland-e", + weight = 246 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-grassland-f", + weight = 7 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-grassland-h2", + weight = 1146 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-grassland-h3", + weight = 2 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-grassland-i", + weight = 602 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-wetland-e", + weight = 10 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-wetland-f", + weight = 6 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-violet-dirt-4", + tree_name = "tree-wetland-h", + weight = 8 + } +} +terrains["mineral-violet-dirt-5"] = { + name = "mineral-violet-dirt-5", + ["tree-desert-d"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-desert-d", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-desert-h", + weight = 28 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-dryland-c", + weight = 568 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-dryland-d", + weight = 32 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-dryland-e", + weight = 2 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-dryland-f", + weight = 2 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-dryland-h", + weight = 253 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-dryland-i", + weight = 161 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-grassland-d", + weight = 4 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-grassland-e", + weight = 467 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-grassland-h2", + weight = 499 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-grassland-i", + weight = 490 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-wetland-e", + weight = 39 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-violet-dirt-5", + tree_name = "tree-wetland-f", + weight = 27 + } +} +terrains["mineral-violet-dirt-6"] = { + name = "mineral-violet-dirt-6", + ["tree-desert-e"] = { + tile_name = "mineral-violet-dirt-6", + tree_name = "tree-desert-e", + weight = 3 + }, + ["tree-desert-h"] = { + tile_name = "mineral-violet-dirt-6", + tree_name = "tree-desert-h", + weight = 26 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-violet-dirt-6", + tree_name = "tree-dryland-c", + weight = 126 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-violet-dirt-6", + tree_name = "tree-dryland-d", + weight = 53 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-violet-dirt-6", + tree_name = "tree-dryland-h", + weight = 55 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-violet-dirt-6", + tree_name = "tree-dryland-i", + weight = 60 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-violet-dirt-6", + tree_name = "tree-grassland-e", + weight = 118 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-violet-dirt-6", + tree_name = "tree-grassland-h2", + weight = 161 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-violet-dirt-6", + tree_name = "tree-grassland-i", + weight = 156 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-violet-dirt-6", + tree_name = "tree-wetland-e", + weight = 9 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-violet-dirt-6", + tree_name = "tree-wetland-f", + weight = 15 + } +} +terrains["mineral-violet-dirt-2"] = { + name = "mineral-violet-dirt-2", + ["tree-desert-h"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-desert-h", + weight = 33 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-dryland-c", + weight = 1428 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-dryland-d", + weight = 28 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-dryland-e", + weight = 9 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-dryland-f", + weight = 4 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-dryland-g", + weight = 8 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-dryland-h", + weight = 1450 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-dryland-i", + weight = 622 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-dryland-m", + weight = 9 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-dryland-o", + weight = 3 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-grassland-d", + weight = 3 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-grassland-e", + weight = 531 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-grassland-h2", + weight = 3014 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-grassland-h3", + weight = 4 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-grassland-i", + weight = 880 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-wetland-e", + weight = 9 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-wetland-f", + weight = 5 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-violet-dirt-2", + tree_name = "tree-wetland-h", + weight = 28 + } +} +terrains["mineral-violet-dirt-3"] = { + name = "mineral-violet-dirt-3", + ["tree-desert-h"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-desert-h", + weight = 133 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-dryland-c", + weight = 872 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-dryland-d", + weight = 49 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-dryland-e", + weight = 10 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-dryland-h", + weight = 785 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-dryland-i", + weight = 1044 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-dryland-m", + weight = 2 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-dryland-o", + weight = 3 + }, + ["tree-grassland-b"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-grassland-b", + weight = 5 + }, + ["tree-grassland-d"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-grassland-d", + weight = 6 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-grassland-e", + weight = 78 + }, + ["tree-grassland-f"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-grassland-f", + weight = 11 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-grassland-h2", + weight = 1793 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-grassland-i", + weight = 1834 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-grassland-m", + weight = 13 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-wetland-e", + weight = 3 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-wetland-f", + weight = 32 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-violet-dirt-3", + tree_name = "tree-wetland-h", + weight = 12 + } +} +terrains["mineral-aubergine-sand-2"] = { + name = "mineral-aubergine-sand-2", + ["tree-desert-d"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-desert-d", + weight = 2 + }, + ["tree-desert-f"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-desert-f", + weight = 2 + }, + ["tree-desert-g"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-desert-h", + weight = 3281 + }, + ["tree-desert-i"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-desert-i", + weight = 4 + }, + ["tree-desert-k"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-desert-k", + weight = 10500 + }, + ["tree-desert-l"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-desert-l", + weight = 247 + }, + ["tree-desert-m"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-desert-m", + weight = 3 + }, + ["tree-desert-n"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-desert-n", + weight = 4 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-dryland-g", + weight = 2 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-dryland-h", + weight = 290 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-dryland-i", + weight = 158 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-dryland-l", + weight = 104 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-dryland-m", + weight = 782 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-grassland-h2", + weight = 472 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-grassland-h3", + weight = 653 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-grassland-i", + weight = 339 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-wetland-e", + weight = 3514 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-wetland-f", + weight = 837 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-wetland-h", + weight = 4142 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-wetland-k", + weight = 963 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-aubergine-sand-2", + tree_name = "tree-wetland-l", + weight = 172 + } +} +terrains["mineral-aubergine-sand-3"] = { + name = "mineral-aubergine-sand-3", + ["tree-desert-d"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-desert-d", + weight = 4 + }, + ["tree-desert-h"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-desert-h", + weight = 1933 + }, + ["tree-desert-i"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-desert-i", + weight = 3 + }, + ["tree-desert-j"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-desert-j", + weight = 3 + }, + ["tree-desert-k"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-desert-k", + weight = 6800 + }, + ["tree-desert-l"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-desert-l", + weight = 61 + }, + ["tree-desert-n"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-desert-n", + weight = 4 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-dryland-h", + weight = 86 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-dryland-i", + weight = 66 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-dryland-l", + weight = 16 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-dryland-m", + weight = 224 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-grassland-h2", + weight = 279 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-grassland-h3", + weight = 236 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-grassland-i", + weight = 147 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-wetland-e", + weight = 2308 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-wetland-f", + weight = 817 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-wetland-h", + weight = 2920 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-wetland-k", + weight = 706 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-aubergine-sand-3", + tree_name = "tree-wetland-l", + weight = 56 + } +} +terrains["mineral-aubergine-sand-1"] = { + name = "mineral-aubergine-sand-1", + ["tree-desert-d"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-desert-d", + weight = 5 + }, + ["tree-desert-f"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-desert-f", + weight = 3 + }, + ["tree-desert-h"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-desert-h", + weight = 6494 + }, + ["tree-desert-i"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-desert-i", + weight = 3 + }, + ["tree-desert-j"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-desert-j", + weight = 3 + }, + ["tree-desert-k"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-desert-k", + weight = 14654 + }, + ["tree-desert-l"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-desert-l", + weight = 410 + }, + ["tree-desert-m"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-desert-m", + weight = 2 + }, + ["tree-desert-n"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-desert-n", + weight = 4 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-dryland-c", + weight = 2 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-dryland-h", + weight = 374 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-dryland-i", + weight = 895 + }, + ["tree-dryland-l"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-dryland-l", + weight = 91 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-dryland-m", + weight = 1037 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-grassland-h2", + weight = 915 + }, + ["tree-grassland-h3"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-grassland-h3", + weight = 649 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-grassland-i", + weight = 681 + }, + ["tree-grassland-m"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-grassland-m", + weight = 4 + }, + ["tree-wetland-e"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-wetland-e", + weight = 4598 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-wetland-f", + weight = 2193 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-wetland-h", + weight = 9090 + }, + ["tree-wetland-k"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-wetland-k", + weight = 938 + }, + ["tree-wetland-l"] = { + tile_name = "mineral-aubergine-sand-1", + tree_name = "tree-wetland-l", + weight = 149 + } +} +terrains["mineral-purple-sand-2"] = { + name = "mineral-purple-sand-2", + ["tree-desert-d"] = { + tile_name = "mineral-purple-sand-2", + tree_name = "tree-desert-d", + weight = 3 + }, + ["tree-desert-e"] = { + tile_name = "mineral-purple-sand-2", + tree_name = "tree-desert-e", + weight = 208 + }, + ["tree-desert-g"] = { + tile_name = "mineral-purple-sand-2", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-purple-sand-2", + tree_name = "tree-desert-h", + weight = 2491 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-purple-sand-2", + tree_name = "tree-dryland-d", + weight = 99 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-purple-sand-2", + tree_name = "tree-dryland-h", + weight = 2 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-purple-sand-2", + tree_name = "tree-dryland-i", + weight = 63 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-purple-sand-2", + tree_name = "tree-grassland-e", + weight = 17 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-purple-sand-2", + tree_name = "tree-grassland-i", + weight = 226 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-purple-sand-2", + tree_name = "tree-wetland-f", + weight = 1221 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-purple-sand-2", + tree_name = "tree-wetland-h", + weight = 179 + } +} +terrains["mineral-purple-dirt-2"] = { + name = "mineral-purple-dirt-2", + ["tree-desert-e"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-desert-e", + weight = 76 + }, + ["tree-desert-h"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-desert-h", + weight = 319 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-dryland-c", + weight = 795 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-dryland-d", + weight = 2719 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-dryland-e", + weight = 11 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-dryland-g", + weight = 15 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-dryland-h", + weight = 192 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-dryland-i", + weight = 4047 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-dryland-m", + weight = 4 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-dryland-o", + weight = 26 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-grassland-e", + weight = 11 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-grassland-h2", + weight = 167 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-grassland-i", + weight = 111 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-wetland-f", + weight = 329 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-purple-dirt-2", + tree_name = "tree-wetland-h", + weight = 27 + } +} +terrains["mineral-purple-dirt-4"] = { + name = "mineral-purple-dirt-4", + ["tree-desert-e"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-desert-e", + weight = 52 + }, + ["tree-desert-h"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-desert-h", + weight = 139 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-dryland-c", + weight = 442 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-dryland-d", + weight = 469 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-dryland-e", + weight = 9 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-dryland-h", + weight = 84 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-dryland-i", + weight = 990 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-dryland-o", + weight = 2 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-grassland-e", + weight = 7 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-grassland-h2", + weight = 142 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-grassland-i", + weight = 49 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-wetland-f", + weight = 109 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-purple-dirt-4", + tree_name = "tree-wetland-h", + weight = 4 + } +} +terrains["mineral-purple-dirt-1"] = { + name = "mineral-purple-dirt-1", + ["tree-desert-d"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-desert-d", + weight = 2 + }, + ["tree-desert-e"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-desert-e", + weight = 118 + }, + ["tree-desert-g"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-desert-h", + weight = 218 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-dryland-c", + weight = 2759 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-dryland-d", + weight = 5100 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-dryland-e", + weight = 15 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-dryland-f", + weight = 2 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-dryland-g", + weight = 7 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-dryland-h", + weight = 86 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-dryland-i", + weight = 5129 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-dryland-o", + weight = 11 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-grassland-e", + weight = 89 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-grassland-h2", + weight = 128 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-grassland-i", + weight = 122 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-wetland-f", + weight = 440 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-purple-dirt-1", + tree_name = "tree-wetland-h", + weight = 169 + } +} +terrains["mineral-purple-dirt-3"] = { + name = "mineral-purple-dirt-3", + ["tree-desert-e"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-desert-e", + weight = 170 + }, + ["tree-desert-h"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-desert-h", + weight = 602 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-dryland-c", + weight = 643 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-dryland-d", + weight = 751 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-dryland-e", + weight = 16 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-dryland-g", + weight = 16 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-dryland-h", + weight = 46 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-dryland-i", + weight = 1971 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-dryland-m", + weight = 5 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-dryland-o", + weight = 34 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-grassland-e", + weight = 21 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-grassland-h2", + weight = 26 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-grassland-i", + weight = 141 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-wetland-f", + weight = 214 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-purple-dirt-3", + tree_name = "tree-wetland-h", + weight = 69 + } +} +terrains["mineral-purple-dirt-6"] = { + name = "mineral-purple-dirt-6", + ["tree-desert-e"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-desert-e", + weight = 56 + }, + ["tree-desert-h"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-desert-h", + weight = 68 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-dryland-c", + weight = 149 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-dryland-d", + weight = 114 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-dryland-e", + weight = 2 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-dryland-f", + weight = 2 + }, + ["tree-dryland-g"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-dryland-g", + weight = 5 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-dryland-h", + weight = 250 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-dryland-i", + weight = 779 + }, + ["tree-dryland-m"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-dryland-m", + weight = 3 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-grassland-e", + weight = 12 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-grassland-h2", + weight = 69 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-grassland-i", + weight = 303 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-wetland-f", + weight = 12 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-purple-dirt-6", + tree_name = "tree-wetland-h", + weight = 32 + } +} +terrains["mineral-purple-dirt-5"] = { + name = "mineral-purple-dirt-5", + ["tree-desert-e"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-desert-e", + weight = 68 + }, + ["tree-desert-h"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-desert-h", + weight = 97 + }, + ["tree-dryland-c"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-dryland-c", + weight = 637 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-dryland-d", + weight = 391 + }, + ["tree-dryland-e"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-dryland-e", + weight = 4 + }, + ["tree-dryland-f"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-dryland-f", + weight = 2 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-dryland-h", + weight = 355 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-dryland-i", + weight = 400 + }, + ["tree-dryland-o"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-dryland-o", + weight = 2 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-grassland-e", + weight = 4 + }, + ["tree-grassland-h2"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-grassland-h2", + weight = 55 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-grassland-i", + weight = 64 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-wetland-f", + weight = 169 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-purple-dirt-5", + tree_name = "tree-wetland-h", + weight = 27 + } +} +terrains["mineral-purple-sand-1"] = { + name = "mineral-purple-sand-1", + ["tree-desert-a"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-desert-a", + weight = 3 + }, + ["tree-desert-e"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-desert-e", + weight = 448 + }, + ["tree-desert-f"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-desert-f", + weight = 2 + }, + ["tree-desert-g"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-desert-g", + weight = 5 + }, + ["tree-desert-h"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-desert-h", + weight = 4777 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-dryland-d", + weight = 173 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-dryland-h", + weight = 2 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-dryland-i", + weight = 141 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-grassland-e", + weight = 19 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-grassland-i", + weight = 356 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-wetland-f", + weight = 2573 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-purple-sand-1", + tree_name = "tree-wetland-h", + weight = 319 + } +} +terrains["mineral-purple-sand-3"] = { + name = "mineral-purple-sand-3", + ["tree-desert-e"] = { + tile_name = "mineral-purple-sand-3", + tree_name = "tree-desert-e", + weight = 122 + }, + ["tree-desert-g"] = { + tile_name = "mineral-purple-sand-3", + tree_name = "tree-desert-g", + weight = 2 + }, + ["tree-desert-h"] = { + tile_name = "mineral-purple-sand-3", + tree_name = "tree-desert-h", + weight = 1152 + }, + ["tree-dryland-d"] = { + tile_name = "mineral-purple-sand-3", + tree_name = "tree-dryland-d", + weight = 89 + }, + ["tree-dryland-h"] = { + tile_name = "mineral-purple-sand-3", + tree_name = "tree-dryland-h", + weight = 8 + }, + ["tree-dryland-i"] = { + tile_name = "mineral-purple-sand-3", + tree_name = "tree-dryland-i", + weight = 35 + }, + ["tree-grassland-e"] = { + tile_name = "mineral-purple-sand-3", + tree_name = "tree-grassland-e", + weight = 65 + }, + ["tree-grassland-i"] = { + tile_name = "mineral-purple-sand-3", + tree_name = "tree-grassland-i", + weight = 98 + }, + ["tree-wetland-f"] = { + tile_name = "mineral-purple-sand-3", + tree_name = "tree-wetland-f", + weight = 574 + }, + ["tree-wetland-h"] = { + tile_name = "mineral-purple-sand-3", + tree_name = "tree-wetland-h", + weight = 112 + } +} + +terrains["sand-3"] = { + ["dry-hairy-tree"] = { + tile_name = "sand-3", + tree_name = "dry-hairy-tree", + weight = 1329 + }, + ["dry-tree"] = { + tile_name = "sand-3", + tree_name = "dry-tree", + weight = 1354 + }, + name = "sand-3", + ["tree-01"] = { + tile_name = "sand-3", + tree_name = "tree-01", + weight = 8 + }, + ["tree-02"] = { + tile_name = "sand-3", + tree_name = "tree-02", + weight = 1852 + }, + ["tree-02-red"] = { + tile_name = "sand-3", + tree_name = "tree-02-red", + weight = 1083 + }, + ["tree-03"] = { + tile_name = "sand-3", + tree_name = "tree-03", + weight = 8 + }, + ["tree-04"] = { + tile_name = "sand-3", + tree_name = "tree-04", + weight = 119 + }, + ["tree-05"] = { + tile_name = "sand-3", + tree_name = "tree-05", + weight = 274 + }, + ["tree-06"] = { + tile_name = "sand-3", + tree_name = "tree-06", + weight = 4055 + }, + ["tree-06-brown"] = { + tile_name = "sand-3", + tree_name = "tree-06-brown", + weight = 4921 + }, + ["tree-07"] = { + tile_name = "sand-3", + tree_name = "tree-07", + weight = 4077 + }, + ["tree-08"] = { + tile_name = "sand-3", + tree_name = "tree-08", + weight = 4660 + }, + ["tree-08-brown"] = { + tile_name = "sand-3", + tree_name = "tree-08-brown", + weight = 3140 + }, + ["tree-09-brown"] = { + tile_name = "sand-3", + tree_name = "tree-09-brown", + weight = 57204 + }, + ["tree-09-red"] = { + tile_name = "sand-3", + tree_name = "tree-09-red", + weight = 71641 + } +} +terrains["sand-2"] = { + ["dry-hairy-tree"] = { + tile_name = "sand-2", + tree_name = "dry-hairy-tree", + weight = 1553 + }, + ["dry-tree"] = { + tile_name = "sand-2", + tree_name = "dry-tree", + weight = 1565 + }, + name = "sand-2", + ["tree-02"] = { + tile_name = "sand-2", + tree_name = "tree-02", + weight = 2319 + }, + ["tree-02-red"] = { + tile_name = "sand-2", + tree_name = "tree-02-red", + weight = 1603 + }, + ["tree-03"] = { + tile_name = "sand-2", + tree_name = "tree-03", + weight = 2 + }, + ["tree-04"] = { + tile_name = "sand-2", + tree_name = "tree-04", + weight = 472 + }, + ["tree-05"] = { + tile_name = "sand-2", + tree_name = "tree-05", + weight = 50 + }, + ["tree-06"] = { + tile_name = "sand-2", + tree_name = "tree-06", + weight = 13597 + }, + ["tree-06-brown"] = { + tile_name = "sand-2", + tree_name = "tree-06-brown", + weight = 18656 + }, + ["tree-07"] = { + tile_name = "sand-2", + tree_name = "tree-07", + weight = 4690 + }, + ["tree-08"] = { + tile_name = "sand-2", + tree_name = "tree-08", + weight = 6424 + }, + ["tree-08-brown"] = { + tile_name = "sand-2", + tree_name = "tree-08-brown", + weight = 4469 + }, + ["tree-09"] = { + tile_name = "sand-2", + tree_name = "tree-09", + weight = 5 + }, + ["tree-09-brown"] = { + tile_name = "sand-2", + tree_name = "tree-09-brown", + weight = 69112 + }, + ["tree-09-red"] = { + tile_name = "sand-2", + tree_name = "tree-09-red", + weight = 74298 + } +} +terrains["dirt-3"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-3", + tree_name = "dry-hairy-tree", + weight = 555 + }, + ["dry-tree"] = { + tile_name = "dirt-3", + tree_name = "dry-tree", + weight = 531 + }, + name = "dirt-3", + ["tree-01"] = { + tile_name = "dirt-3", + tree_name = "tree-01", + weight = 122 + }, + ["tree-02"] = { + tile_name = "dirt-3", + tree_name = "tree-02", + weight = 5576 + }, + ["tree-02-red"] = { + tile_name = "dirt-3", + tree_name = "tree-02-red", + weight = 275002 + }, + ["tree-03"] = { + tile_name = "dirt-3", + tree_name = "tree-03", + weight = 17 + }, + ["tree-04"] = { + tile_name = "dirt-3", + tree_name = "tree-04", + weight = 102600 + }, + ["tree-05"] = { + tile_name = "dirt-3", + tree_name = "tree-05", + weight = 1012 + }, + ["tree-06"] = { + tile_name = "dirt-3", + tree_name = "tree-06", + weight = 221 + }, + ["tree-06-brown"] = { + tile_name = "dirt-3", + tree_name = "tree-06-brown", + weight = 473 + }, + ["tree-07"] = { + tile_name = "dirt-3", + tree_name = "tree-07", + weight = 177 + }, + ["tree-08"] = { + tile_name = "dirt-3", + tree_name = "tree-08", + weight = 577 + }, + ["tree-08-brown"] = { + tile_name = "dirt-3", + tree_name = "tree-08-brown", + weight = 413 + }, + ["tree-09"] = { + tile_name = "dirt-3", + tree_name = "tree-09", + weight = 1823 + }, + ["tree-09-brown"] = { + tile_name = "dirt-3", + tree_name = "tree-09-brown", + weight = 4608 + }, + ["tree-09-red"] = { + tile_name = "dirt-3", + tree_name = "tree-09-red", + weight = 3159 + } +} +terrains["dirt-5"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-5", + tree_name = "dry-hairy-tree", + weight = 235 + }, + ["dry-tree"] = { + tile_name = "dirt-5", + tree_name = "dry-tree", + weight = 211 + }, + name = "dirt-5", + ["tree-01"] = { + tile_name = "dirt-5", + tree_name = "tree-01", + weight = 492 + }, + ["tree-02"] = { + tile_name = "dirt-5", + tree_name = "tree-02", + weight = 15720 + }, + ["tree-02-red"] = { + tile_name = "dirt-5", + tree_name = "tree-02-red", + weight = 386423 + }, + ["tree-03"] = { + tile_name = "dirt-5", + tree_name = "tree-03", + weight = 73 + }, + ["tree-04"] = { + tile_name = "dirt-5", + tree_name = "tree-04", + weight = 123733 + }, + ["tree-05"] = { + tile_name = "dirt-5", + tree_name = "tree-05", + weight = 2555 + }, + ["tree-06"] = { + tile_name = "dirt-5", + tree_name = "tree-06", + weight = 205 + }, + ["tree-06-brown"] = { + tile_name = "dirt-5", + tree_name = "tree-06-brown", + weight = 425 + }, + ["tree-07"] = { + tile_name = "dirt-5", + tree_name = "tree-07", + weight = 50 + }, + ["tree-08"] = { + tile_name = "dirt-5", + tree_name = "tree-08", + weight = 724 + }, + ["tree-08-brown"] = { + tile_name = "dirt-5", + tree_name = "tree-08-brown", + weight = 416 + }, + ["tree-09"] = { + tile_name = "dirt-5", + tree_name = "tree-09", + weight = 3804 + }, + ["tree-09-brown"] = { + tile_name = "dirt-5", + tree_name = "tree-09-brown", + weight = 1255 + }, + ["tree-09-red"] = { + tile_name = "dirt-5", + tree_name = "tree-09-red", + weight = 1342 + } +} +terrains["dirt-7"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-7", + tree_name = "dry-hairy-tree", + weight = 167 + }, + ["dry-tree"] = { + tile_name = "dirt-7", + tree_name = "dry-tree", + weight = 153 + }, + name = "dirt-7", + ["tree-01"] = { + tile_name = "dirt-7", + tree_name = "tree-01", + weight = 2205 + }, + ["tree-02"] = { + tile_name = "dirt-7", + tree_name = "tree-02", + weight = 231742 + }, + ["tree-02-red"] = { + tile_name = "dirt-7", + tree_name = "tree-02-red", + weight = 103832 + }, + ["tree-03"] = { + tile_name = "dirt-7", + tree_name = "tree-03", + weight = 51 + }, + ["tree-04"] = { + tile_name = "dirt-7", + tree_name = "tree-04", + weight = 146321 + }, + ["tree-05"] = { + tile_name = "dirt-7", + tree_name = "tree-05", + weight = 13568 + }, + ["tree-06"] = { + tile_name = "dirt-7", + tree_name = "tree-06", + weight = 348 + }, + ["tree-06-brown"] = { + tile_name = "dirt-7", + tree_name = "tree-06-brown", + weight = 387 + }, + ["tree-07"] = { + tile_name = "dirt-7", + tree_name = "tree-07", + weight = 9 + }, + ["tree-08"] = { + tile_name = "dirt-7", + tree_name = "tree-08", + weight = 636 + }, + ["tree-08-brown"] = { + tile_name = "dirt-7", + tree_name = "tree-08-brown", + weight = 501 + }, + ["tree-09"] = { + tile_name = "dirt-7", + tree_name = "tree-09", + weight = 1130 + }, + ["tree-09-brown"] = { + tile_name = "dirt-7", + tree_name = "tree-09-brown", + weight = 433 + }, + ["tree-09-red"] = { + tile_name = "dirt-7", + tree_name = "tree-09-red", + weight = 494 + } +} +terrains["dirt-6"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-6", + tree_name = "dry-hairy-tree", + weight = 196 + }, + ["dry-tree"] = { + tile_name = "dirt-6", + tree_name = "dry-tree", + weight = 221 + }, + name = "dirt-6", + ["tree-01"] = { + tile_name = "dirt-6", + tree_name = "tree-01", + weight = 1841 + }, + ["tree-02"] = { + tile_name = "dirt-6", + tree_name = "tree-02", + weight = 87839 + }, + ["tree-02-red"] = { + tile_name = "dirt-6", + tree_name = "tree-02-red", + weight = 332276 + }, + ["tree-03"] = { + tile_name = "dirt-6", + tree_name = "tree-03", + weight = 17 + }, + ["tree-04"] = { + tile_name = "dirt-6", + tree_name = "tree-04", + weight = 148120 + }, + ["tree-05"] = { + tile_name = "dirt-6", + tree_name = "tree-05", + weight = 2812 + }, + ["tree-06"] = { + tile_name = "dirt-6", + tree_name = "tree-06", + weight = 196 + }, + ["tree-06-brown"] = { + tile_name = "dirt-6", + tree_name = "tree-06-brown", + weight = 344 + }, + ["tree-07"] = { + tile_name = "dirt-6", + tree_name = "tree-07", + weight = 39 + }, + ["tree-08"] = { + tile_name = "dirt-6", + tree_name = "tree-08", + weight = 536 + }, + ["tree-08-brown"] = { + tile_name = "dirt-6", + tree_name = "tree-08-brown", + weight = 372 + }, + ["tree-09"] = { + tile_name = "dirt-6", + tree_name = "tree-09", + weight = 2526 + }, + ["tree-09-brown"] = { + tile_name = "dirt-6", + tree_name = "tree-09-brown", + weight = 424 + }, + ["tree-09-red"] = { + tile_name = "dirt-6", + tree_name = "tree-09-red", + weight = 831 + } +} +terrains["grass-3"] = { + ["dry-hairy-tree"] = { + tile_name = "grass-3", + tree_name = "dry-hairy-tree", + weight = 350 + }, + ["dry-tree"] = { + tile_name = "grass-3", + tree_name = "dry-tree", + weight = 371 + }, + name = "grass-3", + ["tree-01"] = { + tile_name = "grass-3", + tree_name = "tree-01", + weight = 8639 + }, + ["tree-02"] = { + tile_name = "grass-3", + tree_name = "tree-02", + weight = 475710 + }, + ["tree-02-red"] = { + tile_name = "grass-3", + tree_name = "tree-02-red", + weight = 4063 + }, + ["tree-03"] = { + tile_name = "grass-3", + tree_name = "tree-03", + weight = 5821 + }, + ["tree-04"] = { + tile_name = "grass-3", + tree_name = "tree-04", + weight = 142407 + }, + ["tree-05"] = { + tile_name = "grass-3", + tree_name = "tree-05", + weight = 202162 + }, + ["tree-06"] = { + tile_name = "grass-3", + tree_name = "tree-06", + weight = 353 + }, + ["tree-06-brown"] = { + tile_name = "grass-3", + tree_name = "tree-06-brown", + weight = 596 + }, + ["tree-07"] = { + tile_name = "grass-3", + tree_name = "tree-07", + weight = 41 + }, + ["tree-08"] = { + tile_name = "grass-3", + tree_name = "tree-08", + weight = 557 + }, + ["tree-08-brown"] = { + tile_name = "grass-3", + tree_name = "tree-08-brown", + weight = 698 + }, + ["tree-09"] = { + tile_name = "grass-3", + tree_name = "tree-09", + weight = 12 + }, + ["tree-09-brown"] = { + tile_name = "grass-3", + tree_name = "tree-09-brown", + weight = 966 + }, + ["tree-09-red"] = { + tile_name = "grass-3", + tree_name = "tree-09-red", + weight = 888 + } +} +terrains["grass-1"] = { + ["dry-hairy-tree"] = { + tile_name = "grass-1", + tree_name = "dry-hairy-tree", + weight = 355 + }, + ["dry-tree"] = { + tile_name = "grass-1", + tree_name = "dry-tree", + weight = 317 + }, + name = "grass-1", + ["tree-01"] = { + tile_name = "grass-1", + tree_name = "tree-01", + weight = 13625 + }, + ["tree-02"] = { + tile_name = "grass-1", + tree_name = "tree-02", + weight = 467689 + }, + ["tree-02-red"] = { + tile_name = "grass-1", + tree_name = "tree-02-red", + weight = 2038 + }, + ["tree-03"] = { + tile_name = "grass-1", + tree_name = "tree-03", + weight = 11802 + }, + ["tree-04"] = { + tile_name = "grass-1", + tree_name = "tree-04", + weight = 186950 + }, + ["tree-05"] = { + tile_name = "grass-1", + tree_name = "tree-05", + weight = 360046 + }, + ["tree-06"] = { + tile_name = "grass-1", + tree_name = "tree-06", + weight = 96 + }, + ["tree-06-brown"] = { + tile_name = "grass-1", + tree_name = "tree-06-brown", + weight = 220 + }, + ["tree-07"] = { + tile_name = "grass-1", + tree_name = "tree-07", + weight = 41 + }, + ["tree-08"] = { + tile_name = "grass-1", + tree_name = "tree-08", + weight = 629 + }, + ["tree-08-brown"] = { + tile_name = "grass-1", + tree_name = "tree-08-brown", + weight = 301 + }, + ["tree-09"] = { + tile_name = "grass-1", + tree_name = "tree-09", + weight = 20 + }, + ["tree-09-brown"] = { + tile_name = "grass-1", + tree_name = "tree-09-brown", + weight = 769 + }, + ["tree-09-red"] = { + tile_name = "grass-1", + tree_name = "tree-09-red", + weight = 684 + } +} +terrains["dirt-1"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-1", + tree_name = "dry-hairy-tree", + weight = 1664 + }, + ["dry-tree"] = { + tile_name = "dirt-1", + tree_name = "dry-tree", + weight = 1690 + }, + name = "dirt-1", + ["tree-02"] = { + tile_name = "dirt-1", + tree_name = "tree-02", + weight = 2257 + }, + ["tree-02-red"] = { + tile_name = "dirt-1", + tree_name = "tree-02-red", + weight = 3610 + }, + ["tree-03"] = { + tile_name = "dirt-1", + tree_name = "tree-03", + weight = 5 + }, + ["tree-04"] = { + tile_name = "dirt-1", + tree_name = "tree-04", + weight = 3764 + }, + ["tree-05"] = { + tile_name = "dirt-1", + tree_name = "tree-05", + weight = 402 + }, + ["tree-06"] = { + tile_name = "dirt-1", + tree_name = "tree-06", + weight = 19 + }, + ["tree-06-brown"] = { + tile_name = "dirt-1", + tree_name = "tree-06-brown", + weight = 118 + }, + ["tree-07"] = { + tile_name = "dirt-1", + tree_name = "tree-07", + weight = 2607 + }, + ["tree-08"] = { + tile_name = "dirt-1", + tree_name = "tree-08", + weight = 184 + }, + ["tree-08-brown"] = { + tile_name = "dirt-1", + tree_name = "tree-08-brown", + weight = 28 + }, + ["tree-09"] = { + tile_name = "dirt-1", + tree_name = "tree-09", + weight = 22 + }, + ["tree-09-brown"] = { + tile_name = "dirt-1", + tree_name = "tree-09-brown", + weight = 41448 + }, + ["tree-09-red"] = { + tile_name = "dirt-1", + tree_name = "tree-09-red", + weight = 50885 + } +} +terrains["grass-4"] = { + ["dry-hairy-tree"] = { + tile_name = "grass-4", + tree_name = "dry-hairy-tree", + weight = 212 + }, + ["dry-tree"] = { + tile_name = "grass-4", + tree_name = "dry-tree", + weight = 201 + }, + name = "grass-4", + ["tree-01"] = { + tile_name = "grass-4", + tree_name = "tree-01", + weight = 3578 + }, + ["tree-02"] = { + tile_name = "grass-4", + tree_name = "tree-02", + weight = 435531 + }, + ["tree-02-red"] = { + tile_name = "grass-4", + tree_name = "tree-02-red", + weight = 29881 + }, + ["tree-03"] = { + tile_name = "grass-4", + tree_name = "tree-03", + weight = 1806 + }, + ["tree-04"] = { + tile_name = "grass-4", + tree_name = "tree-04", + weight = 153326 + }, + ["tree-05"] = { + tile_name = "grass-4", + tree_name = "tree-05", + weight = 73803 + }, + ["tree-06"] = { + tile_name = "grass-4", + tree_name = "tree-06", + weight = 309 + }, + ["tree-06-brown"] = { + tile_name = "grass-4", + tree_name = "tree-06-brown", + weight = 225 + }, + ["tree-07"] = { + tile_name = "grass-4", + tree_name = "tree-07", + weight = 53 + }, + ["tree-08"] = { + tile_name = "grass-4", + tree_name = "tree-08", + weight = 388 + }, + ["tree-08-brown"] = { + tile_name = "grass-4", + tree_name = "tree-08-brown", + weight = 352 + }, + ["tree-09"] = { + tile_name = "grass-4", + tree_name = "tree-09", + weight = 334 + }, + ["tree-09-brown"] = { + tile_name = "grass-4", + tree_name = "tree-09-brown", + weight = 882 + }, + ["tree-09-red"] = { + tile_name = "grass-4", + tree_name = "tree-09-red", + weight = 876 + } +} +terrains["dry-dirt"] = { + ["dry-hairy-tree"] = { + tile_name = "dry-dirt", + tree_name = "dry-hairy-tree", + weight = 1094 + }, + ["dry-tree"] = { + tile_name = "dry-dirt", + tree_name = "dry-tree", + weight = 1151 + }, + name = "dry-dirt", + ["tree-02"] = { + tile_name = "dry-dirt", + tree_name = "tree-02", + weight = 1875 + }, + ["tree-02-red"] = { + tile_name = "dry-dirt", + tree_name = "tree-02-red", + weight = 2909 + }, + ["tree-04"] = { + tile_name = "dry-dirt", + tree_name = "tree-04", + weight = 1197 + }, + ["tree-05"] = { + tile_name = "dry-dirt", + tree_name = "tree-05", + weight = 125 + }, + ["tree-06"] = { + tile_name = "dry-dirt", + tree_name = "tree-06", + weight = 4024 + }, + ["tree-06-brown"] = { + tile_name = "dry-dirt", + tree_name = "tree-06-brown", + weight = 4689 + }, + ["tree-07"] = { + tile_name = "dry-dirt", + tree_name = "tree-07", + weight = 437 + }, + ["tree-08"] = { + tile_name = "dry-dirt", + tree_name = "tree-08", + weight = 3050 + }, + ["tree-08-brown"] = { + tile_name = "dry-dirt", + tree_name = "tree-08-brown", + weight = 1542 + }, + ["tree-09"] = { + tile_name = "dry-dirt", + tree_name = "tree-09", + weight = 20 + }, + ["tree-09-brown"] = { + tile_name = "dry-dirt", + tree_name = "tree-09-brown", + weight = 8528 + }, + ["tree-09-red"] = { + tile_name = "dry-dirt", + tree_name = "tree-09-red", + weight = 9941 + } +} +terrains["sand-1"] = { + ["dry-hairy-tree"] = { + tile_name = "sand-1", + tree_name = "dry-hairy-tree", + weight = 10274 + }, + ["dry-tree"] = { + tile_name = "sand-1", + tree_name = "dry-tree", + weight = 10310 + }, + name = "sand-1", + ["tree-01"] = { + tile_name = "sand-1", + tree_name = "tree-01", + weight = 20 + }, + ["tree-02"] = { + tile_name = "sand-1", + tree_name = "tree-02", + weight = 12319 + }, + ["tree-02-red"] = { + tile_name = "sand-1", + tree_name = "tree-02-red", + weight = 9096 + }, + ["tree-03"] = { + tile_name = "sand-1", + tree_name = "tree-03", + weight = 26 + }, + ["tree-04"] = { + tile_name = "sand-1", + tree_name = "tree-04", + weight = 2018 + }, + ["tree-05"] = { + tile_name = "sand-1", + tree_name = "tree-05", + weight = 1123 + }, + ["tree-06"] = { + tile_name = "sand-1", + tree_name = "tree-06", + weight = 33971 + }, + ["tree-06-brown"] = { + tile_name = "sand-1", + tree_name = "tree-06-brown", + weight = 46980 + }, + ["tree-07"] = { + tile_name = "sand-1", + tree_name = "tree-07", + weight = 3933 + }, + ["tree-08"] = { + tile_name = "sand-1", + tree_name = "tree-08", + weight = 37953 + }, + ["tree-08-brown"] = { + tile_name = "sand-1", + tree_name = "tree-08-brown", + weight = 29880 + }, + ["tree-09"] = { + tile_name = "sand-1", + tree_name = "tree-09", + weight = 8 + }, + ["tree-09-brown"] = { + tile_name = "sand-1", + tree_name = "tree-09-brown", + weight = 69214 + }, + ["tree-09-red"] = { + tile_name = "sand-1", + tree_name = "tree-09-red", + weight = 75344 + } +} +terrains["dirt-2"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-2", + tree_name = "dry-hairy-tree", + weight = 1065 + }, + ["dry-tree"] = { + tile_name = "dirt-2", + tree_name = "dry-tree", + weight = 1059 + }, + name = "dirt-2", + ["tree-01"] = { + tile_name = "dirt-2", + tree_name = "tree-01", + weight = 32 + }, + ["tree-02"] = { + tile_name = "dirt-2", + tree_name = "tree-02", + weight = 6353 + }, + ["tree-02-red"] = { + tile_name = "dirt-2", + tree_name = "tree-02-red", + weight = 72448 + }, + ["tree-03"] = { + tile_name = "dirt-2", + tree_name = "tree-03", + weight = 38 + }, + ["tree-04"] = { + tile_name = "dirt-2", + tree_name = "tree-04", + weight = 32158 + }, + ["tree-05"] = { + tile_name = "dirt-2", + tree_name = "tree-05", + weight = 1067 + }, + ["tree-06"] = { + tile_name = "dirt-2", + tree_name = "tree-06", + weight = 155 + }, + ["tree-06-brown"] = { + tile_name = "dirt-2", + tree_name = "tree-06-brown", + weight = 104 + }, + ["tree-07"] = { + tile_name = "dirt-2", + tree_name = "tree-07", + weight = 788 + }, + ["tree-08"] = { + tile_name = "dirt-2", + tree_name = "tree-08", + weight = 300 + }, + ["tree-08-brown"] = { + tile_name = "dirt-2", + tree_name = "tree-08-brown", + weight = 189 + }, + ["tree-09"] = { + tile_name = "dirt-2", + tree_name = "tree-09", + weight = 699 + }, + ["tree-09-brown"] = { + tile_name = "dirt-2", + tree_name = "tree-09-brown", + weight = 14492 + }, + ["tree-09-red"] = { + tile_name = "dirt-2", + tree_name = "tree-09-red", + weight = 14093 + } +} +terrains["red-desert-3"] = { + ["dry-hairy-tree"] = { + tile_name = "red-desert-3", + tree_name = "dry-hairy-tree", + weight = 325 + }, + ["dry-tree"] = { + tile_name = "red-desert-3", + tree_name = "dry-tree", + weight = 289 + }, + name = "red-desert-3", + ["tree-01"] = { + tile_name = "red-desert-3", + tree_name = "tree-01", + weight = 2 + }, + ["tree-02"] = { + tile_name = "red-desert-3", + tree_name = "tree-02", + weight = 269 + }, + ["tree-02-red"] = { + tile_name = "red-desert-3", + tree_name = "tree-02-red", + weight = 181 + }, + ["tree-04"] = { + tile_name = "red-desert-3", + tree_name = "tree-04", + weight = 120 + }, + ["tree-05"] = { + tile_name = "red-desert-3", + tree_name = "tree-05", + weight = 193 + }, + ["tree-06"] = { + tile_name = "red-desert-3", + tree_name = "tree-06", + weight = 642 + }, + ["tree-06-brown"] = { + tile_name = "red-desert-3", + tree_name = "tree-06-brown", + weight = 1067 + }, + ["tree-07"] = { + tile_name = "red-desert-3", + tree_name = "tree-07", + weight = 25 + }, + ["tree-08"] = { + tile_name = "red-desert-3", + tree_name = "tree-08", + weight = 1145 + }, + ["tree-08-brown"] = { + tile_name = "red-desert-3", + tree_name = "tree-08-brown", + weight = 475 + }, + ["tree-09"] = { + tile_name = "red-desert-3", + tree_name = "tree-09", + weight = 2 + }, + ["tree-09-brown"] = { + tile_name = "red-desert-3", + tree_name = "tree-09-brown", + weight = 566 + }, + ["tree-09-red"] = { + tile_name = "red-desert-3", + tree_name = "tree-09-red", + weight = 505 + } +} +terrains["grass-2"] = { + ["dry-hairy-tree"] = { + tile_name = "grass-2", + tree_name = "dry-hairy-tree", + weight = 56 + }, + ["dry-tree"] = { + tile_name = "grass-2", + tree_name = "dry-tree", + weight = 62 + }, + name = "grass-2", + ["tree-01"] = { + tile_name = "grass-2", + tree_name = "tree-01", + weight = 2398 + }, + ["tree-02"] = { + tile_name = "grass-2", + tree_name = "tree-02", + weight = 146175 + }, + ["tree-02-red"] = { + tile_name = "grass-2", + tree_name = "tree-02-red", + weight = 9612 + }, + ["tree-03"] = { + tile_name = "grass-2", + tree_name = "tree-03", + weight = 1743 + }, + ["tree-04"] = { + tile_name = "grass-2", + tree_name = "tree-04", + weight = 57088 + }, + ["tree-05"] = { + tile_name = "grass-2", + tree_name = "tree-05", + weight = 53030 + }, + ["tree-06"] = { + tile_name = "grass-2", + tree_name = "tree-06", + weight = 45 + }, + ["tree-06-brown"] = { + tile_name = "grass-2", + tree_name = "tree-06-brown", + weight = 100 + }, + ["tree-08"] = { + tile_name = "grass-2", + tree_name = "tree-08", + weight = 47 + }, + ["tree-08-brown"] = { + tile_name = "grass-2", + tree_name = "tree-08-brown", + weight = 38 + }, + ["tree-09"] = { + tile_name = "grass-2", + tree_name = "tree-09", + weight = 80 + }, + ["tree-09-brown"] = { + tile_name = "grass-2", + tree_name = "tree-09-brown", + weight = 60 + }, + ["tree-09-red"] = { + tile_name = "grass-2", + tree_name = "tree-09-red", + weight = 200 + } +} +terrains["red-desert-0"] = { + ["dry-hairy-tree"] = { + tile_name = "red-desert-0", + tree_name = "dry-hairy-tree", + weight = 27 + }, + ["dry-tree"] = { + tile_name = "red-desert-0", + tree_name = "dry-tree", + weight = 32 + }, + name = "red-desert-0", + ["tree-01"] = { + tile_name = "red-desert-0", + tree_name = "tree-01", + weight = 640 + }, + ["tree-02"] = { + tile_name = "red-desert-0", + tree_name = "tree-02", + weight = 62183 + }, + ["tree-02-red"] = { + tile_name = "red-desert-0", + tree_name = "tree-02-red", + weight = 80789 + }, + ["tree-03"] = { + tile_name = "red-desert-0", + tree_name = "tree-03", + weight = 5 + }, + ["tree-04"] = { + tile_name = "red-desert-0", + tree_name = "tree-04", + weight = 42156 + }, + ["tree-05"] = { + tile_name = "red-desert-0", + tree_name = "tree-05", + weight = 5046 + }, + ["tree-06"] = { + tile_name = "red-desert-0", + tree_name = "tree-06", + weight = 64 + }, + ["tree-06-brown"] = { + tile_name = "red-desert-0", + tree_name = "tree-06-brown", + weight = 75 + }, + ["tree-08"] = { + tile_name = "red-desert-0", + tree_name = "tree-08", + weight = 142 + }, + ["tree-08-brown"] = { + tile_name = "red-desert-0", + tree_name = "tree-08-brown", + weight = 13 + }, + ["tree-09"] = { + tile_name = "red-desert-0", + tree_name = "tree-09", + weight = 917 + }, + ["tree-09-brown"] = { + tile_name = "red-desert-0", + tree_name = "tree-09-brown", + weight = 42 + }, + ["tree-09-red"] = { + tile_name = "red-desert-0", + tree_name = "tree-09-red", + weight = 103 + } +} +terrains["red-desert-2"] = { + ["dry-hairy-tree"] = { + tile_name = "red-desert-2", + tree_name = "dry-hairy-tree", + weight = 252 + }, + ["dry-tree"] = { + tile_name = "red-desert-2", + tree_name = "dry-tree", + weight = 291 + }, + name = "red-desert-2", + ["tree-02"] = { + tile_name = "red-desert-2", + tree_name = "tree-02", + weight = 103 + }, + ["tree-02-red"] = { + tile_name = "red-desert-2", + tree_name = "tree-02-red", + weight = 111 + }, + ["tree-04"] = { + tile_name = "red-desert-2", + tree_name = "tree-04", + weight = 42 + }, + ["tree-05"] = { + tile_name = "red-desert-2", + tree_name = "tree-05", + weight = 2 + }, + ["tree-06"] = { + tile_name = "red-desert-2", + tree_name = "tree-06", + weight = 1229 + }, + ["tree-06-brown"] = { + tile_name = "red-desert-2", + tree_name = "tree-06-brown", + weight = 1398 + }, + ["tree-07"] = { + tile_name = "red-desert-2", + tree_name = "tree-07", + weight = 270 + }, + ["tree-08"] = { + tile_name = "red-desert-2", + tree_name = "tree-08", + weight = 607 + }, + ["tree-08-brown"] = { + tile_name = "red-desert-2", + tree_name = "tree-08-brown", + weight = 625 + }, + ["tree-09-brown"] = { + tile_name = "red-desert-2", + tree_name = "tree-09-brown", + weight = 4130 + }, + ["tree-09-red"] = { + tile_name = "red-desert-2", + tree_name = "tree-09-red", + weight = 5207 + } +} +terrains["dirt-4"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-4", + tree_name = "dry-hairy-tree", + weight = 570 + }, + ["dry-tree"] = { + tile_name = "dirt-4", + tree_name = "dry-tree", + weight = 671 + }, + name = "dirt-4", + ["tree-01"] = { + tile_name = "dirt-4", + tree_name = "tree-01", + weight = 2 + }, + ["tree-02"] = { + tile_name = "dirt-4", + tree_name = "tree-02", + weight = 1239 + }, + ["tree-02-red"] = { + tile_name = "dirt-4", + tree_name = "tree-02-red", + weight = 60007 + }, + ["tree-04"] = { + tile_name = "dirt-4", + tree_name = "tree-04", + weight = 16241 + }, + ["tree-06"] = { + tile_name = "dirt-4", + tree_name = "tree-06", + weight = 1030 + }, + ["tree-06-brown"] = { + tile_name = "dirt-4", + tree_name = "tree-06-brown", + weight = 1362 + }, + ["tree-07"] = { + tile_name = "dirt-4", + tree_name = "tree-07", + weight = 682 + }, + ["tree-08"] = { + tile_name = "dirt-4", + tree_name = "tree-08", + weight = 869 + }, + ["tree-08-brown"] = { + tile_name = "dirt-4", + tree_name = "tree-08-brown", + weight = 659 + }, + ["tree-09"] = { + tile_name = "dirt-4", + tree_name = "tree-09", + weight = 729 + }, + ["tree-09-brown"] = { + tile_name = "dirt-4", + tree_name = "tree-09-brown", + weight = 12700 + }, + ["tree-09-red"] = { + tile_name = "dirt-4", + tree_name = "tree-09-red", + weight = 11191 + } +} +terrains["red-desert-1"] = { + ["dry-hairy-tree"] = { + tile_name = "red-desert-1", + tree_name = "dry-hairy-tree", + weight = 304 + }, + ["dry-tree"] = { + tile_name = "red-desert-1", + tree_name = "dry-tree", + weight = 263 + }, + name = "red-desert-1", + ["tree-02"] = { + tile_name = "red-desert-1", + tree_name = "tree-02", + weight = 251 + }, + ["tree-02-red"] = { + tile_name = "red-desert-1", + tree_name = "tree-02-red", + weight = 341 + }, + ["tree-04"] = { + tile_name = "red-desert-1", + tree_name = "tree-04", + weight = 103 + }, + ["tree-05"] = { + tile_name = "red-desert-1", + tree_name = "tree-05", + weight = 60 + }, + ["tree-06"] = { + tile_name = "red-desert-1", + tree_name = "tree-06", + weight = 819 + }, + ["tree-06-brown"] = { + tile_name = "red-desert-1", + tree_name = "tree-06-brown", + weight = 1298 + }, + ["tree-07"] = { + tile_name = "red-desert-1", + tree_name = "tree-07", + weight = 327 + }, + ["tree-08"] = { + tile_name = "red-desert-1", + tree_name = "tree-08", + weight = 587 + }, + ["tree-08-brown"] = { + tile_name = "red-desert-1", + tree_name = "tree-08-brown", + weight = 415 + }, + ["tree-09-brown"] = { + tile_name = "red-desert-1", + tree_name = "tree-09-brown", + weight = 7565 + }, + ["tree-09-red"] = { + tile_name = "red-desert-1", + tree_name = "tree-09-red", + weight = 8269 + } +} +terrains["sand-3"] = { + ["dry-hairy-tree"] = { + tile_name = "sand-3", + tree_name = "dry-hairy-tree", + weight = 1329 + }, + ["dry-tree"] = { + tile_name = "sand-3", + tree_name = "dry-tree", + weight = 1354 + }, + name = "sand-3", + ["tree-01"] = { + tile_name = "sand-3", + tree_name = "tree-01", + weight = 8 + }, + ["tree-02"] = { + tile_name = "sand-3", + tree_name = "tree-02", + weight = 1852 + }, + ["tree-02-red"] = { + tile_name = "sand-3", + tree_name = "tree-02-red", + weight = 1083 + }, + ["tree-03"] = { + tile_name = "sand-3", + tree_name = "tree-03", + weight = 8 + }, + ["tree-04"] = { + tile_name = "sand-3", + tree_name = "tree-04", + weight = 119 + }, + ["tree-05"] = { + tile_name = "sand-3", + tree_name = "tree-05", + weight = 274 + }, + ["tree-06"] = { + tile_name = "sand-3", + tree_name = "tree-06", + weight = 4055 + }, + ["tree-06-brown"] = { + tile_name = "sand-3", + tree_name = "tree-06-brown", + weight = 4921 + }, + ["tree-07"] = { + tile_name = "sand-3", + tree_name = "tree-07", + weight = 4077 + }, + ["tree-08"] = { + tile_name = "sand-3", + tree_name = "tree-08", + weight = 4660 + }, + ["tree-08-brown"] = { + tile_name = "sand-3", + tree_name = "tree-08-brown", + weight = 3140 + }, + ["tree-09-brown"] = { + tile_name = "sand-3", + tree_name = "tree-09-brown", + weight = 57204 + }, + ["tree-09-red"] = { + tile_name = "sand-3", + tree_name = "tree-09-red", + weight = 71641 + } +} +terrains["sand-2"] = { + ["dry-hairy-tree"] = { + tile_name = "sand-2", + tree_name = "dry-hairy-tree", + weight = 1553 + }, + ["dry-tree"] = { + tile_name = "sand-2", + tree_name = "dry-tree", + weight = 1565 + }, + name = "sand-2", + ["tree-02"] = { + tile_name = "sand-2", + tree_name = "tree-02", + weight = 2319 + }, + ["tree-02-red"] = { + tile_name = "sand-2", + tree_name = "tree-02-red", + weight = 1603 + }, + ["tree-03"] = { + tile_name = "sand-2", + tree_name = "tree-03", + weight = 2 + }, + ["tree-04"] = { + tile_name = "sand-2", + tree_name = "tree-04", + weight = 472 + }, + ["tree-05"] = { + tile_name = "sand-2", + tree_name = "tree-05", + weight = 50 + }, + ["tree-06"] = { + tile_name = "sand-2", + tree_name = "tree-06", + weight = 13597 + }, + ["tree-06-brown"] = { + tile_name = "sand-2", + tree_name = "tree-06-brown", + weight = 18656 + }, + ["tree-07"] = { + tile_name = "sand-2", + tree_name = "tree-07", + weight = 4690 + }, + ["tree-08"] = { + tile_name = "sand-2", + tree_name = "tree-08", + weight = 6424 + }, + ["tree-08-brown"] = { + tile_name = "sand-2", + tree_name = "tree-08-brown", + weight = 4469 + }, + ["tree-09"] = { + tile_name = "sand-2", + tree_name = "tree-09", + weight = 5 + }, + ["tree-09-brown"] = { + tile_name = "sand-2", + tree_name = "tree-09-brown", + weight = 69112 + }, + ["tree-09-red"] = { + tile_name = "sand-2", + tree_name = "tree-09-red", + weight = 74298 + } +} +terrains["dirt-3"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-3", + tree_name = "dry-hairy-tree", + weight = 555 + }, + ["dry-tree"] = { + tile_name = "dirt-3", + tree_name = "dry-tree", + weight = 531 + }, + name = "dirt-3", + ["tree-01"] = { + tile_name = "dirt-3", + tree_name = "tree-01", + weight = 122 + }, + ["tree-02"] = { + tile_name = "dirt-3", + tree_name = "tree-02", + weight = 5576 + }, + ["tree-02-red"] = { + tile_name = "dirt-3", + tree_name = "tree-02-red", + weight = 275002 + }, + ["tree-03"] = { + tile_name = "dirt-3", + tree_name = "tree-03", + weight = 17 + }, + ["tree-04"] = { + tile_name = "dirt-3", + tree_name = "tree-04", + weight = 102600 + }, + ["tree-05"] = { + tile_name = "dirt-3", + tree_name = "tree-05", + weight = 1012 + }, + ["tree-06"] = { + tile_name = "dirt-3", + tree_name = "tree-06", + weight = 221 + }, + ["tree-06-brown"] = { + tile_name = "dirt-3", + tree_name = "tree-06-brown", + weight = 473 + }, + ["tree-07"] = { + tile_name = "dirt-3", + tree_name = "tree-07", + weight = 177 + }, + ["tree-08"] = { + tile_name = "dirt-3", + tree_name = "tree-08", + weight = 577 + }, + ["tree-08-brown"] = { + tile_name = "dirt-3", + tree_name = "tree-08-brown", + weight = 413 + }, + ["tree-09"] = { + tile_name = "dirt-3", + tree_name = "tree-09", + weight = 1823 + }, + ["tree-09-brown"] = { + tile_name = "dirt-3", + tree_name = "tree-09-brown", + weight = 4608 + }, + ["tree-09-red"] = { + tile_name = "dirt-3", + tree_name = "tree-09-red", + weight = 3159 + } +} +terrains["dirt-5"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-5", + tree_name = "dry-hairy-tree", + weight = 235 + }, + ["dry-tree"] = { + tile_name = "dirt-5", + tree_name = "dry-tree", + weight = 211 + }, + name = "dirt-5", + ["tree-01"] = { + tile_name = "dirt-5", + tree_name = "tree-01", + weight = 492 + }, + ["tree-02"] = { + tile_name = "dirt-5", + tree_name = "tree-02", + weight = 15720 + }, + ["tree-02-red"] = { + tile_name = "dirt-5", + tree_name = "tree-02-red", + weight = 386423 + }, + ["tree-03"] = { + tile_name = "dirt-5", + tree_name = "tree-03", + weight = 73 + }, + ["tree-04"] = { + tile_name = "dirt-5", + tree_name = "tree-04", + weight = 123733 + }, + ["tree-05"] = { + tile_name = "dirt-5", + tree_name = "tree-05", + weight = 2555 + }, + ["tree-06"] = { + tile_name = "dirt-5", + tree_name = "tree-06", + weight = 205 + }, + ["tree-06-brown"] = { + tile_name = "dirt-5", + tree_name = "tree-06-brown", + weight = 425 + }, + ["tree-07"] = { + tile_name = "dirt-5", + tree_name = "tree-07", + weight = 50 + }, + ["tree-08"] = { + tile_name = "dirt-5", + tree_name = "tree-08", + weight = 724 + }, + ["tree-08-brown"] = { + tile_name = "dirt-5", + tree_name = "tree-08-brown", + weight = 416 + }, + ["tree-09"] = { + tile_name = "dirt-5", + tree_name = "tree-09", + weight = 3804 + }, + ["tree-09-brown"] = { + tile_name = "dirt-5", + tree_name = "tree-09-brown", + weight = 1255 + }, + ["tree-09-red"] = { + tile_name = "dirt-5", + tree_name = "tree-09-red", + weight = 1342 + } +} +terrains["dirt-7"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-7", + tree_name = "dry-hairy-tree", + weight = 167 + }, + ["dry-tree"] = { + tile_name = "dirt-7", + tree_name = "dry-tree", + weight = 153 + }, + name = "dirt-7", + ["tree-01"] = { + tile_name = "dirt-7", + tree_name = "tree-01", + weight = 2205 + }, + ["tree-02"] = { + tile_name = "dirt-7", + tree_name = "tree-02", + weight = 231742 + }, + ["tree-02-red"] = { + tile_name = "dirt-7", + tree_name = "tree-02-red", + weight = 103832 + }, + ["tree-03"] = { + tile_name = "dirt-7", + tree_name = "tree-03", + weight = 51 + }, + ["tree-04"] = { + tile_name = "dirt-7", + tree_name = "tree-04", + weight = 146321 + }, + ["tree-05"] = { + tile_name = "dirt-7", + tree_name = "tree-05", + weight = 13568 + }, + ["tree-06"] = { + tile_name = "dirt-7", + tree_name = "tree-06", + weight = 348 + }, + ["tree-06-brown"] = { + tile_name = "dirt-7", + tree_name = "tree-06-brown", + weight = 387 + }, + ["tree-07"] = { + tile_name = "dirt-7", + tree_name = "tree-07", + weight = 9 + }, + ["tree-08"] = { + tile_name = "dirt-7", + tree_name = "tree-08", + weight = 636 + }, + ["tree-08-brown"] = { + tile_name = "dirt-7", + tree_name = "tree-08-brown", + weight = 501 + }, + ["tree-09"] = { + tile_name = "dirt-7", + tree_name = "tree-09", + weight = 1130 + }, + ["tree-09-brown"] = { + tile_name = "dirt-7", + tree_name = "tree-09-brown", + weight = 433 + }, + ["tree-09-red"] = { + tile_name = "dirt-7", + tree_name = "tree-09-red", + weight = 494 + } +} +terrains["dirt-6"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-6", + tree_name = "dry-hairy-tree", + weight = 196 + }, + ["dry-tree"] = { + tile_name = "dirt-6", + tree_name = "dry-tree", + weight = 221 + }, + name = "dirt-6", + ["tree-01"] = { + tile_name = "dirt-6", + tree_name = "tree-01", + weight = 1841 + }, + ["tree-02"] = { + tile_name = "dirt-6", + tree_name = "tree-02", + weight = 87839 + }, + ["tree-02-red"] = { + tile_name = "dirt-6", + tree_name = "tree-02-red", + weight = 332276 + }, + ["tree-03"] = { + tile_name = "dirt-6", + tree_name = "tree-03", + weight = 17 + }, + ["tree-04"] = { + tile_name = "dirt-6", + tree_name = "tree-04", + weight = 148120 + }, + ["tree-05"] = { + tile_name = "dirt-6", + tree_name = "tree-05", + weight = 2812 + }, + ["tree-06"] = { + tile_name = "dirt-6", + tree_name = "tree-06", + weight = 196 + }, + ["tree-06-brown"] = { + tile_name = "dirt-6", + tree_name = "tree-06-brown", + weight = 344 + }, + ["tree-07"] = { + tile_name = "dirt-6", + tree_name = "tree-07", + weight = 39 + }, + ["tree-08"] = { + tile_name = "dirt-6", + tree_name = "tree-08", + weight = 536 + }, + ["tree-08-brown"] = { + tile_name = "dirt-6", + tree_name = "tree-08-brown", + weight = 372 + }, + ["tree-09"] = { + tile_name = "dirt-6", + tree_name = "tree-09", + weight = 2526 + }, + ["tree-09-brown"] = { + tile_name = "dirt-6", + tree_name = "tree-09-brown", + weight = 424 + }, + ["tree-09-red"] = { + tile_name = "dirt-6", + tree_name = "tree-09-red", + weight = 831 + } +} +terrains["grass-3"] = { + ["dry-hairy-tree"] = { + tile_name = "grass-3", + tree_name = "dry-hairy-tree", + weight = 350 + }, + ["dry-tree"] = { + tile_name = "grass-3", + tree_name = "dry-tree", + weight = 371 + }, + name = "grass-3", + ["tree-01"] = { + tile_name = "grass-3", + tree_name = "tree-01", + weight = 8639 + }, + ["tree-02"] = { + tile_name = "grass-3", + tree_name = "tree-02", + weight = 475710 + }, + ["tree-02-red"] = { + tile_name = "grass-3", + tree_name = "tree-02-red", + weight = 4063 + }, + ["tree-03"] = { + tile_name = "grass-3", + tree_name = "tree-03", + weight = 5821 + }, + ["tree-04"] = { + tile_name = "grass-3", + tree_name = "tree-04", + weight = 142407 + }, + ["tree-05"] = { + tile_name = "grass-3", + tree_name = "tree-05", + weight = 202162 + }, + ["tree-06"] = { + tile_name = "grass-3", + tree_name = "tree-06", + weight = 353 + }, + ["tree-06-brown"] = { + tile_name = "grass-3", + tree_name = "tree-06-brown", + weight = 596 + }, + ["tree-07"] = { + tile_name = "grass-3", + tree_name = "tree-07", + weight = 41 + }, + ["tree-08"] = { + tile_name = "grass-3", + tree_name = "tree-08", + weight = 557 + }, + ["tree-08-brown"] = { + tile_name = "grass-3", + tree_name = "tree-08-brown", + weight = 698 + }, + ["tree-09"] = { + tile_name = "grass-3", + tree_name = "tree-09", + weight = 12 + }, + ["tree-09-brown"] = { + tile_name = "grass-3", + tree_name = "tree-09-brown", + weight = 966 + }, + ["tree-09-red"] = { + tile_name = "grass-3", + tree_name = "tree-09-red", + weight = 888 + } +} +terrains["grass-1"] = { + ["dry-hairy-tree"] = { + tile_name = "grass-1", + tree_name = "dry-hairy-tree", + weight = 355 + }, + ["dry-tree"] = { + tile_name = "grass-1", + tree_name = "dry-tree", + weight = 317 + }, + name = "grass-1", + ["tree-01"] = { + tile_name = "grass-1", + tree_name = "tree-01", + weight = 13625 + }, + ["tree-02"] = { + tile_name = "grass-1", + tree_name = "tree-02", + weight = 467689 + }, + ["tree-02-red"] = { + tile_name = "grass-1", + tree_name = "tree-02-red", + weight = 2038 + }, + ["tree-03"] = { + tile_name = "grass-1", + tree_name = "tree-03", + weight = 11802 + }, + ["tree-04"] = { + tile_name = "grass-1", + tree_name = "tree-04", + weight = 186950 + }, + ["tree-05"] = { + tile_name = "grass-1", + tree_name = "tree-05", + weight = 360046 + }, + ["tree-06"] = { + tile_name = "grass-1", + tree_name = "tree-06", + weight = 96 + }, + ["tree-06-brown"] = { + tile_name = "grass-1", + tree_name = "tree-06-brown", + weight = 220 + }, + ["tree-07"] = { + tile_name = "grass-1", + tree_name = "tree-07", + weight = 41 + }, + ["tree-08"] = { + tile_name = "grass-1", + tree_name = "tree-08", + weight = 629 + }, + ["tree-08-brown"] = { + tile_name = "grass-1", + tree_name = "tree-08-brown", + weight = 301 + }, + ["tree-09"] = { + tile_name = "grass-1", + tree_name = "tree-09", + weight = 20 + }, + ["tree-09-brown"] = { + tile_name = "grass-1", + tree_name = "tree-09-brown", + weight = 769 + }, + ["tree-09-red"] = { + tile_name = "grass-1", + tree_name = "tree-09-red", + weight = 684 + } +} +terrains["dirt-1"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-1", + tree_name = "dry-hairy-tree", + weight = 1664 + }, + ["dry-tree"] = { + tile_name = "dirt-1", + tree_name = "dry-tree", + weight = 1690 + }, + name = "dirt-1", + ["tree-02"] = { + tile_name = "dirt-1", + tree_name = "tree-02", + weight = 2257 + }, + ["tree-02-red"] = { + tile_name = "dirt-1", + tree_name = "tree-02-red", + weight = 3610 + }, + ["tree-03"] = { + tile_name = "dirt-1", + tree_name = "tree-03", + weight = 5 + }, + ["tree-04"] = { + tile_name = "dirt-1", + tree_name = "tree-04", + weight = 3764 + }, + ["tree-05"] = { + tile_name = "dirt-1", + tree_name = "tree-05", + weight = 402 + }, + ["tree-06"] = { + tile_name = "dirt-1", + tree_name = "tree-06", + weight = 19 + }, + ["tree-06-brown"] = { + tile_name = "dirt-1", + tree_name = "tree-06-brown", + weight = 118 + }, + ["tree-07"] = { + tile_name = "dirt-1", + tree_name = "tree-07", + weight = 2607 + }, + ["tree-08"] = { + tile_name = "dirt-1", + tree_name = "tree-08", + weight = 184 + }, + ["tree-08-brown"] = { + tile_name = "dirt-1", + tree_name = "tree-08-brown", + weight = 28 + }, + ["tree-09"] = { + tile_name = "dirt-1", + tree_name = "tree-09", + weight = 22 + }, + ["tree-09-brown"] = { + tile_name = "dirt-1", + tree_name = "tree-09-brown", + weight = 41448 + }, + ["tree-09-red"] = { + tile_name = "dirt-1", + tree_name = "tree-09-red", + weight = 50885 + } +} +terrains["grass-4"] = { + ["dry-hairy-tree"] = { + tile_name = "grass-4", + tree_name = "dry-hairy-tree", + weight = 212 + }, + ["dry-tree"] = { + tile_name = "grass-4", + tree_name = "dry-tree", + weight = 201 + }, + name = "grass-4", + ["tree-01"] = { + tile_name = "grass-4", + tree_name = "tree-01", + weight = 3578 + }, + ["tree-02"] = { + tile_name = "grass-4", + tree_name = "tree-02", + weight = 435531 + }, + ["tree-02-red"] = { + tile_name = "grass-4", + tree_name = "tree-02-red", + weight = 29881 + }, + ["tree-03"] = { + tile_name = "grass-4", + tree_name = "tree-03", + weight = 1806 + }, + ["tree-04"] = { + tile_name = "grass-4", + tree_name = "tree-04", + weight = 153326 + }, + ["tree-05"] = { + tile_name = "grass-4", + tree_name = "tree-05", + weight = 73803 + }, + ["tree-06"] = { + tile_name = "grass-4", + tree_name = "tree-06", + weight = 309 + }, + ["tree-06-brown"] = { + tile_name = "grass-4", + tree_name = "tree-06-brown", + weight = 225 + }, + ["tree-07"] = { + tile_name = "grass-4", + tree_name = "tree-07", + weight = 53 + }, + ["tree-08"] = { + tile_name = "grass-4", + tree_name = "tree-08", + weight = 388 + }, + ["tree-08-brown"] = { + tile_name = "grass-4", + tree_name = "tree-08-brown", + weight = 352 + }, + ["tree-09"] = { + tile_name = "grass-4", + tree_name = "tree-09", + weight = 334 + }, + ["tree-09-brown"] = { + tile_name = "grass-4", + tree_name = "tree-09-brown", + weight = 882 + }, + ["tree-09-red"] = { + tile_name = "grass-4", + tree_name = "tree-09-red", + weight = 876 + } +} +terrains["dry-dirt"] = { + ["dry-hairy-tree"] = { + tile_name = "dry-dirt", + tree_name = "dry-hairy-tree", + weight = 1094 + }, + ["dry-tree"] = { + tile_name = "dry-dirt", + tree_name = "dry-tree", + weight = 1151 + }, + name = "dry-dirt", + ["tree-02"] = { + tile_name = "dry-dirt", + tree_name = "tree-02", + weight = 1875 + }, + ["tree-02-red"] = { + tile_name = "dry-dirt", + tree_name = "tree-02-red", + weight = 2909 + }, + ["tree-04"] = { + tile_name = "dry-dirt", + tree_name = "tree-04", + weight = 1197 + }, + ["tree-05"] = { + tile_name = "dry-dirt", + tree_name = "tree-05", + weight = 125 + }, + ["tree-06"] = { + tile_name = "dry-dirt", + tree_name = "tree-06", + weight = 4024 + }, + ["tree-06-brown"] = { + tile_name = "dry-dirt", + tree_name = "tree-06-brown", + weight = 4689 + }, + ["tree-07"] = { + tile_name = "dry-dirt", + tree_name = "tree-07", + weight = 437 + }, + ["tree-08"] = { + tile_name = "dry-dirt", + tree_name = "tree-08", + weight = 3050 + }, + ["tree-08-brown"] = { + tile_name = "dry-dirt", + tree_name = "tree-08-brown", + weight = 1542 + }, + ["tree-09"] = { + tile_name = "dry-dirt", + tree_name = "tree-09", + weight = 20 + }, + ["tree-09-brown"] = { + tile_name = "dry-dirt", + tree_name = "tree-09-brown", + weight = 8528 + }, + ["tree-09-red"] = { + tile_name = "dry-dirt", + tree_name = "tree-09-red", + weight = 9941 + } +} +terrains["sand-1"] = { + ["dry-hairy-tree"] = { + tile_name = "sand-1", + tree_name = "dry-hairy-tree", + weight = 10274 + }, + ["dry-tree"] = { + tile_name = "sand-1", + tree_name = "dry-tree", + weight = 10310 + }, + name = "sand-1", + ["tree-01"] = { + tile_name = "sand-1", + tree_name = "tree-01", + weight = 20 + }, + ["tree-02"] = { + tile_name = "sand-1", + tree_name = "tree-02", + weight = 12319 + }, + ["tree-02-red"] = { + tile_name = "sand-1", + tree_name = "tree-02-red", + weight = 9096 + }, + ["tree-03"] = { + tile_name = "sand-1", + tree_name = "tree-03", + weight = 26 + }, + ["tree-04"] = { + tile_name = "sand-1", + tree_name = "tree-04", + weight = 2018 + }, + ["tree-05"] = { + tile_name = "sand-1", + tree_name = "tree-05", + weight = 1123 + }, + ["tree-06"] = { + tile_name = "sand-1", + tree_name = "tree-06", + weight = 33971 + }, + ["tree-06-brown"] = { + tile_name = "sand-1", + tree_name = "tree-06-brown", + weight = 46980 + }, + ["tree-07"] = { + tile_name = "sand-1", + tree_name = "tree-07", + weight = 3933 + }, + ["tree-08"] = { + tile_name = "sand-1", + tree_name = "tree-08", + weight = 37953 + }, + ["tree-08-brown"] = { + tile_name = "sand-1", + tree_name = "tree-08-brown", + weight = 29880 + }, + ["tree-09"] = { + tile_name = "sand-1", + tree_name = "tree-09", + weight = 8 + }, + ["tree-09-brown"] = { + tile_name = "sand-1", + tree_name = "tree-09-brown", + weight = 69214 + }, + ["tree-09-red"] = { + tile_name = "sand-1", + tree_name = "tree-09-red", + weight = 75344 + } +} +terrains["dirt-2"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-2", + tree_name = "dry-hairy-tree", + weight = 1065 + }, + ["dry-tree"] = { + tile_name = "dirt-2", + tree_name = "dry-tree", + weight = 1059 + }, + name = "dirt-2", + ["tree-01"] = { + tile_name = "dirt-2", + tree_name = "tree-01", + weight = 32 + }, + ["tree-02"] = { + tile_name = "dirt-2", + tree_name = "tree-02", + weight = 6353 + }, + ["tree-02-red"] = { + tile_name = "dirt-2", + tree_name = "tree-02-red", + weight = 72448 + }, + ["tree-03"] = { + tile_name = "dirt-2", + tree_name = "tree-03", + weight = 38 + }, + ["tree-04"] = { + tile_name = "dirt-2", + tree_name = "tree-04", + weight = 32158 + }, + ["tree-05"] = { + tile_name = "dirt-2", + tree_name = "tree-05", + weight = 1067 + }, + ["tree-06"] = { + tile_name = "dirt-2", + tree_name = "tree-06", + weight = 155 + }, + ["tree-06-brown"] = { + tile_name = "dirt-2", + tree_name = "tree-06-brown", + weight = 104 + }, + ["tree-07"] = { + tile_name = "dirt-2", + tree_name = "tree-07", + weight = 788 + }, + ["tree-08"] = { + tile_name = "dirt-2", + tree_name = "tree-08", + weight = 300 + }, + ["tree-08-brown"] = { + tile_name = "dirt-2", + tree_name = "tree-08-brown", + weight = 189 + }, + ["tree-09"] = { + tile_name = "dirt-2", + tree_name = "tree-09", + weight = 699 + }, + ["tree-09-brown"] = { + tile_name = "dirt-2", + tree_name = "tree-09-brown", + weight = 14492 + }, + ["tree-09-red"] = { + tile_name = "dirt-2", + tree_name = "tree-09-red", + weight = 14093 + } +} +terrains["red-desert-3"] = { + ["dry-hairy-tree"] = { + tile_name = "red-desert-3", + tree_name = "dry-hairy-tree", + weight = 325 + }, + ["dry-tree"] = { + tile_name = "red-desert-3", + tree_name = "dry-tree", + weight = 289 + }, + name = "red-desert-3", + ["tree-01"] = { + tile_name = "red-desert-3", + tree_name = "tree-01", + weight = 2 + }, + ["tree-02"] = { + tile_name = "red-desert-3", + tree_name = "tree-02", + weight = 269 + }, + ["tree-02-red"] = { + tile_name = "red-desert-3", + tree_name = "tree-02-red", + weight = 181 + }, + ["tree-04"] = { + tile_name = "red-desert-3", + tree_name = "tree-04", + weight = 120 + }, + ["tree-05"] = { + tile_name = "red-desert-3", + tree_name = "tree-05", + weight = 193 + }, + ["tree-06"] = { + tile_name = "red-desert-3", + tree_name = "tree-06", + weight = 642 + }, + ["tree-06-brown"] = { + tile_name = "red-desert-3", + tree_name = "tree-06-brown", + weight = 1067 + }, + ["tree-07"] = { + tile_name = "red-desert-3", + tree_name = "tree-07", + weight = 25 + }, + ["tree-08"] = { + tile_name = "red-desert-3", + tree_name = "tree-08", + weight = 1145 + }, + ["tree-08-brown"] = { + tile_name = "red-desert-3", + tree_name = "tree-08-brown", + weight = 475 + }, + ["tree-09"] = { + tile_name = "red-desert-3", + tree_name = "tree-09", + weight = 2 + }, + ["tree-09-brown"] = { + tile_name = "red-desert-3", + tree_name = "tree-09-brown", + weight = 566 + }, + ["tree-09-red"] = { + tile_name = "red-desert-3", + tree_name = "tree-09-red", + weight = 505 + } +} +terrains["grass-2"] = { + ["dry-hairy-tree"] = { + tile_name = "grass-2", + tree_name = "dry-hairy-tree", + weight = 56 + }, + ["dry-tree"] = { + tile_name = "grass-2", + tree_name = "dry-tree", + weight = 62 + }, + name = "grass-2", + ["tree-01"] = { + tile_name = "grass-2", + tree_name = "tree-01", + weight = 2398 + }, + ["tree-02"] = { + tile_name = "grass-2", + tree_name = "tree-02", + weight = 146175 + }, + ["tree-02-red"] = { + tile_name = "grass-2", + tree_name = "tree-02-red", + weight = 9612 + }, + ["tree-03"] = { + tile_name = "grass-2", + tree_name = "tree-03", + weight = 1743 + }, + ["tree-04"] = { + tile_name = "grass-2", + tree_name = "tree-04", + weight = 57088 + }, + ["tree-05"] = { + tile_name = "grass-2", + tree_name = "tree-05", + weight = 53030 + }, + ["tree-06"] = { + tile_name = "grass-2", + tree_name = "tree-06", + weight = 45 + }, + ["tree-06-brown"] = { + tile_name = "grass-2", + tree_name = "tree-06-brown", + weight = 100 + }, + ["tree-08"] = { + tile_name = "grass-2", + tree_name = "tree-08", + weight = 47 + }, + ["tree-08-brown"] = { + tile_name = "grass-2", + tree_name = "tree-08-brown", + weight = 38 + }, + ["tree-09"] = { + tile_name = "grass-2", + tree_name = "tree-09", + weight = 80 + }, + ["tree-09-brown"] = { + tile_name = "grass-2", + tree_name = "tree-09-brown", + weight = 60 + }, + ["tree-09-red"] = { + tile_name = "grass-2", + tree_name = "tree-09-red", + weight = 200 + } +} +terrains["red-desert-0"] = { + ["dry-hairy-tree"] = { + tile_name = "red-desert-0", + tree_name = "dry-hairy-tree", + weight = 27 + }, + ["dry-tree"] = { + tile_name = "red-desert-0", + tree_name = "dry-tree", + weight = 32 + }, + name = "red-desert-0", + ["tree-01"] = { + tile_name = "red-desert-0", + tree_name = "tree-01", + weight = 640 + }, + ["tree-02"] = { + tile_name = "red-desert-0", + tree_name = "tree-02", + weight = 62183 + }, + ["tree-02-red"] = { + tile_name = "red-desert-0", + tree_name = "tree-02-red", + weight = 80789 + }, + ["tree-03"] = { + tile_name = "red-desert-0", + tree_name = "tree-03", + weight = 5 + }, + ["tree-04"] = { + tile_name = "red-desert-0", + tree_name = "tree-04", + weight = 42156 + }, + ["tree-05"] = { + tile_name = "red-desert-0", + tree_name = "tree-05", + weight = 5046 + }, + ["tree-06"] = { + tile_name = "red-desert-0", + tree_name = "tree-06", + weight = 64 + }, + ["tree-06-brown"] = { + tile_name = "red-desert-0", + tree_name = "tree-06-brown", + weight = 75 + }, + ["tree-08"] = { + tile_name = "red-desert-0", + tree_name = "tree-08", + weight = 142 + }, + ["tree-08-brown"] = { + tile_name = "red-desert-0", + tree_name = "tree-08-brown", + weight = 13 + }, + ["tree-09"] = { + tile_name = "red-desert-0", + tree_name = "tree-09", + weight = 917 + }, + ["tree-09-brown"] = { + tile_name = "red-desert-0", + tree_name = "tree-09-brown", + weight = 42 + }, + ["tree-09-red"] = { + tile_name = "red-desert-0", + tree_name = "tree-09-red", + weight = 103 + } +} +terrains["red-desert-2"] = { + ["dry-hairy-tree"] = { + tile_name = "red-desert-2", + tree_name = "dry-hairy-tree", + weight = 252 + }, + ["dry-tree"] = { + tile_name = "red-desert-2", + tree_name = "dry-tree", + weight = 291 + }, + name = "red-desert-2", + ["tree-02"] = { + tile_name = "red-desert-2", + tree_name = "tree-02", + weight = 103 + }, + ["tree-02-red"] = { + tile_name = "red-desert-2", + tree_name = "tree-02-red", + weight = 111 + }, + ["tree-04"] = { + tile_name = "red-desert-2", + tree_name = "tree-04", + weight = 42 + }, + ["tree-05"] = { + tile_name = "red-desert-2", + tree_name = "tree-05", + weight = 2 + }, + ["tree-06"] = { + tile_name = "red-desert-2", + tree_name = "tree-06", + weight = 1229 + }, + ["tree-06-brown"] = { + tile_name = "red-desert-2", + tree_name = "tree-06-brown", + weight = 1398 + }, + ["tree-07"] = { + tile_name = "red-desert-2", + tree_name = "tree-07", + weight = 270 + }, + ["tree-08"] = { + tile_name = "red-desert-2", + tree_name = "tree-08", + weight = 607 + }, + ["tree-08-brown"] = { + tile_name = "red-desert-2", + tree_name = "tree-08-brown", + weight = 625 + }, + ["tree-09-brown"] = { + tile_name = "red-desert-2", + tree_name = "tree-09-brown", + weight = 4130 + }, + ["tree-09-red"] = { + tile_name = "red-desert-2", + tree_name = "tree-09-red", + weight = 5207 + } +} +terrains["dirt-4"] = { + ["dry-hairy-tree"] = { + tile_name = "dirt-4", + tree_name = "dry-hairy-tree", + weight = 570 + }, + ["dry-tree"] = { + tile_name = "dirt-4", + tree_name = "dry-tree", + weight = 671 + }, + name = "dirt-4", + ["tree-01"] = { + tile_name = "dirt-4", + tree_name = "tree-01", + weight = 2 + }, + ["tree-02"] = { + tile_name = "dirt-4", + tree_name = "tree-02", + weight = 1239 + }, + ["tree-02-red"] = { + tile_name = "dirt-4", + tree_name = "tree-02-red", + weight = 60007 + }, + ["tree-04"] = { + tile_name = "dirt-4", + tree_name = "tree-04", + weight = 16241 + }, + ["tree-06"] = { + tile_name = "dirt-4", + tree_name = "tree-06", + weight = 1030 + }, + ["tree-06-brown"] = { + tile_name = "dirt-4", + tree_name = "tree-06-brown", + weight = 1362 + }, + ["tree-07"] = { + tile_name = "dirt-4", + tree_name = "tree-07", + weight = 682 + }, + ["tree-08"] = { + tile_name = "dirt-4", + tree_name = "tree-08", + weight = 869 + }, + ["tree-08-brown"] = { + tile_name = "dirt-4", + tree_name = "tree-08-brown", + weight = 659 + }, + ["tree-09"] = { + tile_name = "dirt-4", + tree_name = "tree-09", + weight = 729 + }, + ["tree-09-brown"] = { + tile_name = "dirt-4", + tree_name = "tree-09-brown", + weight = 12700 + }, + ["tree-09-red"] = { + tile_name = "dirt-4", + tree_name = "tree-09-red", + weight = 11191 + } +} +terrains["red-desert-1"] = { + ["dry-hairy-tree"] = { + tile_name = "red-desert-1", + tree_name = "dry-hairy-tree", + weight = 304 + }, + ["dry-tree"] = { + tile_name = "red-desert-1", + tree_name = "dry-tree", + weight = 263 + }, + name = "red-desert-1", + ["tree-02"] = { + tile_name = "red-desert-1", + tree_name = "tree-02", + weight = 251 + }, + ["tree-02-red"] = { + tile_name = "red-desert-1", + tree_name = "tree-02-red", + weight = 341 + }, + ["tree-04"] = { + tile_name = "red-desert-1", + tree_name = "tree-04", + weight = 103 + }, + ["tree-05"] = { + tile_name = "red-desert-1", + tree_name = "tree-05", + weight = 60 + }, + ["tree-06"] = { + tile_name = "red-desert-1", + tree_name = "tree-06", + weight = 819 + }, + ["tree-06-brown"] = { + tile_name = "red-desert-1", + tree_name = "tree-06-brown", + weight = 1298 + }, + ["tree-07"] = { + tile_name = "red-desert-1", + tree_name = "tree-07", + weight = 327 + }, + ["tree-08"] = { + tile_name = "red-desert-1", + tree_name = "tree-08", + weight = 587 + }, + ["tree-08-brown"] = { + tile_name = "red-desert-1", + tree_name = "tree-08-brown", + weight = 415 + }, + ["tree-09-brown"] = { + tile_name = "red-desert-1", + tree_name = "tree-09-brown", + weight = 7565 + }, + ["tree-09-red"] = { + tile_name = "red-desert-1", + tree_name = "tree-09-red", + weight = 8269 + } +} + +return terrains diff --git a/Bio_Industries_2/libs/util_ext.lua b/Bio_Industries_2/libs/util_ext.lua new file mode 100644 index 0000000..d576fb6 --- /dev/null +++ b/Bio_Industries_2/libs/util_ext.lua @@ -0,0 +1,142 @@ + +--- Utils for grouping +function group_entities(entity_list) + return group_entities(nil, entity_list) +end + +function group_entities(entity_groupid, entity_list) + return group("entities", entity_groupid, entity_list) +end + +function getGroup_entities(entity_groupid) + return getGroup("entities", entity_groupid) +end + +function getGroup_entities_by_member(entity_id) + return getGroup_byMember("entities", entity_id) +end + +function ungroup_entities(entity_groupid) + return ungroup("entities", entity_groupid) +end + + +------------------------------------------------------------------- +-- Grouping +-- +function group(index_id, group_id, members) + _init_group(index_id, group_id) + + if index_id == nil then + index_id = "default" + end + + if group_id then + for ix, vx in ipairs(members) do + _addto_group(index_id, group_id, vx) + end + return group_id + else + -- no GID, then assign one + return group(index_id, _new_group(index_id), members) + end +end + +function getGroup(index_id, group_id) + _init_group(index_id, group_id) + + if group_id then + return _get_group(index_id, group_id) + else + return nil + end +end + +function getGroup_byMember(index_id, group_id, member_id) + _init_group(index_id, group_id) + + if member_id then + return _of_group(index_id, group_id, entity_id) + else + return nil + end +end + +function ungroup(index_id, group_id) + _init_group(index_id, group_id) + + if group_id then + return _clear_group(index_id, group_id) + else + return false + end +end +------------------------------------------------------------------- +function _init_group(index_id) + if not global.group then + global.group = {} + end + if not global.group.default then + global.group.default = {} + end + if index_id and not global.group[index_id] then + -- don't care if they name their group "default" + global.group[index_id] = {} + end +end + +function _new_group(index_id) + local group_id_n = 0 + local group_id_r = nil + + while group_id_r == nil do + local group_id_x = "gid-" .. (group_id_n + #global.group[index_id]) + if global.group[index_id][group_id_x] then + -- collision + group_id_n = group_id_n + 1 + else + group_id_r = group_id_x + end + end + + return group_id_r +end + +function _addto_group(index_id, group_id, member_id) + if global.group[index_id] then + if not global.group[index_id][group_id] then + global.group[index_id][group_id] = {} + end + end + + table.insert(global.group[index_id][group_id], member_id) +end + +function _get_group(index_id, group_id) + return global.group[index_id][group_id] +end + +function _of_group(index_id, member_id) + --full scan + for kx, vx in pairs(global.group[index_id]) do + for ky, vy in pairs(vx) do + if member_id == vy then + return vx + end + end + end + return nil +end + +function _clear_group(index_id, group_id) + global.group[index_id][group_id] = nil +end +------------------------------------------------------------------- + +------------------------------------------------------------------- +-- Cantor Hash +------------------------------------------------------------------- +function cantor(k1, k2) + return (0.5 * (k1+k2) * (k1+k2+1) + k2) +end +------------------------------------------------------------------- diff --git a/Bio_Industries_2/locale/de/de.zip b/Bio_Industries_2/locale/de/de.zip new file mode 100644 index 0000000..2c67f96 Binary files /dev/null and b/Bio_Industries_2/locale/de/de.zip differ diff --git a/Bio_Industries_2/locale/de/entity-description.cfg b/Bio_Industries_2/locale/de/entity-description.cfg new file mode 100644 index 0000000..5ab3fe0 --- /dev/null +++ b/Bio_Industries_2/locale/de/entity-description.cfg @@ -0,0 +1,51 @@ +[entity-description] +## Produktion +bi-arboretum=Ein __ENTITY__bi-arboretum__ kann die Bodenfertilität im Umkreis verbessern und Bäume anpflanzen. +bi-bio-farm=In der __ENTITY__bi-bio-farm__ wachsen __ENTITY__seedling__e zu Bäumen heran und werden gleich zu __ITEM__wood__ und __ITEM__bi-woodpulp__ verarbeitet. Tagsüber deckt ein integriertes Solarpanel einen Teil des Strombedarfs. +bi-bio-garden=Der __ENTITY__bi-bio-garden__ reinigt die Luft und absorbiert Schadstoffe.\n(Ein __ENTITY__bi-bio-garden__ kann pro Sekunde 45 Schadstoffeinheiten absorbieren — etwa so viel wie 1500 Bäume!) +bi-bio-greenhouse=Im __ENTITY__bi-bio-greenhouse__ werden __ENTITY__seedling__e gezüchtet. +seedling=Ein junger Baum, der in der __ENTITY__bi-bio-farm__ zu __ITEM__wood__ und __ITEM__bi-woodpulp__ verarbeitet wird, sobald er ausgewachsen ist. Du kannst ihn auch direkt in die Erde pflanzen und dabei zusehen, wie er in der freien Natur zu einem großen Baum heranwächst. \nHinweis: Die __ENTITY__seedling__e wachsen besser, wenn du vorher den Boden düngst! + +bi-bio-reactor=Im __ENTITY__bi-bio-reactor__ wird Biomasse hergestellt und weiterverarbeitet. +bi-cokery=In der __ENTITY__bi-cokery__ werden __ITEM__wood__ und __ITEM__bi-woodpulp__ zu __ITEM__wood-charcoal__ und anderen Brennstoffen veredelt. +bi-stone-crusher=Diese Maschinen zerkleinern __ITEM__stone__ und __ITEM__concrete__ in allen Varianten zu __ITEM__stone-crushed__. + + +## Energieversorgung +bi-bio-accumulator=Ein __ENTITY__bi-bio-accumulator__ kann sehr viel Energie speichern. Größe spielt manchmal eben doch eine Rolle! +bi-bio-boiler=__ENTITY__bi-bio-boiler__ sind genauso leistungsfähig wie normale __ENTITY__boiler__, aber bedeutend umweltfreundlicher.\n(75% weniger Umweltverschmutzung!) +bi-bio-solar-farm=Viele Solarmodule werden zu einer kompakten Einheit verdichtet. Damit lässt sich auf kleinem Raum eine große Menge Energie erzeugen! +bi-large-substation=__ENTITY__bi-large-substation__ — damit kannst du ein großes Gebiet mit Elektrizität versorgen! +bi-solar-boiler=__ENTITY__bi-solar-boiler__ — erzeugt Elektrizität oder Dampf mittels Solarenergie. +bi-solar-mat=Dank eingebetteter Solarpanele erzeugen hiermit gebaute Wege 10kW Elektrizität pro Feld und erlauben eine höhere Bewegungsgeschwindigkeit. (Danke, Elon Musk!) + + +## Waffen +bi-dart-turret=Diese Geschütztürme sind sofort verfügbar und bieten ohne großen Aufwand Schutz vor Angriffen. Die Pfeile verursachen zwar weniger Schaden als Kugeln und Schrotpatronen, dafür haben diese Geschütztürme aber eine etwas größere Schussweite und eine höhere Feuerrate als die herkömmlichen. +bi-bio-cannon=Dieser frühe Prototyp eines Artillerie-Geschützturms kann NUR Würmer sowie Nester von Beißern und Speiern attackieren (maximale Reichweite: 90) und hat noch keine manuelle Zielvorrichtung. + + +## Schienen +bi-power-to-rail-pole=Hiermit kannst du __ENTITY__bi-rail-power__ mit dem Stromnetz verbinden.\nACHTUNG: Ein __ENTITY__bi-power-to-rail-pole__ in Reichweite von zwei parallel verlaufenden oder sich kreuzenden __ENTITY__bi-rail-power__ kann die beiden Netzwerke miteinander verbinden! +bi-rail-power=Diese Schienen leiten auch Strom. Baue einen __ENTITY__bi-power-to-rail-pole__ daneben, um sie mit einem Stromnetz zu verbinden! +bi-rail-wood-bridge=Auf dieser hölzernen Eisenbahnbrücke können Züge Gewässer überqueren.\nHinweis: Du kannst diese Brücke nicht betreten – sie ist wirklich nur für Züge geeignet! +bi-rail-wood=Holzschienen +rail-remnants-wood-bridge=Überreste einer hölzernen Eisenbahnbrücke +rail-remnants-wood=Überreste hölzerner Schienen + + +## Diverse Holzprodukte +bi-wood-pipe-to-ground=__ENTITY__pipe-to-ground__ aus __ITEM__wood__ und Kupfer +bi-wood-pipe=__ENTITY__pipe__ aus __ITEM__wood__ und Kupfer +bi-wooden-chest-giga=Eine RIESIGE Holzkiste +bi-wooden-chest-huge=Eine sehr große Holzkiste +bi-wooden-chest-large=Eine mittelgroße Holzkiste +bi-wooden-fence=__ENTITY__bi-wooden-fence__ halten zwar starken Gegnern nicht lange stand, verschaffen dir aber am Anfang Zeit, in Ruhe deine Fabrik auszubauen. +bi-wooden-pole-big=Diese großen hölzernen Masten werden automatisch repariert, wenn du die "Natural Evolution"-Mods verwendest. +bi-wooden-pole-bigger=Diese hölzernen Masten werden automatisch repariert, wenn du die "Natural Evolution"-Mods verwendest. +bi-wooden-pole-huge=Mit diesen riesigen Masten aus __ITEM__wood__ kannst du große Entfernungen (64 Felder) überbrücken, wenn du dein Strom- oder Schaltungsnetz aufbaust. +wooden-chest=Kleine Holzkiste + + +## Unterstützung für andere Mods +bi-stone-crusher-sand=Diese Maschinen zerkleinern __ITEM__stone__ und __ITEM__concrete__ in allen Varianten zu __ITEM__stone-crushed__. Sie können auch __ITEM__stone-crushed__ zu __ITEM__sand__ weiterverarbeiten. diff --git a/Bio_Industries_2/locale/de/entity-name.cfg b/Bio_Industries_2/locale/de/entity-name.cfg new file mode 100644 index 0000000..80b1b79 --- /dev/null +++ b/Bio_Industries_2/locale/de/entity-name.cfg @@ -0,0 +1,52 @@ +[entity-name] +## Produktion +bi-arboretum=Terraformer +bi-arboretum-hidden-radar=__ENTITY__bi-arboretum__ (__ENTITY__radar__) +bi-bio-farm=Bio-Baumschule +bi-bio-garden=Bio-Garten +bi-bio-garden-large=Großer __ENTITY__bi-bio-garden__ +bi-bio-garden-huge=Riesiger __ENTITY__bi-bio-garden__ +bi-bio-greenhouse=Bio-Gewächshaus +seedling=Setzling + +bi-bio-reactor=Bio-Reaktor +bi-cokery=Kokerei +bi-stone-crusher=Steinbrecher + + +## Energieversorgung +bi-bio-accumulator=Großer Akkumulator +bi-bio-boiler=Bio-Heizkessel +bi-bio-solar-farm=Bio-Solarpark +bi-large-substation=Großes Umspannwerk +bi-solar-boiler=Solarbetriebener Heizkessel +bi-solar-mat=Musk-Panel + + +## Waffen +bi-bio-cannon=Artillerie-Geschützturm (Prototyp) +bi-dart-turret=Pfeil-Geschützturm + + +## Schienen +bi-power-to-rail-pole=Anschluss für Stromschienen +bi-rail-power=Stromschienen +bi-rail-wood-bridge=Hölzerne Eisenbahnbrücke +bi-rail-wood=Hölzerne Schienen +rail-remnants-wood-bridge=Zerstörte hölzerne Eisenbahnbrücke +rail-remnants-wood=Zerstörte hölzerne Schienen + + +## Diverse Holzprodukte +bi-wood-pipe-to-ground=Unterirdisches Holzrohr +bi-wood-pipe=Holzrohr +bi-wooden-chest-giga=RIESIGE Holzkiste +bi-wooden-chest-huge=Große Holzkiste +bi-wooden-chest-large=Mittelgroße Holzkiste +bi-wooden-fence=Hölzerne Palisaden +bi-wooden-pole-big=Großer Strommast aus Holz +bi-wooden-pole-bigger=Größerer Strommast aus Holz +bi-wooden-pole-huge=Riesiger Strommast aus Holz +#~ Just another name for the vanilla wood-chest +#~ (No need to overwrite the vanilla name if our bigger wooden chests aren't used!) +bi-wooden-chest=Kleine Holzkiste diff --git a/Bio_Industries_2/locale/de/item-description.cfg b/Bio_Industries_2/locale/de/item-description.cfg new file mode 100644 index 0000000..a58aa7d --- /dev/null +++ b/Bio_Industries_2/locale/de/item-description.cfg @@ -0,0 +1,55 @@ +[BI-item-description] +# __ITEM__fertilizer__ should be replaced with __BI-ITEM__fertilizer__, but we can't refer to it, +# so we hard-code its content here. +#~ fertilizer=__ITEM__fertilizer__ lässt Pflanzen besser wachsen und wird auch zur Herstellung von Biomasse benötigt. +fertilizer=Düngemittel 08/15 lässt Pflanzen besser wachsen und wird auch zur Herstellung von Biomasse benötigt. + +[item-description] +## Produktion +bi-adv-fertilizer=__ITEM__bi-adv-fertilizer__ – die spezielle Zutat, ohne die eine Superproduktion nicht möglich ist. Nur für Nutzer von Bio Industries! :-) +fertilizer=__ITEM__fertilizer__ lässt Pflanzen besser wachsen und wird auch zur Herstellung von Biomasse benötigt. + +bi-purified-air=Saubere, unverschmutzte Luft! + +bi-arboretum-r1=Pflanzt Bäume im Umkreis des Terraformers +bi-arboretum-r2=Düngt den Boden um den Terraformer mit __ITEM__fertilizer__ +bi-arboretum-r3=Düngt den Boden um den Terraformer mit __ITEM__bi-adv-fertilizer__ +bi-arboretum-r4=Düngt den Boden um den Terraformer mit __ITEM__fertilizer__ und pflanzt Bäume +bi-arboretum-r5=Düngt den Boden um den Terraformer mit __ITEM__bi-adv-fertilizer__ und pflanzt Bäume + +bi-seed-bomb-advanced=Diese __ITEM__bi-seed-bomb-basic__ verstreut __ITEM__bi-seed__ im Radius von 30 Feldern um den Einschlagort. Der Einsatz von __ITEM__bi-adv-fertilizer__ garantiert eine hohe Wahrscheinlichkeit dafür, dass das __ITEM__bi-seed__ gut anwächst und die Bäume schnell gedeihen. +bi-seed-bomb-basic=Diese einfache __ITEM__bi-seed-bomb-basic__ verstreut __ITEM__bi-seed__ im Radius von 24 Feldern um den Einschlagort. Wenn du Glück hast, wachsen daraus auch ein paar Bäume! +bi-seed-bomb-standard=Diese __ITEM__bi-seed-bomb-basic__ verstreut __ITEM__bi-seed__ im Radius von 27 Feldern um den Einschlagort. __ITEM__fertilizer__ verbessert die Wahrscheinlichkeit, dass das __ITEM__bi-seed__ anwächst und gedeiht! + +bi-seed=Daraus wird einmal ein __ENTITY__seedling__. + + +## Waffen +bi-bio-cannon-basic-ammo=Raketenbetrieben, geringer physischer Schaden +bi-bio-cannon-biological-ammo=Raketenbetrieben, hoher biologischer Schaden +bi-bio-cannon-poison-ammo=Raketenbetrieben, mittlerer Giftschaden +bi-bio-cannon-proto-ammo=Geringer Schaden, der größte Teil des TNT wird für den Antrieb verwendet. + +bi-dart-magazine-basic=__ITEM__bi-dart-magazine-basic__ pieken nur ein bisschen. +bi-dart-magazine-enhanced=__ITEM__bi-dart-magazine-enhanced__ verursachen auch Säureschaden! +bi-dart-magazine-poison=__ITEM__bi-dart-magazine-enhanced__ — mit Gift! +bi-dart-magazine-standard=__ITEM__bi-dart-magazine-standard__ können Ziele durchdringen. +bi-dart-rifle=Diese billige Waffe verschießt leicht herstellbare Munition und ist gut zur Verteidigung gegen schwächere Gegner geeignet. + + +## Rohstoffe +bi-ash=__ITEM__bi-ash__ ist durchaus ein wertvoller Rohstoff! +bi-cellulose=__ITEM__bi-cellulose__ wird aus __ITEM__wood__ gewonnen. Es ist schier unglaublich, was man daraus alles machen kann! +bi-woodpulp=__ITEM__bi-woodpulp__ können für verschiedene Zwecke eingesetzt werden. Verbrennt man sie, emittieren sie zwar weniger Schadstoffe als __ITEM__wood__, geben aber auch nur halb so viel Energie ab. +coal=Du wirst __ITEM__coal__ brauchen! +pellet-coke=Mehr Energie als __ITEM__solid-fuel__ bei ca. 40% weniger Schadstoffausstoß, dazu noch ein kleiner Bonus zur Höchstgeschwindigkeit — __ITEM__pellet-coke__ ist einfach der ideale Treibstoff für deine Fahrzeuge! +resin=__ITEM__resin__ ist nicht nur klebrig, man kann daraus auch Flüssiggas gewinnen! +solid-fuel=Bietet weniger Energie als __ITEM__wood-bricks__, emittiert aber noch weniger Schadstoffe und lässt Fahrzeuge schneller fahren und beschleunigen. +stone-crushed=__ITEM__stone-crushed__ wird hauptsächlich beim Gleis- und Straßenbau verwendet. +wood-bricks=Komprimierte __ITEM__bi-woodpulp__ geben eine Menge Energie ab, emittieren aber weniger Schadstoffe. Sie sind eine frühe Alternative zu __ITEM__solid-fuel__. +wood-charcoal=__ITEM__wood-charcoal__ gibt bedeutend mehr Energie ab als __ITEM__coal__ und emittiert deutlich weniger Schadstoffe, ist aber nicht so vielseitig verwendbar. +wood=Stelle deine Energieversorgung auf diesen nachhaltigen Rohstoff um!\nHinweis: Man kann mit __ITEM__wood__ noch mehr anfangen, als es einfach nur zu verbrennen! + + +## Unterstützung für andere Mods +sand=__ITEM__sand__ diff --git a/Bio_Industries_2/locale/de/item-name.cfg b/Bio_Industries_2/locale/de/item-name.cfg new file mode 100644 index 0000000..f3d3b77 --- /dev/null +++ b/Bio_Industries_2/locale/de/item-name.cfg @@ -0,0 +1,56 @@ +[BI-item-name] +fertilizer=Düngemittel 08/15 + +[item-name] +## Produktion +bi-adv-fertilizer=BI-Super-Dünger(™) +fertilizer=Düngemittel 08/15 + +bi-purified-air=Aufbereitete Luft + +bi-arboretum-r1=Bäume pflanzen +bi-arboretum-r2=Geländeveränderung (einfach) +bi-arboretum-r3=Geländeveränderung (verbessert) +bi-arboretum-r4=Gelände verändern & Bäume pflanzen (einfach) +bi-arboretum-r5=Gelände verändern & Bäume pflanzen (verbessert) + +bi-seed-bomb-advanced=Saatgutbombe mit __ITEM__bi-adv-fertilizer__ +bi-seed-bomb-basic=Saatgutbombe +bi-seed-bomb-standard=Saatgutbombe mit __ITEM__fertilizer__ +bi-seed=Saatgut + + +# Only __ENTITY__x__ and __ITEM__x__ can be used, so let's pretend here that these fluids are items! +bi-biomass=Biomasse +liquid-air=Flüssigluft +nitrogen=Nitrogen + +## Waffen +bi-bio-cannon-basic-ammo=Munition für frühe Artillerie-Geschütztürme (Raketen) +bi-bio-cannon-biological-ammo=Munition für frühe Artillerie-Geschütztürme (biologische Kampfstoffe) +bi-bio-cannon-poison-ammo=Munition für frühe Artillerie-Geschütztürme (Gift) +bi-bio-cannon-proto-ammo=Munition für frühe Artillerie-Geschütztürme (normal) + +bi-dart-magazine-basic=Einfache Pfeile +bi-dart-magazine-enhanced=Verbesserte Pfeile +bi-dart-magazine-poison=Giftpfeile +bi-dart-magazine-standard=Normale Pfeile +bi-dart-rifle=Pfeilschussgewehr + + +## Rohstoffe +bi-ash=Asche +bi-cellulose=Zellulose +bi-woodpulp=Holzfasern +pellet-coke=Pellet-Koks +resin=Harz +stone-crushed=Schotter +wood-bricks=Holzziegel +wood-charcoal=Holzkohle + + +## Unterstützung für andere Mods +sand=Sand +slag=Schlacke +## Industrial Revolution +gravel=Schotter diff --git a/Bio_Industries_2/locale/de/misc.cfg b/Bio_Industries_2/locale/de/misc.cfg new file mode 100644 index 0000000..9449ee8 --- /dev/null +++ b/Bio_Industries_2/locale/de/misc.cfg @@ -0,0 +1,48 @@ +[fluid-name] +##~ bi-biomass=Algen-Biomasse +#~ bi-biomass=Biomasse +bi-biomass=__ITEM__bi-biomass__ +#~ Obsolete? +bi-ground-water=Wasser +liquid-air=Flüssigluft +nitrogen=Stickstoff +water-saline=Salzwasser + +# Added for 0.18.32/1.1. +bi-fertilizer-fluid=Flüssiges __ITEM__fertilizer__ +bi-adv-fertilizer-fluid=Flüssiger __ITEM__bi-adv-fertilizer__ + +# Added for 0.18.32/1.1. +[fluid-description] +bi-fertilizer-fluid=Etwas __ITEM__fertilizer__, gelöst in Wasser -- und das Gras wird grün! +bi-adv-fertilizer-fluid=Auch in flüssiger Form lässt __ITEM__bi-adv-fertilizer__ alles noch viel grüner erscheinen! + +[tile-name] +bi-solar-mat=Musk-Boden +bi-wood-floor=Holzboden + +[item-group-name] +bio-industries=Bio-Industries + +[ammo-category-name] +Bio_Cannon_Ammo=Munition für frühe Artillerie-Geschütztürme +Bio_Turret_Ammo=Munition für Pfeil-Geschütztürme + +[damage-type-name] +Biological=Biologisch +bob-pierce=Pierce + + +[modifier-description] +Bio_Cannon_Ammo-damage-bonus=Munition für frühe Artillerie-Geschütztürme, Schaden: +__1__ +Bio_Cannon_Ammo-shooting-speed-bonus=Munition für frühe Artillerie-Geschütztürme, Feuerrate: +__1__ +Bio_Turret_Ammo-damage-bonus=Pfeil-Schaden: +__1__ +Bio_Turret_Ammo-shooting-speed-bonus=Pfeil-Feuerrate: +__1__ +bi-dart-turret-attack-bonus=Pfeil-Geschützturm, Schaden: +__1__ +bi-dart-turret-damage-bonus=Dart-Turm-Schadensbonus, zusätzlicher Schaden: +__1__ + +[bi-misc] +growing-tree=Wachsender Baum +growing-tree-desc=Dieser __ENTITY__seedling__ wird zu einem großen Baum heranwachsen. +young-tree=Junger Baum +young-tree-desc=Dieser Baum ist noch jung und wird noch nicht viel Holz liefern. Warte lieber, bis er ausgewachsen ist, bevor du ihn fällst! diff --git a/Bio_Industries_2/locale/de/mod.cfg b/Bio_Industries_2/locale/de/mod.cfg new file mode 100644 index 0000000..30a0ee9 --- /dev/null +++ b/Bio_Industries_2/locale/de/mod.cfg @@ -0,0 +1,52 @@ +#~ translation into German by Tobilike +# No liability or damage, correctness or completeness of this text is assumed by the author. +# License: MIT https://opensource.org/licenses/MIT +[mod-name] +Bio_Industries=Bio Industries + +[mod-setting-name] +BI_Bio_Cannon=Aktivieren: Artillerie-Geschützturm (Prototyp) +BI_Bio_Fuel=Aktivieren: Bio-Kraftstoffe +# Added for 0.18.32/1.1.2 +BI_Easy_Bio_Gardens=Aktivieren: __ENTITY__bi-bio-garden__ vereinfacht +# Added for 1.1.8 +BI_Bigger_Wooden_Chests=Aktivieren: Größere Holzkisten +BI_Enable_gvv_support=Mod-Kompatibilität: Lua API global Variable Viewer (gvv) +BI_Game_Tweaks_Bot=Spielanpassungen: Roboter +BI_Game_Tweaks_Disassemble=Spielanpassungen: Demontage +BI_Game_Tweaks_Emissions_Multiplier=Spielanpassungen: Faktor für Treibstoffemissionen +BI_Game_Tweaks_Player=Spielanpassungen: Spieler +BI_Game_Tweaks_Production_Science=Spielanpassungen: __ITEM__production-science-pack__ (alternativer Bauplan) +BI_Game_Tweaks_Recipe=Spielanpassungen: Rezepte +BI_Game_Tweaks_Small_Tree_Collisionbox=Spielanpassungen: Kleinere Kollisionsboxen für Bäume +BI_Game_Tweaks_Stack_Size=Spielanpassungen: Stapelgröße +BI_Game_Tweaks_Tree=Spielanpassungen: Holzertrag/Baum +#~ BI_Hide_musk_floor_in_mapview=Stromnetz-Overlay fuer den Musk-Boden in der Kartenansicht ausblenden +BI_Show_musk_floor_in_mapview=Aktivieren: Stromnetz-Overlay für __ENTITY__bi-solar-mat__ +BI_Solar_Additions=Aktivieren: Erweiterungen für Solarenergie + + +[mod-setting-description] +BI_Bio_Cannon=Dieser früh verfügbare Artillerie-Geschützturm ist sehr mächtig, attackiert aber nur Würmer sowie Nester von Beißern und Speiern.\n(Standard: an) +BI_Bio_Fuel=Ermöglicht die Herstellung von Erdölprodukten aus __ITEM__bi-biomass__\n(Standard: an) +# Added for 0.18.32/1.1.2 +BI_Easy_Bio_Gardens=Im __ENTITY__bi-bio-garden__ wird mit fertig gemischtem flüssigen Dünger gearbeitet, so dass eine einzige Rohrleitung zur Versorgung ausreicht. Allerdings erfordert die Zubereitung des flüssigen Düngers 50% mehr Dünger als das Mischen von Dünger und Wasser vor Ort.\nIm Raster angeordnet, mit nicht mehr als einem Feld Abstand, leitet jeder __ENTITY__bi-bio-garden__ Strom an seine Nachbarn weiter.\n(Standard: aus) +# Added for 1.1.8 +BI_Bigger_Wooden_Chests=__ENTITY__bi-wooden-chest-large__, __ENTITY__bi-wooden-chest-huge__, __ENTITY__bi-wooden-chest-giga__ +BI_Enable_gvv_support=Mit "Lua Api global Variable Viewer" (gvv) ist es möglich, den Inhalt der Tabelle "global" anderer Mods zu inspizieren. Wenn du dabei helfen willst, Fehler in "Bio Industries" zu beheben, aktiviere diese Option und gib "\gvv" auf der Lua-Konsole ein!\n(Standard: aus) +#~ 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 __MOD__Bio_Industries__, enable this and type "\gvv" at the chat console to open the GUI of gvv.\n(Default: off) +BI_Game_Tweaks_Bot=Roboter können nicht eingesammelt werden oder Feuer fangen.\n(Standard: aus) +BI_Game_Tweaks_Disassemble=Aktiviert einige Rezepte zur Demontage von Gegenständen. Du erhältst etwa 50% der Ressourcen zurück.\n(Standard: an) +BI_Game_Tweaks_Emissions_Multiplier=Bob hat damit angefangen! Die Idee ist, dass unbehandelte Brennstoffe mehr Umweltverschmutzung verursachen als veredelte Brennstoffe. So erzeugt __ITEM__coal__ eine Umweltverschmutzung von 200%, __ITEM__solid-fuel__ dagegen nur 85%. Weitere Informationen sind in der Datei "Fuel Values.xlsx" im mod-Ordner zu finden.\n(Standard: an) +BI_Game_Tweaks_Player=Reichweite beim Bauen/Öffnen/Manipulieren/Ablegen von Gegenständen: 6 => 20; beim Aufheben von Gegenständen: 1 => 4; beim Abbauen von Ressourcen: 2.7 => 4; beim Einsammeln von Beute: 2 => 5\n(Standard: aus) +#~ BI_Game_Tweaks_Production_Science=Wenn diese Einstellung aktiviert ist, wird ein alternatives Rezept zur Herstellung von Wissenschaftspaketen für Produktion verfügbar sein.\n(Standard: ein) +BI_Game_Tweaks_Production_Science=Das __ITEM__production-science-pack__ kann nach einem alternativen Bauplan hergestellt werden.\n(Standard: an) +#~ BI_Game_Tweaks_Recipe=Betroffene Rezepte: BETON (Eisenerz => Eisenstab); STEINMAUER (+ Eisenstab); SCHIENEN (Stein => Schotter + Beton); STAHLAXT (Eisenstange => Eisenaxt) +#~ BI_Game_Tweaks_Recipe=Betroffene Rezepte:\nBeton (Eisenerz => Eisenstab)\nSteinmauer (+ Eisenstab)\nGleise (Stein => Schotter + Beton) +BI_Game_Tweaks_Recipe=Betroffene Rezepte:\n__ITEM__concrete__ (__ENTITY__iron-ore__ => __ITEM__iron-stick__)\n__ENTITY__stone-wall__ (+ __ITEM__iron-stick__)\n__ENTITY__straight-rail__ (__ITEM__stone__ => __ITEM__stone-crushed__ + __ITEM__concrete__)\n(Standard: an) +BI_Game_Tweaks_Small_Tree_Collisionbox=EXPERIMENTELL: Wenn diese Einstellung aktiviert ist, haben Bäume eine kleinere Kollisionsbox, so dass Spieler, Fahrzeuge und Gegner nicht ständig von Bäumen behindert werden, wenn sie Wälder passieren. Du solltest diese Einstellung nicht aktivieren, wenn Wälder auch weiterhin eine natürliche Barriere für deine Gegner sein sollen!\n(Standard: an) +BI_Game_Tweaks_Stack_Size=Beeinflusst Stapelgrößen von __ITEM__wood__, __ITEM__stone__, __ITEM__stone-crushed__, __ITEM__concrete__, und __ITEM__slag__.\n(Standard: an) +BI_Game_Tweaks_Tree=Bäume liefern eine variable Menge __ITEM__wood__ (1-6), wenn sie gefällt werden.\n(Vanilla: 4)\n(Standard: an) +BI_Show_musk_floor_in_mapview=In der Kartenansicht wird das Stromnetz-Overlay für __ENTITY__bi-solar-mat__ angezeigt, wenn diese Einstellung aktiviert ist. Dies sollte in einem laufenden Spiel nicht geändert werden, da das Anwenden der Einstellung auf jedes betroffene Element einige Zeit dauern kann! (Standard: an) +#~ BI_Solar_Additions=Aktiviert Solarobjekte wie den Solarpark, das Solarkraftwerk, den Bio-Akkumulator und das riesige Umspannwerk. +BI_Solar_Additions=Aktiviert Solarobjekte wie __ENTITY__bi-bio-solar-farm__, __ENTITY__bi-solar-boiler__, __ENTITY__bi-bio-accumulator__ and __ENTITY__bi-large-substation__\n(Standard: an) diff --git a/Bio_Industries_2/locale/de/recipe-description.cfg b/Bio_Industries_2/locale/de/recipe-description.cfg new file mode 100644 index 0000000..93726ba --- /dev/null +++ b/Bio_Industries_2/locale/de/recipe-description.cfg @@ -0,0 +1,137 @@ +[recipe-description] +## Produktion +bi-adv-fertilizer-1=__ITEM__bi-adv-fertilizer__ für die Superproduktion! (Mit __ITEM__alien-artifact__) +bi-adv-fertilizer-2=__ITEM__bi-adv-fertilizer__ für die Superproduktion! +bi-fertilizer-1=__ITEM__fertilizer__ +bi-fertilizer-2=__ITEM__fertilizer__ (mit Natriumhydroxid) +# Added for 0.18.32/1.1.2 +bi-adv-fertilizer-fluid=Viel Wasser mit einer Prise __ITEM__bi-adv-fertilizer__ +bi-fertilizer-fluid=Viel Wasser mit einer Prise Liquid __ITEM__fertilizer__ + +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-basic-gas-processing=Man muss nicht Öl fördern, um Flüssiggas zu gewinnen, wenn man genug __ITEM__coal__ und __ITEM__resin__ hat. Leider ist das Verfahren nicht sehr effizient. + +bi-battery=Wenn man es genau nimmt, ist diese __ITEM__battery__ aus __ITEM__wood__ gemacht. +bi-rail-wood-to-concrete=__ENTITY__bi-rail-wood__ sind günstig herstellbar und erleichtern den Aufbau eines Eisenbahnnetzes. Wenn du aber __ENTITY__bi-rail-power__ nutzen willst, brauchst du normale Gleise. + +bi-biomass-1=Nimm __ITEM__fertilizer__, vermische es mit Wasser — und fertig ist die erste Biomasse! +bi-biomass-2=Vermische etwas __ITEM__bi-biomass__ mit Wasser und __ITEM__liquid-air__, und du erhältst mehr __ITEM__bi-biomass__! +bi-biomass-3=Durch Zugabe von __ITEM__bi-ash__ lässt sich in kurzer Zeit ein Vielfaches an __ITEM__bi-biomass__ herstellen! + +bi-biomass-conversion-1=Stelle __ITEM__bi-cellulose__ und Leichtöl aus __ITEM__bi-biomass__ her! +bi-biomass-conversion-2=Stelle Flüssiggas aus __ITEM__bi-biomass__ her! +bi-biomass-conversion-3=Stelle Schmiermittel aus __ITEM__bi-biomass__ her! +#~ bi-biomass-conversion-4=Stelle Rohöl und Wasser/Schwefelhaltiges Wasser aus Biomasse her! +bi-biomass-conversion-4=Stelle Rohöl und Wasser aus Biomasse her! + +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__fertilizer__ erhältst du noch viel mehr __ITEM__bi-seed__. +bi-seed-4=__ITEM__bi-adv-fertilizer__ – für die Superproduktion von __ITEM__bi-seed__! + +bi-seed-bomb-advanced=Diese __ITEM__bi-seed-bomb-basic__ enthält neben __ITEM__bi-seed__ auch __ITEM__bi-adv-fertilizer__ — besser geht es nicht!! +bi-seed-bomb-basic=Diese __ITEM__bi-seed-bomb-basic__ enthält nur __ITEM__bi-seed__. +bi-seed-bomb-standard=Diese __ITEM__bi-seed-bomb-basic__ enthält neben __ITEM__bi-seed__ auch __ITEM__fertilizer__. + +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__fertilizer__ vorbei! +bi-seedling-4=Durch die Verwendung von __ITEM__bi-adv-fertilizer__ sind Supererträge garantiert! + +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__fertilizer__ ist wohl sehr bekömmlich für Flora und Fauna – jedenfalls wachsen die Bäume damit noch schneller heran. +bi-logs-4=Hier wird __ITEM__bi-adv-fertilizer__ eingesetzt. Sagt das nicht schon alles? + + +## Ressourcen +bi-ash-1=Verbrennst du __ITEM__wood__, erhältst du __ITEM__bi-ash__. +bi-ash-2=Verbrennst du __ITEM__bi-woodpulp__, erhältst du __ITEM__bi-ash__. + +bi-cellulose-1=__ITEM__bi-woodpulp__, Schwefelsäure — und schon hast du __ITEM__bi-cellulose__! +bi-cellulose-2=Wenn du richtig Dampf machst, kannst du die vierfache Menge an __ITEM__bi-cellulose__ produzieren! + +bi-charcoal-1=Wenn du __ITEM__bi-woodpulp__ verbrennst, hat die so produzierte __ITEM__wood-charcoal__ nur 20% der Energie, die in derselben Zeit hergestellte __ITEM__wood-bricks__ haben. Allerdings kannst du __ITEM__wood-charcoal__ zu __ITEM__coal__ weiterverarbeiten! +bi-charcoal-2=Das Verbrennen von __ITEM__wood__ bringt dir 60% mehr Ertrag an __ITEM__wood-charcoal__ als das Verbrennen von __ITEM__bi-woodpulp__. +bi-coal-1=__ITEM__wood-charcoal__ kommt rein, __ITEM__coal__ kommt raus. +bi-coal-2=__ITEM__wood-charcoal__ kommt rein, noch mehr __ITEM__coal__ kommt raus. Fortschritte in der Technologie ermöglichen eine beachtliche Produktionssteigerung! +bi-coke-coal=Verarbeitest du __ITEM__coal__ zu __ITEM__pellet-coke__, erhältst du einen Brennstoff mit höherem Energiegehalt, der weniger Schadstoffe emittiert und Fahrzeuge schneller fahren und beschleunigen lässt. +bi-pellet-coke=__ITEM__pellet-coke__ aus __ITEM__solid-fuel__ +bi-pellet-coke-2=__ITEM__pellet-coke__ aus Kohlenstoff +bi-solid-fuel=__ITEM__wood-bricks__ zu __ITEM__solid-fuel__ verarbeiten — gibt es einen besseren Weg, __ITEM__bi-woodpulp__ loszuwerden? +bi-wood-fuel-brick=In komprimierter Form sind __ITEM__bi-woodpulp__ leichter zu handhaben. + +bi-crushed-stone-1=__ITEM__stone__ ist der natürliche Ausgangsstoff für die Produktion von __ITEM__stone-crushed__. +#~ 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-crushed-stone=Aus überflüssigem __ITEM__concrete__ in allen Varianten kannst du __ITEM__stone-crushed__ machen. +bi-stone-brick=So stellst du __ITEM__stone-brick__ schneller her und verbrauchst weniger __ITEM__stone__. + +bi-purified-air-1=Wenn du immer genug Wasser und __ITEM__fertilizer__ vorrätig hast, verbessert der __ENTITY__bi-bio-garden__ nachhaltig die Luftqualität. +bi-purified-air-1-fluid=Flüssiger __ITEM__fertilizer__ kommt rein, saubere Luft kommt raus. +bi-purified-air-2=Verwendest du __ITEM__bi-adv-fertilizer__, hält der __ENTITY__bi-bio-garden__ die Luft mehr als doppelt so lange rein. So verbrauchst du viel weniger Wasser! +bi-purified-air-2-fluid=Flüssiger __ITEM__bi-adv-fertilizer__ kommt rein, viel saubere Luft kommt raus. + +bi-resin-pulp=Du kannst __ITEM__resin__ aus __ITEM__bi-woodpulp__ gewinnen, aber das ist nicht sehr effizient. +bi-resin-wood=Aus __ITEM__wood__ gewinnst du mehr __ITEM__resin__ als aus __ITEM__bi-woodpulp__! +bi-wood-from-pulp=Verklebe __ITEM__bi-woodpulp__ mit __ITEM__resin__ und du erhältst -- __ITEM__wood__! +bi-woodpulp=Du kannst __ITEM__bi-woodpulp__ verbrennen (roh oder veredelt), aber auch zur Herstellung von __ITEM__resin__, __ITEM__bi-cellulose__ und __ITEM__bi-adv-fertilizer__ verwenden. + +bi-acid=Man braucht kein Öl, um Schwefelsäure zu gewinnen — es geht auch mit nachwachsenden Ressourcen! +bi-liquid-air=__ITEM__bi-liquid-air__ wird bei der Herstellung von Stickstoff und Biomasse verwendet. +bi-nitrogen=Stickstoff ist zur Herstellung von __ITEM__fertilizer__ nötig. +bi-sulfur=Bio-__ITEM__sulfur__ — so natürlich, so schwefelig! +bi-plastic-1=Aus __ITEM__wood__ gemachte __ITEM__plastic-bar__ +bi-plastic-2=Aus __ITEM__bi-cellulose__ gemachte __ITEM__plastic-bar__ + + +## Demontage +bi-disassemble-recipes=Einen Teil der Materialien kannst du wiederverwenden. + + +## Unterstützung für andere Mods +## angelsrefining +bi-mineralized-sulfuric-waste=Aus __ITEM__stone-crushed__, __ITEM__bi-charcoal__ und reinem Wasser werden mineralisiertes Wasser — und schwefelhaltige Abfälle. +bi-slag-slurry=Schlamm aus __ITEM__bi-ash__, __ITEM__stone-crushed__ und Salzwasser +## angelspetrochem +bi-biomass-conversion-2-methane=Stelle Methan aus Biomasse her! +bi-biomass-conversion-4-yellow-waste=Stelle Rohöl und Schwefelhaltiges Wasser aus Biomasse her! +bi-sulfur-angels=Bio-__ITEM__sulfur__ — natürlich schwefelig! +## angelsrefining, BioTech, Krastorio/Krastorio2 +bi-sand=__ENTITY__bi-stone-crusher__ können __ITEM__stone-crushed__ zu __ITEM__sand__ zermahlen. +## Industrial Revolution +bi-crushed-stone-1_IR=__ITEM__stone__ ist der natürliche Ausgangsstoff für die Produktion von __ITEM__gravel__. +#~ bi-crushed-stone-2=Having mastered advanced material processing, you now can also get __ITEM__stone-crushed__ from __ITEM__concrete__! +#~ bi-crushed-stone-3=Having mastered advanced material processing, you now can also get __ITEM__stone-crushed__ from __ITEM__hazard-concrete__! +#~ bi-crushed-stone-4=You will get twice as much __ITEM__stone-crushed__ from processing __ITEM__refined-concrete__ instead of __ITEM__concrete__, but it takes twice as long! +#~ bi-crushed-stone-5=You will get twice as much __ITEM__stone-crushed__ from processing __ITEM__refined-hazard-concrete__ instead of __ITEM__hazard-concrete__, but it takes twice as long! +bi-crushed-stone_IR=Aus überflüssigem __ITEM__concrete__ in allen Varianten kannst du __ITEM__gravel__ machen. + + +#~ Really? +#~ bi-wood-pipe-to-ground=__ENTITY__pipe-to-ground__ made of __ITEM__wood__ and Copper +#~ bi-wood-pipe=__ENTITY__pipe__ made of __ITEM__wood__ and Copper +#~ 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 __ENTITY__bi-wooden-fence__ is cheap to make. It won't help you much against strong enemies, but will keep early enemies out so you can concentrate on starting your factory. +#~ bi-wooden-pole-big=__ENTITY__bi-wooden-pole-big__s will be automatically healed if you use "Natural Evolution Enemies". +#~ bi-wooden-pole-huge=__ENTITY__bi-wooden-pole-huge__s span vast distances (64 tiles) with __ITEM__copper-cable__, __ITEM__green-wire__, or __ITEM__red-wire__. + +bi-wood-pipe-to-ground=__ENTITY__pipe-to-ground__ aus __ITEM__wood__ und Kupfer +bi-wood-pipe=__ENTITY__pipe__ aus __ITEM__wood__ und Kupfer +bi-wooden-chest-giga=Eine RIESIGE Holzkiste +bi-wooden-chest-huge=Eine sehr große Holzkiste +bi-wooden-chest-large=Eine mittelgroße Holzkiste +bi-wooden-fence=__ENTITY__bi-wooden-fence__ halten zwar starken Gegnern nicht lange stand, verschaffen dir aber am Anfang Zeit, in Ruhe deine Fabrik auszubauen. +bi-wooden-pole-big=Diese großen hölzernen Masten werden automatisch repariert, wenn du die "Natural Evolution"-Mods verwendest. +bi-wooden-pole-bigger=Diese hölzernen Masten werden automatisch repariert, wenn du die "Natural Evolution"-Mods verwendest. +bi-wooden-pole-huge=Mit diesen riesigen Masten aus __ITEM__wood__ kannst du große Entfernungen (64 Felder) überbrücken, wenn du dein Strom- oder Schaltungsnetz aufbaust. +wooden-chest=Kleine Holzkiste diff --git a/Bio_Industries_2/locale/de/recipe-description.cfg.bak b/Bio_Industries_2/locale/de/recipe-description.cfg.bak new file mode 100644 index 0000000..0352ecc --- /dev/null +++ b/Bio_Industries_2/locale/de/recipe-description.cfg.bak @@ -0,0 +1,102 @@ +[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__ diff --git a/Bio_Industries_2/locale/de/recipe-name.cfg b/Bio_Industries_2/locale/de/recipe-name.cfg new file mode 100644 index 0000000..92f5441 --- /dev/null +++ b/Bio_Industries_2/locale/de/recipe-name.cfg @@ -0,0 +1,119 @@ +[recipe-name] +## Produktion +bi-adv-fertilizer-1=__ITEM__bi-adv-fertilizer__ (__ITEM__alien-artifact__) +bi-adv-fertilizer-2=__ITEM__bi-adv-fertilizer__ +# Added for 0.18.32/1.1.2 +bi-adv-fertilizer-fluid=Flüssiger __ITEM__bi-adv-fertilizer__ +bi-fertilizer-1=__ITEM__fertilizer__ +bi-fertilizer-2=__ITEM__fertilizer__ (mit Natriumhydroxid) +# Added for 0.18.32/1.1.2 +bi-fertilizer-fluid=Flüssiges __ITEM__fertilizer__ + +bi-arboretum-r1=Bäume pflanzen +bi-arboretum-r2=Gelände mit __ITEM__fertilizer__ verändern +bi-arboretum-r3=Gelände mit __ITEM__bi-adv-fertilizer__ verändern +bi-arboretum-r4=Gelände mit __ITEM__fertilizer__ verändern & Bäume pflanzen +bi-arboretum-r5=Gelände mit __ITEM__bi-adv-fertilizer__ verändern & Bäume pflanzen + +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-battery=Bio-Batterie +bi-rail-wood-to-concrete=__ENTITY__bi-rail-wood__ aufwerten + +#~ bi-biomass-1=Produktion von Biomasse mit __ITEM__fertilizer__ +bi-biomass-1=Produktion von Biomasse +bi-biomass-2=Vermehrung von Biomasse +bi-biomass-3=Vermehrung von Biomasse mit __ITEM__bi-ash__ + +bi-biomass-conversion-1=Bio-Umwandlung von Brennstoffen 1: __ITEM__bi-cellulose__, Leichtöl +bi-biomass-conversion-2=Bio-Umwandlung von Brennstoffen 2: Flüssiggas +bi-biomass-conversion-3=Bio-Umwandlung von Brennstoffen 3: Schmiermittel +#~ bi-biomass-conversion-4=Bio-Umwandlung von Brennstoffen 4: Rohöl, Wasser/Schwefelhaltiges Wasser +bi-biomass-conversion-4=Bio-Umwandlung von Brennstoffen 4: Rohöl, Wasser + +bi-seed-1=Produktion von __ITEM__bi-seed__ +bi-seed-2=Produktion von __ITEM__bi-seed__ mittels __ITEM__bi-ash__ +bi-seed-3=Produktion von __ITEM__bi-seed__ mittels __ITEM__fertilizer__ +bi-seed-4=Superproduktion von __ITEM__bi-seed__ mittels __ITEM__bi-adv-fertilizer__ + +bi-seed-bomb-advanced=__ITEM__bi-seed-bomb-basic__ mit __ITEM__bi-adv-fertilizer__ +bi-seed-bomb-basic=__ITEM__bi-seed-bomb-basic__ +bi-seed-bomb-standard=__ITEM__bi-seed-bomb-basic__ mit __ITEM__fertilizer__ + +bi-seedling-1=Produktion von Setzlingen +bi-seedling-2=Produktion von Setzlingen mittels __ITEM__bi-ash__ +bi-seedling-3=Produktion von Setzlingen mittels __ITEM__fertilizer__ +bi-seedling-4=Superproduktion von Setzlingen mittels __ITEM__bi-adv-fertilizer__ + +bi-logs-1=Produktion von __ITEM__wood__ +bi-logs-2=Produktion von __ITEM__wood__ mittels __ITEM__bi-ash__ +bi-logs-3=Produktion von __ITEM__wood__ mittels __ITEM__fertilizer__ +bi-logs-4=Superproduktion von __ITEM__wood__ mittels __ITEM__bi-adv-fertilizer__ + + +## Ressourcen +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__ +bi-pellet-coke=__ITEM__pellet-coke__ aus __ITEM__solid-fuel__ +bi-pellet-coke-2=__ITEM__pellet-coke__ aus Kohlenstoff +bi-solid-fuel=__ITEM__solid-fuel__ aus __ITEM__wood-bricks__n +bi-wood-fuel-brick=__ITEM__wood-bricks__ + +bi-crushed-stone-1=__ITEM__stone-crushed__ +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-stone-brick=Bio-__ITEM__stone-brick__ + +bi-purified-air-1=__ITEM__bi-purified-air__ (mit __ITEM__fertilizer__) +bi-purified-air-2=__ITEM__bi-purified-air__ (mit __ITEM__bi-adv-fertilizer__) + +bi-resin-pulp=__ITEM__resin__ aus __ITEM__bi-woodpulp__ +bi-resin-wood=__ITEM__resin__ aus __ITEM__wood__ +bi-woodpulp=__ITEM__bi-woodpulp__ aus __ITEM__wood__ +bi-wood-from-pulp=__ITEM__wood__ aus __ITEM__bi-woodpulp__ + +bi-acid=Schwefelsäure aus organischem Material +bi-liquid-air=Flüssigluft +bi-nitrogen=Stickstoff +bi-sulfur=Bio-__ITEM__sulfur__ +bi-plastic-1=Bio-__ITEM__plastic-bar__ aus __ITEM__wood__ +bi-plastic-2=Bio-__ITEM__plastic-bar__ aus __ITEM__bi-cellulose__ + + +## Demontage +bi-burner-inserter-disassemble=Demontage: __ENTITY__burner-inserter__ +bi-burner-mining-drill-disassemble=Demontage: __ENTITY__burner-mining-drill__ +bi-long-handed-inserter-disassemble=Demontage: __ENTITY__long-handed-inserter__ +bi-steel-furnace-disassemble=Demontage: __ENTITY__steel-furnace__ +bi-stone-furnace-disassemble=Demontage: __ENTITY__stone-furnace__ + + +## Unterstützung für andere Mods +## angelsrefining +bi-mineralized-sulfuric-waste=Mineralisiertes Wasser +bi-slag-slurry=Slag slurry from __ITEM__bi-ash__, __ITEM__stone-crushed__ and Saline water +## angelspetrochem +bi-biomass-conversion-2-methane=Bio-Umwandlung von Brennstoffen 2: Methan +bi-biomass-conversion-4-yellow-waste=Bio-Umwandlung von Brennstoffen 4: Rohöl, Schwefelhaltiges Wasser +bi-sulfur-angels=Bio-__ITEM__sulfur__ +## angelsrefining, BioTech, Krastorio/Krastorio2 +bi-sand=__ITEM__sand__ aus __ITEM__stone-crushed__ +## bobelectronics +bi-press-wood=Pressholz +## Industrial Revolution +bi-crushed-stone-1_IR=__ITEM__gravel__ +bi-crushed-stone-2_IR=__ITEM__gravel__ aus __ITEM__concrete__ +bi-crushed-stone-3_IR=__ITEM__gravel__ aus __ITEM__hazard-concrete__ +bi-crushed-stone-4_IR=__ITEM__gravel__ aus __ITEM__refined-concrete__ +bi-crushed-stone-5_IR=__ITEM__gravel__ aus __ITEM__refined-hazard-concrete__ diff --git a/Bio_Industries_2/locale/de/tech.cfg b/Bio_Industries_2/locale/de/tech.cfg new file mode 100644 index 0000000..9d5a70e --- /dev/null +++ b/Bio_Industries_2/locale/de/tech.cfg @@ -0,0 +1,19 @@ +[technology-name] +bi-tech-advanced-biotechnology=Fortgeschrittene Biotechnologie +bi-tech-bio-cannon=Artillerie-Geschützturm (Prototyp) +bi-tech-bio-farming=Bio-Baumschule +bi-tech-coal-processing-1=Kohleverarbeitung 1 +bi-tech-coal-processing-2=Kohleverarbeitung 2 +bi-tech-coal-processing-3=Kohleverarbeitung 3 +bi-tech-fertilizer=Düngemittel +bi-tech-organic-plastic=Organischer Kunststoff + +[technology-description] +bi-tech-advanced-biotechnology=Neue Technologien erhöhen die Effizienz der Holzproduktion so sehr, dass sie als Basis für eine alternative chemische Industrie dienen kann. +bi-tech-bio-cannon=Diese Artillerie-Geschütztürme sind noch auf einem frühen Entwicklungsstand. Man kann sie nur mit spezieller Munition verwenden, und manuelles Zielen ist damit noch nicht möglich. +bi-tech-bio-farming=Die Aufzucht von Bäumen aus Samen und Setzlingen sorgt für eine stabile Versorgung mit Holz. Holz kann in bestimmten Produkten wertvolle Rohstoffe ersetzen. Es kann zu effizienteren Brennstoffen verarbeitet und als Grundstoff für eine alternative chemische Industrie verwenden werden. +bi-tech-coal-processing-1=Verbrenne Holz, um Holzkohle und Asche zu gewinnen! +bi-tech-coal-processing-2=Holzkohle lässt sich zu höherwertigeren Energieträgern verarbeiten! +bi-tech-coal-processing-3=Selbst Kohle kann man noch veredeln! +bi-tech-fertilizer=Mit __ITEM__fertilizer__ erzielst du höhere Erträge! +bi-tech-organic-plastic=Mittels hochentwickelter Technologien lassen sich Kunststoffe aus organischen Materialien herstellen. diff --git a/Bio_Industries_2/locale/en/entity-description.cfg b/Bio_Industries_2/locale/en/entity-description.cfg new file mode 100644 index 0000000..dbf7c1d --- /dev/null +++ b/Bio_Industries_2/locale/en/entity-description.cfg @@ -0,0 +1,50 @@ +[entity-description] +## Production +bi-arboretum=__ENTITY__bi-arboretum__s change the surrounding terrain with fertilizer or plant trees. +bi-bio-farm=__ENTITY__bi-bio-farm__s are where __ENTITY__seedling__s grow into trees that are processed to __ITEM__wood__ and __ITEM__bi-woodpulp__. An integrated solar panel provides some of the energy during the day. +bi-bio-garden=The __ENTITY__bi-bio-garden__ scrubs pollution from the air. (One bio garden can absorb 45 pollution units per second — as much as 1500 trees!) +bi-bio-greenhouse=Just the right place to grow __ITEM__bi-seed__s and __ENTITY__seedling__s! +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-bio-reactor=__ENTITY__bi-bio-reactor__ are used to produce and process biomass. +bi-cokery=__ITEM__wood__ and __ITEM__bi-woodpulp__ are refined to __ITEM__wood-charcoal__ and other fuels in the __ENTITY__bi-cokery__. +bi-stone-crusher=These machines crush __ITEM__stone__ and __ITEM__concrete__ in all forms. + + +## Power +bi-bio-accumulator=__ENTITY__bi-bio-accumulator__ that can store very large amounts of energy. Sometimes, size really does matter … +bi-bio-boiler=The __ENTITY__bi-bio-boiler__ is as efficient as a normal __ENTITY__boiler__, but produces 75% less pollution! +bi-bio-solar-farm=The __ENTITY__bi-bio-solar-farm__ is a huge __ENTITY__solar-panel__ that generates a lot of power on minimal space. +bi-large-substation=This __ENTITY__bi-large-substation__ can power stuff in a large area. +bi-solar-boiler=This __ENTITY__bi-solar-boiler__ uses solar energy to generate electricity and steam. +bi-solar-mat=This special pavement contains solar panels. Each tile will generate 10kW of electricity while increasing your speed. (Thanks, Elon Musk!) + + +## Weaponry +bi-bio-cannon=Can ONLY fire at spawners and worms! (Range: 120)\nThis prototype isn't capable of manual targeting. +bi-dart-turret=These turrets are immediately available and protect you from enemy attacks at a minimal cost. Of course, the darts inflict less damage than bullets, but __ENTITY__bi-dart-turret__s have a higher range and can fire at a higher speed than normal __ENTITY__gun-turret__s. + + +## Rail stuff +bi-power-to-rail-pole=Connect your __ENTITY__bi-rail-power__ to the power grid!\nATTENTION: When you place a __ENTITY__bi-power-to-rail-pole__ in reach of two __ENTITY__bi-rail-power__ that are running parallel or crossing each other, you will connect these power grids! +bi-rail-power=Rails that also conducts electricity. Connect them to a power grid with a __ENTITY__bi-power-to-rail-pole__! +bi-rail-wood-bridge=A wooden bridge with rails.\nNote: You can't walk on this! +bi-rail-wood=Wooden rails +rail-remnants-wood-bridge=Remnants of a wooden bridge +rail-remnants-wood=Remnants of wooden rails + + +## Miscallenous wooden products +bi-wood-pipe-to-ground=__ENTITY__pipe-to-ground__ made of __ITEM__wood__ and Copper +bi-wood-pipe=__ENTITY__pipe__ made of __ITEM__wood__ and Copper +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 __ENTITY__bi-wooden-fence__ is cheap to make. It won't help you much against strong enemies, but will keep early enemies out so you can concentrate on starting your factory. +bi-wooden-pole-big=__ENTITY__bi-wooden-pole-big__s will be automatically healed if you use "Natural Evolution Enemies". +bi-wooden-pole-bigger=__ENTITY__bi-wooden-pole-bigger__s will be automatically healed if you use "Natural Evolution Enemies". +bi-wooden-pole-huge=__ENTITY__bi-wooden-pole-huge__s span vast distances (64 tiles) with __ITEM__copper-cable__, __ITEM__green-wire__, or __ITEM__red-wire__. + + +## Compatibility with other mods +bi-stone-crusher-sand=These machines produce __ITEM__stone-crushed__ from __ITEM__stone__ and __ITEM__concrete__ in all forms. They can also refine __ITEM__stone-crushed__ to __ITEM__sand__. diff --git a/Bio_Industries_2/locale/en/entity-name.cfg b/Bio_Industries_2/locale/en/entity-name.cfg new file mode 100644 index 0000000..ca84284 --- /dev/null +++ b/Bio_Industries_2/locale/en/entity-name.cfg @@ -0,0 +1,53 @@ +[entity-name] +## Production +bi-arboretum=Terraformer +bi-arboretum-hidden-radar=__ENTITY__bi-arboretum__ (__ENTITY__radar__) + +bi-bio-farm=Bio farm +bi-bio-garden=Bio garden +bi-bio-garden-large=Large bio garden +bi-bio-garden-huge=Huge bio garden +bi-bio-greenhouse=Bio nursery +seedling=Sapling + +bi-bio-reactor=Bio-reactor +bi-cokery=Cokery +bi-stone-crusher=Stone crusher + + +## Power +bi-bio-accumulator=Huge accumulator +bi-bio-boiler=Bio-boiler +bi-bio-solar-farm=Solar farm +bi-large-substation=Huge substation +bi-solar-boiler=Solar power plant & boiler +bi-solar-mat=Musk floor + + +## Weaponry +bi-bio-cannon=Prototype artillery +bi-dart-turret=Dart turret + + +## Rail stuff +bi-power-to-rail-pole=Powered rails connector +bi-rail-power=Powered rails +bi-rail-wood-bridge=Wooden rail bridge +bi-rail-wood=Wooden rails +rail-remnants-wood-bridge=Remnants of a wooden rail bridge +rail-remnants-wood=Remnants of wooden rails + + +## Miscallenous wooden products +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-bigger=Bigger wooden pole +bi-wooden-pole-huge=Huge wooden pole +#~ Just another name for the vanilla wood-chest +#~ (No need to overwrite the vanilla name if our bigger wooden chests aren't used!) +bi-wooden-chest=Small wooden chest diff --git a/Bio_Industries_2/locale/en/item-description.cfg b/Bio_Industries_2/locale/en/item-description.cfg new file mode 100644 index 0000000..f2a869c --- /dev/null +++ b/Bio_Industries_2/locale/en/item-description.cfg @@ -0,0 +1,56 @@ +[BI-item-description] +# __ITEM__fertilizer__ should be replaced with __BI-ITEM__fertilizer__, but we can't refer to it, +# so we hard-code its content here. +#~ fertilizer=__ITEM__fertilizer__ lets stuff grow faster and is also used to produce Algae biomass. +fertilizer=Common fertilizer lets stuff grow faster and is also used to produce Algae biomass. + +[item-description] +## Production +bi-adv-fertilizer=__ITEM__bi-adv-fertilizer__ — the special ingredient that turns a greatly improved into a super production. Available only to users of Bio Industries! :-) +fertilizer=__ITEM__fertilizer__ lets stuff grow faster and is also used to produce Algae biomass. + +bi-purified-air=Clean air, pollution removed! + +bi-arboretum-r1=Plant trees around the building +bi-arboretum-r2=__ITEM__fertilizer__ is used to improve the ground around the building. +bi-arboretum-r3=__ITEM__bi-adv-fertilizer__ is used to improve the ground around the building. +bi-arboretum-r4=Plants trees and uses __ITEM__fertilizer__ to improve the ground around the building. +bi-arboretum-r5=Plants trees and uses __ITEM__bi-adv-fertilizer__ to improve the ground around the building. + +bi-seed-bomb-advanced=This __ITEM__bi-seed-bomb-basic__ scatters __ITEM__bi-seed__ in a radius of 30 tiles around the impact location. __ITEM__bi-adv-fertilizer__ guarantees a high chance that the __ITEM__bi-seed__ will grow into trees fast! +bi-seed-bomb-basic=This __ITEM__bi-seed-bomb-basic__ scatters __ITEM__bi-seed__ in a radius of 24 tiles around the impact location. +bi-seed-bomb-standard=This __ITEM__bi-seed-bomb-basic__ scatters __ITEM__bi-seed__ in a radius of 27 tiles around the impact location. __ITEM__fertilizer__ improves the chance that the __ITEM__bi-seed__ will grow into trees. + +bi-seed=This will grow into a __ENTITY__seedling__. + + +## Weaponry +bi-bio-cannon-basic-ammo=Rocket powered, low physical damage (fired by prototype artillery) +bi-bio-cannon-biological-ammo=Rocket powered, high biological damage (fired by prototype artillery) +bi-bio-cannon-poison-ammo=Rocket powered, medium poison damage (fired by prototype artillery) +bi-bio-cannon-proto-ammo=Propelled by TNT, low physical damage (fired by prototype artillery) + +bi-dart-magazine-basic=__ITEM__bi-dart-magazine-basic__ hurts just a little bit. +bi-dart-magazine-enhanced=__ITEM__bi-dart-magazine-enhanced__ causes additional acid damage! +bi-dart-magazine-poison=__ITEM__bi-dart-magazine-enhanced__ — with poison as a topping! +bi-dart-magazine-standard=__ITEM__bi-dart-magazine-standard__ can pierce through targets. +bi-dart-rifle=This cheap weapon uses easily producible ammo and is good for fending off weaker enemies. + + +## Resources +bi-ash=__ITEM__bi-ash__ is a valuable resource! +bi-cellulose=__ITEM__battery__, __ITEM__plastic-bar__, Sulfuric acid — all of these can be made with __ITEM__bi-cellulose__! +bi-woodpulp=__ITEM__bi-woodpulp__ can be used for many purposes. When burned, it will pollute less than raw __ITEM__wood__, but it will only give you half the energy. +coal=You will need it! +pellet-coke=More energy than __ITEM__solid-fuel__ with only about 60% the emissions, plus a little boost to the top speed – why don't you fuel your trains with __ITEM__pellet-coke__ already?! +resin=__ITEM__resin__ is a sticky substance that can be processed to get Petroleum gas! +solid-fuel=__ITEM__solid-fuel__ provides less energy than __ITEM__wood-bricks__, but also burns with less pollution. Additionally, it will make your vehicles drive and accelerate faster. +stone-crushed=__ITEM__stone-crushed__ is mainly used for building rails and roads. +wood-bricks=Compressed __ITEM__bi-woodpulp__ provides a lot of energy while polluting less. It's an early substitute for __ITEM__solid-fuel__. +wood-charcoal=Provides more energy than __ITEM__coal__ while emitting far less pollution. Unfortunately, it's not as versatilely usable, so you will still need __ITEM__coal__! +wood=Base your energy production on this renewable resource!\nPlease note: There's a lot more you can use it for than just burning it! + + +## Compatibility with other mods +#~ sand=__ITEM__sand__ +sand= diff --git a/Bio_Industries_2/locale/en/item-name.cfg b/Bio_Industries_2/locale/en/item-name.cfg new file mode 100644 index 0000000..d9a08d2 --- /dev/null +++ b/Bio_Industries_2/locale/en/item-name.cfg @@ -0,0 +1,54 @@ +[BI-item-name] +fertilizer=Common fertilizer + +[item-name] +## Production +bi-adv-fertilizer=BI-Super-Fertilizer(™) +#~ fertilizer=Fertilizer "Run of ye olde mill"(™) +fertilizer=Common fertilizer + +bi-purified-air=Purified air + +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-seed-bomb-advanced=Advanced seed bomb +bi-seed-bomb-basic=Basic seed bomb +bi-seed-bomb-standard=Standard seed bomb +bi-seed=Tree seed + +# Only __ENTITY__x__ and __ITEM__x__ can be used, so let's pretend here that these fluids are items! +bi-biomass=Algae biomass +bi-liquid-air=Liquid air +nitrogen=Nitrogen + +## Weaponry +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-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 + + +## Resources +bi-ash=Ash +bi-cellulose=Cellulose +bi-woodpulp=Wood pulp +pellet-coke=Pellet coke +resin=Resin +stone-crushed=Crushed stone +wood-bricks=Wood bricks +wood-charcoal=Charcoal + + +## Compatibility with other mods +sand=Sand +slag=Slag diff --git a/Bio_Industries_2/locale/en/locale.cfg b/Bio_Industries_2/locale/en/locale.cfg new file mode 100644 index 0000000..e69de29 diff --git a/Bio_Industries_2/locale/en/locale.cfg.bak b/Bio_Industries_2/locale/en/locale.cfg.bak new file mode 100644 index 0000000..93f6c68 --- /dev/null +++ b/Bio_Industries_2/locale/en/locale.cfg.bak @@ -0,0 +1,569 @@ +[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__ diff --git a/Bio_Industries_2/locale/en/misc.cfg b/Bio_Industries_2/locale/en/misc.cfg new file mode 100644 index 0000000..24d3055 --- /dev/null +++ b/Bio_Industries_2/locale/en/misc.cfg @@ -0,0 +1,43 @@ +[fluid-name] +#~ bi-biomass=Algae biomass +bi-biomass=__ITEM__bi-biomass__ +# We don't seem to use that! +#~ bi-ground-water=Water +liquid-air=Liquid air +nitrogen=Nitrogen +water-saline=Saline water +bi-fertilizer-fluid=Liquid __ITEM__fertilizer__ +bi-adv-fertilizer-fluid=Liquid __ITEM__bi-adv-fertilizer__ + +[fluid-description] +bi-fertilizer-fluid=Liquid __ITEM__fertilizer__ makes greenwashing easy. +bi-adv-fertilizer-fluid=Liquid __ITEM__bi-adv-fertilizer__ -- just the thing you'll need if you really want to green-wash your factory! + +[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 + +[modifier-description] +Bio_Cannon_Ammo-damage-bonus=__ENTITY__bi-bio-cannon__ damage: +__1__ +Bio_Cannon_Ammo-shooting-speed-bonus=__ENTITY__bi-bio-cannon__ shooting speed: +__1__ +Bio_Turret_Ammo-damage-bonus=__ENTITY__bi-dart-turret__ ammo damage bonus: +__1__ +Bio_Turret_Ammo-shooting-speed-bonus=__ENTITY__bi-dart-turret__ ammo shooting speed bonus: +__1__ +bi-dart-turret-attack-bonus=__ENTITY__bi-dart-turret__ damage bonus: +__1__ +bi-dart-turret-damage-bonus=__ENTITY__bi-dart-turret__ damage bonus: +__1__ + +[bi-misc] +growing-tree=Growing tree +growing-tree-desc=Given some time, a big tree will grow from this __ENTITY__seedling__. +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! diff --git a/Bio_Industries_2/locale/en/mod.cfg b/Bio_Industries_2/locale/en/mod.cfg new file mode 100644 index 0000000..6fa09e4 --- /dev/null +++ b/Bio_Industries_2/locale/en/mod.cfg @@ -0,0 +1,46 @@ +[mod-name] +Bio_Industries=Bio Industries + +[mod-setting-name] +BI_Bio_Cannon=Enable: Prototype Artillery +BI_Bio_Fuel=Enable: Bio fuel production +# Added for 0.18.32/1.1.2 +BI_Easy_Bio_Gardens=Enable: Easy Bio gardens +# Added for 1.1.8 +BI_Bigger_Wooden_Chests=Enable: Bigger wooden chests +BI_Enable_gvv_support=Compatibility: Add support for GVV +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_Production_Science=Game tweaks: Alternative recipe for __ITEM__production-science-pack__ +BI_Game_Tweaks_Recipe=Game tweaks: Recipe +BI_Game_Tweaks_Small_Tree_Collisionbox=Game tweaks: Smaller collision boxes for trees +BI_Game_Tweaks_Stack_Size=Game tweaks: Stack size +BI_Game_Tweaks_Tree=Game tweaks: Tree yield +#~ 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 + +[mod-setting-description] +BI_Bio_Cannon=The Prototype artillery is very powerful, but will only fire at spawners.\n(Default: on) +BI_Bio_Fuel=Enables the production of oil products on the basis of __ITEM__bi-biomass__\n(Default: on) +# Added for 0.18.32/1.1.2 +BI_Easy_Bio_Gardens=Bio gardens consume ready-made fluid fertilizer, so just one pipeline is enough to supply all ingredients. However, this requires 50% more fertilizer than combining solid fertilizer and water on site.\nBio gardens will transmit electricity to adjacent Bio gardens. Arrange them on a grid, with no more than 1 tile between 2 Bio gardens, and they will be magically connected. :-)\n(Default: off) +# Added for 1.1.8 +BI_Bigger_Wooden_Chests=__ENTITY__bi-wooden-chest-large__, __ENTITY__bi-wooden-chest-huge__, __ENTITY__bi-wooden-chest-giga__ +#~ 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) +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!\n(Default: off) +BI_Game_Tweaks_Bot=Bots can't be mined or catch fire.\n(Default: off) +BI_Game_Tweaks_Disassemble=Allow some disassemble recipes. You get about 50% of the resources back.\n(Default: on) +BI_Game_Tweaks_Emissions_Multiplier=Bob started this. The general idea is that unprocessed fuels cause more pollution than more refined fules. Thus __ITEM__coal__ would produce 200% pollution, while __ITEM__solid-fuel__ would produce only 85%. Please see "Fuel Values.xlsx" in mod folder for more info!\n(Default: on) +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\n(Default: off) +BI_Game_Tweaks_Production_Science=Enable an alternative recipe for the __ITEM__production-science-pack__.\n(Default: on) +#~ BI_Game_Tweaks_Recipe=Recipes Affected: CONCRETE Remove: Iron Ore Add: Iron Stick, STONE-WALL Add: Iron Stick, RAILS Remove: stone Add: crushed-stone and Concrete, STEEL-AXE Remove: Iron-Stick Add: Iron-Axe +BI_Game_Tweaks_Recipe=Affected recipes:\n__ITEM__concrete__ (__ENTITY__iron-ore__ => __ITEM__iron-stick__)\n__ENTITY__stone-wall__ (adds __ITEM__iron-stick__)\n__ENTITY__straight-rail__ (__ITEM__stone__ => __ITEM__stone-crushed__ + __ITEM__concrete__)\n(Default: on) +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!\n(Default: on) +BI_Game_Tweaks_Stack_Size=Affects stack sizes of __ITEM__wood__, __ITEM__stone__, __ITEM__stone-crushed__, __ITEM__concrete__, and __ITEM__slag__.\n(Default: on) +BI_Game_Tweaks_Tree=Game tweaks - trees randomly provide 1 to 6 __ITEM__wood__ when chopped down. (Vanilla: 4)\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 __ENTITY__bi-bio-solar-farm__, __ENTITY__bi-solar-boiler__, __ENTITY__bi-bio-accumulator__ and __ENTITY__bi-large-substation__.\n(Default: on) diff --git a/Bio_Industries_2/locale/en/recipe-description.cfg b/Bio_Industries_2/locale/en/recipe-description.cfg new file mode 100644 index 0000000..8a9b3b9 --- /dev/null +++ b/Bio_Industries_2/locale/en/recipe-description.cfg @@ -0,0 +1,135 @@ +[recipe-description] +## Production +bi-adv-fertilizer-1=Use __ITEM__bi-adv-fertilizer__ for a super production — it's far better than __ITEM__fertilizer__! (Made with __ITEM__alien-artifact__) +bi-adv-fertilizer-2=Use __ITEM__bi-adv-fertilizer__ for a super production — it's far better than __ITEM__fertilizer__! +bi-fertilizer-1=__ITEM__fertilizer__ lets your stuff grow faster, it really does! +bi-fertilizer-2=__ITEM__fertilizer__ lets your stuff grow faster, it really does! (Made with Sodium hydroxide) +# Added for 0.18.32/1.1.2 +bi-adv-fertilizer-fluid=__ITEM__bi-adv-fertilizer__ dissolved in water +bi-fertilizer-fluid=__ITEM__fertilizer__ dissolved in water + +bi-arboretum-r1=Note: The recipe will never complete, trees are planted on sector scan. +bi-arboretum-r2=Note: The recipe will never complete, the ground is fertilized on sector scan. +bi-arboretum-r3=Note: The recipe will never complete, the ground is fertilized on sector scan. +bi-arboretum-r4=Note: The recipe will never complete, the ground is fertilized and trees are planted on sector scan. +bi-arboretum-r5=Note: The recipe will never complete, the ground is fertilized and trees are planted on sector scan. + +bi-basic-gas-processing=Inefficient gas extraction using __ITEM__coal__ und __ITEM__resin__ + +bi-battery=If you really think about it, this __ITEM__battery__ is made from __ITEM__wood__! +bi-rail-wood-to-concrete=__ENTITY__bi-rail-wood__ are cheap to make and allow you an easy start of your rail network. But if you want to use __ENTITY__bi-rail-power__, you'll need normal rails. + +bi-biomass-1=Prime your Algae biomass production with __ITEM__fertilizer__! +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 __ITEM__fertilizer__. +bi-biomass-3=Feed back some of the produced Algae biomass to produce lots of it!\nNote: The added __ITEM__bi-ash__ will gain you a much higher yield in a fraction of the time. + +bi-biomass-conversion-1=Use Algae biomass to produce Light oil and __ITEM__bi-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-seed-1=Use wood and water to produce __ITEM__bi-seed__! +bi-seed-2=Increase your __ITEM__bi-seed__ production by using __ITEM__bi-ash__ as a cheap fertilizer! +bi-seed-3=Increase your __ITEM__bi-seed__ production even more by using __ITEM__fertilizer__ instead of __ITEM__bi-ash__! +bi-seed-4=Increase your __ITEM__bi-seed__ production dramatically with __ITEM__bi-adv-fertilizer__! + +bi-seedling-1=Use __ITEM__bi-seed__ and Water to grow __ENTITY__seedling__s! +bi-seedling-2=Produce more by using __ITEM__bi-ash__ as a cheap fertilizer! +bi-seedling-3=Increase your production by using __ITEM__fertilizer__! +bi-seedling-4=Use __ITEM__bi-adv-fertilizer__ for a super production! + +bi-seed-bomb-advanced=This __ITEM__bi-seed-bomb-basic__ spreads __ITEM__bi-seed__ in a radius of 30 tiles around the target position. Use of __ITEM__bi-adv-fertilizer__ guarantees a big chance that the __ITEM__bi-seed__ will grow into big trees in a short time. +bi-seed-bomb-basic=This simple __ITEM__bi-seed-bomb-basic__ spreads __ITEM__bi-seed__ in a radius of 24 tiles around the target position. With a bit of luck, it will grow into trees! +bi-seed-bomb-standard=This __ITEM__bi-seed-bomb-basic__ spreads __ITEM__bi-seed__ in a radius of 27 tiles around the target position. __ITEM__fertilizer__ increases the chance that the __ITEM__bi-seed__ will grow into trees! + +bi-logs-1=Grow __ITEM__wood__ the old-fashioned way by watering __ITEM__bi-seed__s! +bi-logs-2=Improve your __ITEM__wood__ production by using __ITEM__bi-ash__ as a cheap fertilizer! +bi-logs-3=Grow even more __ITEM__wood__ by using __ITEM__fertilizer__ instead of __ITEM__bi-ash__! +bi-logs-4=__ITEM__bi-adv-fertilizer__ is used in this recipe. Need I say more? + + +## Resources +bi-ash-1=Burn __ITEM__wood__, get __ITEM__bi-ash__! +bi-ash-2=Burn lots of __ITEM__bi-woodpulp__, get lots of __ITEM__bi-ash__! + +bi-cellulose-1=Just combine __ITEM__bi-woodpulp__ and Sulfuric acid and you'll get __ITEM__bi-cellulose__. +bi-cellulose-2=Heat things up a bit to quadruple your __ITEM__bi-cellulose__ production! + +bi-charcoal-1=The fuel value you'll get from processing __ITEM__bi-woodpulp__ to __ITEM__wood-charcoal__ is only 20% of what you'd get in the same time from making __ITEM__wood-bricks__. However, __ITEM__wood-charcoal__ can be turned into __ITEM__coal__. +bi-charcoal-2=Burning __ITEM__wood__ will gain you 60% more __ITEM__wood-charcoal__ than burning __ITEM__bi-woodpulp__. +bi-coal-1=Put in __ITEM__wood-charcoal__, take out __ITEM__coal__… +bi-coal-2=Put in __ITEM__wood-charcoal__, take out even more __ITEM__coal__… Advanced technology allows for a considerable increase of __ITEM__coal__ production! +bi-coke-coal=Refining your __ITEM__coal__ will increase the fuel value. Also, __ITEM__pellet-coke__ causes less pollution and gives bonuses to top speed and acceleration when used as fuel in vehicles. +bi-pellet-coke=Turn __ITEM__solid-fuel__ into __ITEM__pellet-coke__ +bi-pellet-coke-2=Turn carbon into __ITEM__pellet-coke__ +bi-solid-fuel=Turning __ITEM__wood-bricks__ into __ITEM__solid-fuel__ is a great way to get rid of excess __ITEM__bi-woodpulp__! +bi-wood-fuel-brick=__ITEM__wood-bricks__ are easier to handle than uncompressed __ITEM__bi-woodpulp__. + +bi-crushed-stone-1=Make __ITEM__stone-crushed__ from __ITEM__stone__ you've found or mined. +#~ bi-crushed-stone-2=Having mastered advanced material processing, you now can also get __ITEM__stone-crushed__ from __ITEM__concrete__! +#~ bi-crushed-stone-3=Having mastered advanced material processing, you now can also get __ITEM__stone-crushed__ from __ITEM__hazard-concrete__! +#~ bi-crushed-stone-4=You will get twice as much __ITEM__stone-crushed__ from processing __ITEM__refined-concrete__ instead of __ITEM__concrete__, but it takes twice as long! +#~ bi-crushed-stone-5=You will get twice as much __ITEM__stone-crushed__ from processing __ITEM__refined-hazard-concrete__ instead of __ITEM__hazard-concrete__, but it takes twice as long! +bi-crushed-stone=Excess __ITEM__concrete__ in all variations can be recycled to __ITEM__stone-crushed__. +bi-stone-brick=__ITEM__stone-brick__ made faster and with less __ITEM__stone__! + +bi-purified-air-1=If you provide enough water and good, old __ITEM__fertilizer__, your __ENTITY__bi-bio-garden__ will clean the air for a while. +bi-purified-air-1-fluid=Supply your __ENTITY__bi-bio-garden__ with Liquid __ITEM__fertilizer__ and it will clean the air for a while. +bi-purified-air-2=Use __ITEM__bi-adv-fertilizer__ and your __ENTITY__bi-bio-garden__ will clean the air for much longer! This way, you'll save a lot of water. +bi-purified-air-2-fluid=Just hook up your __ENTITY__bi-bio-garden__ to some Liquid __ITEM__bi-adv-fertilizer__ and it will clean the air for a long time! + +bi-resin-pulp=Of course you can extract __ITEM__resin__ from __ITEM__bi-woodpulp__, but it's not very efficient. +bi-resin-wood=Process __ITEM__wood__ to get __ITEM__resin__ more efficiently! +bi-wood-from-pulp=Make __ITEM__wood__ from __ITEM__bi-woodpulp__ and __ITEM__resin__! +bi-woodpulp=You can burn __ITEM__bi-woodpulp__ (raw or refined), or you can use it to produce __ITEM__resin__, __ITEM__bi-cellulose__ and __ITEM__bi-adv-fertilizer__. + +bi-acid=Use Algae biomass and __ITEM__bi-cellulose__ to produce Sulfuric acid! +bi-liquid-air=Liquid air is needed to make Nitrogen and Algae biomass. +bi-nitrogen=Nitrogen is needed to make __ITEM__fertilizer__. +bi-sulfur=Bio-__ITEM__sulfur__ — so natural, so sulfuric! +bi-plastic-1=__ITEM__plastic-bar__ made from __ITEM__wood__ +bi-plastic-2=__ITEM__plastic-bar__ made from __ITEM__bi-cellulose__ + + +## Disassemble +bi-disassemble-recipes=Some of the raw material can be reused. + + +## Compatibility with other mods +## angelsrefining +bi-mineralized-sulfuric-waste=__ITEM__stone-crushed__, __ITEM__bi-charcoal__ and pure Water are processed to make Mineralized water — and Sulfuric waste water. +bi-slag-slurry=Slag slurry from __ITEM__bi-ash__, __ITEM__stone-crushed__ and Saline water +## angelspetrochem +bi-biomass-conversion-2-methane=Use Algae biomass to produce Methane gas! +bi-biomass-conversion-4-yellow-waste=Use Algae biomass to produce Crude oil and Sulfuric waste water! +bi-sulfur-angels=Bio-__ITEM__sulfur__ — so natural, so sulfuric! +## angelsrefining, BioTech, Krastorio/Krastorio2 +bi-sand=__ENTITY__bi-stone-crusher__ can make __ITEM__sand__ from __ITEM__stone-crushed__. +## Industrial Revolution +bi-crushed-stone-1_IR=Make __ITEM__gravel__ from __ITEM__stone__ you've found or mined. +#~ bi-crushed-stone-2=Having mastered advanced material processing, you now can also get __ITEM__stone-crushed__ from __ITEM__concrete__! +#~ bi-crushed-stone-3=Having mastered advanced material processing, you now can also get __ITEM__stone-crushed__ from __ITEM__hazard-concrete__! +#~ bi-crushed-stone-4=You will get twice as much __ITEM__stone-crushed__ from processing __ITEM__refined-concrete__ instead of __ITEM__concrete__, but it takes twice as long! +#~ bi-crushed-stone-5=You will get twice as much __ITEM__stone-crushed__ from processing __ITEM__refined-hazard-concrete__ instead of __ITEM__hazard-concrete__, but it takes twice as long! +bi-crushed-stone_IR=Excess __ITEM__concrete__ in all variations can be recycled to __ITEM__gravel__. + + +#~ 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-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-bomb-advanced=Plant trees in a large area, with advanced fertilizer 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 fertilizer via a seed bomb! +#~ 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-hidden-panel=A boiler that uses solar energy or electricity (also produces electricity). +#~ bi-stone-crusher=Machine to break stone into crushed stone +#~ 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 diff --git a/Bio_Industries_2/locale/en/recipe-name.cfg b/Bio_Industries_2/locale/en/recipe-name.cfg new file mode 100644 index 0000000..8e8a374 --- /dev/null +++ b/Bio_Industries_2/locale/en/recipe-name.cfg @@ -0,0 +1,124 @@ +[recipe-name] +## Production +#~ bi-adv-fertilizer-1=Advanced fertilizer +#~ bi-adv-fertilizer-2=Advanced fertilizer +bi-adv-fertilizer-1=__ITEM__bi-adv-fertilizer__ +bi-adv-fertilizer-2=__ITEM__bi-adv-fertilizer__ +# Added for 0.18.32/1.1.2 +bi-adv-fertilizer-fluid=Liquid __ITEM__bi-adv-fertilizer__ +bi-fertilizer-1=__ITEM__fertilizer__ +bi-fertilizer-2=__ITEM__fertilizer__ (with sodium hydroxide) +# Added for 0.18.32/1.1.2 +bi-fertilizer-fluid=Liquid __ITEM__fertilizer__ + + +bi-arboretum-r1=Plant trees +bi-arboretum-r2=Change terrain with __ITEM__fertilizer__ +bi-arboretum-r3=Change terrain with __ITEM__bi-adv-fertilizer__ +bi-arboretum-r4=Change terrain with __ITEM__fertilizer__ & plant trees +bi-arboretum-r5=Change terrain wiht __ITEM__bi-adv-fertilizer__ & plant trees + +bi-ash-1=__ITEM__bi-ash__ from __ITEM__wood__ +bi-ash-2=__ITEM__bi-ash__ from __ITEM__bi-woodpulp__ + +bi-basic-gas-processing=Basic gas processing using __ITEM__coal__ and __ITEM__resin__ + +bi-battery=Bio battery +bi-rail-wood-to-concrete=Upgrade __ENTITY__bi-rail-wood__ + +#~ bi-biomass-1=Algae biomass production with __ITEM__fertilizer__ +#~ bi-biomass-2=Algae biomass production with Algae biomass (basic) +#~ bi-biomass-3=Algae biomass production with Algae biomass (advanced) +#~ bi-biomass-1=Produce Algae biomass using __ITEM__fertilizer__ +bi-biomass-1=Produce Algae biomass +bi-biomass-2=Replicate Algae biomass +bi-biomass-3=Replicate Algae biomass using __ITEM__bi-ash__ + +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 + +bi-seed-1=Basic __ITEM__bi-seed__ production +bi-seed-2=Improved __ITEM__bi-seed__ production with __ITEM__bi-ash__ +bi-seed-3=Advanced __ITEM__bi-seed__ production with __ITEM__fertilizer__ +bi-seed-4=Super __ITEM__bi-seed__ production with __ITEM__bi-adv-fertilizer__ + +bi-seed-bomb-advanced=__ITEM__bi-seed-bomb-basic__ with __ITEM__bi-adv-fertilizer__ +bi-seed-bomb-basic=__ITEM__bi-seed-bomb-basic__ +bi-seed-bomb-standard=__ITEM__bi-seed-bomb-basic__ with __ITEM__fertilizer__ + +bi-seedling-1=Basic __ENTITY__seedling__ production +bi-seedling-2=Improved __ENTITY__seedling__ production with __ITEM__bi-ash__ +bi-seedling-3=Advanced __ENTITY__seedling__ production with __ITEM__fertilizer__ +bi-seedling-4=Super __ENTITY__seedling__ production with __ITEM__bi-adv-fertilizer__ + +bi-logs-1=Basic __ITEM__wood__ production +bi-logs-2=Improved __ITEM__wood__ production with __ITEM__bi-ash__ +bi-logs-3=Advanced __ITEM__wood__ production with __ITEM__fertilizer__ +bi-logs-4=Super __ITEM__wood__ production with __ITEM__bi-adv-fertilizer__ + + +## Resources +bi-cellulose-1=Basic __ITEM__bi-cellulose__ production +bi-cellulose-2=Advanced __ITEM__bi-cellulose__ production + +bi-charcoal-1=__ITEM__wood-charcoal__ from __ITEM__bi-woodpulp__ +bi-charcoal-2=__ITEM__wood-charcoal__ from __ITEM__wood__ +bi-coal-1=Basic __ITEM__coal__ production +bi-coal-2=Advanced __ITEM__coal__ production +bi-coke-coal=__ITEM__pellet-coke__ +bi-pellet-coke=__ITEM__pellet-coke__ from __ITEM__solid-fuel__ +bi-pellet-coke-2=__ITEM__pellet-coke__ from carbon +bi-solid-fuel=__ITEM__solid-fuel__ from __ITEM__wood-bricks__ +bi-wood-fuel-brick=__ITEM__wood-bricks__ + +bi-crushed-stone-1=__ITEM__stone-crushed__ from __ITEM__stone__ +bi-crushed-stone-2=__ITEM__stone-crushed__ from __ITEM__concrete__ +bi-crushed-stone-3=__ITEM__stone-crushed__ from __ITEM__hazard-concrete__ +bi-crushed-stone-4=__ITEM__stone-crushed__ from __ITEM__refined-concrete__ +bi-crushed-stone-5=__ITEM__stone-crushed__ from __ITEM__refined-hazard-concrete__ +bi-stone-brick=Bio-__ITEM__stone-brick__ + +bi-purified-air-1=__ITEM__bi-purified-air__ — using __ITEM__fertilizer__ +bi-purified-air-2=__ITEM__bi-purified-air__ — using __ITEM__bi-adv-fertilizer__ + +bi-resin-pulp=__ITEM__resin__ from __ITEM__bi-woodpulp__ +bi-resin-wood=__ITEM__resin__ from __ITEM__wood__ +bi-woodpulp=__ITEM__bi-woodpulp__ from __ITEM__wood__ +bi-wood-from-pulp=__ITEM__wood__ from __ITEM__bi-woodpulp__ + +bi-acid=Bio-acid +bi-liquid-air=Liquid air +bi-nitrogen=Nitrogen +bi-sulfur=Bio-__ITEM__sulfur__ +bi-plastic-1=__ITEM__plastic-bar__ from __ITEM__wood__ +bi-plastic-2=__ITEM__plastic-bar__ from __ITEM__bi-cellulose__ + + +## Disassemble +bi-burner-inserter-disassemble=Disassemble __ENTITY__burner-inserter__ +bi-burner-mining-drill-disassemble=Disassemble __ENTITY__burner-mining-drill__ +bi-long-handed-inserter-disassemble=Disassemble __ENTITY__long-handed-inserter__ +bi-steel-furnace-disassemble=Disassemble __ENTITY__steel-furnace__ +bi-stone-furnace-disassemble=Disassemble __ENTITY__stone-furnace__ + + +## Compatibility with other mods +## angelsrefining +bi-mineralized-sulfuric-waste=Mineralized water +bi-slag-slurry=Slag slurry from __ITEM__bi-ash__, __ITEM__stone-crushed__ and Saline water +## angelspetrochem +bi-biomass-conversion-2-methane=Bio fuel conversion 2: Methane gas +bi-biomass-conversion-4-yellow-waste=Bio fuel conversion 4: Crude oil, Sulfuric Waste Water +bi-sulfur-angels=Bio-__ITEM__sulfur__ +## angelsrefining, BioTech, Krastorio/Krastorio2 +bi-sand=__ITEM__sand__ from __ITEM__stone-crushed__ +## bobelectronics +bi-press-wood=Pressed wood +## Industrial Revolution +bi-crushed-stone-1_IR=__ITEM__gravel__ from __ITEM__stone__ +bi-crushed-stone-2_IR=__ITEM__gravel__ from __ITEM__concrete__ +bi-crushed-stone-3_IR=__ITEM__gravel__ from __ITEM__hazard-concrete__ +bi-crushed-stone-4_IR=__ITEM__gravel__ from __ITEM__refined-concrete__ +bi-crushed-stone-5_IR=__ITEM__gravel__ from __ITEM__refined-hazard-concrete__ diff --git a/Bio_Industries_2/locale/en/tech.cfg b/Bio_Industries_2/locale/en/tech.cfg new file mode 100644 index 0000000..4abb5d0 --- /dev/null +++ b/Bio_Industries_2/locale/en/tech.cfg @@ -0,0 +1,19 @@ +[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-fertilizer=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-fertilizer=Using fertilizers you can get much more output from recipes +bi-tech-organic-plastic=Produce plastics using organic materials diff --git a/Bio_Industries_2/locale/ru/bio_industries.cfg b/Bio_Industries_2/locale/ru/bio_industries.cfg new file mode 100644 index 0000000..e69de29 diff --git a/Bio_Industries_2/locale/ru/bio_industries.cfg.bak b/Bio_Industries_2/locale/ru/bio_industries.cfg.bak new file mode 100644 index 0000000..02240c4 --- /dev/null +++ b/Bio_Industries_2/locale/ru/bio_industries.cfg.bak @@ -0,0 +1,107 @@ + +[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 diff --git a/Bio_Industries_2/locale/ru/entity-description.cfg b/Bio_Industries_2/locale/ru/entity-description.cfg new file mode 100644 index 0000000..30013ee --- /dev/null +++ b/Bio_Industries_2/locale/ru/entity-description.cfg @@ -0,0 +1,104 @@ +[entity-description] +## Production +bi-arboretum=Терраформер изменяет местность или растущие деревья в радиусе вокруг строения +bi-bio-farm=Биоферма, превращает саженцы в древесину. Потребляет больше электричества ночью +bi-bio-garden=Биосад собирает воздух и убирает загрязнение. (-35 PU) +bi-bio-greenhouse=Используйте теплицу для роста саженцев +seedling=Молодое растение, идеально для посадки. Вы также можете посадить его в землю и оно вырастет в дерево. Помните, что сначала нужно удобрить землю, чтобы увеличить шанс роста. + +bi-bio-reactor=Использует продвинутые биореакции +bi-cokery=Переработка дерева в уголь или другие виды топлива +bi-stone-crusher=Машина которая измельчает камни + + +## Power +bi-bio-accumulator=Может хранить огромное количество энергии, потому что размер имеет значение... +bi-bio-boiler=Высокоэффективный бойлер +bi-bio-solar-farm=Сохраняет пространство, соединяя ваши солнечный панели в компактный блок. Создает много энергии! +bi-large-substation=Гигантская подстанция +bi-solar-boiler=Бойлер с нагревом от солнечного тепла или электричества (также производит электричество). +bi-solar-mat=Солнечная панель/пол которая может быть использована как дорожное покрытие, генерирует 10kW электричества и позволяет быстро перемещаться (Спасибо Илону Маску!) + + +## Weaponry +bi-bio-cannon=Может стрелять ТОЛЬКО по гнездам! - Дистанция 90 - Пока что без возможности ручного наведения +bi-dart-turret=These turrets are immediately available and protect you from enemy attacks at a minimal cost. Of course, the darts inflict less damage than bullets, but __ENTITY__bi-dart-turret__s have a higher range and can fire at a higher speed than normal __ENTITY__gun-turret__s. + + +## Rail stuff +bi-power-to-rail-pole=Коннектор ваших электрических рельс к электрической сети +bi-rail-power=Рельса которая может проводить электричество. Подключите к электрической сети используя коннектор "Электро-рельсы" +bi-rail-wood-bridge=Деревянные прямые рельсы для мостов. Заметьте, что вы не можете по ним ходить. +bi-rail-wood=Деревянные прямые рельсы +rail-remnants-wood-bridge=Remnants of a wooden bridge +rail-remnants-wood=Remnants of wooden rails + + +## Miscallenous wooden products +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-bigger=__ENTITY__bi-wooden-pole-bigger__s will be automatically healed if you use "Natural Evolution Enemies". +bi-wooden-pole-huge=Электрический столб, который может охватить огромное расстояние - 64 + + +## Compatibility with other mods +bi-stone-crusher-sand=These machines produce __ITEM__stone-crushed__ from __ITEM__stone__ and __ITEM__concrete__ in all forms. They can also refine __ITEM__stone-crushed__ to __ITEM__sand__. + + + + +# 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-arboretum-area=Терраформер изменяет местность или растущие деревья в радиусе вокруг строения +#~ bi-arboretum-hidden-radar=Радар терраформера +#~ bi-bio-cannon-area=Может стрелять ТОЛЬКО по гнездам! - Дистанция 90 - Пока что без возможности ручного наведения +#~ bi-bio-farm-hidden-pole=Кабели биофермы (Скрыто) +#~ bi-bio-farm-light=Гарячие лампы биофермы, так что деревья могут расти ночью (Скрыто) +#~ bi-bio-farm-hidden-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-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!) +#~ New string in 0.17.60/0.18.29! +#~ bi-bio-reactor=Bio-reactors are used to produce and process biomass. +#~ 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). +#~ 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. +#~ 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-musk-mat-hidden-pole=Скрытый силовой столб для пола Илона Маска +#~ bi-musk-mat-hidden-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-solar-boiler-2=Бойлер, который использует солнечную энергию или электричество. Также производит электричество +#~ bi-solar-boiler-hidden-panel=Бойлер, который использует солнечную энергию или электричество. Также производит электричество +#~ 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-straight-rail-power=Рельса которая может проводить электричество. Подключите к электрической сети используя коннектор "Электро-рельсы" +#~ bi-straight-rail-wood-bridge=Деревянные прямые рельсы для мостов. Заметьте, что вы не можете по ним ходить. +#~ bi-straight-rail-wood=Деревянные прямые рельсы +#~ 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. +#~ seedling-2=Молодое растение, идеально для посадки. Вы также можете посадить его в землю и оно вырастет в дерево. Помните, что сначала нужно удобрить землю, чтобы увеличить шанс роста. +#~ seedling-3=Молодое растение, идеально для посадки. Вы также можете посадить его в землю и оно вырастет в дерево. Помните, что сначала нужно удобрить землю, чтобы увеличить шанс роста. diff --git a/Bio_Industries_2/locale/ru/entity-name.cfg b/Bio_Industries_2/locale/ru/entity-name.cfg new file mode 100644 index 0000000..7ef805d --- /dev/null +++ b/Bio_Industries_2/locale/ru/entity-name.cfg @@ -0,0 +1,78 @@ +[entity-name] +## Production +bi-arboretum=Терраформер +bi-bio-farm=Биоферма +bi-bio-garden=Биосад +bi-bio-greenhouse=Теплица +seedling=Саженец + +bi-bio-reactor=Биореактор +bi-cokery=Коксовая печь +bi-stone-crusher=Измельчитель камня + + +## Power +bi-bio-accumulator=Аккумулятор огромной емкости +bi-bio-boiler=Биобойлер +bi-bio-solar-farm=Био Солнечная ферма +bi-large-substation=Гигантская подстанция +bi-solar-boiler=Солнечная электростанция и бойлер - Бойлер +bi-solar-mat=Пол Илона Маска + + +## Weaponry +bi-bio-cannon=Прототип артиллерии +bi-dart-turret=Дротиковая турель + + +## Rail stuff +bi-power-to-rail-pole=Коннектор "Электро-рельсы" +bi-rail-power=Электрические рельсы +bi-rail-wood-bridge=Деревянные прямые рельсы для мостов +bi-rail-wood=Деревянные прямые рельсы +rail-remnants-wood-bridge=Remnants of a wooden rail bridge +rail-remnants-wood=Remnants of wooden rails + + +## Miscallenous wooden products +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-bigger=Bigger wooden pole +bi-wooden-pole-huge=Гигантский электрический столб +wooden-chest=Деревянный ящик + + +#~ bi-arboretum-area=Терраформер +#~ bi-arboretum-hidden-radar=Радар терраформер +#~ bi-bio-cannon-area=Прототип артиллерии +#~ bi-bio-farm-hidden-pole=Кабели биофермы +#~ bi-bio-farm-light=Горячие лампы биофермы +#~ bi-bio-farm-hidden-panel=Солнечная энергия биофермы +#~ bi-bio-garden-light=Свет биосада +#~ 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=Магазин с дротиками +#~ These strings seem to be obsolete! +#~ bi-ground-steam=Природный пар +#~ bi-ground-sulfuric-acid=Природная серная кислота +#~ bi-ground-water=Вода +#~ bi-musk-mat-hidden-pole=Скрытый силовой столб для пола Илона Маска +#~ bi-musk-mat-hidden-panel=Пол Илона Маска +#~ bi-solar-boiler-hidden-panel=Солнечная электростанция и бойлер - Панель +#~ bi-straight-rail-power=Электрические рельсы +#~ bi-straight-rail-wood-bridge=Деревянные прямые рельсы для мостов +#~ bi-straight-rail-wood=Деревянные прямые рельсы +#~ bi-rail-power=Электрические рельсы +#~ bi-straight-rail-wood-bridge=Деревянные прямые рельсы для мостов +#~ bi-straight-rail-wood=Деревянные прямые рельсы +#~ seedling-2=Саженец +#~ seedling-3=Саженец diff --git a/Bio_Industries_2/locale/ru/item-description.cfg b/Bio_Industries_2/locale/ru/item-description.cfg new file mode 100644 index 0000000..7296c43 --- /dev/null +++ b/Bio_Industries_2/locale/ru/item-description.cfg @@ -0,0 +1,95 @@ +[BI-item-description] +# __ITEM__fertilizer__ should be replaced with __BI-ITEM__fertilizer__, but we can't refer to it, +# so we hard-code its content here. +#~ fertilizer=__ITEM__fertilizer__ lets stuff grow faster and is also used to produce Algae biomass. +fertilizer=Common fertilizer lets stuff grow faster and is also used to produce Algae biomass. + + +[item-description] +## Production +bi-adv-fertilizer=Улучшенное Удобрение для ещё более быстрого выращивания, либо изменения качества поверхности +fertilizer=Удобрения нужны для быстрого выращивания растений и изменения качества почвы на более плодородную + +bi-purified-air=Чистый воздух, загрязнение удаляется! + +bi-arboretum-r1=Сажает деревья или изменяет местность в радиусе вокруг строения +bi-arboretum-r2=Изменяет местность в радиусе вокруг строения - Базовое +bi-arboretum-r3=Изменяет местность в радиусе вокруг строения - Продвинутое +bi-arboretum-r4=Изменяет местность и сажает деревья в радиусе вокруг строения - Базовое +bi-arboretum-r5=Изменяет местность и сажает деревья в радиусе вокруг строения - Продвинутое + +bi-seed-bomb-advanced=Засаживает деревьями большую территорию, с продвинутым удобрением с помощью семенной бомбы! +bi-seed-bomb-basic=Засаживает деревьями большую территорию с помощью семенной бомбы! +bi-seed-bomb-standard=Засаживает деревьями большую территорию, с удобрением с помощью семенной бомбы! + +bi-seed=Семена, чтобы выращивать из них саженцы + + +## Weaponry +bi-bio-cannon-basic-ammo=Ракетная мощь, низкий физический урон +bi-bio-cannon-biological-ammo=Ракетная мощь, высокий биологический урон +bi-bio-cannon-poison-ammo=Ракетная мощь, средний урон ядом +bi-bio-cannon-proto-ammo=Низкий урон, большая часть взрывчатки используется для придания движения + +bi-dart-magazine-basic=Базовый дротиковый снаряд +bi-dart-magazine-enhanced=Продвинутый дротиковый снаряд +bi-dart-magazine-poison=Малый урон ядом +bi-dart-magazine-standard=Стандартные дротиковые снаряды +bi-dart-rifle=This cheap weapon uses easily producible ammo and is good for fending off weaker enemies. + + +## Resources +bi-ash=Даже пепел пойдёт в дело! +bi-cellulose=__ITEM__battery__, __ITEM__plastic-bar__, Sulfuric acid — all of these can be made with __ITEM__bi-cellulose__! +bi-woodpulp=Можно сжигать или переработать в золу или уголь +coal=You will need it! +pellet-coke=Коксовый уголь это отличное топливо для поездов. +resin=Смола +solid-fuel=__ITEM__solid-fuel__ provides less energy than __ITEM__wood-bricks__, but also burns with less pollution. Additionally, it will make your vehicles drive and accelerate faster. +stone-crushed=Камень измельченный в щебень +wood-bricks=Хорошо обработанный источник топлива с низкими выбросами +wood-charcoal=Provides more energy than __ITEM__coal__ while emitting far less pollution. Unfortunately, it's not as versatilely usable, so you will still need __ITEM__coal__! +wood=Base your energy production on this renewable resource!\nPlease note: There's a lot more you can use it for than just burning it! + + +## Compatibility with other mods +sand=__ITEM__sand__ + + + +#~ bi-arboretum=Терраформер, позволяющий изменять поверхность и сажать вокруг себя деревья +#~ bi-arboretum-area=Терраформер, позволяющий изменять поверхность и сажать вокруг себя деревья +#~ bi-stone-crusher=Завод для перемалывания камня в Измельчённый камень + +#~ bi-Arboretum-Area=Терраформер изменяет местность или растущие деревья в радиусе вокруг строения +#~ bi-Arboretum=Терраформер изменяет местность или растущие деревья в радиусе вокруг строения +#~ bi-bio-accumulator=Может хранить огромное количество энергии, потому что размер имеет значение... +#~ bi-bio-boiler=Высокоэффективный бойлер +#~ bi-bio-cannon-area=Может стрелять ТОЛЬКО по гнездам! - Дистанция 90 - Пока что без возможности ручного наведения +#~ bi-bio-cannon=Может стрелять ТОЛЬКО по гнездам! - Дистанция 90 - Пока что без возможности ручного наведения +#~ bi-bio-farm=Теплица с мощным искусственным освещением для выращивания деревьев из саженцев (сырье-древесина) +#~ bi-bio-solar-farm=Сохраняет пространство, соединяя ваши солнечный панели в компактный блок. Создает много энергии! +#~ Obsolete? +#~ bi-burner-pump=Топливный насос для выкачки воды из-под земли +#~ bi-ground-water=Вода +#~ bi-large-substation=Гигантская подстанция +#~ bi-musk-mat-hidden-pole=Скрытый силовой столб для пола Илона Маска +#~ bi-musk-mat-hidden-panel=Энергия от пола Илона Маска +#~ bi-power-to-rail-pole=Коннектор ваших электрических рельс к электрической сети +#~ bi-rail-power=Рельса которая может проводить электричество. Подключите к электрической сети используя коннектор "Электро-рельсы" +#~ bi-rail-wood-bridge=Деревянные рельсы для создания мостов. Заметьте, что вы не можете по ней ходить. +#~ bi-rail-wood=Деревянные рельсы +#~ bi-solar-boiler-hidden-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 +#~ seedling=Молодое растение, идеально для посадки. Вы также можете посадить его в землю и оно вырастет в дерево. Помните, что сначала её нужно удобрить, чтобы увеличить шанс роста. +#~ Obsolete? This is only used in a compatibility recipe for bi-slag-slurry if angelsrefining is active! +#~ water-saline=Солёная вода diff --git a/Bio_Industries_2/locale/ru/item-name.cfg b/Bio_Industries_2/locale/ru/item-name.cfg new file mode 100644 index 0000000..63c4a9a --- /dev/null +++ b/Bio_Industries_2/locale/ru/item-name.cfg @@ -0,0 +1,104 @@ +[BI-item-name] +fertilizer=Common fertilizer + +[item-name] +## Production + +bi-adv-fertilizer=Продвинутое удобрение +fertilizer=Удобрение + +bi-purified-air=Очиститель воздуха + +bi-arboretum-r1=Посаженные деревья +bi-arboretum-r2=Изменение территории - Базовое +bi-arboretum-r3=Изменение территории - Продвинутое +bi-arboretum-r4=Изменение территории и посаженых деревьев - Базовое +bi-arboretum-r5=Изменение территории и посаженых деревьев - Продвинутое + +bi-seed-bomb-advanced=Продвинутая семенная бомба +bi-seed-bomb-basic=Базовая семенная бомба +bi-seed-bomb-standard=Стандартная семенная бомба +bi-seed=Семена + + +# Only __ENTITY__x__ and __ITEM__x__ can be used, so let's pretend here that these fluids are items! +bi-biomass=Biomasse +liquid-air=Flüssigluft +nitrogen=Nitrogen + +## Weaponry +bi-bio-cannon-basic-ammo=Прототип артиллерии - ракетный боеприпас +bi-bio-cannon-biological-ammo=Прототип артиллерии - биологический боеприпас +bi-bio-cannon-poison-ammo=Прототип артиллерии - ядовитый боеприпас +bi-bio-cannon-proto-ammo=Прототип артиллерии - базовый боеприпас + +bi-dart-magazine-basic=Базовый дротиковый снаряд +bi-dart-magazine-enhanced=Продвинутый дротиковый снаряд +bi-dart-magazine-poison=Ядовитые дротиковые снаряды +bi-dart-magazine-standard=Стандартные дротиковые боеприпасы +bi-dart-rifle=Дротиковая винтовка + + +## Resources +bi-ash=Зола +bi-cellulose=Целлюлоза +bi-woodpulp=Древесные опилки +pellet-coke=Коксовый уголь +resin=Смола +--stone-crushed=Измельчитель камня +stone-crushed=Щебень +wood-bricks=Деревянные топливные брикеты +wood-charcoal=Древесный уголь + + +## Compatibility with other mods +sand=Sand +slag=Slag +## Industrial Revolution +gravel=Гравий + + + +#~ bi-bio-reactor=Биореактор +#~ bi-solar-boiler=Солнечная электростанция и бойлер + +#~ bi-arboretum-area=Терраформер +#~ bi-arboretum=Терраформер +#~ bi-bio-accumulator=Аккумулятор огромной емкости +#~ bi-bio-boiler=Биобойлер +#~ bi-bio-cannon=Прототип артиллерии +#~ bi-bio-farm=Биоферма +#~ bi-bio-solar-farm=Био Солнечная ферма +#~ bi-biolab=Биолаборатория +#~ bi-burner-pump=Топливная качалка +#~ bi-cokery=Коксовая печь +#~ bi-dart-turret=Дротиковая турель +#~ bi-ground-water=Вода +#~ bi-large-substation=Гигантская подстанция +#~ Obsolete? +#~ bi-medicine=Медицина +#~ Do we need localizations for hidden entities? +#~ bi-musk-mat-hidden-pole=Скрытый силовой столб для пола Илона Маска +#~ bi-musk-mat-hidden-panel=Пол Илона Маска +#~ Obsolete +#~ bi-nutrients=Питательный раствор +#~ bi-power-to-rail-pole=Коннектор "Электро-рельсы" +#~ bi-rail-power=Электрические рельсы +#~ bi-rail-wood-bridge=Деревянные рельсы для мостов +#~ bi-rail-wood=Деревянные рельсы +#~ bi-solar-boiler-2=Солнечная электростанция и бойлер - бойлер +#~ bi-solar-boiler-hidden-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=Гигантский электрический столб + +#~ seedling=Сажанец +#~ Obsolete? +#~ water-saline=Солёная вода diff --git a/Bio_Industries_2/locale/ru/locale.cfg b/Bio_Industries_2/locale/ru/locale.cfg new file mode 100644 index 0000000..e69de29 diff --git a/Bio_Industries_2/locale/ru/locale.cfg.bak b/Bio_Industries_2/locale/ru/locale.cfg.bak new file mode 100644 index 0000000..42f95b7 --- /dev/null +++ b/Bio_Industries_2/locale/ru/locale.cfg.bak @@ -0,0 +1,508 @@ +[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__ diff --git a/Bio_Industries_2/locale/ru/misc.cfg b/Bio_Industries_2/locale/ru/misc.cfg new file mode 100644 index 0000000..63b12a6 --- /dev/null +++ b/Bio_Industries_2/locale/ru/misc.cfg @@ -0,0 +1,49 @@ +[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=Солёная вода + +# Added for 0.18.32/1.1. +bi-fertilizer-fluid=Liquid __ITEM__fertilizer__ +bi-adv-fertilizer-fluid=Liquid __ITEM__bi-adv-fertilizer__ + +# Added for 0.18.32/1.1. +[fluid-description] +bi-fertilizer-fluid=Liquid __ITEM__fertilizer__ makes greenwashing easy. +bi-adv-fertilizer-fluid=Liquid __ITEM__bi-adv-fertilizer__ -- just the thing you'll need if you really want to green-wash your factory! + +[tile-name] +bi-solar-mat=Солнечный пол +bi-wood-floor=Деревянный пол + +[item-group-name] +#~ Bio_Turret_Ammo=Био-Боеприпасы +bio-industries=Био-Индустрия + +[ammo-category-name] +Bio_Cannon_Ammo=Bio cannon ammo +Bio_Turret_Ammo=Bio turret ammo + +[damage-type-name] +Biological=Биологический +bob-pierce=Бронебойный + +[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__ +bi-dart-turret-damage-bonus=__ENTITY__bi-dart-turret__ damage bonus: +__1__ + +#~ [autoplace-control-names] +#~ bi-ground-water=__ENTITY__bi-ground-water__ + +[bi-misc] +growing-tree=Растущее дерево +growing-tree-desc=Если подождать, из этого саженца вырастет большое дерево +young-tree=Молодое дерево +young-tree-desc=Это дерево ещё молодое, из него выйдет не так много древесины. Лучше подождать, пока оно полностью вырастет, прежде, чем рубить его! diff --git a/Bio_Industries_2/locale/ru/mod.cfg b/Bio_Industries_2/locale/ru/mod.cfg new file mode 100644 index 0000000..84dec9f --- /dev/null +++ b/Bio_Industries_2/locale/ru/mod.cfg @@ -0,0 +1,43 @@ +[mod-setting-name] +BI_Bio_Cannon=Включить: Прототип артиллерии +BI_Bio_Fuel=Включить: Производство биотоплива +# Added for 0.18.32/1.1. +BI_Easy_Bio_Gardens=Enable: Easy Bio gardens +BI_Enable_gvv_support=Compatibility: Add support for GVV +BI_Game_Tweaks_Bot=Твики игры: Дроны +BI_Game_Tweaks_Disassemble=Твики игры: Разборка элементов +BI_Game_Tweaks_Emissions_Multiplier=Твики игры: Множители выбросов топлива +BI_Game_Tweaks_Player=Твики игры: Игрок +BI_Game_Tweaks_Production_Science=Game tweaks: Alternative recipe for __ITEM__production-science-pack__ +BI_Game_Tweaks_Recipe=Твики игры: Рецепт +BI_Game_Tweaks_Small_Tree_Collisionbox=Твики игры: Маленькая область столкновений у деревьев +BI_Game_Tweaks_Stack_Size=Твики игры: Размер стака +BI_Game_Tweaks_Tree=Твики игры: Добыча с деревьев +# 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\n(Default: on) +BI_Solar_Additions=Включить: Био дополнения + + + +[mod-setting-description] +BI_Bio_Cannon=Прототип артиллерии очень мощный, но стреляет только по гнездам +# Changed BI_Bio_Fuel for 0.18.29 +#~ BI_Bio_Fuel=Enables the production of oil products on the basis of Algae biomass +BI_Bio_Fuel=Включает производство нефтяной продукции используя биотопливо +# Added for 0.18.32/1.1.2 +BI_Easy_Bio_Gardens=Bio gardens consume ready-made fluid fertilizer, so just one pipeline is enough to supply all ingredients. However, this requires 50% more fertilizer than combining solid fertilizer and water on site.\nBio gardens will transmit electricity to adjacent Bio gardens. Arrange them on a grid, with no more than 1 tile between 2 Bio gardens, and they will be magically connected. :-)\n(Default: off) +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) +BI_Game_Tweaks_Bot=Дроны не могут быть подобраны или получать повреждения от горения +BI_Game_Tweaks_Disassemble=Добавить некоторые рецепты для разборки. Вы получите около 50% ресурсов обратно +BI_Game_Tweaks_Emissions_Multiplier=Боб начинал это. Основная идея заключается в том, что необработанное топливо производит больше загрязнения, чем более продвинутые виды топлива. Таким образом уголь производил 200% загрязнения, в то время как твердое топливо - всего 85%. Пожалуйста, смотрите файл "Fuel Values.xlsx" в папке с модом для большей информации. +BI_Game_Tweaks_Player=Дистанция взаимодействия 6 => 20, подбор количества предметов 1 => 4, дистанция добычи ресурсов 2.7 => 4, дистанция подбора предметов 2 => 5, скорость бега 0.15 => 0.25 +BI_Game_Tweaks_Production_Science=If this is enabled, an alternative recipe for Production science packs will be available.\n(Default: on) +BI_Game_Tweaks_Recipe=Изменения в рецептах:\nБетон (Железная руда => Железный прут)\nКаменная стена (+ Железный прут)\nЖелезная дорога (Камень => Измельченный камень) +BI_Game_Tweaks_Small_Tree_Collisionbox=ЭКСПЕРИМЕНТАЛЬНО: настройка включена по умолчани. Если отключить, вокруг деревья получат большую область столкновений из немодифицированной игры. Такие деревья будут создавать больше препятствий для игроков, транспорта и кусак. Могут возникнуть побочные эффекты! +BI_Game_Tweaks_Stack_Size=Влияет на размеры стаков Древесины, Камня, Щебня, Бетона и Шлака +BI_Game_Tweaks_Tree=Твики игры - при рубке деревья случайно дают от 1 до 6 древесины. В ваниле = 4 +# 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! +BI_Solar_Additions=Включает такие предметы как Солнечная ферма, Солнечная электростанция, Биоаккумулятор и Гигантскую подстанцию. diff --git a/Bio_Industries_2/locale/ru/recipe-description.cfg b/Bio_Industries_2/locale/ru/recipe-description.cfg new file mode 100644 index 0000000..041641c --- /dev/null +++ b/Bio_Industries_2/locale/ru/recipe-description.cfg @@ -0,0 +1,148 @@ +[recipe-description] +## Production +bi-adv-fertilizer-1=Лучше, чем обычное Удобрение +bi-adv-fertilizer-2=Лучше, чем обычное Удобрение +bi-fertilizer-1=Позволяет растениям расти быстрее +bi-fertilizer-2=Позволяет растениям расти быстрее (гидроксид натрия) +# Added for 0.18.32/1.1.2 +bi-adv-fertilizer-fluid=__ITEM__bi-adv-fertilizer__ dissolved in water +bi-fertilizer-fluid=__ITEM__fertilizer__ dissolved in water + +bi-arboretum-r1=Использование Терраформера - Сажает деревья в радиусе вокруг себя (Посадка никогда не прекращается, деревья перевысаживаются посекторно) +bi-arboretum-r2=Использование Терраформера - Изменяет местность в радиусе вокруг себя - Базовое +bi-arboretum-r3=Использование Терраформера - Изменяет местность в радиусе вокруг себя - Продвинутое +bi-arboretum-r4=Использование Терраформера - Изменяет местность и сажает деревья в радиусе вокруг себя - Базовое +bi-arboretum-r5=Использование Терраформера - Изменяет местность и сажает деревья в радиусе вокруг себя - Продвинутое + +bi-basic-gas-processing=Inefficient gas extraction + +bi-battery=If you really think about it, this __ITEM__battery__ is made from __ITEM__wood__! +bi-rail-wood-to-concrete=Улучшить Деревянные рельсы до обычных Рельсов + +bi-biomass-1=Начните производство Биомассы из водорослей, применив Удобрение! +bi-biomass-2=Верните в производственный цикл часть произведённой Биомассы из водорослей, чтобы получить ещё больше её!\nПримечание: выход продукта будет меньше и дольше, чем даже в базовом рецепте, но вы сэкономите на удобрениях. +bi-biomass-3=Верните в производственный цикл часть произведённой Биомассы из водорослей и добавьте Пепел, чтобы получить ещё больше её!\nПримечание: выход продукта будет существенно больше и быстрее, чем по другим рецептам. + +bi-biomass-conversion-1=Водоросли-Биомасса в легкую нефть +bi-biomass-conversion-2=Водоросли-Биомасса в нефть +bi-biomass-conversion-3=Водоросли-Биомасса в смазку +bi-biomass-conversion-4=Превращение биотоплива 4 + +bi-seed-1=Семя, которое вырастает в саженец +bi-seed-2=Семя, которое вырастает в саженец +bi-seed-3=Семя, которое вырастает в саженец +bi-seed-4=Семя, которое вырастает в саженец + +bi-seedling-1=Производит 40 саженцев +bi-seedling-2=Производит 60 саженцев +bi-seedling-3=Производит 90 саженцев +bi-seedling-4=Производит 160 саженцев + +bi-seed-bomb-advanced=Засаживает деревьями большую территорию, с продвинутым удобрением с помощью семенной бомбы! +bi-seed-bomb-basic=Засаживает деревьями большую территорию с помощью семенной бомбы! +bi-seed-bomb-standard=Засаживает деревьями большую территорию, с удобрением с помощью семенной бомбы! + +bi-logs-1=Выращивайте лес по-старинке, поливая Саженцы! +bi-logs-2=Улучшите производство древесины, используя Пепел как дешёвое удобрение! +bi-logs-3=Выращивайте ещё больше леса, используя полноценное Удобрение вместо Пепла! +bi-logs-4=Применение Продвинутого удобрения даст вам бешеное количество Древесины и Древесных опилок! + + +## Resources +bi-ash-1=Сжигайте Древесину, получайте Пепел! +bi-ash-2=Сжигайте много Древесных опилков, получайте много Пепла! + +bi-cellulose-1=Just combine __ITEM__bi-woodpulp__ and Sulfuric acid and you'll get __ITEM__bi-cellulose__. +bi-cellulose-2=Heat things up a bit to quadruple your __ITEM__bi-cellulose__ production! + +bi-charcoal-1=Сжигайте Древесные опилки чтобы получать Древесный уголь +bi-charcoal-2=Сжигайте Древесину чтобы получать Древесный уголь +bi-coal-1=Переработайте Древесный уголь на Уголь +bi-coal-2=Продвинутая обработка Древесного угля позволяет получать больше Угля! +bi-coke-coal=Переработайте Уголь в Коксовый уголь +bi-pellet-coke=Переработайте Твёрдое топливо в Коксовый уголь +bi-pellet-coke-2=Turn carbon into __ITEM__pellet-coke__ +bi-solid-fuel=Переработка Деревянных топливных брикетов в Твёрдое топливо - отличный способ избавиться от избытка Древесных опилков! +bi-wood-fuel-brick=Прессуйте Древесные опилки для удобства в обращении! + +bi-crushed-stone-1=Получайте Измельченный камень путём измельчения камня в Измельчителе камня :-) +#~ bi-crushed-stone-2=Постигнув продвинутую переработку материалов, вы можете получать Измельчённый камень из Бетона! +#~ bi-crushed-stone-3=Постигнув продвинутую переработку материалов, вы можете получать Измельчённый камень из Бетона "Опасность"! +#~ bi-crushed-stone-4=Вы получите в два раза больше Измельчённого камня из Железобетона, чем из Бетона, но и займёт это в два раза дольше! +#~ bi-crushed-stone-5=Вы получите в два раза больше Измельчённого камня из Железобетона "Опасность", чем из Бетона "Опасность", но и займёт это в два раза дольше! +bi-crushed-stone=Excess __ITEM__concrete__ in all variations can be recycled to __ITEM__stone-crushed__. +bi-stone-brick=Каменный блок из измельченного камня и золы + +bi-purified-air-1=If you provide enough water and good, old __ITEM__fertilizer__, your __ENTITY__bi-bio-garden__ will clean the air for a while. +# Added for 0.18.32/1.1.2 +bi-purified-air-1-fluid=Supply your __ENTITY__bi-bio-garden__ with Liquid __ITEM__fertilizer__ and it will clean the air for a while. +bi-purified-air-2=Use __ITEM__bi-adv-fertilizer__ and your __ENTITY__bi-bio-garden__ will clean the air for much longer! This way, you'll save a lot of water. +# Added for 0.18.32/1.1.2 +bi-purified-air-2-fluid=Just hook up your __ENTITY__bi-bio-garden__ to some Liquid __ITEM__bi-adv-fertilizer__ and it will clean the air for a long time! + +bi-resin-pulp=Переработайте Древесные опилки на Смолу +bi-resin-wood=Переработайте Древесину на Смолу +bi-wood-from-pulp=Получите обратно Древесину, прессуя Древесные опилки со Смолой +bi-woodpulp=Переработать Древесину в Древесные опилки + +bi-acid=Используйте Биомассу из водорослей и Целлюлозу, чтобы производить Серную кислоту! +bi-liquid-air=Liquid air is needed to make Nitrogen and Algae biomass. +bi-nitrogen=Nitrogen is needed to make __ITEM__fertilizer__. +#~ bi-sulfur=Bio-__ITEM__sulfur__ — so natural, so sulfuric! +bi-sulfur=Био-сера +bi-plastic-1=__ITEM__plastic-bar__ made from __ITEM__wood__ +bi-plastic-2=__ITEM__plastic-bar__ made from __ITEM__bi-cellulose__ + + +## Disassemble +bi-disassemble-recipes=Some of the raw material can be reused. + + +## Compatibility with other mods +## angelsrefining +bi-mineralized-sulfuric-waste=Получение воды и серных отходов из измельченного камня, древесного угля и чистой воды +bi-slag-slurry=Сжиженный шлак из золы, измельченного камня и соленой воды +## angelspetrochem +bi-biomass-conversion-2-methane=Use Algae biomass to produce Methane gas! +bi-biomass-conversion-4-yellow-waste=Use Algae biomass to produce Crude oil and Sulfuric waste water! +bi-sulfur-angels=Bio-__ITEM__sulfur__ — so natural, so sulfuric! +## angelsrefining, BioTech, Krastorio/Krastorio2 +bi-sand=__ENTITY__bi-stone-crusher__ can make __ITEM__sand__ from __ITEM__stone-crushed__. +## Industrial Revolution +bi-crushed-stone-1_IR=Make __ITEM__gravel__ from __ITEM__stone__ you've found or mined. +bi-crushed-stone_IR=Excess __ITEM__concrete__ in all variations can be recycled to __ITEM__gravel__. + + + +#~ # 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-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-dart-magazine-basic=Базовый дротиковый снаряд +#~ bi-dart-magazine-enhanced=Магазин с продвинутыми дротиками +#~ bi-dart-magazine-poison=Магазин с ядовитыми дротиками +#~ bi-dart-magazine-standard=Магазин с дротиками +#~ bi-production-science-pack=Используйте большое количество Деревянных рельсов для производства Производственных исследовательских пакетов! +#~ bi-rail-power=Рельс, который может проводить электричество. Подключите к электрической сети используя коннектор "Электро-рельсы" +#~ bi-rail-wood=Дешёвые рельсы, сделанные с применением дерева +#~ bi-solar-boiler=Бойлер с нагревом от солнечного тепла или электричества (также производит электричество). +#~ bi-solar-boiler-hidden-panel=Бойлер с нагревом от солнечного тепла или электричества (также производит электричество). +#~ bi-stone-crusher=Устройство для дробления Камня в Измельчённый камень +#~ bi-wooden-pole-huge=Огромный деревянный столб, позволяющий прокидывать Медный кабель или Сигнальный провод на протяжённые расстояния (64 клетки) + +#~ bi-arboretum=Сажает деревья или изменяет местность в радиусе вокруг строения +#~ bi-basic-pumpjack-disassemble=Разобрать топливную качалку и получить немного материалов +#~ bi-burner-inserter-disassemble=С небольшой потерей материалов +#~ bi-burner-mining-drill-disassemble=С небольшой потерей материалов +#~ bi-bio-greenhouse=Теплица производит семена и саженцы +#~ bi-long-handed-inserter-disassemble=С небольшой потерей материалов +#~ bi-power-to-rail-pole=Коннектор ваших электрических рельс к электрической сети +#~ bi-rail-wood-bridge=Рельсы, которые могут пересекать воду +#~ bi-seedling=Молодое дерево, идеально для посадки. (Вы также можете посадить его в землю и оно вырастет в дерево. Помните, что сначала нужно удобрить землю, чтобы увеличить шанс роста.) +#~ bi-steel-furnace-disassemble=С небольшой потерей материалов +#~ bi-stone-furnace-disassemble=С небольшой потерей материалов diff --git a/Bio_Industries_2/locale/ru/recipe-name.cfg b/Bio_Industries_2/locale/ru/recipe-name.cfg new file mode 100644 index 0000000..6e4b26f --- /dev/null +++ b/Bio_Industries_2/locale/ru/recipe-name.cfg @@ -0,0 +1,175 @@ +[recipe-name] +## Production +bi-adv-fertilizer-1=Продвинутое удобрение +bi-adv-fertilizer-2=Продвинутое удобрение +# Added for 0.18.32/1.1.2 +bi-adv-fertilizer-fluid=Liquid __ITEM__bi-adv-fertilizer__ +bi-fertilizer-1=Удобрение +bi-fertilizer-2=Удобрение +# Added for 0.18.32/1.1.2 +bi-fertilizer-fluid=Liquid __ITEM__fertilizer__ + +bi-arboretum-r1=Посаженные деревья +bi-arboretum-r2=Изменение территории - Базовое +bi-arboretum-r3=Изменение территории - Продвинутое +bi-arboretum-r4=Изменение территории и посаженых деревьев - Базовое +bi-arboretum-r5=Изменение территории и посаженых деревьев - Продвинутое + +bi-ash-1=Зола +bi-ash-2=Зола + +bi-basic-gas-processing=Basic gas processing + +bi-battery=Биоаккумулятор +bi-rail-wood-to-concrete=Улучшенные деревянные рельсы + +#~ bi-biomass-1=Produce Algae biomass using __ITEM__fertilizer__ +#~ bi-biomass-2=Replicate Algae biomass +#~ bi-biomass-3=Replicate Algae biomass using __ITEM__bi-ash__ +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-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-logs-1=Базовое производство дерева +bi-logs-2=Производство дерева Mk2 +bi-logs-3=Продвинутое производство дерева +bi-logs-4=Супер производство дерева + + +## Resources +bi-cellulose-1=Целлюлоза +bi-cellulose-2=Целлюлоза + +bi-charcoal-1=Древесный уголь +bi-charcoal-2=Древесный уголь +bi-coal-1=Базовое производство угля +bi-coal-2=Продвинутое производство угля +bi-coke-coal=Коксовый уголь +bi-pellet-coke=Коксовые паллеты из твердого топлива +bi-pellet-coke-2=Угольные паллеты из Углерода +bi-solid-fuel=Твердое топливо из деревянных топливных брикетов +bi-wood-fuel-brick=Деревянные брикеты + +#bi-crushed-stone-1=Измельченный камень +#bi-crushed-stone-2=Измельченный камень +#bi-crushed-stone-3=Измельченный камень +#bi-crushed-stone-4=Измельчённый камень из Железобетона +#bi-crushed-stone-5=Измельчённый камень из Железобетона "Опасность" +bi-crushed-stone-1=__ITEM__stone-crushed__ из __ITEM__stone__ +bi-crushed-stone-2=__ITEM__stone-crushed__ из __ITEM__concrete__ +bi-crushed-stone-3=__ITEM__stone-crushed__ из __ITEM__hazard-concrete__ +bi-crushed-stone-4=__ITEM__stone-crushed__ из __ITEM__refined-concrete__ +bi-crushed-stone-5=__ITEM__stone-crushed__ из __ITEM__refined-hazard-concrete__ +bi-stone-brick=Био-Каменный блок + +bi-purified-air-1=Очистка воздуха +bi-purified-air-2=Очистка воздуха Mk2 + +bi-resin-pulp=Смола +bi-resin-wood=Смола +bi-woodpulp=Древесные опилки +bi-wood-from-pulp=Дерево из Древесных опилок + +bi-acid=Био-кислота +bi-liquid-air=Сжиженный воздух +bi-nitrogen=Азот +bi-sulfur=Био-сера +bi-plastic-1=Биопластик 1 +bi-plastic-2=Биопластик 2 + + +## Disassemble +bi-burner-inserter-disassemble=Разборка твердотопливного манипулятора +bi-burner-mining-drill-disassemble=Разборка твердотопливного бура +bi-long-handed-inserter-disassemble=Разборка длинного манипулятора +bi-steel-furnace-disassemble=Разборка стальной печи +bi-stone-furnace-disassemble=Разборка каменной печи + + +## Compatibility with other mods +## angelsrefining +bi-mineralized-sulfuric-waste=Получение воды и серных отходов +bi-slag-slurry=Сжиженный шлак +## angelspetrochem +bi-biomass-conversion-2-methane=Bio fuel conversion 2: Methane gas +bi-biomass-conversion-4-yellow-waste=Use Algae biomass to produce Crude oil and Sulfuric waste water! +bi-sulfur-angels=Био-сера +## angelsrefining, BioTech, Krastorio/Krastorio2 +bi-sand=__ITEM__sand__ from __ITEM__stone-crushed__ +## bobelectronics +bi-press-wood=Прессование древесины +## Industrial Revolution +bi-crushed-stone-1_IR=__ITEM__gravel__ из __ITEM__stone__ +bi-crushed-stone-2_IR=__ITEM__gravel__ из __ITEM__concrete__ +bi-crushed-stone-3_IR=__ITEM__gravel__ из __ITEM__hazard-concrete__ +bi-crushed-stone-4_IR=__ITEM__gravel__ из __ITEM__refined-concrete__ +bi-crushed-stone-5_IR=__ITEM__gravel__ из __ITEM__refined-hazard-concrete__ + + + + +#~ 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-production-science-pack=Производственный научный пакет +# 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-bio-accumulator=Аккумулятор огромной емкости +#~ bi-arboretum=Терраформер +#~ 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-bio-reactor=Биореактор +#~ bi-bio-boiler=Биобойлер +#~ bi-cokery=Коксовая печь +#~ bi-wooden-chest-giga=Огромный деревянный ящик +#~ bi-bio-greenhouse=Теплица +#~ bi-large-substation=Гигантская подстанция +#~ bi-wooden-chest-huge=Большой деревянный ящик +#~ bi-wooden-pole-huge=Гигантский электрический столб +#~ bi-wooden-chest-large=Средний деревянный ящик +#~ bi-wood-pipe-to-ground=Подземная деревянная труба +#~ bi-power-to-rail-pole=Рельса с разъемом питания +#~ bi-production-science-pack=Production science pack +#~ bi-rail-power=Электрические рельсы +#~ bi-rail-wood=Деревянные рельсы +#~ bi-rail-wood-bridge=Деревянные рельсы для мостов +#~ bi-seedling=Саженец +#~ bi-solar-boiler=Солнечная электростанция и бойлер +#~ bi-solar-boiler-hidden-panel=Солнечная электростанция и бойлер +#~ bi-solar-mat=Пол Илона Маска +#~ bi-stone-crusher=Измельченный камень +#~ bi-wood-pipe=Деревянная труба +#~ bi-wooden-fence=Деревянный забор +#~ wooden-chest=Деревянный ящик diff --git a/Bio_Industries_2/locale/ru/tech.cfg b/Bio_Industries_2/locale/ru/tech.cfg new file mode 100644 index 0000000..3db5f66 --- /dev/null +++ b/Bio_Industries_2/locale/ru/tech.cfg @@ -0,0 +1,19 @@ +[technology-name] +bi-tech-advanced-biotechnology=Продвинутая биотехнология +bi-tech-bio-cannon=Прототип артиллерии +bi-tech-bio-farming=Биоферма +bi-tech-coal-processing-1=Переработка угля 1 +bi-tech-coal-processing-2=Переработка угля 2 +bi-tech-coal-processing-3=Переработка угля 3 +bi-tech-fertilizer=Удобрение +bi-tech-organic-plastic=Органический пластик + +[technology-description] +bi-tech-advanced-biotechnology=Открытие более высокоуровневых рецептов +bi-tech-bio-cannon=Прототип технологии артиллерийской башни. - Пока что без возможности ручного наведения +bi-tech-bio-farming=Изучите как выращивать деревья первый шаг к открытию других производств дерева +bi-tech-coal-processing-1=Переработка дерева в уголь +bi-tech-coal-processing-2=Переработка дерева в уголь +bi-tech-coal-processing-3=Переработка дерева в уголь +bi-tech-fertilizer=Используя удобрения, вы сможете получить значительно больше из рецептов +bi-tech-organic-plastic=Производство пластика используя органические материалы diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.17.02.lua b/Bio_Industries_2/migrations/Bio_Industries_0.17.02.lua new file mode 100644 index 0000000..521d026 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.17.02.lua @@ -0,0 +1,20 @@ +--~ local BioInd = require('__Bio_Industries__/common')('Bio_Industries') + +--~ game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies + local recipes = force.recipes + + if game.technology_prototypes["steel-processing"] and + technologies["steel-processing"].researched and + recipes["bi-stone-crusher"] then + + recipes["bi-stone-crusher"].enabled = true + recipes["bi-stone-crusher"].reload() + end + + force.reset_recipes() + force.reset_technologies() +end diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.17.06.lua b/Bio_Industries_2/migrations/Bio_Industries_0.17.06.lua new file mode 100644 index 0000000..5fdf0ab --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.17.06.lua @@ -0,0 +1,20 @@ +--~ local BioInd = require('__Bio_Industries__/common')('Bio_Industries') + +--~ game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies + local recipes = force.recipes + + if game.technology_prototypes["steel-processing"] and + technologies["steel-processing"].researched and + recipes["bi-crushed-stone-1"] then + + recipes["bi-crushed-stone-1"].enabled = true + recipes["bi-crushed-stone-1"].reload() + end + + force.reset_recipes() + force.reset_technologies() +end diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.17.11.lua b/Bio_Industries_2/migrations/Bio_Industries_0.17.11.lua new file mode 100644 index 0000000..f1a5152 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.17.11.lua @@ -0,0 +1,22 @@ +--~ local BioInd = require('__Bio_Industries__/common')('Bio_Industries') + +--~ game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies + local recipes = force.recipes + + + + if game.technology_prototypes["bi-tech-bio-cannon"] and + technologies["bi-tech-bio-cannon"].researched and + recipes["bi-bio-cannon-proto-ammo"] then + + recipes["bi-bio-cannon-proto-ammo"].enabled = true + recipes["bi-bio-cannon-proto-ammo"].reload() + end + + force.reset_recipes() + force.reset_technologies() +end diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.17.13.lua b/Bio_Industries_2/migrations/Bio_Industries_0.17.13.lua new file mode 100644 index 0000000..785aca4 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.17.13.lua @@ -0,0 +1,20 @@ +--~ local BioInd = require('__Bio_Industries__/common')('Bio_Industries') + +--~ game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies + local recipes = force.recipes + + if game.technology_prototypes["electric-energy-accumulators"] and + technologies["electric-energy-accumulators"].researched then + if game.item_prototypes["bi-bio-accumulator"] then + recipes["bi-bio-accumulator"].enabled = true + recipes["bi-bio-accumulator"].reload() + end + end + + force.reset_recipes() + force.reset_technologies() +end diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.17.19.json b/Bio_Industries_2/migrations/Bio_Industries_0.17.19.json new file mode 100644 index 0000000..788b532 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.17.19.json @@ -0,0 +1,7 @@ +{ + "item": + [ + ["bi-charcoal", "wood-charcoal"] + ] +} + diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.17.22.lua b/Bio_Industries_2/migrations/Bio_Industries_0.17.22.lua new file mode 100644 index 0000000..2016439 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.17.22.lua @@ -0,0 +1,38 @@ +--~ local BioInd = require('__Bio_Industries__/common')('Bio_Industries') + +--~ game.reload_script() + +for index, force in pairs(game.forces) do + local technologies = force.technologies + local recipes = force.recipes + + if game.technology_prototypes["bi-tech-coal-processing-1"] then + if game.item_prototypes["wood-bricks"] then + if recipes["bi-wood-fuel-brick"] then + recipes["bi-wood-fuel-brick"].enabled = true + recipes["bi-wood-fuel-brick"].reload() + end + if recipes["bi-solid-fuel"] then + recipes["bi-solid-fuel"].enabled = true + recipes["bi-solid-fuel"].reload() + end + end + end + + if game.technology_prototypes["bi-tech-coal-processing-2"] and + recipes["bi-pellet-coke"] then + + recipes["bi-pellet-coke"].enabled = true + recipes["bi-pellet-coke"].reload() + end + + if game.technology_prototypes["bi-tech-bio-farming"] and + recipes["bi-woodpulp"] then + + recipes["bi-woodpulp"].enabled = true + recipes["bi-woodpulp"].reload() + end + + force.reset_recipes() + force.reset_technologies() +end diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.17.26.lua b/Bio_Industries_2/migrations/Bio_Industries_0.17.26.lua new file mode 100644 index 0000000..29b0a6e --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.17.26.lua @@ -0,0 +1,16 @@ +--~ local BioInd = require('__Bio_Industries__/common')('Bio_Industries') + +--~ game.reload_script() + +for index, force in pairs(game.forces) do + local technologies = force.technologies + local recipes = force.recipes + + if game.technology_prototypes["bi-tech-coal-processing-3"] and recipes["bi-coke-coal"] then + recipes["bi-coke-coal"].enabled = true + recipes["bi-coke-coal"].reload() + end + + force.reset_recipes() + force.reset_technologies() +end diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.17.31.lua b/Bio_Industries_2/migrations/Bio_Industries_0.17.31.lua new file mode 100644 index 0000000..8218566 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.17.31.lua @@ -0,0 +1,16 @@ +--~ local BioInd = require('__Bio_Industries__/common')('Bio_Industries') + +--~ game.reload_script() + +for index, force in pairs(game.forces) do + local technologies = force.technologies + local recipes = force.recipes + + if game.technology_prototypes["bi-tech-bio-farming"] and recipes["bi-wood-from-pulp"] then + recipes["bi-wood-from-pulp"].enabled = true + recipes["bi-wood-from-pulp"].reload() + end + + force.reset_recipes() + force.reset_technologies() +end diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.01.json b/Bio_Industries_2/migrations/Bio_Industries_0.18.01.json new file mode 100644 index 0000000..114e4a1 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.01.json @@ -0,0 +1,143 @@ +{ + "entity": + [ + ["bi-bioreactor", "bi-bio-reactor"], + ["Bio_Cannon_r", "Bio-Cannon-r"], + ["bi-big-wooden-pole", "bi-wooden-pole-big"], + ["bi-huge-wooden-pole", "bi-wooden-pole-huge"], + ["bi-large-wooden-chest", "bi-wooden-chest-large"], + ["bi-huge-wooden-chest", "bi-wooden-chest-huge"], + ["bi-large-wooden-chest", "bi-wooden-chest-large"], + ["bi-giga-wooden-chest", "bi-wooden-chest-giga"], + ["bi-solar-boiler-panel-2", "bi-solar-boiler-panel"], + ["bi-solar-boiler-2", "bi-solar-boiler"] + ], + + "item": + [ + ["bi-bioreactor", "bi-bio-reactor"], + ["bi-basic-dart-magazine", "bi-dart-magazine-basic"], + ["bi-enhanced-dart-magazine", "bi-dart-magazine-enhanced"], + ["bi-standard-dart-magazine", "bi-dart-magazine-standard"], + ["bi-poison-dart-magazine", "bi-dart-magazine-poison"], + ["bi-solar-boiler-2", "bi-solar-boiler"] + ], + + "recipe": + [ + ["bi_recipe_rail_wood", "bi-rail-wood"], + ["bi_recipe_rail_wood_to_concrete", "bi-rail-wood-to-concrete"], + ["bi_recipe_rail_wood_bridge", "bi-rail-wood-bridge"], + ["bi_rail_power", "bi-rail-power"], + ["bi_recipe_power_to_rail_pole", "bi-power-to-rail-pole"], + ["bi_recipe_basic_dart_magazine", "bi-dart-magazine-basic"], + ["bi_recipe_enhanced_dart_magazine", "bi-dart-magazine-enhanced"], + ["bi_recipe_standard_dart_magazine", "bi-dart-magazine-standard"], + ["bi_recipe_poison_dart_magazine", "bi-dart-magazine-poison"], + ["bi_recipe_bi_dart_rifle", "bi-dart-rifle"], + ["bi_recipe_big_wooden_pole", "bi-wooden-pole-big"], + ["bi_recipe_huge_wooden_pole", "bi-wooden-pole-huge"], + ["bi_recipe_bio_cannon", "bi-bio-cannon"], + ["bi_recipe_bio_cannon_basic_ammo", "bi-bio-cannon-basic-ammo"], + ["bi_recipe_bio_cannon_poison_ammo", "bi-bio-cannon-poison-ammo"], + ["bi_recipe_bio_cannon_proto_ammo", "bi-bio-cannon-proto-ammo"], + ["bi_recipe_boiler", "bi-bio-boiler"], + ["bi_recipe_dart_turret", "bi-dart-turret"], + ["bi_recipe_large_wooden_chest", "bi-wooden-chest-large"], + ["bi_recipe_huge_wooden_chest", "bi-wooden-chest-huge"], + ["bi_recipe_giga_wooden_chest", "bi-wooden-chest-giga"], + ["bi_recipe_production_science_pack", "bi-production-science-pack"], + ["bi_recipe_seed_bomb_advanced", "bi-seed-bomb-advanced"], + ["bi_recipe_seed_bomb_basic", "bi-seed-bomb-basic"], + ["bi_recipe_seed_bomb_standard", "bi-seed-bomb-standard"], + ["bi_recipe_wooden_fence", "bi-wooden-fence"], + ["bi_recipe_arboretum_r1", "bi-arboretum-r1"], + ["bi_recipe_arboretum_r2", "bi-arboretum-r2"], + ["bi_recipe_arboretum_r3", "bi-arboretum-r3"], + ["bi_recipe_arboretum_r4", "bi-arboretum-r4"], + ["bi_recipe_arboretum_r5", "bi-arboretum-r5"], + ["bi_recipe_arboretum", "bi-arboretum"], + ["bi_recipe_cellulose_1", "bi-cellulose-1"], + ["bi_recipe_cellulose_2", "bi-cellulose-2"], + ["bi_recipe_acid", "bi-acid"], + ["bi_recipe_accumulator", "bi-bio-accumulator"], + ["bi_recipe_adv_fertiliser_1", "bi-adv-fertiliser-1"], + ["bi_recipe_adv_fertiliser_2", "bi-adv-fertiliser-2"], + ["bi_recipe_ash_1", "bi-ash-1"], + ["bi_recipe_ash_2", "bi-ash-2"], + ["bi_recipe_battery", "bi-battery"], + ["bi_recipe_bio_farm", "bi-bio-farm"], + ["bi_recipe_bio_garden", "bi-bio-garden"], + ["bi_recipe_bio_solar_farm", "bi-bio-solar-farm"], + ["bi_recipe_biomass_1", "bi-biomass-1"], + ["bi_recipe_biomass_2", "bi-biomass-2"], + ["bi_recipe_biomass_3", "bi-biomass-3"], + ["bi_recipe_biomass_conversion_1", "bi-biomass-conversion-1"], + ["bi_recipe_biomass_conversion_2", "bi-biomass-conversion-2"], + ["bi_recipe_biomass_conversion_3", "bi-biomass-conversion-3"], + ["bi_recipe_biomass_conversion_4", "bi-biomass-conversion-4"], + ["bi_recipe_burner_inserter_disassemble", "bi-burner-inserter-disassemble"], + ["bi_recipe_burner_mining_drill_disassemble", "bi-burner-mining-drill-disassemble"], + ["bi_recipe_long_handed_inserter_disassemble", "bi-long-handed-inserter-disassemble"], + ["bi_recipe_steel_furnace_disassemble", "bi-steel-furnace-disassemble"], + ["bi_recipe_stone_furnace_disassemble", "bi-stone-furnace-disassemble"], + ["bi_recipe_charcoal_2", "bi-charcoal-2"], + ["bi_recipe_charcoal", "bi-charcoal-1"], + ["bi_recipe_clean_air_1", "bi-purified-air-1"], + ["bi_recipe_clean_air_2", "bi-purified-air-2"], + ["bi_recipe_coal_2", "bi-coal-2"], + ["bi_recipe_coal", "bi-coal-1"], + ["bi_recipe_coke_coal", "bi-coke-coal"], + ["bi_recipe_crushed_stone", "bi-crushed-stone-1"], + ["bi_recipe_fertiliser_1", "bi-fertiliser-1"], + ["bi_recipe_fertiliser_2", "bi-fertiliser-2"], + ["bi_recipe_greenhouse", "bi-bio-greenhouse"], + ["bi_recipe_huge_substation", "bi-large-substation"], + ["bi_recipe_liquid_air", "bi-liquid-air"], + ["bi_recipe_logs_mk1", "bi-logs-1"], + ["bi_recipe_logs_mk2", "bi-logs-2"], + ["bi_recipe_logs_mk3", "bi-logs-3"], + ["bi_recipe_logs_mk4", "bi-logs-4"], + ["bi_recipe_nitrogen", "bi-nitrogen"], + ["bi_recipe_plastic_1", "bi-plastic-1"], + ["bi_recipe_plastic_2", "bi-plastic-2"], + ["bi_recipe_seed_1", "bi-seed-1"], + ["bi_recipe_seed_2", "bi-seed-2"], + ["bi_recipe_seed_3", "bi-seed-3"], + ["bi_recipe_seed_4", "bi-seed-4"], + ["bi_recipe_seedling_mk1", "bi-seedling-1"], + ["bi_recipe_seedling_mk2", "bi-seedling-2"], + ["bi_recipe_seedling_mk3", "bi-seedling-3"], + ["bi_recipe_seedling_mk4", "bi-seedling-4"], + ["bi_recipe_solar_boiler_panel", "bi-solar-boiler-panel"], + ["bi_recipe_solar_mat", "bi-solar-mat"], + ["bi_recipe_sulfur_angels", "bi-sulfur-angels"], + ["bi_recipe_sulfur", "bi-sulfur"], + ["bi_recipe_woodpulp", "bi-woodpulp"], + ["bi_recipe_wood_from_pulp", "bi-wood-from-pulp"], + ["bi_recipe_pellete_coal_2", "bi-pellete-coal-2"], + ["bi_recipe_bioreactor", "bi-bio-reactor"], + ["bi_recipe_mineralized_sulfuric_waste", "bi-mineralized-sulfuric-waste"], + ["bi_recipe_slag_slurry", "bi-slag-slurry"], + ["bi_recipe_resin_wood", "bi-resin-wood"], + ["bi_recipe_resin_pulp", "bi-resin-pulp"], + ["bi_recipe_press_wood", "bi-press-wood"], + ["bi_recipe_stone_brick", "bi-stone-brick"], + ["bi_recipe_wood_fuel_brick", "bi-wood-fuel-brick"], + ["bi_recipe_solid_fuel", "bi-solid-fuel"], + ["bi_recipe_pellet_coke", "bi-pellet-coke"], + ["bi_recipe_wood_pipe", "bi-wood-pipe"], + ["bi_recipe_pipe_to_ground_wood", "bi-wood-pipe-to-ground"], + ["bi_recipe_cokery", "bi-cokery"], + ["bi_recipe_stone_crusher", "bi-stone-crusher"] + ], + + "technology": + [ + ["bi_tech_advanced_biotechnology", "bi-tech-advanced-biotechnology"], + ["bi_tech_bio_cannon", "bi-tech-bio-cannon"], + ["bi_tech_bio_farming", "bi-tech-bio-farming"], + ["bi_tech_fertiliser", "bi-tech-fertiliser"], + ["bi_tech_organic_plastic", "bi-tech-organic-plastic"] + ] +} diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.01.lua b/Bio_Industries_2/migrations/Bio_Industries_0.18.01.lua new file mode 100644 index 0000000..8c6afa3 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.01.lua @@ -0,0 +1,43 @@ +--~ local BioInd = require('__Bio_Industries__/common')('Bio_Industries') +--~ game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies + local recipes = force.recipes + + for _, tech in ipairs({"bi-tech-coal-processing-2", "bi-tech-coal-processing-3"}) do + -- Technology exists and has already been researched +BioInd.writeDebug("Checking tech: %s for force %s (Researched: %s)", {tech, force and force.name or "nil", technologies[tech] and technologies[tech].researched or "nil"}) + + if game.technology_prototypes[tech] and technologies[tech].researched then + -- Check if all prerequisite technologies have been researched + local all_prereqs = true + for pname, ptech in pairs(technologies[tech].prerequisites) do + BioInd.writeDebug("pname: %s", {pname}) + BioInd.writeDebug("ptech: %s", {ptech}) + if not ptech.researched then + all_prereqs = false + break + end + end + + -- If not all prerequisite technologies have been researched, ... + if not all_prereqs then + game.print({"", "Not all prerequisite technologies for ", {"technology-name." .. tech}, " have been researched!"}) + -- reset all unlocked recipes and + for _, effect in pairs(technologies[tech].effects) do + if effect.type == "unlock-recipe" then + game.print({"", "Disabling recipe \"", {"recipe-name." .. effect.recipe}, "\""}) + recipes[effect.recipe].enabled = false + recipes[effect.recipe].reload() + end + end + -- unresearch the technology + game.print({"", "Disabling technology \"", {"technology-name." .. tech}, "\"" }) + technologies[tech].researched = false + technologies[tech].reload() + end + end + end +end diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.10.lua.bak b/Bio_Industries_2/migrations/Bio_Industries_0.18.10.lua.bak new file mode 100644 index 0000000..54f5d6b --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.10.lua.bak @@ -0,0 +1,82 @@ +local BioInd = require('__Bio_Industries__/common')('Bio_Industries') +------------------------------------------------------------------------------------ +-- Remove left over radars and hidden entities left after terraformer (arboretum) +-- has been moved. +------------------------------------------------------------------------------------ + +-- Function to remove entities +local function remove_entity(surface, data) + local name = data[1] + local type = data[2] + local desc = data[3] + local name_in_table = data[4] or type -- Needed for "electric-pole", which is stored as "pole" in the table + + local count = 0 + + -- Look for entity on surface + local surface_entities = surface.find_entities_filtered{ + name = name, + type = type, + } + --~ BioInd.writeDebug("Found " .. tostring(#surface_entities) .. " " .. desc .. "s.") + + -- Check against entities in list + for index, entity in pairs(surface_entities) do + BioInd.writeDebug("%g: Looking for %s: %s.", {index, desc, entity.unit_number}) + + local match = false + for _a, arboretum in pairs(global.bi_arboretum_table or {}) do + --~ BioInd.writeDebug("arboretum: %s", {arboretum}) + if entity == arboretum[name_in_table] then + BioInd.writeDebug("The %s (%g) belongs to arboretum/terraformer %g!", {desc, entity.unit_number, _a}) + match = trueentity.unit_number + break + end + end + + -- Remove entity from surface if it has no match in arboretum/terraformer list + if not match then + log("Removing " .. desc .. " " .. entity.unit_number .. ".") + count = count + 1 + entity.destroy() + end + end + log("Removed " .. tostring(count) .. " " .. desc .. "s (terraformer remnants) from " .. surface.name .. ".") + game.print("[Bio Industries] Removed " .. tostring(count) .. " " .. desc .. "s (terraformer remnants) from " .. surface.name .. ".") +end + +-- Clean up global list of arboretums +if global.bi_arboretum_table then + + BioInd.writeDebug("Remove invalid arboretums/terraformers from list:") + local count = 0 + for index, arboretum in pairs(global.bi_arboretum_table) do + local entity = arboretum.inventory + + BioInd.writeDebug("Arboretum %g is valid: %s", {index, entity and entity.valid}) + if not entity.valid then + global.bi_arboretum_table[index] = nil + count = count + 1 + log("Removed arboretum/terraformer " .. tostring(index) .. " from global list.") + end + end + log("Removed " .. tostring(count) .. " non-existing terraformers from global list.") + game.print("[Bio Industries] Removed " .. tostring(count) .. " non-existing terraformers from global list.") + + ------------------------------------------------------------------------------------ + -- Check for left-over entities from moved/removed arboretums/terraformers + for index, surface in pairs(game.surfaces) do + BioInd.writeDebug("Looking for left-over hidden entities from moved/removed terraformers on %s.", {surface.name}) + + for _, entity in pairs({ + {"bi-arboretum-hidden-radar", "radar", "radar"}, + {"bi-hidden-power-pole", "electric-pole", "hidden power pole", "pole"}, + {"bi-bio-farm-light", "lamp", "hidden lamp"} + }) do + + remove_entity(surface, entity) + end + + end + BioInd.writeDebug("Done.") +end diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.11.lua.bak b/Bio_Industries_2/migrations/Bio_Industries_0.18.11.lua.bak new file mode 100644 index 0000000..9b4b710 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.11.lua.bak @@ -0,0 +1,121 @@ +local BioInd = require('common')('Bio_Industries') +------------------------------------------------------------------------------------ +-- Restore hidden power poles and hidden lamps accidentally removed in the +-- previous version. +------------------------------------------------------------------------------------ + +local pole_name = "bi-hidden-power-pole" +local lamp_name = "bi-bio-farm-light" + +local pole_count = 0 +local lamp_count = 0 + +-- Restoring hidden power pole for solar boilers +for index, solar_boiler in pairs(global.bi_solar_boiler_table) do + -- Remove invalid solar boilers from list + if not solar_boiler.base.valid then + BioInd.writeDebug("Removing invalid solar boiler " .. tostring(index) .. " from global list.") + if solar_boiler.boiler.valid then + solar_boiler.boiler.destroy() + end + if solar_boiler.pole.valid then + solar_boiler.pole.destroy() + end + global.bi_solar_boiler_table = nil + + -- Restore hidden power pole if necessary + elseif not solar_boiler.pole.valid then + BioInd.writeDebug("Creating new hidden power pole for solar boiler " .. tostring(index) .. ".") + local new_pole = solar_boiler.base.surface.create_entity({ + name = pole_name, + position = solar_boiler.base.position, + direction = solar_boiler.base.direction, + force = solar_boiler.base.force + }) + global.bi_solar_boiler_table[index].pole = new_pole + pole_count = pole_count + 1 + end +end +log("Restored " .. tostring(pole_count) .. " hidden power poles for solar boilers.") +game.print("[Bio Industries] Restored " .. tostring(pole_count) .. " hidden power poles for solar boilers.") + + +-- Restoring hidden power pole for solar farms +pole_count = 0 + +for index, solar_farm in pairs(global.bi_solar_farm_table) do + -- Remove invalid solar boilers from list + if not solar_farm.base.valid then + BioInd.writeDebug("Removing invalid solar farm " .. tostring(index) .. " from global list.") + if solar_farm.pole.valid then + solar_farm.pole.destroy() + end + global.bi_solar_farm_table = nil + + -- Restore hidden power pole if necessary + elseif not solar_farm.pole.valid then + BioInd.writeDebug("Creating new hidden power pole for solar farm " .. tostring(index) .. ".") + local new_pole = solar_farm.base.surface.create_entity({ + name = pole_name, + position = solar_farm.base.position, + direction = solar_farm.base.direction, + force = solar_farm.base.force + }) + global.bi_solar_farm_table[index].pole = new_pole + pole_count = pole_count + 1 + end +end +log("Restored " .. tostring(pole_count) .. " hidden power poles for solar farms.") +game.print("[Bio Industries] Restored " .. tostring(pole_count) .. " hidden power poles for solar farms.") + + +-- Restoring hidden power pole and hidden lamps for bio farms +pole_count = 0 + +for index, bio_farm in pairs(global.bi_bio_farm_table) do + -- Remove invalid solar boilers from list + if not bio_farm.base.valid then + BioInd.writeDebug("Removing invalid solar farm " .. tostring(index) .. " from global list.") + if bio_farm.pole.valid then + bio_farm.pole.destroy() + end + if bio_farm.panel.valid then + bio_farm.panel.destroy() + end + if bio_farm.lamp.valid then + bio_farm.lamp.destroy() + end + global.bi_bio_farm_table = nil + + -- Restore hidden entities if necessary + else + -- Restore hidden power pole + if not bio_farm.pole.valid then + BioInd.writeDebug("Creating new hidden power pole for solar farm " .. tostring(index) .. ".") + local new_pole = bio_farm.base.surface.create_entity({ + name = pole_name, + position = bio_farm.base.position, + direction = bio_farm.base.direction, + force = bio_farm.base.force + }) + global.bi_bio_farm_table[index].pole = new_pole + pole_count = pole_count + 1 + end + -- Restore hidden lamp + if not bio_farm.lamp.valid then + BioInd.writeDebug("Creating new hidden lamp for solar farm " .. tostring(index) .. ".") + local new_lamp = bio_farm.base.surface.create_entity({ + name = lamp_name, + position = bio_farm.base.position, + force = bio_farm.base.force + }) + + global.bi_bio_farm_table[index].lamp = new_lamp + lamp_count = lamp_count + 1 + end + end +end +log("Restored " .. tostring(pole_count) .. " hidden power poles and " .. tostring(lamp_count) .. + " hidden lamps for bio farms.") +game.print("[Bio Industries] Restored " .. tostring(pole_count) .. " hidden power poles and " .. tostring(lamp_count) .. + " hidden lamps for bio farms.") diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.13.lua.bak b/Bio_Industries_2/migrations/Bio_Industries_0.18.13.lua.bak new file mode 100644 index 0000000..4c97bfa --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.13.lua.bak @@ -0,0 +1,135 @@ +local BioInd = require('__Bio_Industries__/common')('Bio_Industries') +log("Entered fixed migration script!") +------------------------------------------------------------------------------------ +-- In 0.18.11, loading a saved game could have resulted in a crash because a +-- complete table (instead of individual entries) was removed. However, if +-- the complete table *was* deleted, the game *must* have crashed and the original +-- tables couldn't have been overwritten in a new saved game. So, we can presume +-- all tables still exist in the state of pre 0.18.11 and just run the (fixed) +-- migration script from 0.18.11 again. +------------------------------------------------------------------------------------ + +local pole_name = "bi-hidden-power-pole" +local lamp_name = "bi-bio-farm-light" + +local pole_count = 0 +local lamp_count = 0 + +-- Restoring hidden power pole for solar boilers +if global.bi_solar_boiler_table then + for index, solar_boiler in pairs(global.bi_solar_boiler_table) do + -- Remove invalid solar boilers from list + if not solar_boiler.base.valid then + BioInd.writeDebug("Removing invalid solar boiler %g from global list.", {index}) + if solar_boiler.boiler.valid then + solar_boiler.boiler.destroy() + end + if solar_boiler.pole.valid then + solar_boiler.pole.destroy() + end + global.bi_solar_boiler_table[index] = nil + + -- Restore hidden power pole if necessary + elseif not solar_boiler.pole.valid then + BioInd.writeDebug("Creating new hidden power pole for solar boiler %g.", {index}) + global.bi_solar_boiler_table[index].pole = solar_boiler.base.surface.create_entity({ + name = pole_name, + position = solar_boiler.base.position, + direction = solar_boiler.base.direction, + force = solar_boiler.base.force + }) + pole_count = pole_count + 1 + end + end + if pole_count > 0 then + log("Restored " .. tostring(pole_count) .. " hidden power poles for solar boilers.") + game.print("[Bio Industries] Restored " .. tostring(pole_count) .. " hidden power poles for solar boilers.") + end +end + +-- Restoring hidden power pole for solar farms +if global.bi_solar_farm_table then + pole_count = 0 + + for index, solar_farm in pairs(global.bi_solar_farm_table) do + -- Remove invalid solar boilers from list + if not solar_farm.base.valid then + BioInd.writeDebug("Removing invalid solar farm %g from global list.", {index}) + if solar_farm.pole.valid then + solar_farm.pole.destroy() + end + global.bi_solar_farm_table[index] = nil + + -- Restore hidden power pole if necessary + elseif not solar_farm.pole.valid then + BioInd.writeDebug("Creating new hidden power pole for solar farm %g.", {index}) + --~ local new_pole = solar_farm.base.surface.create_entity({ + global.bi_solar_farm_table[index].pole = solar_farm.base.surface.create_entity({ + name = pole_name, + position = solar_farm.base.position, + direction = solar_farm.base.direction, + force = solar_farm.base.force + }) + pole_count = pole_count + 1 + end + end + if pole_count > 0 then + log("Restored " .. tostring(pole_count) .. " hidden power poles for solar farms.") + game.print("[Bio Industries] Restored " .. tostring(pole_count) .. " hidden power poles for solar farms.") + end +end + + +-- Restoring hidden power pole and hidden lamps for bio farms +if global.bi_bio_farm_table then + pole_count = 0 + + for index, bio_farm in pairs(global.bi_bio_farm_table) do + -- Remove invalid solar boilers from list + if not bio_farm.base.valid then + BioInd.writeDebug("Removing invalid solar farm %g from global list.", {index}) + if bio_farm.pole.valid then + bio_farm.pole.destroy() + end + if bio_farm.panel.valid then + bio_farm.panel.destroy() + end + if bio_farm.lamp.valid then + bio_farm.lamp.destroy() + end + global.bi_bio_farm_table[index] = nil + + -- Restore hidden entities if necessary + else + -- Restore hidden power pole + if not bio_farm.pole.valid then + BioInd.writeDebug("Creating new hidden power pole for solar farm %g.", {index}) + --~ local new_pole = bio_farm.base.surface.create_entity({ + global.bi_bio_farm_table[index].pole = bio_farm.base.surface.create_entity({ + name = pole_name, + position = bio_farm.base.position, + direction = bio_farm.base.direction, + force = bio_farm.base.force + }) + pole_count = pole_count + 1 + end + -- Restore hidden lamp + if not bio_farm.lamp.valid then + BioInd.writeDebug("Creating new hidden lamp for solar farm %g.", {index}) + --~ local new_lamp = bio_farm.base.surface.create_entity({ + global.bi_bio_farm_table[index].lamp = bio_farm.base.surface.create_entity({ + name = lamp_name, + position = bio_farm.base.position, + force = bio_farm.base.force + }) + lamp_count = lamp_count + 1 + end + end + end + if pole_count > 0 or lamp_count > 0 then + log("Restored " .. tostring(pole_count) .. " hidden power poles and " .. tostring(lamp_count) .. + " hidden lamps for bio farms.") + game.print("[Bio Industries] Restored " .. tostring(pole_count) .. " hidden power poles and " .. + tostring(lamp_count) .. " hidden lamps for bio farms.") + end +end diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.20_+_0.17.51.json b/Bio_Industries_2/migrations/Bio_Industries_0.18.20_+_0.17.51.json new file mode 100644 index 0000000..2b67b38 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.20_+_0.17.51.json @@ -0,0 +1,6 @@ +{ + "recipe": + [ + ["bi-basic-petroleum-gas-processing", "bi-basic-gas-processing"] + ] +} diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.24_+_0.17.55.lua.bak b/Bio_Industries_2/migrations/Bio_Industries_0.18.24_+_0.17.55.lua.bak new file mode 100644 index 0000000..faa4fdb --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.24_+_0.17.55.lua.bak @@ -0,0 +1,122 @@ +local BioInd = require('__Bio_Industries__/common')('Bio_Industries') +------------------------------------------------------------------------------------ +-- This version uses a different algorithm to wiring the powered rails. Only +-- Rail-to-power connectors and poles on rails connected to (not crossing!) a newly +-- placed track will be connected with each other. +------------------------------------------------------------------------------------ + +BioInd.writeDebug("Entered migration script 0.18.24+0.17.55") + +-- Look for Rail-to-power connectors on all surfaces +for s, surface in pairs(game.surfaces) do + local connectors = surface.find_entities_filtered{name = "bi-power-to-rail-pole"} +--log("Looking for rail-to-power connectors on surface " .. s) + for _, connector in ipairs(connectors) do + -- Find connections to powered rails + local neighbours = connector.neighbours["copper"] +--log("neighbours of connector " .. connector.unit_number .. ": " .. serpent.block(neighbours)) + for p, pole in pairs(neighbours) do + -- Disconnect hidden power-rail poles from connector + if pole.name == "bi-power-rail-hidden-pole" then + connector.disconnect_neighbour(pole) +--log("Disconnected " .. pole.name .. " " .. pole.unit_number) + end + end + end +end + + +log("Done -- looking for hidden poles now!") +-- Disconnect all hidden rail poles +for r, rail in pairs(global.bi_power_rail_table) do + -- Rail is still valid + if rail.base and rail.base.valid then +--log(tostring(r) .. ": rail.base.valid: " .. tostring(rail.base.valid)) + -- Disconnect pole if it's valid! + if rail.pole and rail.pole.valid then + rail.pole.disconnect_neighbour() + BioInd.writeDebug("Disconnected pole number %g", {rail.pole.unit_number}) +--log("Disconnected pole number " .. rail.pole.unit_number) + -- Place a new pole if we don't have one yet. + else + -- Create Hidden Power Pole + local track = rail.base + local new_pole = track.surface.create_entity({ + name = "bi-power-rail-hidden-pole", + position = track.position, + force = track.force + }) + new_pole.minable = false + new_pole.destructible = false + new_pole.disconnect_neighbour() + + global.bi_power_rail_table[r].pole = new_pole + BioInd.writeDebug("Created new pole %g on %s.", {new_pole.unit_number, track.name, track.unit_number}) + end + -- Rail doesn't exist anymore + elseif not rail.base.valid then +--log(tostring(r) .. ": rail.base.valid: " .. tostring(rail.base.valid)) + -- Check the pole! + if rail.pole and rail.pole.valid then + BioInd.writeDebug("Rail %g doesn't exist anymore: Removing pole %g from surface %s.", {r, rail.pole.unit_number, rail.pole.surface.name, rail.pole.surface.name}) + rail.pole.destroy() + end + + -- Remove track from table! + global.bi_power_rail_table[r] = nil + BioInd.writeDebug("Removed powered rail %g from table.", {r}) + end +end + +-- Rewire hidden rail poles +for r, rail in pairs(global.bi_power_rail_table) do +BioInd.writeDebug("Disconnected pole number %g", {rail.pole.unit_number}) +--log("Disconnected pole number " .. rail.pole.unit_number) + local rail_track = rail.base + local rail_pole = rail.pole + -- Look for connecting rails at front and back of the new rail + for s, side in ipairs( {"front", "back"} ) do +BioInd.writeDebug("Looking for rails at %s", {side}) +--log("Looking for rails at " .. side) + local neighbour + -- Look in all three directions + for d, direction in ipairs( {"left", "straight", "right"} ) do +BioInd.writeDebug("Looking for rails in %s direction", {direction}) +--log("Looking for rails in " .. direction .. " direction") + neighbour = rail_track.get_connected_rail{ + rail_direction = defines.rail_direction[side], + rail_connection_direction = defines.rail_connection_direction[direction] + } +BioInd.writeDebug("Rail %s of %s (%s): (%s)", {direction, rail_track.name, rail_track.unit_number,neighbour and neighbour.name or "nil", neighbour and neighbour.unit_number or "nil"}) +--log("Rail " .. direction .. " of " .. + --~ rail_track.name .. " (" .. rail_track.unit_number .. "): " .. + --~ serpent.line(neighbour and neighbour.name) .. + --~ " (" .. serpent.line(neighbour and neighbour.unit_number) ..")") + + -- Only make a connection if found rail is a powered rail + -- (We'll know it's the right type if we find it in our table!) + neighbour = neighbour and neighbour.valid and global.bi_power_rail_table[neighbour.unit_number] + if neighbour then + rail_pole.connect_neighbour(neighbour.pole) +BioInd.writeDebug("Connected poles!") +--log("Connected poles!") + end + end + + -- Look for Power-rail connectors + local connector = rail_track.surface.find_entities_filtered{ + position = rail_track.position, + radius = BioInd.POWER_TO_RAIL_WIRE_DISTANCE, -- maximum_wire_distance of Power-to-rail-connectors + name = "bi-power-to-rail-pole" + } + + -- Connect to first Power-rail connector we've found + if connector and table_size(connector) > 0 then + rail_pole.connect_neighbour(connector[1]) +BioInd.writeDebug("Connected %s (%g) to %s (%g)", {rail_pole.name, rail_pole.unit_number, connector[1].name, connector[1].unit_number}) + end + end +end + +BioInd.writeDebug("End of migration script 0.18.24+0.17.55") +--log("End of migration script 0.18.24+0.17.55") diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.27_+_0.17.58.lua b/Bio_Industries_2/migrations/Bio_Industries_0.18.27_+_0.17.58.lua new file mode 100644 index 0000000..8b4887f --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.27_+_0.17.58.lua @@ -0,0 +1,45 @@ +--~ local BioInd = require('__Bio_Industries__/common')('Bio_Industries') +------------------------------------------------------------------------------------ +-- For some reason, the recipe for bi-biomass-2 was more advanced than the recipe +-- for bi-biomass-3. This worked because we changed their order whereever they've +-- been used, but it wasn't intuitive and caused confusion. +-- The recipes have been renamed in 0.17.58/0.18.27, now we need to make sure that +-- the recipes in bio-reactors making bio-mass are exchanged as well! +------------------------------------------------------------------------------------ + +BioInd.writeDebug("Entered migration script 0.18.27+0.17.58") + + +-- Look for bio-reactors on all surfaces +local reactors, recipe + +for s, surface in pairs(game.surfaces) do + reactors = surface.find_entities_filtered{ + type = "assembling-machine", + name = "bi-bio-reactor" + } + BioInd.writeDebug("Found %g bio-reactors on surface \"%s\".", + {#reactors, surface.name}) + + -- Get recipe of reactors + for r, reactor in ipairs(reactors) do + recipe = reactor.get_recipe() + recipe = recipe and recipe.name or "" + BioInd.writeDebug("Reactor %g has recipe \"%s\".", + {reactor.unit_number, recipe}) + + -- Exchange "bi-biomass-2" against "bi-biomass-3" + if recipe == "bi-biomass-2" then + reactor.set_recipe("bi-biomass-3") + BioInd.writeDebug("Set recipe to %s.", {reactor.get_recipe().name}) + + -- Exchange "bi-biomass-3" against "bi-biomass-2" + elseif recipe == "bi-biomass-3" then + reactor.set_recipe("bi-biomass-2") + BioInd.writeDebug("Set recipe to %s.", {reactor.get_recipe().name}) + end + end + +end + +BioInd.writeDebug("End of migration script 0.18.27+0.17.58") diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.29.json b/Bio_Industries_2/migrations/Bio_Industries_0.18.29.json new file mode 100644 index 0000000..f49ba27 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.29.json @@ -0,0 +1,6 @@ +{ + "recipe": + [ + ["bi-pellete-coal-2", "bi-pellet-coke-2"] + ] +} diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.29.lua.bak b/Bio_Industries_2/migrations/Bio_Industries_0.18.29.lua.bak new file mode 100644 index 0000000..b5c5f7a --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.29.lua.bak @@ -0,0 +1,720 @@ +------------------------------------------------------------------------------------ +-- We didn't react to script_raised_revive before, so mods like Construction Drones +-- that filled in ghosts would just place the base entities, and not add the hidden +-- entities. Even worse: the base entities wouldn't be added to our lists! So, let's +-- rebuild everything once again! +------------------------------------------------------------------------------------ + +local BioInd = require('__Bio_Industries__/common')('Bio_Industries') +local cnt = 0 + + +game.print("Warning: The migration may run for a long time, depending on how many entities there are to migrate! Please be patient and wait until it's finished!") + +-- Removes the hidden entities at the position of a base entity +local created_entities = {} +local function remove_entities(base, names) + local entities = base and base.surface.find_entities_filtered{ + position = base.position, + name = names, + } +if entities and next(entities) then +BioInd.show("base.unit_number", base.unit_number) +BioInd.show("Found entities", table_size(entities)) +end + + for e, entity in ipairs(entities or {}) do +--~ BioInd.show("entity.unit_number", entity.unit_number) + if not created_entities[entity.unit_number] then + entity.destroy() + end + end +end + + +-- Removes the hidden entities stored with a base entity +local function remove_stored_entities(base, names) + for e, entity in ipairs(names or {}) do + if base[entity] and base[entity].valid then + base[entity].destroy() + end + end +end + + +-- Make hidden entities unminable and indestructible +local function make_unminable(entities) + for e, entity in ipairs(entities or {}) do + if entity.valid then + entity.minable = false + entity.destructible = false + end + end +end + + +-- Recreate hidden entities +local function recreate_entities(g_table, base_entity, hidden_entity_names, ...) +BioInd.show("#g_table", table_size(g_table)) +BioInd.show("hidden_entity_names", hidden_entity_names) + + if not (g_table and type(g_table) == "table") then + error(string.format("%s is not a valid table!", g_table)) + elseif not (base_entity and type(base_entity) == "table" and base_entity.valid) then + error(string.format("%s is not a valid base entity!", base_entity)) + elseif not ( + hidden_entity_names and type(hidden_entity_names) == "table" and next(hidden_entity_names) + ) then + error(string.format("%s is not a valid array of hidden-entity names!", hidden_entity_names)) + end + + local entity + + -- Initialize entry in global table + g_table[base_entity.unit_number] = {} + g_table[base_entity.unit_number].base = base_entity + + -- Create hidden entities + for key, name in pairs(hidden_entity_names) do + entity = base_entity.surface.create_entity({ + name = name, + position = base_entity.position, + force = base_entity.force + }) + + -- Make hidden entity unminable/undestructible + make_unminable({entity}) + + -- Add hidden entity to global table + g_table[base_entity.unit_number][key] = entity + + -- Add to temporary table of recreated hidden entities + created_entities[entity.unit_number] = true + end + + -- Add optional values to global table + for k, v in pairs(... or {}) do + g_table[base_entity.unit_number][k] = v + end +BioInd.show("g_table[base.unit_number]", g_table[base_entity.unit_number]) +end + + +-- Remove all common hidden power poles and hidden power rail poles +do + local entities + for s, surface in pairs(game.surfaces) do + entities = surface.find_entities_filtered({ + name = {"bi-hidden-power-pole", "bi-power-rail-hidden-pole"} + }) + for e, entity in pairs(entities) do + entity.destroy() + cnt = cnt + 1 + end + end + BioInd.writeDebug("Removed %s hidden poles (bi-hidden-power-pole, bi-power-rail-hidden-pole)", cnt) +end + +local base, boiler, lamp, pole, panel, radar, connectors +local base_name, boiler_name, lamp_name, pole_name, radar_name, panel_name, overlay_name + + + +------------------------------------------------------------------------------------ +-- Bio Farm -- +------------------------------------------------------------------------------------ + +-- Empty old list +for b, bio_farm in pairs(global.bi_bio_farm_table or {}) do + -- Remove hidden entities from bio_farms in our table + --~ for e, entity in ipairs({"pole", "panel", "lamp"}) do + --~ if bio_farm[entity] and bio_farm[entity].valid then + --~ bio_farm[entity].destroy() + --~ end + --~ end + remove_stored_entities(bio_farm, {"pole", "panel", "lamp"}) + -- Remove entry from table + global.bi_bio_farm_table[b] = nil + + cnt = cnt + 1 +end +BioInd.writeDebug("Removed hidden entities from %s Bio-farms.", {cnt}) + +-- Generate new list +--~ local bio_farms, pole, panel, lamp +local bio_farms +pole_name = "bi-bio-farm-hidden-pole" +panel_name = "bi-bio-farm-hidden-panel" +lamp_name = "bi-bio-farm-light" + +cnt = 0 + +for s, surface in pairs(game.surfaces or {}) do + -- Find all bio_farms on surface! + bio_farms = surface.find_entities_filtered({name = "bi-bio-farm"}) + for b, bio_farm in ipairs(bio_farms or {}) do + -- Make a clean slate! + remove_entities(bio_farm, {pole_name, panel_name, lamp_name}) + + recreate_entities(global.bi_bio_farm_table, bio_farm, { + pole = pole_name, + panel = panel_name, + lamp = lamp_name + }) + + cnt = cnt + 1 + end +end +BioInd.writeDebug("Recreated hidden entities for %s Bio-farms.", {cnt}) + + +------------------------------------------------------------------------------------ +-- Bio Solar Boiler/Solar Plant -- +------------------------------------------------------------------------------------ +cnt = 0 + +-- Empty old list +for s, solar_boiler in pairs(global.bi_solar_boiler_table or {}) do + -- Remove hidden entities from solar_boilers in our table + remove_stored_entities(solar_boiler, {"pole", "boiler"}) + -- Remove entry from table + global.bi_solar_boiler_table[s] = nil + + cnt = cnt + 1 +end +BioInd.writeDebug("Removed hidden entities from %s Solar boilers/power plants.", {cnt}) + + +-- Generate new list +--~ local solar_boilers, pole, boiler +local solar_boilers +pole_name = "bi-hidden-power-pole" +boiler_name = "bi-solar-boiler-hidden-panel" + +cnt = 0 + +for s, surface in pairs(game.surfaces or {}) do + -- Find all solar_boilers on surface! + solar_boilers = surface.find_entities_filtered({name = "bi-solar-boiler"}) + for b, boiler_solar in ipairs(solar_boilers or {}) do + -- Make a clean slate! + --~ remove_entities(boiler_solar, {pole_name, panel_name}) + remove_entities(boiler_solar, {boiler_name}) + + -- Recreate hidden entities + recreate_entities(global.bi_solar_boiler_table, boiler_solar, { + boiler = boiler_name, + pole = pole_name + }) + + cnt = cnt + 1 + end +end +BioInd.writeDebug("Recreated hidden entities for %s Solar boilers/power plants.", {cnt}) + + + +------------------------------------------------------------------------------------ +-- Solar Farm -- +------------------------------------------------------------------------------------ +cnt = 0 + +-- Empty old list +for s, solar_farm in pairs(global.bi_solar_farm_table or {}) do + --~ remove_stored_entities(solar_farm, {"pole"}) + -- Remove entry from table + global.bi_solar_farm_table[s] = nil + + cnt = cnt + 1 +end +BioInd.writeDebug("Removed hidden entities from %s Solar farms.", {cnt}) + + +-- Generate new list +local solar_farms +pole_name = "bi-hidden-power-pole" + +cnt = 0 + +for s, surface in pairs(game.surfaces or {}) do + -- Find all solar_boilers on surface! + solar_farms = surface.find_entities_filtered({name = "bi-bio-solar-farm"}) + for sf, solar_farm in ipairs(solar_farms or {}) do + --~ -- Make a clean slate! + --~ remove_entities(solar_farm, {pole_name}) + -- Recreate hidden entities + recreate_entities(global.bi_solar_farm_table, solar_farm, {pole = pole_name}) + cnt = cnt + 1 + end +end +BioInd.writeDebug("Recreated hidden entities for %s Solar farms.", {cnt}) + + + +------------------------------------------------------------------------------------ +-- Bio Cannon -- +-- Bio Cannons have a different table format -- make that the same as the others -- +------------------------------------------------------------------------------------ +cnt = 0 + +-- Empty old list +for b, bio_cannon in pairs(global.bi_bio_cannon_table or {}) do + -- Remove hidden entities from Bio cannons in our table + + if bio_cannon[2] and bio_cannon[2].valid then + bio_cannon[2].destroy() + end + -- Remove entry from table + global.bi_bio_cannon_table[b] = nil + + cnt = cnt + 1 +end +BioInd.writeDebug("Removed hidden entities from %s Bio-Cannons.", {cnt}) + + +-- Generate new list +--~ local bio_cannons, base, radar +local bio_cannons +base_name = "bi-bio-cannon" +overlay_name = "bi-bio-cannon-area" +radar_name = "bi-bio-cannon-hidden-radar" + +cnt = 0 + +for s, surface in pairs(game.surfaces or {}) do + -- Find all cannons on surface! + bio_cannons = surface.find_entities_filtered({name = {base_name, overlay_name}}) + for b, bio_cannon in ipairs(bio_cannons or {}) do + -- Make a clean slate! + remove_entities(bio_cannon, {radar_name}) + -- Recreate hidden entities + radar = surface.create_entity({ + name = radar_name, + position = bio_cannon.position, + force = bio_cannon.force + }) + make_unminable({radar}) + -- Make sure we don't use the overlay cannon! + if bio_cannon.name == overlay_name then + -- Create final cannon + base = surface.create_entity({ + name = base_name, + position = bio_cannon.position, + force = bio_cannon.force + }) + -- Set its health to that of overlay + base.health = bio_cannon.health + -- Remove overlay + bio_cannon.destroy() + BioInd.writeDebug("Replaced Bio-cannon overlay with Bio-cannon %s.", {base.unit_number}) + else + base = bio_cannon + end + -- Add to table + global.bi_bio_cannon_table[base.unit_number] = { + base = base, + radar = radar, + -- Bio-cannons will be checked once per second. Delay is based on the ammo the + -- cannon is loaded with. Let's use 20s (delay for best ammo) initially! + delay = (base.unit_number * base.unit_number) % 20 + } + cnt = cnt + 1 + end +end +BioInd.writeDebug("Recreated hidden entities for %s Bio-cannons.", {cnt}) + + + +------------------------------------------------------------------------------------ +-- Arboretum -- +------------------------------------------------------------------------------------ +cnt = 0 + +-- Empty old list +for a, arboretum in pairs(global.bi_arboretum_table or {}) do + -- Remove hidden entities from solar_boilers in our table (Don't call removal + -- function because radar position has been shifted, so the radar won't be found!) + for e, entity in ipairs({"radar", "pole", "lamp"}) do + if arboretum[entity] and arboretum[entity].valid then + arboretum[entity].destroy() + end + end + --~ remove_stored_entities(arboretum, {"radar", "pole", "lamp"}) + -- Remove entry from table + global.bi_arboretum_table[a] = nil + + cnt = cnt + 1 +end +BioInd.writeDebug("Removed hidden entities from %s Arboretums.", {cnt}) + + +-- Generate new list +--~ local arboretums, pole, radar, lamp +local arboretums +base_name = "bi-arboretum" +overlay_name = "bi-arboretum-area" +pole_name = "bi-hidden-power-pole" +radar_name = "bi-arboretum-hidden-radar" +lamp_name = "bi-bio-farm-light" + +cnt = 0 + +-- We need to keep track of radars separately! +global.bi_arboretum_radar_table = {} + +for s, surface in pairs(game.surfaces or {}) do + -- Find all arboretums on surface! + arboretums = surface.find_entities_filtered({name = {base_name, overlay_name}}) + for a, arboretum in ipairs(arboretums or {}) do + -- Make a clean slate! + remove_entities(arboretum, {pole_name, radar_name, lamp_name}) + -- Recreate hidden entities + radar = surface.create_entity({ + name = radar_name, + position = {arboretum.position.x - 3.5, arboretum.position.y + 3.5}, + force = arboretum.force + }) + pole = surface.create_entity({ + name = pole_name, + position = arboretum.position, + force = arboretum.force + }) + lamp = surface.create_entity({ + name = lamp_name, + position = arboretum.position, + force = arboretum.force + }) + make_unminable({pole, radar, lamp}) + + -- Make sure we don't use the overlay! + if arboretum.name == overlay_name then + -- Create final arboretum + base = surface.create_entity({ + name = base_name, + position = arboretum.position, + force = arboretum.force + }) + -- Set its health to that of overlay + base.health = arboretum.health + -- Remove overlay + arboretum.destroy() + BioInd.writeDebug("Replaced Arboretum overlay with Arboretum %s.", {base.unit_number}) + else + base = arboretum + end +BioInd.writeDebug("Arboretum base: %g", {base.unit_number}) + -- Add to table + global.bi_arboretum_table[base.unit_number] = { + base = base, + pole = pole, + radar = radar, + lamp = lamp + } + -- Link radar to arboretum + global.bi_arboretum_radar_table[radar.unit_number] = base.unit_number + +--~ BioInd.writeDebug("Added new arboretum: %s", {global.bi_arboretum_table}) + + cnt = cnt + 1 + end +end +BioInd.writeDebug("Recreated hidden entities for %s Arboretums.", {cnt}) + + + +------------------------------------------------------------------------------------ +-- Power Rail -- +------------------------------------------------------------------------------------ +cnt = 0 + +-- Empty old list +for p, power_rail in pairs(global.bi_power_rail_table or {}) do + -- We can't remove all hidden poles at once because they are used in other compound + -- entities as well! + --~ remove_stored_entities(power_rail, {"pole"}) + -- Remove entry from table + global.bi_power_rail_table[p] = nil + cnt = cnt + 1 +end +BioInd.writeDebug("Removed hidden entities from %s Powered rails.", {cnt}) +BioInd.show("global.bi_power_rail_table", serpent.block(global.bi_power_rail_table)) + +-- Generate new list +local power_rails, neighbour +pole_name = "bi-power-rail-hidden-pole" +cnt = 0 + +for s, surface in pairs(game.surfaces or {}) do + -- Find all power rails on surface (there may be some that haven't been in our table)! + power_rails = surface.find_entities_filtered({ + name = {"bi-straight-rail-power","bi-curved-rail-power"} + }) +BioInd.show("table_size(power_rails) after finding power_rails on surface", table_size(power_rails)) + -- Unlike the other entities, power rails interact with each other. So lets's + -- recreate all hidden poles and update our tables before trying to connect + -- the poles! + for p, power_rail in ipairs(power_rails or {}) do +BioInd.show("p", p) +--~ BioInd.show("power_rail.unit_number", power_rail.unit_number) + + --~ -- In case our tables haven't been properly updated, there may still be power + --~ -- rails with hidden entities around -- remove them! + --~ remove_entities(power_rail, {pole_name}) + + -- Recreate hidden entities + recreate_entities(global.bi_power_rail_table, power_rail, {pole = pole_name}) + + -- Disconnect pole + global.bi_power_rail_table[power_rail.unit_number].pole.disconnect_neighbour() + + end +BioInd.show("table_size(global.bi_power_rail_table)", table_size(global.bi_power_rail_table)) + + + -- Rewire the power rails! + for p, power_rail in pairs(global.bi_power_rail_table or {}) do +BioInd.show("p", p) +--~ BioInd.writeDebug("power_rail", {power_rail}, "line") + + base = power_rail.base + pole = power_rail.pole +--~ BioInd.show("base.valid", base.valid) +--~ BioInd.show("pole.valid", pole.valid) + + -- Look for connecting rails at front and back of the new rail + for s, side in ipairs( {"front", "back"} ) do +BioInd.writeDebug("Looking for rails at %s.\tbase.valid: %s\tpole.valid: %s", {side, base.valid, pole.valid}) + -- Look in all three directions + for d, direction in ipairs( {"left", "straight", "right"} ) do + neighbour = base.get_connected_rail{ + rail_direction = defines.rail_direction[side], + rail_connection_direction = defines.rail_connection_direction[direction] + } + +BioInd.writeDebug("Rail %s of %s (%g):\t%s (%s)", {direction, base.name, base.unit_number, (neighbour and neighbour.name or "nil"), (neighbour and neighbour.unit_number or "nil")}) + + -- Only make a connection if found rail is a powered rail + -- (We'll know it's the right type if we find it in our table!) + neighbour = neighbour and neighbour.valid and global.bi_power_rail_table[neighbour.unit_number] + if neighbour then +--~ BioInd.show("neighbour", neighbour) +--~ BioInd.show("neighbour.base", neighbour and neighbour.base and neighbour.base.valid and neighbour.base.unit_number) +--~ BioInd.show("neighbour.pole", neighbour and neighbour.pole and neighbour.pole.valid and neighbour.pole.unit_number) + pole.connect_neighbour(neighbour.pole) + BioInd.writeDebug("Connected poles!") + end + end + end + + -- Look for Power-rail connectors +--~ BioInd.show("base", base) +--~ BioInd.show("base.position", base.position) +--~ BioInd.show("pole", pole and pole.unit_number) +--~ BioInd.show("pole.valid", pole and pole.valid) + + connectors = surface.find_entities_filtered{ + position = base.position, + radius = BioInd.POWER_TO_RAIL_WIRE_DISTANCE, -- maximum_wire_distance of Power-to-rail-connectors + name = "bi-power-to-rail-pole" + } +BioInd.show("table_size(connectors)", table_size(connectors)) + + -- Connect to just one Power-rail connector! + for c, connector in ipairs(connectors or {}) do +--~ BioInd.writeDebug("Network ID pole %s: %s\tNetwork ID connector %s: %s", + --~ {pole.unit_number, pole.electric_network_id, connector.unit_number, connector.electric_network_id}) + if pole.electric_network_id ~= connector.electric_network_id then + pole.connect_neighbour(connector) +BioInd.writeDebug("Connected %s (%s) to connector %s (%s)", {pole.name, pole.unit_number, connector.name, connector.unit_number}) +--~ BioInd.writeDebug("Network ID pole %s: %s\tNetwork ID connector %s: %s", + --~ {pole.unit_number, pole.electric_network_id, connector.unit_number, connector.electric_network_id}) + break + end + end +BioInd.writeDebug("Finished search for connectors") + cnt = cnt + 1 + end +end +BioInd.writeDebug("Recreated hidden entities for %s Powered rails.", {cnt}) + + + +--~ ------------------------------------------------------------------------------------ +--~ -- Solar Farm -- +--~ ------------------------------------------------------------------------------------ +--~ cnt = 0 + +--~ -- Empty old list +--~ for s, solar_farm in pairs(global.bi_solar_farm_table or {}) do + --~ -- Remove hidden entities from solar_boilers in our table + + --~ -- Remove entry from table + --~ global.bi_solar_farm_table[s] = nil + + --~ cnt = cnt + 1 +--~ end +--~ BioInd.writeDebug("Removed hidden entities from %s Solar farms.", {cnt}) + + +--~ -- Generate new list +--~ pole_name = "bi-hidden-power-pole" + +--~ cnt = 0 + +--~ for s, surface in pairs(game.surfaces or {}) do + --~ -- Find all solar farms on surface! + --~ solar_farms = surface.find_entities_filtered({name = "bi-bio-solar-farm"}) + --~ for sf, solar_farm in ipairs(solar_farms or {}) do + -- Make a clean slate! + --~ -- Recreate hidden entities + --~ pole = surface.create_entity({ + --~ name = pole_name, + --~ position = solar_farm.position, + --~ force = solar_farm.force + --~ }) + --~ make_unminable({pole}) + --~ -- Add to table + --~ global.bi_solar_farm_table[solar_farm.unit_number] = { + --~ base = solar_farm, + --~ pole = pole + --~ } + --~ -- Recreate hidden entities + --~ recreate_entities(global.bi_solar_farm_table, solar_farm, {pole = pole_name}) + + --~ cnt = cnt + 1 + --~ end +--~ end +--~ BioInd.writeDebug("Recreated hidden entities for %s Solar farms.", {cnt}) + + +------------------------------------------------------------------------------------ +-- Musk floor -- +------------------------------------------------------------------------------------ +cnt = 0 + +-- Create tables for storing force information on tiles +global.bi_musk_floor_table = global.bi_musk_floor_table or {} +-- Lookup table for force at tile position +global.bi_musk_floor_table.tiles = global.bi_musk_floor_table.tiles or {} +-- Lookup table for tiles placed by force +global.bi_musk_floor_table.forces = global.bi_musk_floor_table.forces or {} + + +local musk_floor_tiles +local tile_name = "bi-solar-mat" +pole_name = "bi-musk-mat-hidden-pole" +panel_name = "bi-musk-mat-hidden-panel" +local pole_type = "electric-pole" +local panel_type = "solar-panel" + +-- Remove panels and poles without tile from surfaces +local cnt_panel = 0 +local cnt_pole = 0 +for s, surface in pairs(game.surfaces or {}) do + local panels = surface.find_entities_filtered({name = panel_name, type = panel_type}) + for p, panel in ipairs(panels or {}) do + local x = surface.count_tiles_filtered({ + position = panel.position, + name = tile_name, + limit = 1 + }) + if x == 0 then + BioInd.writeDebug("Removing %s at position %s because there is no %s.", {panel.name, panel.position, tile_name}) + panel.destroy() + cnt_panel = cnt_panel + 1 + end + end + + local poles = surface.find_entities_filtered({name = pole_name, type = pole_type}) + for p, pole in ipairs(poles or {}) do + local x = surface.count_tiles_filtered({ + position = pole.position, + name = tile_name, + radius = 0.5, + limit = 1 + }) + if x == 0 then + BioInd.writeDebug("Removing %s at position %s because there is no %s.", {pole.name, pole.position, tile_name}) + pole.destroy() + cnt_pole = cnt_pole + 1 + end + end +end +BioInd.writeDebug("Removed %g hidden solar panels and %g hidden poles because they were not on %s.", {cnt_panel, cnt_pole, tile_name}) + +cnt_panel = 0 +cnt_pole = 0 +-- Generate new list +local x, y, poles, pole, panels, panel, force_name +for s, surface in pairs(game.surfaces or {}) do + local tiles = surface.find_tiles_filtered{name = tile_name} + for t, tile in ipairs(tiles or {}) do + x = tile.position.x or tile.position[1] + y = tile.position.y or tile.position[2] + + -- Check that there's a solar panel + panels = surface.find_entities_filtered({ + position = {x + 0.5, y + 0.5}, + name = panel_name, + type = panel_type, + limit = 1 + }) + panel = panels and panels[1] + if panel then + force_name = panel.force and panel.force.name + end + + -- Check that there's a pole + panels = surface.find_entities_filtered({ + position = {x + 0.5, y + 0.5}, + name = pole_name, + type = pole_type, + limit = 1 + }) + pole = poles and poles[1] + if pole and not force then + force_name = pole.force and pole.force.name + end + + force_name = force_name or "BI-Musk_floor_general_owner" + + -- Create/set force for panel + if panel then + panel.force = force_name + else + panel = surface.create_entity({ + name = panel_name, + type = panel_type, + force = force_name, + position = {x + 0.5, y + 0.5}, + }) + cnt_panel = cnt_panel + 1 + end + -- Create/set force for pole + if pole then + pole.force = force_name + else + pole = surface.create_entity({ + name = pole_name, + type = pole_type, + force = force_name, + position = {x + 0.5, y + 0.5}, + }) + cnt_pole = cnt_pole + 1 + end + + make_unminable({panel, pole}) + + -- Add to global tables + global.bi_musk_floor_table.tiles[x] = global.bi_musk_floor_table.tiles[x] or {} + global.bi_musk_floor_table.tiles[x][y] = force_name + + global.bi_musk_floor_table.forces[force_name] = global.bi_musk_floor_table.forces[force_name] or {} + global.bi_musk_floor_table.forces[force_name][x] = global.bi_musk_floor_table.forces[force_name][x] or {} + global.bi_musk_floor_table.forces[force_name][x][y] = true + end +end +BioInd.writeDebug("Created %g hidden solar panels and %g hidden poles.\nglobal.bi_musk_floor_table.tiles: %s\nglobal.bi_musk_floor_table.forces: %s", {cnt_panel, cnt_pole, global.bi_musk_floor_table.tiles, global.bi_musk_floor_table.forces}) + +BioInd.show("table_size(created_entities)", table_size(created_entities)) +created_entities = nil diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.31_+_1.01.01.json b/Bio_Industries_2/migrations/Bio_Industries_0.18.31_+_1.01.01.json new file mode 100644 index 0000000..ce97ae4 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.31_+_1.01.01.json @@ -0,0 +1,20 @@ +{ + "item": + [ + ["fertiliser", "fertilizer"], + ["bi-adv-fertiliser", "bi-adv-fertilizer"] + ], + + "recipe": + [ + ["bi-adv-fertiliser-1", "bi-adv-fertilizer-1"], + ["bi-adv-fertiliser-2", "bi-adv-fertilizer-2"], + ["bi-fertiliser-1", "bi-fertilizer-1"], + ["bi-fertiliser-2", "bi-fertilizer-2"] + ], + + "technology": + [ + ["bi-tech-fertiliser", "bi-tech-fertilizer"] + ] +} diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.31_+_1.01.01.lua b/Bio_Industries_2/migrations/Bio_Industries_0.18.31_+_1.01.01.lua new file mode 100644 index 0000000..d3f57ed --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.31_+_1.01.01.lua @@ -0,0 +1,12 @@ +------------------------------------------------------------------------------------ +-- Just remove some obsolete global tables! +------------------------------------------------------------------------------------ +--~ local BioInd = require('__Bio_Industries__/common')('Bio_Industries') + +if global and global.bi then + global.bi.terrains = nil + global.bi.seed_bomb = nil + BioInd.writeDebug("Removed obsolete tables from global!") +end + +table.sort(global, function(a, b) return a < b end) diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.32_+_1.01.02.lua.bak b/Bio_Industries_2/migrations/Bio_Industries_0.18.32_+_1.01.02.lua.bak new file mode 100644 index 0000000..ad7c999 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.32_+_1.01.02.lua.bak @@ -0,0 +1,29 @@ +------------------------------------------------------------------------------------ +-- BioGardens will now have a hidden pole. It can't be hooked up unless Fluid +-- fertilizer is active (maximum_wire_distance = 0), but it still needs to be there. +------------------------------------------------------------------------------------ +local BioInd = require('__Bio_Industries__/common')('Bio_Industries') + +-- Make sure the global table exists! +global.bi_bio_garden_table = {} + +local bio_gardens = {} +local hidden_entities = {pole = "bi-bio-garden-hidden-pole"} + +for s, surface in pairs(game.surfaces) do + bio_gardens = surface.find_entities_filtered{ + name = "bi-bio-garden", + type = "assembling-machine", + } + + for g, garden in ipairs(bio_gardens or {}) do + --~ BioInd.create_entities(global.bi_bio_garden_table, garden, hidden_entities, garden.position) + BioInd.create_entities(global.bi_bio_garden_table, garden, hidden_entities) + BioInd.writeDebug("Stored Bio garden %g in table: %s", {garden.unit_number, global.bi_bio_garden_table[garden.unit_number]}) + end +end + + +-- Create a table where we can store the last state of certain mod settings. +global.mod_settings = global.mod_settings or {} +global.mod_settings.BI_Easy_Bio_Gardens = BioInd.get_startup_setting("BI_Easy_Bio_Gardens") diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.34_+_1.01.04.lua.bak b/Bio_Industries_2/migrations/Bio_Industries_0.18.34_+_1.01.04.lua.bak new file mode 100644 index 0000000..0eab507 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.34_+_1.01.04.lua.bak @@ -0,0 +1,122 @@ +log("Entered migration script 1_00_04.lua of \"" .. script.mod_name .. "\".") + +-- Add functions that are also used in other files (debugging output etc.) +local BioInd = require("__" .. script.mod_name .. "__.common")(script.mod_name) + +------------------------------------------------------------------------------------ +-- Make sure that all compound entities have all the hidden entities they need! +------------------------------------------------------------------------------------ + +-- Compile a list of the entities we need to consider (we can ignore overlay entities) +local check_entities = {} +for name, data in pairs(BioInd.compound_entities) do + if not name:match("^.+%-area$") then + check_entities[name] = data + end +end + + +local function add_hidden_entity(tab, base, hidden_entity) + local optional, pos + + local entity_name = check_entities[base.name].hidden[hidden_entity] + + ------------------------------------------------------------------------------------ + -- Pre-processing + ------------------------------------------------------------------------------------ + pos = BioInd.normalize_position(base.position) + + -- Bio cannon + if tab == "bi_bio_cannon_table" then + optional = {delay = 0} + + -- Arboretum + elseif tab == "bi_arboretum_table" and hidden_entity == "radar" then + -- Radar position is off! + pos = {pos.x - 3.5, pos.y + 3.5} + end +BioInd.show("base.unit_number", base.unit_number) +BioInd.show("size of global[tab]", table_size(global[tab])) + + + ------------------------------------------------------------------------------------ + -- Create hidden entity + ------------------------------------------------------------------------------------ + --~ BioInd.create_entities(global[tab], base, {[hidden_entity] = entity_name}, pos, optional) + BioInd.create_entities(global[tab], base, {[hidden_entity] = entity_name}, optional) + + ------------------------------------------------------------------------------------ + -- Post-processing + ------------------------------------------------------------------------------------ + -- Arboretum + if tab == "bi_arboretum_table" and hidden_entity == "radar" then + local radar = global[tab][base.unit_number].radar + global.bi_arboretum_radar_table[radar.unit_number] = base.unit_number + + -- Power Rail + elseif tab == "bi_power_rail_table" then + BioInd.connect_power_rail(base) + end + +end + + +local entity, entities + +-- Find all compound entities +for s_name, surface in pairs(game.surfaces) do +BioInd.show("Looking for compound entities on surface", s_name) + + for entity_name, entity_data in pairs(check_entities) do +BioInd.show("Looking for", entity_name) + -- Get list of all base entities + entities = surface.find_entities_filtered({name = entity_name}) +BioInd.show("Number of found entities", #entities) + + -- Check the base entity is in the global table + global[entity_data.tab] = global[entity_data.tab] or {} + + for b, base in ipairs(entities) do + -- The base entity has been registered + if global[entity_data.tab][base.unit_number] then + entity = global[entity_data.tab][base.unit_number] +BioInd.writeDebug("%s is a registered entity. Checking hidden entities: %s", {BioInd.print_name_id(base), entity}) + -- Check hidden entities + for h_key, h_name in pairs(entity_data.hidden) do + -- Must add hidden entity + if not (entity[h_key] and entity[h_key].valid) then +BioInd.writeDebug("Adding hidden %s to %s", {h_key, BioInd.print_name_id(base)}) + add_hidden_entity(entity_data.tab, base, h_key) + -- Nothing to do + else +BioInd.writeDebug("%s is OK!", {BioInd.print_name_id(entity[h_key])}) + end + end + + -- Found unregistered entity! + else +BioInd.writeDebug("%s has not been registered. Adding hidden entities: %s", {BioInd.print_name_id(base), entity}) + -- Register base entity + global[entity_data.tab][base.unit_number] = {base = base} +BioInd.writeDebug("Added %s to global[%s]", {BioInd.print_name_id(base), entity_data.tab}) + -- Add hidden entities + for h_key, h_name in pairs(entity_data.hidden) do +BioInd.writeDebug("Adding hidden %s for %s", {h_key, BioInd.print_name_id(base)}) + add_hidden_entity(entity_data.tab, base, h_key) + end + end + + end + end +end + + +------------------------------------------------------------------------------------ +-- Reset effects of researched technologies! +------------------------------------------------------------------------------------ +for force_name, force in pairs(game.forces) do + force.reset_technology_effects() + BioInd.show("Reset technology effects for force", force_name) +end + +log("End of migration script 1_00_04.lua of \"" .. script.mod_name .. "\".") diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.35_+_1.01.05.json b/Bio_Industries_2/migrations/Bio_Industries_0.18.35_+_1.01.05.json new file mode 100644 index 0000000..89dd722 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.35_+_1.01.05.json @@ -0,0 +1,17 @@ +{ + "entity": + [ + ["bi-bio-farm-electric-pole", "bi-bio-farm-hidden-pole"], + ["bi-rail-hidden-power-pole", "bi-rail-power-hidden-pole"], + ["bi-musk-mat-pole", "bi-musk-mat-hidden-pole"], + + ["bi-bio-farm-solar-panel", "bi-bio-farm-hidden-panel"], + ["bi-musk-mat-solar-panel", "bi-musk-mat-hidden-panel"], + ["bi-solar-boiler-panel", "bi-solar-boiler-hidden-panel"], + + ["bi-arboretum-radar", "bi-arboretum-hidden-radar"], + ["Bio-Cannon-r", "bi-bio-cannon-hidden-radar"] + ] + +} + --~ ["bi-bio-farm-light", "bi-arboretum-hidden-lamp"], diff --git a/Bio_Industries_2/migrations/Bio_Industries_0.18.35_+_1.01.05.lua b/Bio_Industries_2/migrations/Bio_Industries_0.18.35_+_1.01.05.lua new file mode 100644 index 0000000..2078143 --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_0.18.35_+_1.01.05.lua @@ -0,0 +1,39 @@ +-- Add functions that are also used in other files (debugging output etc.) +--~ local BioInd = require("__" .. script.mod_name .. "__.common")(script.mod_name) +BioInd.writeDebug("Entered migration script 0.18.35+1.01.05") + +--~ require("util") + + +-- Migrating global tables to new names +for new, old in pairs({ + bi_arboretum_table = "Arboretum_Table", + bi_arboretum_radar_table = "Arboretum_Radar_Table", + bi_arboretum_recipe_table = "Arboretum_Recipes", + bi_bio_cannon_table = "Bio_Cannon_Table", +}) do + + global[new] = util.table.deepcopy(global[old]) + global[old] = nil + BioInd.writeDebug("Migrated global[\"%s\"] to global[\"%s\"].", {old, new}) +end + +-- Migrate renamed hidden entities! +local boilers = global["bi_solar_boiler_table"] + +-- Check the entries of all solar boilers +for b, boiler in pairs(boilers or {}) do + if boiler.boiler then + -- Only "boiler" exists (default) + if not boiler.panel then + boiler.panel = boiler.boiler + boiler.boiler = nil + BioInd.writeDebug("Moved \"boiler\" to \"panel\" in global[\"bi_solar_boiler_table\"][%s]: %s", + {b, boilers[b]}) + -- This should never be needed! + else + boiler.boiler = nil + BioInd.writeDebug("\"Panel\" already exists! Removed \"boiler\" from global[\"bi_solar_boiler_table\"][%s]: %s", {b, boilers[b]}) + end + end +end diff --git a/Bio_Industries_2/migrations/Bio_Industries_1.01.19.lua b/Bio_Industries_2/migrations/Bio_Industries_1.01.19.lua new file mode 100644 index 0000000..791df3a --- /dev/null +++ b/Bio_Industries_2/migrations/Bio_Industries_1.01.19.lua @@ -0,0 +1,46 @@ +--~ -- If a tutorial from Tips and Tricks is started, the migration will be applied to a +--~ -- mod named "level" and none of our global variables will be defined.) +--~ if script.mod_name ~= "autodrive" then + --~ AD.entered_file("leave", "Nothing to do for mod \""..script.mod_name.."\"!") + --~ return +--~ end +--~ AD.entered_file() + + +-- Add functions that are also used in other files (debugging output etc.) +--~ local BioInd = require("__" .. script.mod_name .. "__.common")(script.mod_name) +BioInd.writeDebug("Entered migration script 1.01.19") + +--~ require("util") + + +-- Restructure tables for growing trees. They used to be arrays of treedata that had +-- to be resorted by treedata.time whenever a new tree was added, so we could stop +-- the on_tick event when the treedata.time of the first array was in the future. +-- Now we index these tables directly by tick, so we can skip sorting the tables. +local function convert_tab(tab) + local ret = {} + local tick + + for t, tree_data in pairs(tab) do + tick = tree_data.time + --~ tree_data.time = nil + + ret[tick] = ret[tick] or {} + table.insert(ret[tick], tree_data) + end + + return ret +end + +local tab = "tree_growing" +BioInd.writeDebug("Converting table global.bi[%s]", {tab}) +global.bi[tab] = convert_tab(global.bi[tab]) +BioInd.show("global.bi["..tab.."]", global.bi[tab]) + +for s = 1, 4 do + tab = "tree_growing_stage_"..s + BioInd.writeDebug("Converting table global.bi[%s]", {tab}) + global.bi[tab] = convert_tab(global.bi[tab]) +BioInd.show("global.bi["..tab.."]", global.bi[tab]) +end diff --git a/Bio_Industries_2/prototypes/Bio_Cannon/damage-type.lua b/Bio_Industries_2/prototypes/Bio_Cannon/damage-type.lua new file mode 100644 index 0000000..1b01779 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Cannon/damage-type.lua @@ -0,0 +1,11 @@ +--~ local BioInd = require('common')('Bio_Industries') + +data:extend({ + +--- Bio Damage for new Ammo + { + type = "damage-type", + name = "Biological" + }, + +}) diff --git a/Bio_Industries_2/prototypes/Bio_Cannon/entity.lua b/Bio_Industries_2/prototypes/Bio_Cannon/entity.lua new file mode 100644 index 0000000..802b535 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Cannon/entity.lua @@ -0,0 +1,297 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" +local ENTITYPATH = BioInd.modRoot .. "/graphics/entities/bio_cannon/" +local REMNANTSPATH = BioInd.modRoot .. "/graphics/entities/remnants/" + +require "util" + +if BI.Settings.Bio_Cannon then + + function preparing_animation() + return { + layers = { + { + priority = "high", + width = 346, + height = 336, + direction_count = 1, + frame_count = 12, + line_length = 6, + run_mode = "forward", + axially_symmetrical = false, + shift = {0, -0.8}, + filename = ENTITYPATH .. "bio_cannon_anim.png", + hr_version = { + priority = "high", + width = 692, + height = 672, + direction_count = 1, + frame_count = 12, + line_length = 6, + run_mode = "forward", + axially_symmetrical = false, + shift = {0, -0.8}, + filename = ENTITYPATH .. "hr_bio_cannon_anim.png", + scale = 0.5 + } + } + + } + + } + end + + function prepared_animation() -- OPEN + return { + layers = { + { + priority = "high", + width = 346, + height = 336, + direction_count = 1, + frame_count = 1, + line_length = 1, + axially_symmetrical = false, + shift = {0, -0.8}, + filename = ENTITYPATH .. "bio_cannon_open.png", + hr_version = { + priority = "high", + width = 692, + height = 672, + direction_count = 1, + frame_count = 1, + line_length = 1, + axially_symmetrical = false, + shift = {0, -0.8}, + filename = ENTITYPATH .. "hr_bio_cannon_open.png", + scale = 0.5 + } + }, { + priority = "high", + width = 160, + height = 336, + direction_count = 1, + frame_count = 1, + line_length = 1, + axially_symmetrical = false, + shift = {5, -0.95}, + filename = ENTITYPATH .. "bio_cannon_shadow.png", + draw_as_shadow = true, + hr_version = { + priority = "high", + width = 320, + height = 672, + direction_count = 1, + frame_count = 1, + line_length = 1, + axially_symmetrical = false, + shift = {5, -0.95}, + filename = ENTITYPATH .. "hr_bio_cannon_shadow.png", + draw_as_shadow = true, + scale = 0.5 + } + } + } + } + end + + function folding_animation() + return { + layers = { + + { + priority = "high", + width = 346, + height = 336, + direction_count = 1, + frame_count = 12, + line_length = 6, + run_mode = "backward", + axially_symmetrical = false, + shift = {0, -0.8}, + filename = ENTITYPATH .. "bio_cannon_anim.png", + hr_version = { + priority = "high", + width = 692, + height = 672, + direction_count = 1, + frame_count = 12, + line_length = 6, + run_mode = "backward", + axially_symmetrical = false, + shift = {0, -0.8}, + filename = ENTITYPATH .. "hr_bio_cannon_anim.png", + scale = 0.5 + } + } + + } + } + end + + function folded_animation() -- CLOSED + return { + layers = { + { + priority = "high", + width = 346, + height = 336, + direction_count = 1, + frame_count = 1, + line_length = 1, + axially_symmetrical = false, + shift = {0, -0.8}, + filename = ENTITYPATH .. "bio_cannon_anim.png", + + hr_version = { + priority = "high", + width = 692, + height = 672, + direction_count = 1, + frame_count = 1, + line_length = 1, + axially_symmetrical = false, + shift = {0, -0.8}, + filename = ENTITYPATH .. "hr_bio_cannon_anim.png", + scale = 0.5 + } + + }, { + priority = "high", + width = 346, + height = 336, + direction_count = 1, + frame_count = 1, + line_length = 1, + axially_symmetrical = false, + shift = {0.2, -0.95}, + filename = ENTITYPATH .. "bio_cannon_shadow.png", + draw_as_shadow = true, + + hr_version = { + priority = "high", + width = 692, + height = 672, + direction_count = 1, + frame_count = 1, + line_length = 1, + axially_symmetrical = false, + shift = {0.2, -0.95}, + filename = ENTITYPATH .. "hr_bio_cannon_shadow.png", + draw_as_shadow = true, + scale = 0.5 + } + + } + } + } + end + + data:extend({ + + -- Bio Cannon Artillery + { + type = "ammo-turret", + name = "bi-bio-cannon", + icon = ICONPATH .. "biocannon_icon.png", + icon_size = 64, + icons = {{icon = ICONPATH .. "biocannon_icon.png", icon_size = 64}}, + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + -- makes cannon blueprintable + placeable_by = {item = "bi-bio-cannon", count = 1}, + open_sound = { + filename = "__base__/sound/machine-open.ogg", + volume = 0.85 + }, + close_sound = { + filename = "__base__/sound/machine-close.ogg", + volume = 0.75 + }, + minable = {mining_time = 10, result = "bi-bio-cannon"}, + max_health = 900, + corpse = "bi-bio-cannon-remnants", + dying_explosion = "massive-explosion", + automated_ammo_count = 10, + resistances = { + {type = "fire", percent = 90}, + {type = "explosion", percent = 30}, + {type = "impact", percent = 30} + }, + collision_box = {{-4.20, -4.20}, {4.20, 4.20}}, + selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, + order = "i[items][Bio_Cannon]", + inventory_size = 1, + prepare_range = 120, + preparing_speed = 0.012, + attack_parameters = { + type = "projectile", + ammo_category = "Bio_Cannon_Ammo", + cooldown = 600, + warmup = 600, + -- ~ range = 0, + range = 120, + min_range = 20, + projectile_creation_distance = 1.8, + action = {} + }, + folding_speed = 0.012, + preparing_animation = preparing_animation(), + prepared_animation = prepared_animation(), + -- attacking_animation = attacking_animation(), + folding_animation = folding_animation(), + folded_animation = folded_animation(), + call_for_help_radius = 90, + attack_target_mask = {"Bio_Cannon_Ammo"} + }, + + ---- Corpse / Remnants + { + type = "corpse", + name = "bi-bio-cannon-remnants", + icon_size = 64, + icons = {{icon = ICONPATH .. "biocannon_icon.png", icon_size = 64}}, + + flags = {"placeable-neutral", "not-on-map"}, + subgroup = "defensive-structure-remnants", + order = "a-c-a", + selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, + tile_width = 3, + tile_height = 3, + selectable_in_game = false, + time_before_removed = 60 * 60 * 15, -- 15 minutes + final_render_layer = "remnants", + remove_on_tile_placement = false, + animation = make_rotated_animation_variations_from_sheet(1, { + layers = { + + { + + width = 346, + height = 336, + direction_count = 1, + frame_count = 1, + line_length = 1, + axially_symmetrical = false, + shift = {0, -0.8}, + filename = REMNANTSPATH .. "bio_cannon_remnant.png", + + hr_version = { + width = 692, + height = 672, + direction_count = 1, + frame_count = 1, + line_length = 1, + axially_symmetrical = false, + shift = {0, -0.8}, + filename = REMNANTSPATH .. "hr_bio_cannon_remnant.png", + scale = 0.5 + } + } + + } + }) + } + + }) +end diff --git a/Bio_Industries_2/prototypes/Bio_Cannon/item-group.lua b/Bio_Industries_2/prototypes/Bio_Cannon/item-group.lua new file mode 100644 index 0000000..416ab6e --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Cannon/item-group.lua @@ -0,0 +1,17 @@ +--~ local BioInd = require('common')('Bio_Industries') + +if BI.Settings.Bio_Cannon then + data:extend({ + { + type = "ammo-category", + name = "Bio_Cannon_Ammo", + order = "1" + }, + + { + type = "trigger-target-type", + name = "Bio_Cannon_Ammo" + } + + }) +end diff --git a/Bio_Industries_2/prototypes/Bio_Cannon/item.lua b/Bio_Industries_2/prototypes/Bio_Cannon/item.lua new file mode 100644 index 0000000..4c40b50 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Cannon/item.lua @@ -0,0 +1,28 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +if BI.Settings.Bio_Cannon then + data:extend({ + -- Hive Buster Turret + { + type = "item", + name = "bi-bio-cannon", + localised_name = {"entity-name.bi-bio-cannon"}, + localised_description = {"entity-description.bi-bio-cannon"}, + icon = ICONPATH .. "biocannon_icon.png", + icon_size = 64, + icon_mipmaps = 1, + icons = { + { + icon = ICONPATH .. "biocannon_icon.png", + icon_size = 64, + } + }, + subgroup = "defensive-structure", + order = "x[turret]-x[gun-turret]", + place_result = "bi-bio-cannon", + stack_size = 1, + }, + }) +end diff --git a/Bio_Industries_2/prototypes/Bio_Cannon/projectiles-entity.lua b/Bio_Industries_2/prototypes/Bio_Cannon/projectiles-entity.lua new file mode 100644 index 0000000..4d82326 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Cannon/projectiles-entity.lua @@ -0,0 +1,350 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/entities/bio_cannon/projectiles/" + +require "util" + +if BI.Settings.Bio_Cannon then + + if mods["Natural_Evolution_Enemies"] then + NE_Damage = 2 + else + NE_Damage = 1 + end + + + + data:extend({ + --Projectile + + -- Bio Cannon Ammo + + -- Prototype + { + type = "projectile", + name = "bi-bio-cannon-proto-ammo", + flags = {"not-on-map"}, + acceleration = 0.0004, + action = { + { + type = "area", + radius = 2, + action_delivery = { + type = "instant", + target_effects = { + { + type = "damage", + damage = {amount = 80 * NE_Damage, type = "physical"} + }, + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + + } + } + }, + + + }, + light = {intensity = 0.7, size = 3}, + animation = { + filename = ICONPATH .. "bio_cannon_proto_ammo.png", + priority = "extra-high", + width = 18, + height = 47, + scale = 0.85, + frame_count = 1 + }, + shadow = { + filename = ICONPATH .. "bio_cannon_ammo-shadow.png", + priority = "extra-high", + width = 18, + height = 47, + scale = 0.85, + frame_count = 1 + }, + + smoke = { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, 1}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + + -- Basic + { + type = "projectile", + name = "bi-bio-cannon-basic-ammo", + flags = {"not-on-map"}, + acceleration = 0.0005, + action = { + { + type = "area", + radius = 8, + action_delivery = { + type = "instant", + target_effects = { + { + type = "damage", + damage = {amount = 120 * NE_Damage, type = "physical"} + }, + { + type = "damage", + damage = {amount = 180 * NE_Damage, type = "explosion"} + }, + + } + } + }, + { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "nested-result", + action = { + type = "area", + target_entities = false, + repeat_count = 10, + radius = 2, + action_delivery = { + type = "projectile", + projectile = "NE-Napalm-Small", + starting_speed = 0.5 + } + } + }, + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + { + type = "create-entity", + entity_name = "bio-cannon-explosion", + }, + } + + } + }, + + }, + light = {intensity = 0.7, size = 6}, + animation = { + filename = ICONPATH .. "bio_cannon_basic_ammo.png", + priority = "extra-high", + width = 18, + height = 47, + frame_count = 1 + }, + shadow = { + filename = ICONPATH .. "bio_cannon_ammo-shadow.png", + priority = "extra-high", + width = 18, + height = 47, + frame_count = 1 + }, + --[[ + sound = { + { + filename = "__Natural_Evolution_Buildings__/sound/launch.ogg", + volume = 4.0 + }, + }, + ]] + smoke = { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, 1}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + --- Poison + { + type = "projectile", + name = "bi-bio-cannon-poison-ammo", + flags = {"not-on-map"}, + acceleration = 0.0006, + action = { + { + type = "area", + radius = 12, + action_delivery = { + type = "instant", + target_effects = { + { + type = "damage", + damage = {amount = 120 * NE_Damage, type = "physical"} + }, + { + type = "damage", + damage = {amount = 180 * NE_Damage, type = "explosion"} + }, + { + type = "damage", + damage = {amount = 250 * NE_Damage, type = "poison"} + }, + } + } + }, + { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "nested-result", + action = { + type = "area", + target_entities = false, + repeat_count = 20, + radius = 3, + action_delivery = { + type = "projectile", + projectile = "NE-Napalm-Small", + starting_speed = 0.5 + } + } + }, + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + { + type = "create-entity", + entity_name = "bio-cannon-explosion", + }, + } + + } + }, + }, + light = {intensity = 0.8, size = 7}, + animation = { + filename = ICONPATH .. "bio_cannon_poison_ammo.png", + priority = "extra-high", + width = 18, + height = 47, + frame_count = 1 + }, + shadow = { + filename = ICONPATH .. "bio_cannon_ammo-shadow.png", + priority = "extra-high", + width = 18, + height = 47, + frame_count = 1 + }, + --[[ + sound = { + { + filename = "__Natural_Evolution_Buildings__/sound/launch.ogg", + volume = 4.0 + }, + }, + ]] + smoke = { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, 1}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + + --- Bio Cannon Explosion + { + type = "smoke-with-trigger", + name = "bio-cannon-explosion", + flags = {"not-on-map"}, + show_when_smoke_off = true, + animation = { + filename = ICONPATH .. "explosion.png", + priority = "low", + width = 256, + height = 128, + frame_count = 12, + animation_speed = 0.2, + line_length = 3, + scale = 2, + }, + sound = { + { + filename = "__Bio_Industries__/sound/boom.ogg", + volume = 4.0 + }, + }, + slow_down_factor = 0, + affected_by_wind = false, + cyclic = false, + duration = 60 * 5, + spread_duration = 10, + }, + + --- Napalm Small + { + type = "projectile", + name = "NE-Napalm-Small", + flags = {"not-on-map"}, + acceleration = 0, + action = { + { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "create-entity", + entity_name = "fire-flame" + }, + + } + } + }, + + }, + animation = { + filename = "__core__/graphics/empty.png", + frame_count = 1, + width = 1, + height = 1, + priority = "high" + }, + shadow = { + filename = "__core__/graphics/empty.png", + frame_count = 1, + width = 1, + height = 1, + priority = "high" + } + }, + + }) +end diff --git a/Bio_Industries_2/prototypes/Bio_Cannon/projectiles-item.lua b/Bio_Industries_2/prototypes/Bio_Cannon/projectiles-item.lua new file mode 100644 index 0000000..b4c7801 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Cannon/projectiles-item.lua @@ -0,0 +1,118 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/weapon/" + +if BI.Settings.Bio_Cannon then + + data:extend({ + + -- Prototype Artillery Proto Ammo + { + type = "ammo", + name = "bi-bio-cannon-proto-ammo", + icon = ICONPATH .. "bio_cannon_proto_ammo_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_cannon_proto_ammo_icon.png", + icon_size = 64, + } + }, + ammo_type = { + --~ category = "artillery-shell", + category = "Bio_Cannon_Ammo", + target_type = "direction", + action = { + { + type = "direct", + action_delivery = { + type = "projectile", + projectile = "bi-bio-cannon-proto-ammo", + starting_speed = 1, + direction_deviation = 0.8, + range_deviation = 0.8, + max_range = 90 + } + } + } + }, + subgroup = "ammo", + order = "z[Bio_Cannon_Ammo]-a[Proto]", + stack_size = 50, + }, + + + -- Prototype Artillery Basic Ammo + { + type = "ammo", + name = "bi-bio-cannon-basic-ammo", + icon = ICONPATH .. "bio_cannon_basic_ammo_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_cannon_basic_ammo_icon.png", + icon_size = 64, + } + }, + ammo_type = { + --~ category = "artillery-shell", + category = "Bio_Cannon_Ammo", + target_type = "direction", + action = { + { + type = "direct", + action_delivery = { + type = "projectile", + projectile = "bi-bio-cannon-basic-ammo", + starting_speed = 1, + direction_deviation = 0.8, + range_deviation = 0.8, + max_range = 90 + } + } + } + }, + subgroup = "ammo", + order = "z[Bio_Cannon_Ammo]-b[Basic]", + stack_size = 50, + }, + + -- Prototype Artillery Poison Ammo + { + type = "ammo", + name = "bi-bio-cannon-poison-ammo", + icon = ICONPATH .. "bio_cannon_poison_ammo_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_cannon_poison_ammo_icon.png", + icon_size = 64, + } + }, + ammo_type = { + --~ category = "artillery-shell", + category = "Bio_Cannon_Ammo", + target_type = "direction", + action = { + { + type = "direct", + action_delivery = { + type = "projectile", + projectile = "bi-bio-cannon-poison-ammo", + starting_speed = 1, + direction_deviation = 0.8, + range_deviation = 0.8, + max_range = 90 + } + } + } + }, + subgroup = "ammo", + order = "z[Bio_Cannon_Ammo]-c[Poison]", + stack_size = 50, + }, + + + }) + +end diff --git a/Bio_Industries_2/prototypes/Bio_Cannon/projectiles-recipe.lua b/Bio_Industries_2/prototypes/Bio_Cannon/projectiles-recipe.lua new file mode 100644 index 0000000..6a8055b --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Cannon/projectiles-recipe.lua @@ -0,0 +1,61 @@ +--~ local BioInd = require('common')('Bio_Industries') + +if BI.Settings.Bio_Cannon then + + data:extend({ + + -- Prototype Artillery Proto Ammo + { + type= "recipe", + name= "bi-bio-cannon-proto-ammo", + localised_name = {"item-name.bi-bio-cannon-proto-ammo"}, + localised_description = {"item-description.bi-bio-cannon-proto-ammo"}, + enabled = false, + energy_required = 2, + ingredients = {{"iron-plate", 10}, {"explosives", 10}}, + result = "bi-bio-cannon-proto-ammo", + result_count = 1, + subgroup = "bi-ammo", + order = "z[Bio_Cannon_Ammo]-a[Proto]", + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + + -- Prototype Artillery Basic Ammo + { + type= "recipe", + name= "bi-bio-cannon-basic-ammo", + localised_name = {"item-name.bi-bio-cannon-basic-ammo"}, + localised_description = {"item-description.bi-bio-cannon-basic-ammo"}, + enabled = false, + energy_required = 4, + ingredients = {{"bi-bio-cannon-proto-ammo", 1}, {"rocket", 10}}, + result = "bi-bio-cannon-basic-ammo", + result_count = 1, + subgroup = "bi-ammo", + order = "z[Bio_Cannon_Ammo]-b[Basic]", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + + -- Prototype Artillery Poison Ammo + { + type= "recipe", + name= "bi-bio-cannon-poison-ammo", + localised_name = {"item-name.bi-bio-cannon-poison-ammo"}, + localised_description = {"item-description.bi-bio-cannon-poison-ammo"}, + enabled = false, + energy_required = 8, + ingredients = {{"bi-bio-cannon-basic-ammo", 1}, {"poison-capsule", 5}, {"explosive-rocket", 5}}, + result = "bi-bio-cannon-poison-ammo", + result_count = 1, + subgroup = "bi-ammo", + order = "z[Bio_Cannon_Ammo]-c[Poison]", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + }) +end diff --git a/Bio_Industries_2/prototypes/Bio_Cannon/recipe.lua b/Bio_Industries_2/prototypes/Bio_Cannon/recipe.lua new file mode 100644 index 0000000..1a24628 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Cannon/recipe.lua @@ -0,0 +1,52 @@ +--~ local BioInd = require('common')('Bio_Industries') + +if BI.Settings.Bio_Cannon then + + data:extend({ + + -- Hive Buster Turret + { + type = "recipe", + name = "bi-bio-cannon", + localised_name = {"entity-name.bi-bio-cannon"}, + localised_description = {"entity-description.bi-bio.cannon"}, + normal = { + enabled = false, + energy_required = 50, + ingredients = { + {"concrete", 100}, + {"radar", 1}, + {"steel-plate", 80}, + {"electric-engine-unit", 5}, + }, + result = "bi-bio-cannon", + result_count = 1, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Added for 0.18.34/1.1.4 + allow_decomposition = false, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 100, + ingredients = { + {"concrete", 100}, + {"radar", 1}, + {"steel-plate", 120}, + {"electric-engine-unit", 15}, + }, + result = "bi-bio-cannon", + result_count = 1, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Added for 0.18.34/1.1.4 + allow_decomposition = false, -- Added for 0.18.34/1.1.4 + }, + allow_as_intermediate = false, + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = false, -- Changed for 0.18.34/1.1.4 + subgroup = "defensive-structure", + order = "b[turret]-e[bi-prototype-artillery-turret]" + }, + + }) + +end diff --git a/Bio_Industries_2/prototypes/Bio_Cannon/technology-updates.lua b/Bio_Industries_2/prototypes/Bio_Cannon/technology-updates.lua new file mode 100644 index 0000000..7d1df7e --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Cannon/technology-updates.lua @@ -0,0 +1,41 @@ +--~ local BioInd = require('common')('Bio_Industries') + +--~ if not mods["Natural_Evolution_Buildings"] and BI.Settings.Bio_Cannon then + +-- Don't duplicate what NE does +if BI.Settings.Bio_Cannon and not mods["Natural_Evolution_Buildings"] then + + --~ if not mods["Natural_Evolution_Buildings"] then + + table.insert(data.raw.technology["physical-projectile-damage-5"].effects, { + type = "ammo-damage", + ammo_category = "Bio_Cannon_Ammo", + modifier = 0.9 + }) + table.insert(data.raw.technology["physical-projectile-damage-6"].effects, { + type = "ammo-damage", + ammo_category = "Bio_Cannon_Ammo", + modifier = 1.3 + }) + table.insert(data.raw.technology["physical-projectile-damage-7"].effects, { + type = "ammo-damage", + ammo_category = "Bio_Cannon_Ammo", + modifier = 1 + }) + table.insert(data.raw.technology["artillery-shell-speed-1"].effects, { + type = "gun-speed", + ammo_category = "Bio_Cannon_Ammo", + modifier = 1 + }) + table.insert(data.raw.technology["weapon-shooting-speed-5"].effects, { + type = "gun-speed", + ammo_category = "Bio_Cannon_Ammo", + modifier = 0.8 + }) + table.insert(data.raw.technology["weapon-shooting-speed-6"].effects, { + type = "gun-speed", + ammo_category = "Bio_Cannon_Ammo", + modifier = 1.5 + }) + --~ end +end diff --git a/Bio_Industries_2/prototypes/Bio_Cannon/technology.lua b/Bio_Industries_2/prototypes/Bio_Cannon/technology.lua new file mode 100644 index 0000000..edf759f --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Cannon/technology.lua @@ -0,0 +1,52 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/technology/" + +if BI.Settings.Bio_Cannon then + + data:extend({ + { + type = "technology", + name = "bi-tech-bio-cannon", + icon_size = 256, + icon = ICONPATH .. "bi-tech-bio_cannon.png", + icons = { + { + icon = ICONPATH .. "bi-tech-bio_cannon.png", + icon_size = 256, + } + }, + effects = { + { + type = "unlock-recipe", + recipe = "bi-bio-cannon" + }, + { + type = "unlock-recipe", + recipe = "bi-bio-cannon-proto-ammo" + }, + { + type = "unlock-recipe", + recipe = "bi-bio-cannon-basic-ammo" + }, + { + type = "unlock-recipe", + recipe = "bi-bio-cannon-poison-ammo" + }, + + }, + prerequisites = {"military-2"}, + unit = { + count = 300, + ingredients = { + {"automation-science-pack", 1}, + {"logistic-science-pack", 1}, + {"military-science-pack", 1}, + }, + time = 30, + } + }, + + }) + +end diff --git a/Bio_Industries_2/prototypes/Bio_Farm/Wood-Production.xlsx b/Bio_Industries_2/prototypes/Bio_Farm/Wood-Production.xlsx new file mode 100644 index 0000000..be1315c Binary files /dev/null and b/Bio_Industries_2/prototypes/Bio_Farm/Wood-Production.xlsx differ diff --git a/Bio_Industries_2/prototypes/Bio_Farm/coal_processing.lua b/Bio_Industries_2/prototypes/Bio_Farm/coal_processing.lua new file mode 100644 index 0000000..8441949 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Farm/coal_processing.lua @@ -0,0 +1,86 @@ +-- We may want to remove our coal processing techs and move the unlocks to a +-- similar tech from other mods. So let's store the unlocks for each tech for +-- easier shuffling! + +return { + -- "bi-tech-coal-processing-1" + { + { + type = "unlock-recipe", + recipe = "bi-charcoal-1" + }, + { + type = "unlock-recipe", + recipe = "bi-charcoal-2" + }, + { + type = "unlock-recipe", + recipe = "bi-ash-2" + }, + { + type = "unlock-recipe", + recipe = "bi-ash-1" + }, + { + type = "unlock-recipe", + recipe = "bi-wood-fuel-brick" + }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-solid-fuel" + --~ }, + { + type = "unlock-recipe", + recipe = "bi-seed-2" + }, + { + type = "unlock-recipe", + recipe = "bi-seedling-2" + }, + { + type = "unlock-recipe", + recipe = "bi-logs-2" + }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-stone-brick" + --~ }, + { + type = "unlock-recipe", + recipe = "bi-cokery" + }, + }, + + -- "bi-tech-coal-processing-2" + { + { + type = "unlock-recipe", + recipe = "bi-coal-1" + }, + { + type = "unlock-recipe", + recipe = "bi-pellet-coke" + }, + -- Moved here from "bi-tech-coal-processing-1" (0.18.29): + { + type = "unlock-recipe", + recipe = "bi-solid-fuel" + }, + { + type = "unlock-recipe", + recipe = "bi-stone-brick" + }, + }, + + -- "bi-tech-coal-processing-3" + { + { + type = "unlock-recipe", + recipe = "bi-coal-2" + }, + { + type = "unlock-recipe", + recipe = "bi-coke-coal" + }, + }, +} diff --git a/Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua b/Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua new file mode 100644 index 0000000..003c710 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua @@ -0,0 +1,463 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" +local ICONPATHMIPS = BioInd.modRoot .. "/graphics/icons/mips/" + +data:extend({ + { + type = "recipe", + name = "bi-pellet-coke-2", + icon = ICONPATH .. "pellet_coke_b.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "pellet_coke_b.png", + icon_size = 64, + } + }, + category = "biofarm-mod-smelting", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-g[bi-coke-coal]-2", + energy_required = 4, + ingredients = {}, + result = "pellet-coke", + result_count = 1, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + enabled = false, + }, + + -- fertilizer from sodium-hydroxide-- + { + type = "recipe", + name = "bi-fertilizer-2", + icon = ICONPATH .. "fertilizer_sodium_hydroxide.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "fertilizer_sodium_hydroxide.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 5, + ingredients = { + {type = "fluid", name = "nitrogen", amount = 10}, + {type = "item", name = "bi-ash", amount = 10} + }, + results = { + {type = "item", name = "fertilizer", amount = 5} + }, + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Changed for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "bio-bio-farm-intermediate-product", + order = "b[bi-fertilizer]", + }, +}) + +---- Resin +if not data.raw.item["resin"] then + + data:extend({ + --- Resin Item + { + type = "item", + name = "resin", + icon = ICONPATH .. "bi_resin.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_resin.png", + icon_size = 64, + } + }, + icon_mipmaps = 4, + pictures = { + --~ { size = 64, filename = ICONPATHMIPS.."Resin_1.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Resin_2.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Resin_3.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Resin_4.png", scale = 0.2, mipmap_count = 1 } + { size = 64, filename = ICONPATHMIPS.."Resin_1.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Resin_2.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Resin_3.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Resin_4.png", scale = 0.2 } + }, + subgroup = "bio-bio-farm-raw", + --~ order = "a[bi]-a-b[bi-resin]", + order = "a[bi]-a-bb[bi-resin]", + stack_size = 200 + }, + + --- Resin recipe - Wood + { + type = "recipe", + name = "bi-resin-wood", + localised_name = {"recipe-name.bi-resin-wood"}, + localised_description = {"recipe-description.bi-resin-wood"}, + icon = ICONPATH .. "bi_resin_wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_resin_wood.png", + icon_size = 64, + } + }, + --~ subgroup = "bio-bio-farm-raw", + --~ order = "a[bi]-a-ab[bi-resin2]", + subgroup = "bio-bio-farm-raw", + --~ order = "a[bi]-a-aa[bi-2-resin-1-wood]", + order = "a[bi]-a-bb[bi-2-resin-2-wood]", + enabled = false, + --~ allow_as_intermediate = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = true, -- Changed for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + + energy_required = 1, + ingredients = { + {type = "item", name = "wood", amount = 1} + }, + result = "resin", + result_count = 1, + main_procuct = "", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + }) + -- Order in table reflects order in display (Tech tree), so we remove the last + -- recipes, add the new one, and re-add the removed recipes where they belong. + for _, recipe in ipairs({"bi-woodpulp", "bi-resin-pulp", "bi-wood-from-pulp"}) do + thxbob.lib.tech.remove_recipe_unlock("bi-tech-bio-farming", recipe) + end + for _, recipe in ipairs({"bi-woodpulp", "bi-resin-wood", "bi-resin-pulp", "bi-wood-from-pulp"}) do + thxbob.lib.tech.add_recipe_unlock("bi-tech-bio-farming", recipe) + end + +elseif data.raw.recipe["bob-resin-wood"] then + data.raw.recipe["bob-resin-wood"].icon = ICONPATH .. "bi_resin_wood.png" + data.raw.recipe["bob-resin-wood"].icon_size = 64 +end + + +--~ --update crushed stone icon +--~ data.raw.item["stone-crushed"].icon = ICONPATH .. "crushed-stone.png" +--~ data.raw.item["stone-crushed"].icon_size = 64 + + -- Pellet-Coke from Carbon - Bobs & Angels +if data.raw.item["solid-carbon"] and mods["angelspetrochem"] then + thxbob.lib.recipe.add_new_ingredient("bi-pellet-coke-2", {type = "item", name = "solid-carbon", amount = 10}) + data.raw.recipe["bi-coke-coal"].icon = ICONPATH .. "pellet_coke_1.png" + data.raw.recipe["bi-coke-coal"].icon_size = 64 + data.raw.recipe["bi-pellet-coke-2"].icon = ICONPATH .. "pellet_coke_a.png" + data.raw.recipe["bi-pellet-coke-2"].icon_size = 64 + data.raw.recipe["bi-pellet-coke"].icon = ICONPATH .. "pellet_coke_c.png" + data.raw.recipe["bi-pellet-coke"].icon_size = 64 + thxbob.lib.tech.add_recipe_unlock("bi-tech-coal-processing-2", "bi-pellet-coke-2") +elseif data.raw.item["carbon"] and mods["bobplates"] then + thxbob.lib.recipe.add_new_ingredient ("bi-pellet-coke-2", {type = "item", name = "carbon", amount = 10}) + data.raw.recipe["bi-coke-coal"].icon = ICONPATH .. "pellet_coke_1.png" + data.raw.recipe["bi-coke-coal"].icon_size = 64 + data.raw.recipe["bi-pellet-coke-2"].icon = ICONPATH .. "pellet_coke_b.png" + data.raw.recipe["bi-pellet-coke-2"].icon_size = 64 + data.raw.recipe["bi-pellet-coke"].icon = ICONPATH .. "pellet_coke_c.png" + data.raw.recipe["bi-pellet-coke"].icon_size = 64 + thxbob.lib.tech.add_recipe_unlock("bi-tech-coal-processing-2", "bi-pellet-coke-2") +end + + +-- Update Wood Bricks icon to Angels +if data.raw.item["wood-bricks"] and mods["angelsbioprocessing"] then + data.raw.recipe["bi-wood-fuel-brick"].icon = "__angelsbioprocessing__/graphics/icons/wood-bricks.png" + data.raw.recipe["bi-wood-fuel-brick"].icon_size = 32 + data.raw.recipe["bi-wood-fuel-brick"].icons = { + { + icon = "__angelsbioprocessing__/graphics/icons/wood-bricks.png", + icon_size = 32, + } + } + data.raw.item["wood-bricks"].icon = "__angelsbioprocessing__/graphics/icons/wood-bricks.png" + data.raw.item["wood-bricks"].icon_size = 32 +end + + +--- Add fertilizer recipes if bob's or Angels +if data.raw.item["solid-sodium-hydroxide"] and mods["angelspetrochem"] then + thxbob.lib.recipe.add_new_ingredient("bi-fertilizer-2", {type = "item", name = "solid-sodium-hydroxide", amount = 10}) + thxbob.lib.recipe.replace_ingredient("bi-fertilizer-2", "nitrogen", "gas-nitrogen") + data.raw.recipe["bi-fertilizer-2"].icon = ICONPATH .. "fertilizer_solid_sodium_hydroxide.png" + data.raw.recipe["bi-fertilizer-2"].icon_size = 64 + thxbob.lib.tech.add_recipe_unlock("bi-tech-fertilizer", "bi-fertilizer-2") +elseif data.raw.item["sodium-hydroxide"] and mods["bobplates"] then + thxbob.lib.recipe.add_new_ingredient("bi-fertilizer-2", { + type = "item", + name = "sodium-hydroxide", + amount = 10 + }) + thxbob.lib.tech.add_recipe_unlock("bi-tech-fertilizer", "bi-fertilizer-2") +end + + +-- If Angels, replace liquid air + nitrogen and with Angel's ingredients in recipes +if data.raw.fluid["gas-nitrogen"] and data.raw.fluid["gas-compressed-air"] and mods["angelspetrochem"] then + thxbob.lib.recipe.replace_ingredient("bi-fertilizer-1", "nitrogen", "gas-nitrogen") + thxbob.lib.recipe.replace_ingredient("bi-fertilizer-2", "nitrogen", "gas-nitrogen") + thxbob.lib.recipe.replace_ingredient("bi-biomass-2", "liquid-air", "gas-compressed-air") + thxbob.lib.recipe.replace_ingredient("bi-biomass-3", "liquid-air", "gas-compressed-air") +end + +-- If Angels, replace icons for biomass-conversion-2 and bi_basic_gas_processing +if mods["angelspetrochem"] then + local conversion = data.raw.recipe["bi-biomass-conversion-2"] + conversion.icon = ICONPATH .. "bio_conversion_2_angels.png" + conversion.icons[1].icon = ICONPATH .. "bio_conversion_2_angels.png" + conversion.localised_name = {"recipe-name.bi-biomass-conversion-2-methane"} + conversion.localised_description = {"recipe-description.bi-biomass-conversion-2-methane"} + + local gas_processing = data.raw.recipe["bi-basic-gas-processing"] + gas_processing.icon = ICONPATH .. "bi_basic_gas_processing_angels.png" + gas_processing.icons[1].icon = ICONPATH .. "bi_basic_gas_processing_angels.png" + +end + +-- If Angels, replace water with water-yellow-waste +if data.raw.fluid["water-yellow-waste"] and mods["angelspetrochem"] then + -- Replace water with water-yellow-waste in Algae Biomass conversion 4 + thxbob.lib.recipe.remove_result("bi-biomass-conversion-4", "water") + thxbob.lib.recipe.add_result("bi-biomass-conversion-4", { + type = "fluid", + name = "water-yellow-waste", + amount = 40 + }) + -- Change recipe localizations + data.raw.recipe["bi-biomass-conversion-4"].localised_name = + {"recipe-name.bi-biomass-conversion-4-yellow-waste"} + data.raw.recipe["bi-biomass-conversion-4"].localised_description = + {"recipe-description.bi-biomass-conversion-4-yellow-waste"} +end + +-- Krastorio +if mods["Krastorio"] then + -- Replace liquid air with oxygen in Algae Biomass conversion 2 and 3 + thxbob.lib.recipe.replace_ingredient("bi-fertilizer-1", "nitrogen", "k-nitrogen") + thxbob.lib.recipe.replace_ingredient("bi-fertilizer-2", "nitrogen", "k-nitrogen") + + thxbob.lib.recipe.replace_ingredient("bi-biomass-2", "liquid-air", "k-oxygen") + thxbob.lib.recipe.replace_ingredient("bi-biomass-3", "liquid-air", "k-oxygen") +end + + +-- Krastorio2 +if mods["Krastorio2"] then + -- Replace liquid air with oxygen in Algae Biomass conversion 2 and 3 + thxbob.lib.recipe.replace_ingredient("bi-biomass-2", "liquid-air", "oxygen") + thxbob.lib.recipe.replace_ingredient("bi-biomass-3", "liquid-air", "oxygen") +end + + +--- Make Bio Farm use glass if Bob's +if data.raw.item.glass then + thxbob.lib.recipe.replace_ingredient("bi-bio-farm", "copper-cable", "glass") +end + + +--- Adding in some recipe's to use up Wood Pulp (Ash and Charcoal) and Crushed Stone +if mods["angelsrefining"] then + data:extend({ + -- Charcoal and Crushed Stone Sink + { + type = "recipe", + name = "bi-mineralized-sulfuric-waste", + icon = ICONPATH .. "bi_mineralized_sulfuric.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_mineralized_sulfuric.png", + icon_size = 64, + } + }, + category = "liquifying", + subgroup = "water-treatment", + energy_required = 2, + ingredients = { + {type = "fluid", name = "water-purified", amount = 100}, + {type = "item", name = "stone-crushed", amount = 90}, + {type = "item", name = "wood-charcoal", amount = 30}, + }, + results= { + {type = "fluid", name = "water-yellow-waste", amount = 40}, + {type = "fluid", name = "water-mineralized", amount = 60}, + }, + enabled = false, + allow_as_intermediate = false, + always_show_made_in = true, + allow_decomposition = false, + order = "a[water-water-mineralized]-2", + }, + + -- Ash and Crushed Stone Sink + { + type = "recipe", + name = "bi-slag-slurry", + icon = ICONPATH .. "bi_slurry.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_slurry.png", + icon_size = 64, + } + }, + category = "liquifying", + subgroup = "liquifying", + energy_required = 4, + ingredients = { + {type = "fluid", name = "water-saline", amount = 50}, + {type = "item", name = "stone-crushed", amount = 90}, + {type = "item", name = "bi-ash", amount = 40}, + }, + results = { + {type = "fluid", name = "slag-slurry", amount = 100}, + }, + enabled = false, + allow_as_intermediate = false, + always_show_made_in = true, + allow_decomposition = false, + order = "i [slag-processing-dissolution]-2", + }, + }) + thxbob.lib.tech.add_recipe_unlock("water-treatment", "bi-mineralized-sulfuric-waste") + thxbob.lib.tech.add_recipe_unlock("slag-processing-1", "bi-slag-slurry") +end + + +--- Alternative Wooden-Board Recipe for Bob's Electronics +if data.raw.item["wooden-board"] and mods["bobelectronics"] then + data:extend({ + -- Wood - Press Wood + { + type = "recipe", + name = "bi-press-wood", + localised_name = {"recipe-name.bi-press-wood"}, + icon = ICONPATH .. "bi_wooden_board.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_wooden_board.png", + icon_size = 64, + } + }, + subgroup = "bob-boards", + order = "c-a1[wooden-board]", + category = "electronics", + energy_required = 1, + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + ingredients = { + {type = "item", name = "bi-woodpulp", amount = 3}, + {type = "item", name = "resin", amount = 1}, + }, + results = { + {type = "item", name = "wooden-board", amount = 6} + }, + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + }) + thxbob.lib.tech.add_recipe_unlock("electronics", "bi-press-wood") + + if mods["ShinyBobGFX"] or mods["ShinyBobGFX_Continued"] then + data.raw["recipe"]["bi-press-wood"].icon = ICONPATH .. "bi_wooden_board_shiny.png" + data.raw["recipe"]["bi-press-wood"].icon_size = 64 + end +end + + +-- Replace Angels Charcoal Icon +if data.raw.recipe["wood-charcoal"] then + data.raw.recipe["wood-charcoal"].icon = ICONPATH .. "charcoal_pellets.png" + data.raw.recipe["wood-charcoal"].icon_size = 64 + data.raw.recipe["wood-charcoal"].category = "biofarm-mod-smelting" + data.raw.item["wood-charcoal"].icon = ICONPATH .. "charcoal.png" + data.raw.item["wood-charcoal"].icon_size = 64 + data.raw.item["wood-charcoal"].fuel_emissions_multiplier = 1.05 +end + + + +-- Add recipe for sand from crushed stone if any other mod provides sand + +if data.raw.item["sand"] or + data.raw.item["biotech-sand"] or + data.raw.item["solid-sand"] then + +BioInd.writeDebug("Generating recipe for sand from crushed stone!") + -- General recipe for sand (will be adjusted later if necessary) + data:extend({ + { + type = "recipe", + name = "bi-sand", + icons = { + { + icon = ICONPATH .. "sand-aai.png", + icon_size = 64, + mip_maps = 1, + } + }, + category = "biofarm-mod-crushing", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-z[bi-9-sand]", + energy_required = 1, + ingredients = {{"stone-crushed", 2}}, + result = "sand", + result_count = 5, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Changed for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + }) + + local recipe = data.raw.recipe["bi-sand"] + -- Adjust result for BioTech + if mods["BioTech"] then +BioInd.writeDebug("Adjusting result for \"BioTech\" …") + recipe.result = "biotech-sand" + + -- Adjust result for Angel's + elseif mods["angelsrefining"] then + -- Adjust result +BioInd.writeDebug("Adjusting result for \"angelsrefining\" …") + recipe.result = "solid-sand" + + -- Adjust icon for Krastorio + elseif mods["Krastorio2"] or mods["Krastorio"] then +BioInd.writeDebug("Using Krastorio icon …") + recipe.icons[1].icon = ICONPATH .. "sand-Krastorio.png" + end + + -- Add recipe to technology +BioInd.writeDebug("Add unlock for recipe bi-sand") + thxbob.lib.tech.add_recipe_unlock("steel-processing", "bi-sand") + + -- Use alternative descriptions for stone crusher! +BioInd.writeDebug("Using alternative descriptions for \"bi-stone-crusher\"!") + for _, t in ipairs({"furnace", "item", "recipe"}) do + data.raw[t]["bi-stone-crusher"].localised_description = + {"entity-description.bi-stone-crusher-sand"} + end +end diff --git a/Bio_Industries_2/prototypes/Bio_Farm/entities.lua b/Bio_Industries_2/prototypes/Bio_Farm/entities.lua new file mode 100644 index 0000000..1756300 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Farm/entities.lua @@ -0,0 +1,1125 @@ +local BioInd = require('common')('Bio_Industries') + +--~ local ICONPATH = BioInd.modRoot .. "/graphics/entities/biofarm/" +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" +local ENTITYPATH = BioInd.modRoot .. "/graphics/entities/biofarm/" + +--~ local BIGICONS = BioInd.check_base_version() + +require ("prototypes.Bio_Farm.pipeConnectors") +require ("util") + +-- demo-sounds has been removed in Factorio 1.1, so we need to check the game version! +local sound_def = BioInd.check_version("base", "<", "1.1.0") and + require("__base__.prototypes.entity.demo-sounds") or + require("__base__.prototypes.entity.sounds") +local sounds = {} +sounds.car_wood_impact = sound_def.car_wood_impact(0.8) +sounds.generic_impact = sound_def.generic_impact + for _, sound in ipairs(sounds.generic_impact) do + sound.volume = 0.65 + end + + +inv_extension2 = { + filename = ENTITYPATH .. "Bio_Farm_Idle_alt.png", + priority = "high", + width = 320, + height = 320, + frame_count = 1, + direction_count = 1, + shift = {0.75, 0}, +} + + +data:extend({ + ------- Seedling + { + type = "simple-entity-with-force", + name = "seedling", + localised_name = {"entity-name.seedling"}, + localised_description = {"entity-description.seedling"}, + icon = ICONPATH .. "Seedling.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seedling.png", + icon_size = 64, + } + }, + order = "x[bi]-a[bi-seedling]", + flags = {"placeable-neutral", "placeable-player", "player-creation", "breaths-air"}, + create_ghost_on_death = false, + minable = { + mining_particle = "wooden-particle", + mining_time = 0.25, + result = "seedling", + count = 1 + }, + corpse = nil, + remains_when_mined = nil, + emissions_per_second = -0.0006, + max_health = 5, + + collision_box = {{-0.1, -0.1}, {0.1, 0.1}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + subgroup = "trees", + vehicle_impact_sound = sounds.car_wood_impact, + picture = { + filename = ICONPATH .. "Seedling_b.png", + priority = "extra-high", + width = 64, + height = 64, + --~ scale = 0.75 + scale = 0.3 + }, + }, + + ------- Seedling - Dummy for Seed Bomb + { + type = "simple-entity-with-force", + name = "seedling-2", + localised_name = {"entity-name.seedling"}, + localised_description = {"entity-description.seedling"}, + icon = ICONPATH .. "Seedling.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seedling.png", + icon_size = 64, + } + }, + order = "x[bi]-a[bi-seedling]", + flags = {"placeable-neutral", "placeable-player", "player-creation", "breaths-air"}, + create_ghost_on_death = false, + minable = { + mining_particle = "wooden-particle", + mining_time = 0.25, + result = "seedling", + count = 1 + }, + corpse = nil, + remains_when_mined = nil, + emissions_per_second = -0.0006, + max_health = 5, + + collision_box = {{-0.1, -0.1}, {0.1, 0.1}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + subgroup = "trees", + vehicle_impact_sound = sounds.car_wood_impact, + picture = { + filename = ICONPATH .. "Seedling_b.png", + priority = "extra-high", + width = 64, + height = 64, + --~ scale = 0.75 + scale = 0.3 + }, + }, + + { + type = "simple-entity-with-force", + name = "seedling-3", + localised_name = {"entity-name.seedling"}, + localised_description = {"entity-description.seedling"}, + icon = ICONPATH .. "Seedling.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seedling.png", + icon_size = 64, + } + }, + order = "x[bi]-a[bi-seedling]", + flags = {"placeable-neutral", "placeable-player", "player-creation", "breaths-air"}, + create_ghost_on_death = false, + minable = { + mining_particle = "wooden-particle", + mining_time = 0.25, + result = "seedling", + count = 1 + }, + corpse = nil, + remains_when_mined = nil, + emissions_per_second = -0.0006, + max_health = 5, + + collision_box = {{-0.1, -0.1}, {0.1, 0.1}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + subgroup = "trees", + vehicle_impact_sound = sounds.car_wood_impact, + picture = { + filename = ICONPATH .. "Seedling_b.png", + priority = "extra-high", + width = 64, + height = 64, + --~ scale = 0.75 + scale = 0.3 + }, + }, + + + ------- Bio Farm + { + type = "assembling-machine", + name = "bi-bio-farm", + icon = ICONPATH .. "Bio_Farm_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Bio_Farm_Icon.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-bio-farm"}, + max_health = 250, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + resistances = {{type = "fire", percent = 70}}, + fluid_boxes = { + { + production_type = "input", + pipe_picture = assembler3pipepictures(), + pipe_covers = pipecoverspictures(), + base_area = 10, + base_level = -1, + pipe_connections = {{ type = "input", position = {-1, -5} }} + }, + { + production_type = "input", + pipe_picture = assembler3pipepictures(), + pipe_covers = pipecoverspictures(), + base_area = 10, + base_level = -1, + pipe_connections = {{ type = "input", position = {1, -5} }} + }, + off_when_no_fluid_recipe = true + }, + + collision_box = {{-4.2, -4.2}, {4.2, 4.2}}, + selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, + + animation = { + filename = ENTITYPATH .. "Bio_Farm_Idle.png", + priority = "high", + width = 348, + height = 288, + shift = {0.96, 0}, + frame_count = 1, + }, + + working_visualisations = { + animation = { + filename = ENTITYPATH .. "Bio_Farm_Working.png", + priority = "high", + width = 348, + height = 288, + shift = {0.96, 0}, + frame_count = 1, + }, + }, + crafting_categories = {"biofarm-mod-farm"}, + crafting_speed = 1, + energy_source = { + type = "electric", + usage_priority = "primary-input", + drain = "50kW", + emissions_per_minute = -9, -- the "-" means it Absorbs pollution. + }, + energy_usage = "100kW", + ingredient_count = 3, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + vehicle_impact_sound = sounds.generic_impact, + module_specification = { + module_slots = 3 + }, + allowed_effects = {"consumption", "speed", "productivity", "pollution"}, + }, + +--~ ------- Bio Farm Lamp + --~ { + --~ type = "lamp", + --~ name = "bi-bio-farm-light", + --~ icon = ICONPATH .. "Bio_Farm_Lamp.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "Bio_Farm_Lamp.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ flags = {"not-deconstructable", "not-on-map", "placeable-off-grid", "not-repairable", "not-blueprintable"}, + --~ selectable_in_game = false, + --~ max_health = 1, + --~ collision_box = {{-0.0, -0.0}, {0.0, 0.0}}, + --~ collision_mask = {}, + --~ energy_source = { + --~ type = "void", + --~ render_no_network_icon = false, + --~ render_no_power_icon = false, + --~ usage_priority = "lamp" + --~ }, + --~ energy_usage_per_tick = "100kW", + --~ light = {intensity = 1, size = 45}, + --~ picture_off = { + --~ filename = ENTITYPATH .. "Bio_Farm_Idle.png", + --~ priority = "low", + --~ width = 1, + --~ height = 1, + --~ frame_count = 1, + --~ axially_symmetrical = false, + --~ direction_count = 1, + --~ shift = {0.75, 0}, + --~ }, + --~ picture_on = { + --~ filename = ENTITYPATH .. "Bio_Farm_Working.png", + --~ priority = "low", + --~ width = 1, + --~ height = 1, + --~ frame_count = 1, + --~ axially_symmetrical = false, + --~ direction_count = 1, + --~ shift = {0.75, 0}, + --~ }, + --~ }, +}) + + ------- Bio Farm Hidden Electric Pole + --~ { + --~ type = "electric-pole", + --~ name = "bi-bio-farm-hidden-pole", + --~ icon = ICONPATH .. "Bio_Farm_Cabeling.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "Bio_Farm_Cabeling.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ flags = {"not-deconstructable", "not-on-map", "placeable-off-grid", "not-repairable", "not-blueprintable"}, + --~ selectable_in_game = false, + --~ max_health = 1, + --~ resistances = {{type = "fire", percent = 100}}, + --~ collision_box = {{-0, -0}, {0, 0}}, + --~ collision_mask = {}, + --~ maximum_wire_distance = 10, + --~ supply_area_distance = 5, + --~ pictures = { + --~ filename = ICONPATH .. "empty.png", + --~ priority = "low", + --~ width = 1, + --~ height = 1, + --~ frame_count = 1, + --~ axially_symmetrical = false, + --~ direction_count = 4, + --~ direction_count = 1, + --~ shift = {0.75, 0}, + --~ }, + --~ connection_points = { + --~ { + --~ shadow = {}, + --~ wire = {} + --~ }, + --~ { + --~ shadow = {}, + --~ wire = {} + --~ }, + --~ { + --~ shadow = {}, + --~ wire = {} + --~ }, + --~ { + --~ shadow = {}, + --~ wire = {} + --~ } + --~ }, + --~ radius_visualisation_picture = { + --~ filename = ICONPATH .. "empty.png", + --~ width = 1, + --~ height = 1, + --~ priority = "low" + --~ }, + --~ }, +--~ local hidden_pole = table.deepcopy(data.raw["electric-pole"]["small-electric-pole"]) +--~ BioInd.show("data.raw[\"electric-pole\"][\"small-electric-pole\"]", data.raw["electric-pole"]["small-electric-pole"]) +--~ hidden_pole.name = "bi-bio-farm-hidden-pole" +--~ hidden_pole.icon = BioInd.is_debug and hidden_pole.icon or ICONPATH .. "Bio_Farm_Cabeling.png" +--~ hidden_pole.icon_size = BioInd.is_debug and hidden_pole.icon_size or 64 +--~ hidden_pole.icons = BioInd.is_debug and hidden_pole.icons or { + --~ { + --~ icon = ICONPATH .. "Bio_Farm_Cabeling.png", + --~ icon_size = 64, + --~ } +--~ } +--~ hidden_pole.flags = {"not-deconstructable", "not-on-map", "placeable-off-grid", "not-repairable", "not-blueprintable"} +--~ hidden_pole.selectable_in_game = false +--~ hidden_pole.draw_copper_wires = BioInd.is_debug +--~ hidden_pole.max_health = 1 +--~ hidden_pole.resistances = {{type = "fire", percent = 100}} +--~ hidden_pole.collision_box = {{-0, -0}, {0, 0}} +--~ hidden_pole.collision_mask = {} +--~ hidden_pole.maximum_wire_distance = 10 +--~ hidden_pole.supply_area_distance = 5 +--~ hidden_pole.pictures = BioInd.is_debug and hidden_pole.pictures or { + --~ filename = ICONPATH .. "empty.png", + --~ priority = "low", + --~ width = 1, + --~ height = 1, + --~ frame_count = 1, + --~ axially_symmetrical = false, + --~ direction_count = 1, + --~ shift = {0.75, 0}, +--~ } +--~ hidden_pole.connection_points = BioInd.is_debug and hidden_pole.connection_points or { + --~ { + --~ shadow = {}, + --~ wire = {} + --~ }, +--~ } +--~ hidden_pole.radius_visualisation_picture = BioInd.is_debug and + --~ hidden_pole.radius_visualisation_picture or { + --~ filename = ICONPATH .. "empty.png", + --~ width = 1, + --~ height = 1, + --~ priority = "low" + --~ } +--~ hidden_pole.dying_explosion = nil +--~ hidden_pole.fast_replaceable_group = nil +--~ hidden_pole.minable = nil +--~ hidden_pole.open_sound = nil +--~ hidden_pole.vehicle_impact_sound = nil +--~ hidden_pole.water_reflection = nil + +--~ data:extend({hidden_pole}) + +data:extend({ + --~ ------- Bio Farm Solar Panel + --~ { + --~ type = "solar-panel", + --~ name = "bi-bio-farm-hidden-panel", + --~ icon = ICONPATH .. "Bio_Farm_Solar.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "Bio_Farm_Solar.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ flags = {"not-deconstructable", "not-on-map", "placeable-off-grid", "not-repairable", "not-blueprintable"}, + --~ selectable_in_game = false, + --~ max_health = 1, + --~ resistances = {{type = "fire", percent = 100}}, + --~ collision_box = {{-0, -0}, {0, 0}}, + --~ collision_mask = {}, + --~ energy_source = { + --~ type = "electric", + --~ usage_priority = "solar" + --~ }, + --~ picture = { + --~ filename = ICONPATH .. "empty.png", + --~ priority = "low", + --~ width = 1, + --~ height = 1, + --~ }, + --~ production = "100kW" + --~ }, + + ------ Greenhouse + { + type = "assembling-machine", + name = "bi-bio-greenhouse", + icon = ICONPATH .. "bio_greenhouse.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_greenhouse.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.25, result = "bi-bio-greenhouse"}, + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + max_health = 250, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + crafting_categories = {"biofarm-mod-greenhouse"}, + crafting_speed = 1, + energy_source = { + type = "electric", + usage_priority = "primary-input", + drain = "15kW", + emissions_per_minute = -6, -- the "-" means it Absorbs pollution. + }, + energy_usage = "50kW", + ingredient_count = 3, + resistances = { + { + type = "fire", + percent = 70 + } + }, + fluid_boxes = { + { + production_type = "input", + pipe_picture = assembler3pipepictures(), + pipe_covers = pipecoverspictures(), + base_area = 10, + base_level = -1, + pipe_connections = {{ type = "input", position = {0, -2} }} + }, + }, + module_specification = { + module_slots = 2 + }, + allowed_effects = {"consumption", "speed", "productivity", "pollution"}, + animation = { + filename = ENTITYPATH .. "bio_greenhouse_off.png", + width = 113, + height = 93, + frame_count = 1, + scale = 1, + shift = {0.3, 0} + }, + working_visualisations = { + { + light = {intensity = 1, size = 6}, + animation = { + filename = ENTITYPATH .. "bio_greenhouse_on.png", + width = 113, + height = 93, + frame_count = 1, + scale = 1, + shift = {0.3, 0} + } + } + }, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + vehicle_impact_sound = sounds.generic_impact, + }, + + -- COKERY + { + type = "assembling-machine", + name = "bi-cokery", + icon = ICONPATH .. "cokery.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "cokery.png", + icon_size = 64, + } + }, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + order = "a[cokery]", + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-cokery"}, + max_health = 200, + corpse = "medium-remnants", + resistances = {{type = "fire", percent = 95}}, + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + module_specification = { + module_slots = 2 + }, + allowed_effects = {"consumption", "speed", "pollution"}, + animation = { + filename = "__Bio_Industries__/graphics/entities/cokery/cokery_sheet.png", + frame_count = 28, + line_length = 7, + width = 256, + height = 256, + scale = 0.5, + shift = {0.5, -0.5}, + animation_speed = 0.1 + }, + crafting_categories = {"biofarm-mod-smelting"}, + energy_source = { + type = "electric", + input_priority = "secondary", + usage_priority = "secondary-input", + emissions_per_minute = 2.5, + }, + energy_usage = "180kW", + crafting_speed = 2, + ingredient_count = 1 + }, + + -- STONECRUSHER + { + type = "furnace", + name = "bi-stone-crusher", + icon = ICONPATH .. "stone_crusher.png", + icon_size = 64, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-stone-crusher"}, + max_health = 100, + corpse = "medium-remnants", + module_slots = 1, + resistances = {{type = "fire", percent = 70}}, + working_sound = { + sound = { + filename = "__base__/sound/assembling-machine-t1-1.ogg", + volume = 0.7 + }, + apparent_volume = 1.5 + }, + collision_box = {{-0.8, -0.8}, {0.8, 0.8}}, + selection_box = {{-1.0, -1.0}, {1.0, 1.0}}, + animation = { + filename = "__Bio_Industries__/graphics/entities/stone-crusher/stone_crusher_anim.png", + priority = "high", + width = 65, + height = 78, + frame_count = 11, + animation_speed = 0.5, + shift = {0.0, -0.1} + }, + working_visualisations = { + filename = "__Bio_Industries__/graphics/entities/stone-crusher/stone-crusher-anim.png", + priority = "high", + width = 65, + height = 78, + frame_count = 11, + animation_speed = 0.18 / 2.5, + shift = {0.0, -0.1} + }, + crafting_categories = {"biofarm-mod-crushing"}, + result_inventory_size = 1, + source_inventory_size = 1, + crafting_speed = 1, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = 0.25, + }, + energy_usage = "50kW", + module_specification = { + module_slots = 2 + }, + allowed_effects = {"consumption", "speed", "pollution"}, + }, + + --- Seed Bomb Projectile - 1 + { + type = "projectile", + name = "seed-bomb-projectile-1", + flags = {"not-on-map"}, + acceleration = 0.005, + action = { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "nested-result", + action = { + type = "area", + target_entities = false, + repeat_count = 600, + radius = 24, + action_delivery = { + type = "projectile", + projectile = "seed-bomb-wave-1", + starting_speed = 0.5 + } + } + } + } + } + }, + light = {intensity = 0.8, size = 15}, + animation = { + filename = "__base__/graphics/entity/rocket/rocket.png", + frame_count = 8, + line_length = 8, + width = 9, + height = 35, + shift = {0, 0}, + priority = "high" + }, + shadow = { + filename = "__base__/graphics/entity/rocket/rocket-shadow.png", + frame_count = 1, + width = 7, + height = 24, + priority = "high", + shift = {0, 0} + }, + smoke = { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, -1}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + --- Seed Bomb Projectile - 2 + { + type = "projectile", + name = "seed-bomb-projectile-2", + flags = {"not-on-map"}, + acceleration = 0.005, + action = { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "nested-result", + action = { + type = "area", + target_entities = false, + repeat_count = 800, + radius = 27, + action_delivery = { + type = "projectile", + projectile = "seed-bomb-wave-2", + starting_speed = 0.5 + } + } + } + } + } + }, + light = {intensity = 0.8, size = 15}, + animation = { + filename = "__base__/graphics/entity/rocket/rocket.png", + frame_count = 8, + line_length = 8, + width = 9, + height = 35, + shift = {0, 0}, + priority = "high" + }, + shadow = { + filename = "__base__/graphics/entity/rocket/rocket-shadow.png", + frame_count = 1, + width = 7, + height = 24, + priority = "high", + shift = {0, 0} + }, + smoke = { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, -1}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + --- Seed Bomb Projectile - 3 + { + type = "projectile", + name = "seed-bomb-projectile-3", + flags = {"not-on-map"}, + acceleration = 0.005, + action = { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "nested-result", + action = { + type = "area", + target_entities = false, + repeat_count = 1000, + radius = 30, + action_delivery = { + type = "projectile", + projectile = "seed-bomb-wave-3", + starting_speed = 0.5 + } + } + } + } + } + }, + light = {intensity = 0.8, size = 15}, + animation = { + filename = "__base__/graphics/entity/rocket/rocket.png", + frame_count = 8, + line_length = 8, + width = 9, + height = 35, + shift = {0, 0}, + priority = "high" + }, + shadow = { + filename = "__base__/graphics/entity/rocket/rocket-shadow.png", + frame_count = 1, + width = 7, + height = 24, + priority = "high", + shift = {0, 0} + }, + smoke = { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, -1}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + --- Seed Bomb Wave - 1 + { + type = "projectile", + name = "seed-bomb-wave-1", + flags = {"not-on-map"}, + acceleration = 0, + action = { + { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "create-entity", + entity_name = "seedling", + check_buildability = true, + trigger_created_entity = true, + } + } + } + }, + }, + animation = { + filename = "__core__/graphics/empty.png", + frame_count = 1, + width = 1, + height = 1, + priority = "high" + }, + shadow = { + filename = "__core__/graphics/empty.png", + frame_count = 1, + width = 1, + height = 1, + priority = "high" + } + }, + + --- Seed Bomb Wave - 2 + { + type = "projectile", + name = "seed-bomb-wave-2", + flags = {"not-on-map"}, + acceleration = 0, + action = { + { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "create-entity", + entity_name = "seedling-2", + check_buildability = true, + trigger_created_entity = true, + } + } + } + }, + }, + animation = { + filename = "__core__/graphics/empty.png", + frame_count = 1, + width = 1, + height = 1, + priority = "high" + }, + shadow = { + filename = "__core__/graphics/empty.png", + frame_count = 1, + width = 1, + height = 1, + priority = "high" + } + }, + + --- Seed Bomb Wave - 3 + { + type = "projectile", + name = "seed-bomb-wave-3", + flags = {"not-on-map"}, + acceleration = 0, + action = { + { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "create-entity", + entity_name = "seedling-3", + check_buildability = true, + trigger_created_entity = true, + }, + } + } + }, + }, + animation = { + filename = "__core__/graphics/empty.png", + frame_count = 1, + width = 1, + height = 1, + priority = "high" + }, + shadow = { + filename = "__core__/graphics/empty.png", + frame_count = 1, + width = 1, + height = 1, + priority = "high" + } + }, + + --~ --- Arboretum + --~ --- Radar Arboretum + --~ { + --~ type = "radar", + --~ name = "bi-arboretum-hidden-radar", + --~ localised_name = {"entity-name.bi-arboretum"}, + --~ localised_description = {"entity-description.bi-arboretum"}, + --~ icon = ICONPATH .. "Arboretum_Icon.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "Arboretum_Icon.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ flags = {"placeable-player", "player-creation", "not-deconstructable"}, + --~ order = "y[bi]-a[bi-arboretum]", + --~ minable = nil, + --~ max_health = 250, + --~ corpse = "big-remnants", + --~ dying_explosion = "medium-explosion", + --~ resistances = { + --~ { + --~ type = "fire", + --~ percent = 70 + --~ } + --~ }, + --~ collision_box = {{-0.70, -0.70}, {0.70, 0.70}}, + --~ selection_box = {{-0.75, -0.75}, {0.75, 0.75}}, + + --~ energy_per_sector = "2MJ", + --~ max_distance_of_nearby_sector_revealed = 2, + --~ max_distance_of_sector_revealed = 5, + --~ energy_per_nearby_scan = "200kW", + --~ energy_source = { + --~ type = "electric", + --~ usage_priority = "secondary-input", + --~ emissions_per_minute = 0, + --~ }, + --~ energy_usage = "150kW", + --~ pictures = { + --~ layers = { + --~ { + --~ filename = "__base__/graphics/entity/radar/radar.png", + --~ priority = "extra-high", + --~ width = 98, + --~ height = 128, + --~ apply_projection = false, + --~ direction_count = 64, + --~ line_length = 8, + --~ shift = util.by_pixel(1, -16), + --~ scale = 0.5, + --~ hr_version = { + --~ filename = "__base__/graphics/entity/radar/hr-radar.png", + --~ priority = "extra-high", + --~ width = 196, + --~ height = 254, + --~ apply_projection = false, + --~ direction_count = 64, + --~ line_length = 8, + --~ shift = util.by_pixel(1, -16), + --~ scale = 0.25 + --~ } + --~ }, + --~ } + --~ }, + --~ }, + + + ---- Arboretum Area Overlay + { + type = "ammo-turret", + name = "bi-arboretum-area", + localised_name = {"entity-name.bi-arboretum"}, + localised_description = {"entity-description.bi-arboretum"}, + icon = ICONPATH .. "Arboretum_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Arboretum_Icon.png", + icon_size = 64, + } + }, + flags = {"not-deconstructable", "not-on-map", "placeable-off-grid", "not-repairable"}, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + max_health = 250, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-4.5, -4.5}, {4.5, 4.5}}, + selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, + order = "x[bi]-a[bi-arboretum]", + automated_ammo_count = 1, + resistances = {}, + inventory_size = 1, + attack_parameters = { + type = "projectile", + ammo_category = "bullet", + cooldown = 2, + range = 75, + projectile_creation_distance = 0.1, + action ={} + }, + folding_speed = 0.08, + folded_animation = (function() + local res = util.table.deepcopy(inv_extension2) + res.frame_count = 1 + res.line_length = 1 + return res + end)(), + + folding_animation = (function() + local res = util.table.deepcopy(inv_extension2) + res.run_mode = "backward" + return res + end)(), + + call_for_help_radius = 1 + }, + + + --- Assembling-Machine Arboretum + { + type = "assembling-machine", + name = "bi-arboretum", + icon = ICONPATH .. "Arboretum_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Arboretum_Icon.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + placeable_by = {item ="bi-arboretum-area", count = 1}, -- Fixes that entity couldn't be blueprinted + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-arboretum-area"}, + max_health = 250, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + resistances = {{type = "fire", percent = 70}}, + fluid_boxes = { + { + production_type = "input", + pipe_picture = assembler3pipepictures(), + pipe_covers = pipecoverspictures(), + base_area = 10, + base_level = -1, + pipe_connections = {{ type = "input", position = {-1, -5} }} + }, + { + production_type = "input", + pipe_picture = assembler3pipepictures(), + pipe_covers = pipecoverspictures(), + base_area = 10, + base_level = -1, + pipe_connections = {{ type = "input", position = {1, -5} }} + }, + off_when_no_fluid_recipe = true + }, + collision_box = {{-4.2, -4.2}, {4.2, 4.2}}, + selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, + order = "x[bi]-a[bi-arboretum]", + animation = { + filename = ENTITYPATH .. "Bio_Farm_Idle_alt.png", + priority = "low", + width = 320, + height = 320, + frame_count = 1, + shift = {0.75, 0}, + }, + + working_visualisations = { + animation = { + filename = ENTITYPATH .. "Bio_Farm_Working_alt.png", + priority = "low", + width = 320, + height = 320, + frame_count = 1, + shift = {0.75, 0}, + }, + }, + crafting_categories = {"bi-arboretum"}, + crafting_speed = 0.000000000001, + energy_source = { + type = "electric", + usage_priority = "primary-input", + emissions_per_minute = -8, -- the "-" means it Absorbs pollution. + }, + energy_usage = "150kW", + ingredient_count = 3, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + vehicle_impact_sound = sounds.generic_impact, + module_specification = {}, + }, +}) + +--~ local my_pole_1 = util.table.deepcopy(data.raw["electric-pole"]["bi-bio-farm-hidden-pole"]) +--~ my_pole_1.name = "bi-hidden-power-pole" +--~ my_pole_1.pictures = BioInd.is_debug and data.raw["electric-pole"]["small-electric-pole"].pictures or my_pole_1.pictures +--~ data:extend({my_pole_1}) + +--[[ +local my_seedling = util.table.deepcopy(data.raw.tree["tree-01"]) +my_seedling.name = "seedling" +--~ my_seedling.vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 0.8 } +my_seedling.vehicle_impact_sound = vehicle_impact_sound = sounds.car_wood_impact +my_seedling.flags = {"placeable-neutral", "placeable-player", "playeminabler-creation", "breaths-air"} +my_seedling.minable = {mining_particle = "wooden-particle", mining_time = 0.25, result = "seedling", count = 1} +my_seedling.corpse = nil +my_seedling.remains_when_mined = nil +my_seedling.max_health = 5 +my_seedling.collision_box = {{-0.1, -0.1}, {0.1, 0.1}} +my_seedling.selection_box = {{-0.5, -0.5}, {0.5, 0.5}} +my_seedling.emissions_per_second = -0.0006 + +data:extend({my_seedling}) +]] diff --git a/Bio_Industries_2/prototypes/Bio_Farm/item.lua b/Bio_Industries_2/prototypes/Bio_Farm/item.lua new file mode 100644 index 0000000..4095a39 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Farm/item.lua @@ -0,0 +1,580 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" +local ICONPATHMIPS = BioInd.modRoot .. "/graphics/icons/mips/" + +data:extend( +{ + ---- Seed + { + type = "item", + name = "bi-seed", + icon = ICONPATH .. "bio_seed.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_seed.png", + icon_size = 64, + } + }, + icon_mipmaps = 4, + pictures = { + --~ { size = 64, filename = ICONPATHMIPS.."bio_seed_1.png", scale = 0.25, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."bio_seed_2.png", scale = 0.25, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."bio_seed_3.png", scale = 0.25, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."bio_seed_4.png", scale = 0.25, mipmap_count = 1 } + { size = 64, filename = ICONPATHMIPS.."bio_seed_1.png", scale = 0.25 }, + { size = 64, filename = ICONPATHMIPS.."bio_seed_2.png", scale = 0.25 }, + { size = 64, filename = ICONPATHMIPS.."bio_seed_3.png", scale = 0.25 }, + { size = 64, filename = ICONPATHMIPS.."bio_seed_4.png", scale = 0.25 } + }, + category = "biofarm-mod-greenhouse", + subgroup = "bio-bio-farm", + order = "x[bi]-a[bi-seed]", + fuel_value = "0.5MJ", + fuel_category = "chemical", + stack_size= 800 + }, + + ---- Seedling + { + type = "item", + name = "seedling", + localised_name = {"entity-name.seedling"}, + localised_description = {"entity-description.seedling"}, + icon = ICONPATH .. "Seedling.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seedling.png", + icon_size = 64, + } + }, + icon_mipmaps = 9, + pictures = { + --~ { size = 64, filename = ICONPATHMIPS.."Seedling_1.png", scale = 0.25, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Seedling_2.png", scale = 0.25, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Seedling_3.png", scale = 0.25, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Seedling_4.png", scale = 0.25, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Seedling_5.png", scale = 0.25, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Seedling_6.png", scale = 0.25, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Seedling_7.png", scale = 0.25, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Seedling_8.png", scale = 0.25, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Seedling_9.png", scale = 0.25, mipmap_count = 1 } + { size = 64, filename = ICONPATHMIPS.."Seedling_1.png", scale = 0.25 }, + { size = 64, filename = ICONPATHMIPS.."Seedling_2.png", scale = 0.25 }, + { size = 64, filename = ICONPATHMIPS.."Seedling_3.png", scale = 0.25 }, + { size = 64, filename = ICONPATHMIPS.."Seedling_4.png", scale = 0.25 }, + { size = 64, filename = ICONPATHMIPS.."Seedling_5.png", scale = 0.25 }, + { size = 64, filename = ICONPATHMIPS.."Seedling_6.png", scale = 0.25 }, + { size = 64, filename = ICONPATHMIPS.."Seedling_7.png", scale = 0.25 }, + { size = 64, filename = ICONPATHMIPS.."Seedling_8.png", scale = 0.25 }, + { size = 64, filename = ICONPATHMIPS.."Seedling_9.png", scale = 0.25 } + }, + subgroup = "bio-bio-farm", + order = "x[bi]-b[bi-seedling]", + place_result = "seedling", + fuel_value = "0.5MJ", + fuel_category = "chemical", + stack_size= 400 + }, + + ----Bio Farm + { + type= "item", + name= "bi-bio-farm", + localised_name = {"entity-name.bi-bio-farm"}, + localised_description = {"entity-description.bi-bio-farm"}, + icon = ICONPATH .. "Bio_Farm_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Bio_Farm_Icon.png", + icon_size = 64, + } + }, + subgroup = "production-machine", + order = "x[bi]-ab[bi-bio-farm]", + place_result = "bi-bio-farm", + stack_size= 10, + }, + + ----Bio Greenhouse (Nursery) + { + type= "item", + name= "bi-bio-greenhouse", + localised_name = {"entity-name.bi-bio-greenhouse"}, + localised_description = {"entity-description.bi-bio-greenhouse"}, + icon = ICONPATH .. "bio_greenhouse.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_greenhouse.png", + icon_size = 64, + } + }, + subgroup = "production-machine", + order = "x[bi]-aa[bi-bio-greenhouse]", + place_result = "bi-bio-greenhouse", + stack_size= 10, + }, + + --- Cokery + { + type = "item", + name = "bi-cokery", + icon = ICONPATH .. "cokery.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "cokery.png", + icon_size = 64, + } + }, + subgroup = "production-machine", + order = "x[bi]-b[bi-cokery]", + place_result = "bi-cokery", + stack_size = 10 + }, + + --- Stone Crusher + { + type = "item", + name = "bi-stone-crusher", + localised_name = {"entity-name.bi-stone-crusher"}, + localised_description = {"entity-description.bi-stone-crusher"}, + icon = ICONPATH .. "stone_crusher.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "stone_crusher.png", + icon_size = 64, + } + }, + subgroup = "production-machine", + order = "x[bi]-c[bi-stone-crusher]", + place_result = "bi-stone-crusher", + stack_size = 10 + }, + + --- Wood Pulp + { + type = "item", + name = "bi-woodpulp", + icon = ICONPATH .. "woodpulp_64.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "woodpulp_64.png", + icon_size = 64, + } + }, + icon_mipmaps = 4, + pictures = { + --~ { size = 64, filename = ICONPATHMIPS.."Woodpulp_1.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Woodpulp_2.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Woodpulp_3.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Woodpulp_4.png", scale = 0.2, mipmap_count = 1 } + { size = 64, filename = ICONPATHMIPS.."Woodpulp_1.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Woodpulp_2.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Woodpulp_3.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Woodpulp_4.png", scale = 0.2 } + }, + fuel_value = "1MJ", + fuel_category = "chemical", + subgroup = "raw-material", + order = "a-b[bi-woodpulp]", + stack_size = 800 + }, + + --- Wood Bricks + { + type = "item", + name = "wood-bricks", + icon = ICONPATH .. "Fuel_Brick.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Fuel_Brick.png", + icon_size = 64, + } + }, + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-bx[bi-woodbrick]", + fuel_category = "chemical", + fuel_value = "20MJ", + stack_size = 200 + }, + + + --- Ash + { + type = "item", + name = "bi-ash", + icon = ICONPATH .. "ash.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "ash.png", + icon_size = 64, + } + }, + icon_mipmaps = 4, + pictures = { + --~ { size = 64, filename = ICONPATHMIPS.."Ash_1.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Ash_2.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Ash_3.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Ash_4.png", scale = 0.2, mipmap_count = 1 } + { size = 64, filename = ICONPATHMIPS.."Ash_1.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Ash_2.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Ash_3.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Ash_4.png", scale = 0.2 } + }, + --~ fuel_value = "1MJ", + --~ fuel_category = "chemical", + subgroup = "raw-material", + order = "a[bi]-a-b[bi-ash]", + stack_size = 400 + }, + + --- Charcoal + { + type = "item", + name = "wood-charcoal", + icon = ICONPATH .. "charcoal.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "charcoal.png", + icon_size = 64, + } + }, + icon_mipmaps = 4, + pictures = { + --~ { size = 64, filename = ICONPATHMIPS.."Charcoal_1.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Charcoal_2.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Charcoal_3.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Charcoal_4.png", scale = 0.2, mipmap_count = 1 } + { size = 64, filename = ICONPATHMIPS.."Charcoal_1.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Charcoal_2.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Charcoal_3.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Charcoal_4.png", scale = 0.2 } + }, + fuel_value = "6MJ", + fuel_category = "chemical", + subgroup = "raw-material", + order = "a[bi]-a-c[charcoal]", + stack_size = 400 + }, + + --- Coke Coal / Pellet Coke for Angels + { + type = "item", + name = "pellet-coke", + icon = ICONPATH .. "coke-coal.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "coke-coal.png", + icon_size = 64, + } + }, + fuel_value = "28MJ", + fuel_category = "chemical", + fuel_acceleration_multiplier = 1.2, + fuel_top_speed_multiplier = 1.1, + subgroup = "raw-material", + order = "a[bi]-a-g[bi-coke-coal]", + stack_size = 400 + }, + + + --- Crushed Stone + { + type = "item", + name = "stone-crushed", + icon = ICONPATH .. "crushed-stone.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "crushed-stone.png", + icon_size = 64, + } + }, + icon_mipmaps = 4, + pictures = { + --~ { size = 64, filename = ICONPATHMIPS.."Crush_1.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Crush_2.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Crush_3.png", scale = 0.2, mipmap_count = 1 }, + --~ { size = 64, filename = ICONPATHMIPS.."Crush_4.png", scale = 0.2, mipmap_count = 1 } + { size = 64, filename = ICONPATHMIPS.."Crush_1.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Crush_2.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Crush_3.png", scale = 0.2 }, + { size = 64, filename = ICONPATHMIPS.."Crush_4.png", scale = 0.2 } + }, + subgroup = "raw-material", + order = "a[bi]-a-z[stone-crushed]", + -- Changed for 0.18.34/1.1.4 + --~ stack_size = 800 + stack_size = 400 + }, + + + --- Seeb Bomb - Basic + { + type = "ammo", + name = "bi-seed-bomb-basic", + icon = ICONPATH .. "Seed_bomb_icon_b.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seed_bomb_icon_b.png", + icon_size = 64, + } + }, + ammo_type = { + range_modifier = 3, + cooldown_modifier = 3, + target_type = "position", + category = "rocket", + action = { + type = "direct", + action_delivery = { + type = "projectile", + projectile = "seed-bomb-projectile-1", + starting_speed = 0.05, + } + } + }, + subgroup = "ammo", + order = "a[rocket-launcher]-x[seed-bomb]-a", + stack_size = 10 + }, + + + --- Seeb Bomb - Standard + { + type = "ammo", + name = "bi-seed-bomb-standard", + icon = ICONPATH .. "Seed_bomb_icon_s.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seed_bomb_icon_s.png", + icon_size = 64, + } + }, + ammo_type = { + range_modifier = 3, + cooldown_modifier = 3, + target_type = "position", + category = "rocket", + action = { + type = "direct", + action_delivery = { + type = "projectile", + projectile = "seed-bomb-projectile-2", + starting_speed = 0.05, + } + } + }, + subgroup = "ammo", + order = "a[rocket-launcher]-x[seed-bomb]-b", + stack_size = 10 + }, + + + --- Seeb Bomb - Advanced + { + type = "ammo", + name = "bi-seed-bomb-advanced", + icon = ICONPATH .. "Seed_bomb_icon_a.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seed_bomb_icon_a.png", + icon_size = 64, + } + }, + ammo_type = { + range_modifier = 3, + cooldown_modifier = 3, + target_type = "position", + category = "rocket", + action = { + type = "direct", + action_delivery = { + type = "projectile", + projectile = "seed-bomb-projectile-3", + starting_speed = 0.05, + } + } + }, + subgroup = "ammo", + order = "a[rocket-launcher]-x[seed-bomb]-c", + stack_size = 10 + }, + + --- Arboretum (Entity) + { + type= "item", + name= "bi-arboretum-area", + icon = ICONPATH .. "Arboretum_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Arboretum_Icon.png", + icon_size = 64, + } + }, + subgroup = "production-machine", + order = "x[bi]-a[bi-arboretum]", + place_result = "bi-arboretum-area", + stack_size= 10, + }, + + --- Arboretum Hidden Recipe + { + type = "item", + name = "bi-arboretum-r1", + icon = ICONPATH .. "Seedling_b.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seedling_b.png", + icon_size = 64, + } + }, + flags = {"hidden"}, + subgroup = "terrain", + order = "bi-arboretum-r1", + stack_size = 1 + }, + + --- Arboretum Hidden Recipe + { + type = "item", + name = "bi-arboretum-r2", + icon = ICONPATH .. "bi_change_1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_change_1.png", + icon_size = 64, + } + }, + flags = {"hidden"}, + subgroup = "terrain", + order = "bi-arboretum-r2", + stack_size = 1 + }, + + --- Arboretum Hidden Recipe + { + type = "item", + name = "bi-arboretum-r3", + icon = ICONPATH .. "bi_change_2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_change_2.png", + icon_size = 64, + } + }, + flags = {"hidden"}, + subgroup = "terrain", + order = "bi-arboretum-r3", + stack_size = 1 + }, + + --- Arboretum Hidden Recipe + { + type = "item", + name = "bi-arboretum-r4", + icon = ICONPATH .. "bi_change_plant_1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_change_plant_1.png", + icon_size = 64, + } + }, + flags = {"hidden"}, + subgroup = "terrain", + order = "bi-arboretum-r4", + stack_size = 1 + }, + + --- Arboretum Hidden Recipe + { + type = "item", + name = "bi-arboretum-r5", + icon = ICONPATH .. "bi_change_plant_2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_change_plant_2.png", + icon_size = 64, + } + }, + flags = {"hidden"}, + subgroup = "terrain", + order = "bi-arboretum-r5", + stack_size = 1 + }, + +}) + +--- Fertilizer can change terrain to better terrain +--~ if BioInd.AB_tiles() then + data:extend({ + --- fertilizer + { + type = "item", + name = "fertilizer", + icon = ICONPATH .. "fertilizer_64.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "fertilizer_64.png", + icon_size = 64, + } + }, + subgroup = "intermediate-product", + order = "b[fertilizer]", + stack_size = 200, + -- 0.18.31/1.1.1: Moved to data-final-fixes.lua because we changed the name + -- fron "fertiliser" to "fertilizer" and now PyAlienLife removes place_as_tile! + --~ place_as_tile = { + --~ result = "vegetation-green-grass-3", + --~ condition_size = 1, + --~ condition = { "water-tile" } + --~ }, + }, + + --- Adv fertilizer + { + type = "item", + name = "bi-adv-fertilizer", + icon = ICONPATH .. "advanced_fertilizer_64.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "advanced_fertilizer_64.png", + icon_size = 64, + } + }, + subgroup = "intermediate-product", + order = "b[fertilizer]-b[bi-adv-fertilizer]", + stack_size = 200, + -- 0.18.31/1.1.1: Moved to data-final-fixes.lua because we changed the name + -- from "bi-adv-fertiliser" to "bi-adv-fertilizer" and now PyAlienLife removes + -- place_as_tile! + --~ place_as_tile = { + --~ result = "vegetation-green-grass-1", + --~ condition_size = 1, + --~ condition = { "water-tile" } + --~ }, + }, + }) + diff --git a/Bio_Industries_2/prototypes/Bio_Farm/liquids.lua b/Bio_Industries_2/prototypes/Bio_Farm/liquids.lua new file mode 100644 index 0000000..b2f707d --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Farm/liquids.lua @@ -0,0 +1,62 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +data:extend({ +-- Moved this over to compatible_recipes.lua. These are fluids that may also be created by other mods! + --~ ----- liquid-air + --~ { + --~ type = "fluid", + --~ name = "liquid-air", + --~ icon = ICONPATH .. "liquid-air.png", + --~ icon_size = 64, + --~ default_temperature = 25, + --~ 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}, + --~ pressure_to_speed_ratio = 0.4, + --~ flow_to_energy_ratio = 0.59, + --~ order = "a[fluid]-b[liquid-air]" + --~ }, + + --~ ----- Nitrogen + --~ { + --~ type = "fluid", + --~ name = "nitrogen", + --~ icon = ICONPATH .. "nitrogen.png", + --~ icon_size = 64, + --~ default_temperature = 25, + --~ 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}, + --~ pressure_to_speed_ratio = 0.4, + --~ flow_to_energy_ratio = 0.59, + --~ order = "a[fluid]-b[nitrogen]" + --~ }, + + ----- Bio-Mass + { + type = "fluid", + name = "bi-biomass", + icon = ICONPATH .. "biomass.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "biomass.png", + icon_size = 64, + } + }, + default_temperature = 25, + max_temperature = 100, + heat_capacity = "1KJ", + base_color = {r = 0, g = 0, b = 0}, + flow_color = {r = 0.1, g = 1.0, b = 0.0}, + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-b[biomass]" + }, +}) diff --git a/Bio_Industries_2/prototypes/Bio_Farm/pipeConnectors.lua b/Bio_Industries_2/prototypes/Bio_Farm/pipeConnectors.lua new file mode 100644 index 0000000..a8a94bf --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Farm/pipeConnectors.lua @@ -0,0 +1,623 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + + +function assembler2pipepicturesCokery() + return + { + north = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + shift = util.by_pixel(2.5, 14), + hr_version = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + shift = util.by_pixel(2.25, 13.5), + scale = 0.5, + } + }, + east = { + filename = "__base__/graphics/entity/assembling-machine-2/assembling-machine-2-pipe-E.png", + priority = "extra-high", + width = 20, + height = 38, + shift = util.by_pixel(-25, 1), + hr_version = { + filename = "__base__/graphics/entity/assembling-machine-2/hr-assembling-machine-2-pipe-E.png", + priority = "extra-high", + width = 42, + height = 76, + shift = util.by_pixel(-24.5, 1), + scale = 0.5, + } + }, + south = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + shift = util.by_pixel(0, -31.5), + hr_version = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + shift = util.by_pixel(0, -31.25), + scale = 0.5, + } + }, + west = { + filename = "__base__/graphics/entity/assembling-machine-2/assembling-machine-2-pipe-W.png", + priority = "extra-high", + width = 19, + height = 37, + shift = util.by_pixel(25.5, 1.5), + hr_version = { + filename = "__base__/graphics/entity/assembling-machine-2/hr-assembling-machine-2-pipe-W.png", + priority = "extra-high", + width = 39, + height = 73, + shift = util.by_pixel(25.75, 1.25), + scale = 0.5, + } + } + } +end + + +function assembler2pipepicturesCokery() + return + { + north = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + shift = {0.09375, 0.4375} + }, + east = { + filename = "__base__/graphics/entity/assembling-machine-2/pipe-east.png", + priority = "extra-high", + width = 41, + height = 40, + shift = {-0.71875, 0} + }, + south = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + shift = {0.0625, -1} + }, + west = { + filename = "__base__/graphics/entity/assembling-machine-2/pipe-west.png", + priority = "extra-high", + width = 41, + height = 40, + shift = {0.78125, 0.03125} + } + } +end + + +function pipecoverspicturesCokery() + return { + north = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + hr_version = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + scale = 0.5 + } + }, + east = { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", + priority = "extra-high", + width = 64, + height = 64, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-east.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5 + } + }, + south = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + hr_version = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + scale = 0.5 + } + }, + west = { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", + priority = "extra-high", + width = 64, + height = 64, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-west.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5 + } + } + } +end + + +function assembler2pipepicturesBioreactor() + return + { + north = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + shift = util.by_pixel(2.5, 14), + hr_version = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 71, + height = 38, + shift = util.by_pixel(2.25, 13.5), + scale = 0.5, + } + }, + east = { + filename = "__base__/graphics/entity/assembling-machine-2/assembling-machine-2-pipe-E.png", + priority = "extra-high", + width = 20, + height = 38, + shift = util.by_pixel(-25, 1), + hr_version = { + filename = "__base__/graphics/entity/assembling-machine-2/hr-assembling-machine-2-pipe-E.png", + priority = "extra-high", + width = 42, + height = 76, + shift = util.by_pixel(-24.5, 1), + scale = 0.5, + } + }, + south = { + filename = "__base__/graphics/entity/assembling-machine-2/assembling-machine-2-pipe-S.png", + priority = "extra-high", + width = 44, + height = 31, + shift = util.by_pixel(0, -31.5), + hr_version = { + filename = "__base__/graphics/entity/assembling-machine-2/hr-assembling-machine-2-pipe-S.png", + priority = "extra-high", + width = 88, + height = 61, + shift = util.by_pixel(0, -31.25), + scale = 0.5, + } + }, + west = { + filename = "__base__/graphics/entity/assembling-machine-2/assembling-machine-2-pipe-W.png", + priority = "extra-high", + width = 19, + height = 37, + shift = util.by_pixel(25.5, 1.5), + hr_version = { + filename = "__base__/graphics/entity/assembling-machine-2/hr-assembling-machine-2-pipe-W.png", + priority = "extra-high", + width = 39, + height = 73, + shift = util.by_pixel(25.75, 1.25), + scale = 0.5, + } + } + } +end + + + +function pipecoverspicturesBioreactor() + return { + north = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + hr_version = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + scale = 0.5 + } + }, + east = { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", + priority = "extra-high", + width = 64, + height = 64, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-east.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5 + } + }, + south = { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south.png", + priority = "extra-high", + width = 64, + height = 64, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-south.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5 + } + }, + west = { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", + priority = "extra-high", + width = 64, + height = 64, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-west.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5 + } + } + } + +end + + +function BioFarm_Pipe_Connectors_Left() + return + { + north = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-N_l.png", + priority = "extra-high", + width = 51, + height = 35, + shift = {0.25, 1}, + hr_version = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-N_l.png", + priority = "extra-high", + width = 51, + height = 35, + shift = {0.25, 1}, + } + }, + east = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-E_l.png", + priority = "extra-high", + width = 18, + height = 48, + shift = {-1, -0.25}, + hr_version = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-E_l.png", + priority = "extra-high", + width = 18, + height = 48, + shift = {-1, -0.25}, + } + }, + south = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-S_l.png", + priority = "extra-high", + width = 49, + height = 25, + shift = {0.5, -1}, + hr_version = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-S_l.png", + priority = "extra-high", + width = 49, + height = 25, + shift = {0.5, -1}, + } + }, + west = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-W_l.png", + priority = "extra-high", + width = 16, + height = 51, + shift = {0.5, 0.5}, + hr_version = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-W_l.png", + priority = "extra-high", + width = 16, + height = 51, + shift = {0.5, 0.5}, + } + } + } +end + + +function bio_farm_pipe_pictures() + return + { + north = { + filename = "__base__/graphics/entity/assembling-machine-3/assembling-machine-3-pipe-N.png", + priority = "extra-high", + width = 35, + height = 18, + shift = util.by_pixel(2.5, 14), + hr_version = { + filename = "__base__/graphics/entity/assembling-machine-3/hr-assembling-machine-3-pipe-N.png", + priority = "extra-high", + width = 71, + height = 38, + shift = util.by_pixel(2.25, 13.5), + scale = 0.5, + } + }, + east = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + hr_version = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + } + }, + south = { + filename = "__base__/graphics/entity/assembling-machine-3/assembling-machine-3-pipe-S.png", + priority = "extra-high", + width = 44, + height = 31, + shift = util.by_pixel(0, -31.5), + hr_version = { + filename = "__base__/graphics/entity/assembling-machine-3/hr-assembling-machine-3-pipe-S.png", + priority = "extra-high", + width = 88, + height = 61, + shift = util.by_pixel(0, -31.25), + scale = 0.5, + } + }, + west = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + hr_version = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + } + } + } +end + +bio_farm_pipe_covers_pictures = function() + return { + north = { + layers = { + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-north.png", + priority = "extra-high", + width = 64, + height = 64, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-north.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5 + } + }, + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-north-shadow.png", + priority = "extra-high", + width = 64, + height = 64, + draw_as_shadow = true, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-north-shadow.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5, + draw_as_shadow = true + } + }, + }, + }, + east = { + layers = { + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", + priority = "extra-high", + width = 64, + height = 64, + shift = {-0.22, 0}, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-east.png", + priority = "extra-high", + width = 128, + height = 128, + shift = {-0.22, 0}, + scale = 0.5 + } + }, + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east-shadow.png", + priority = "extra-high", + width = 64, + height = 64, + shift = {-0.22, 0}, + draw_as_shadow = true, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-east-shadow.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5, + shift = {-0.22, 0}, + draw_as_shadow = true + } + }, + }, + }, + south = { + layers = { + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south.png", + priority = "extra-high", + width = 64, + height = 64, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-south.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5 + } + }, + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south-shadow.png", + priority = "extra-high", + width = 64, + height = 64, + draw_as_shadow = true, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-south-shadow.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5, + draw_as_shadow = true + } + }, + }, + }, + west = { + layers = { + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", + priority = "extra-high", + width = 64, + height = 64, + shift = {0.2, 0}, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-west.png", + priority = "extra-high", + width = 128, + height = 128, + shift = {0.2, 0}, + scale = 0.5 + } + }, + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west-shadow.png", + priority = "extra-high", + width = 64, + height = 64, + shift = {0.2, 0}, + draw_as_shadow = true, + hr_version = { + filename = "__base__/graphics/entity/pipe-covers/hr-pipe-cover-west-shadow.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5, + shift = {0.2, 0}, + draw_as_shadow = true + } + }, + }, + } + } +end + + + + +--[[ +function BioFarm_Pipe_Connectors_Right() + return + { + north = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-N_r.png", + priority = "extra-high", + width = 51, + height = 35, + --shift = util.by_pixel(2.5, 14), + shift = {-4, -4}, + hr_version = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-N_r.png", + priority = "extra-high", + width = 51, + height = 35, + shift = {0.5, 0.5}, + } + }, + east = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-E_r.png", + priority = "extra-high", + width = 18, + height = 48, + shift = {-0.5, 0.5}, + hr_version = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-E_r.png", + priority = "extra-high", + width = 18, + height = 48, + shift = {-0.5, 0.5}, + } + }, + south = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-S_r.png", + priority = "extra-high", + width = 49, + height = 25, + shift = {0.5, -0.5}, + hr_version = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-S_r.png", + priority = "extra-high", + width = 49, + height = 25, + shift = {0.5, -0.5}, + } + }, + west = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-W_r.png", + priority = "extra-high", + width = 16, + height = 51, + shift = {-0.5, -0.5}, + hr_version = { + filename = "__Bio_Industries__/graphics/entities/biofarm/pipe_connections/Bio_Farm-pipe-W_r.png", + priority = "extra-high", + width = 16, + height = 51, + shift = {-0.5, -0.5}, + } + } + } +end +]] diff --git a/Bio_Industries_2/prototypes/Bio_Farm/recipe-categories.lua b/Bio_Industries_2/prototypes/Bio_Farm/recipe-categories.lua new file mode 100644 index 0000000..4264894 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Farm/recipe-categories.lua @@ -0,0 +1,33 @@ +data:extend( +{ + { + type = "recipe-category", + name = "biofarm-mod-smelting" + }, + + { + type = "recipe-category", + name = "biofarm-mod-crushing" + }, + + { + type = "recipe-category", + name = "biofarm-mod-bioreactor" + }, + + { + type = "recipe-category", + name = "biofarm-mod-farm" + }, + + { + type = "recipe-category", + name = "biofarm-mod-greenhouse" + }, + + { + type = "recipe-category", + name = "bi-arboretum" + }, +} +) diff --git a/Bio_Industries_2/prototypes/Bio_Farm/recipe.lua b/Bio_Industries_2/prototypes/Bio_Farm/recipe.lua new file mode 100644 index 0000000..826733d --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Farm/recipe.lua @@ -0,0 +1,1768 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +data:extend({ + + + + --- Seeds from Water (BASIC) + { + type = "recipe", + name = "bi-seed-1", + icon = ICONPATH .. "bio_seed1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_seed1.png", + icon_size = 64, + } + }, + category = "biofarm-mod-greenhouse", + energy_required = 200, + ingredients = { + {type = "fluid", name = "water", amount = 100}, + {type = "item", name = "wood", amount = 20}, + }, + results = { + {type = "item", name = "bi-seed", amount = 40}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-farm-fluid-1", + order = "a[bi]-ssw-a1[bi-seed-1]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Seeds from Water & Ash + { + type = "recipe", + name = "bi-seed-2", + icon = ICONPATH .. "bio_seed2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_seed2.png", + icon_size = 64, + } + }, + category = "biofarm-mod-greenhouse", + energy_required = 150, + ingredients = { + {type = "fluid", name = "water", amount = 40}, + {type = "item", name = "wood", amount = 20}, + {type = "item", name = "bi-ash", amount = 10}, + }, + results = { + {type = "item", name = "bi-seed", amount = 50}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-farm-fluid-1", + order = "a[bi]-ssw-a1[bi-seed-2]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Seeds from Water & fertilizer + { + type = "recipe", + name = "bi-seed-3", + icon = ICONPATH .. "bio_seed3.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_seed3.png", + icon_size = 64, + } + }, + category = "biofarm-mod-greenhouse", + energy_required = 100, + ingredients = { + {type = "fluid", name = "water", amount = 40}, + {type = "item", name = "wood", amount = 20}, + {type = "item", name = "fertilizer", amount = 10}, + }, + results = { + {type = "item", name = "bi-seed", amount = 60}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-farm-fluid-1", + order = "a[bi]-ssw-a1[bi-seed-3]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Seeds from Water & Adv-fertilizer + { + type = "recipe", + name = "bi-seed-4", + icon = ICONPATH .. "bio_seed4.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_seed4.png", + icon_size = 64, + } + }, + category = "biofarm-mod-greenhouse", + energy_required = 50, + ingredients = { + {type = "item", name = "wood", amount = 20}, + {type = "item", name = "bi-adv-fertilizer", amount = 10}, + {type = "fluid", name = "water", amount = 40}, + }, + results = { + {type = "item", name = "bi-seed", amount = 80}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-farm-fluid-1", + order = "a[bi]-ssw-a1[bi-seed-4]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Seedlings from Water (BASIC) + { + type = "recipe", + name = "bi-seedling-1", + icon = ICONPATH .. "Seedling1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seedling1.png", + icon_size = 64, + } + }, + category = "biofarm-mod-greenhouse", + energy_required = 400, + ingredients = { + {type = "item", name = "bi-seed", amount = 20}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "item", name = "seedling", amount = 40}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-farm-fluid-2", + order = "b[bi]-ssw-b1[bi-Seedling_Mk1]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Seedlings from Water & Ash + { + type = "recipe", + name = "bi-seedling-2", + icon = ICONPATH .. "Seedling2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seedling2.png", + icon_size = 64, + } + }, + category = "biofarm-mod-greenhouse", + energy_required = 300, + ingredients = { + {type = "item", name = "bi-seed", amount = 25}, + {type = "item", name = "bi-ash", amount = 10}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "item", name = "seedling", amount = 60}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-farm-fluid-2", + order = "b[bi]-ssw-b1[bi-Seedling_Mk2]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Seedlings from Water & fertilizer + { + type = "recipe", + name = "bi-seedling-3", + icon = ICONPATH .. "Seedling3.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seedling3.png", + icon_size = 64, + } + }, + category = "biofarm-mod-greenhouse", + energy_required = 200, + ingredients = { + {type = "item", name = "bi-seed", amount = 30}, + {type = "item", name = "fertilizer", amount = 10}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "item", name = "seedling", amount = 90}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + subgroup = "bio-bio-farm-fluid-2", + order = "b[bi]-ssw-b1[bi-Seedling_Mk3]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Seedlings from Water & Adv-fertilizer + { + type = "recipe", + name = "bi-seedling-4", + icon = ICONPATH .. "Seedling4.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seedling4.png", + icon_size = 64, + } + }, + category = "biofarm-mod-greenhouse", + energy_required = 100, + ingredients = { + {type = "item", name = "bi-seed", amount = 40}, + {type = "fluid", name = "water", amount = 100}, + {type = "item", name = "bi-adv-fertilizer", amount = 10}, + }, + results = { + {type = "item", name = "seedling", amount = 160}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-farm-fluid-2", + order = "b[bi]-ssw-b1[bi-Seedling_Mk4]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Raw Wood from Water (BASIC) + { + type = "recipe", + name = "bi-logs-1", + icon = ICONPATH .. "raw-wood-mk1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "raw-wood-mk1.png", + icon_size = 64, + } + }, + category = "biofarm-mod-farm", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 400, + ingredients = { + {type = "item", name = "seedling", amount = 20}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "item", name = "wood", amount = 40}, + {type = "item", name = "bi-woodpulp", amount = 80}, + }, + main_product = "", + subgroup = "bio-bio-farm-fluid-3", + order = "c[bi]-ssw-c1[raw-wood1]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Raw Wood from Water & Ash + { + type = "recipe", + name = "bi-logs-2", + icon = ICONPATH .. "raw-wood-mk2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "raw-wood-mk2.png", + icon_size = 64, + } + }, + category = "biofarm-mod-farm", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 360, + ingredients = { + {type = "item", name = "seedling", amount = 30}, + {type = "item", name = "bi-ash", amount = 10}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "item", name = "wood", amount = 75}, + {type = "item", name = "bi-woodpulp", amount = 150}, + }, + main_product = "", + subgroup = "bio-bio-farm-fluid-3", + order = "c[bi]-ssw-c1[raw-wood2]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Raw Wood from Water & fertilizer + { + type = "recipe", + name = "bi-logs-3", + icon = ICONPATH .. "raw-wood-mk3.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "raw-wood-mk3.png", + icon_size = 64, + } + }, + category = "biofarm-mod-farm", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 300, + ingredients = { + {type = "item", name = "seedling", amount = 45}, + {type = "item", name = "fertilizer", amount = 10}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "item", name = "wood", amount = 135}, + {type = "item", name = "bi-woodpulp", amount = 270}, + }, + main_product = "", + subgroup = "bio-bio-farm-fluid-3", + order = "c[bi]-ssw-c1[raw-wood3]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Raw Wood from adv-fertilizer + { + type = "recipe", + name = "bi-logs-4", + icon = ICONPATH .. "raw-wood-mk4.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "raw-wood-mk4.png", + icon_size = 64, + } + }, + category = "biofarm-mod-farm", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 100, + ingredients = { + {type = "item", name = "seedling", amount = 40}, + {type = "fluid", name = "water", amount = 100}, + {type = "item", name = "bi-adv-fertilizer", amount = 5}, + }, + results = { + {type = "item", name = "wood", amount = 160}, + {type = "item", name = "bi-woodpulp", amount = 320}, + }, + main_product = "", + subgroup = "bio-bio-farm-fluid-3", + order = "c[bi]-ssw-c1[raw-wood4]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Bio Greenhouse (ENTITY) + { + type = "recipe", + name = "bi-bio-greenhouse", + localised_name = {"entity-name.bi-bio-greenhouse"}, + localised_description = {"entity-description.bi-bio-greenhouse"}, + icon = ICONPATH .. "bio_greenhouse.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_greenhouse.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + --~ energy_required = 5, + energy_required = 2.5, + ingredients = { + {"iron-stick", 10}, + {"stone-brick", 10}, + {"small-lamp", 5}, + }, + result = "bi-bio-greenhouse", + result_count = 1, + main_product = "", + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = false, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + --~ energy_required = 8, + energy_required = 4, + ingredients = { + {"iron-stick", 15}, + {"stone-brick", 15}, + {"small-lamp", 5}, + }, + result = "bi-bio-greenhouse", + result_count = 1, + main_product = "", + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = false, -- Added for 0.18.34/1.1.4 + }, + subgroup = "bio-bio-farm-fluid-entity", + order = "a[bi]", + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + + --- Bio Farm (ENTITY) + { + type = "recipe", + name = "bi-bio-farm", + localised_name = {"entity-name.bi-bio-farm"}, + localised_description = {"entity-description.bi-bio-farm"}, + icon = ICONPATH .. "Bio_Farm_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Bio_Farm_Icon.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + --~ energy_required = 10, + energy_required = 5, + ingredients = { + {"bi-bio-greenhouse", 4}, + {"stone-crushed", 10}, + {"copper-cable", 10}, + }, + result = "bi-bio-farm", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + --~ energy_required = 15, + energy_required = 7.5, + ingredients = { + {"bi-bio-greenhouse", 8}, + {"stone-crushed", 20}, + {"copper-cable", 20}, + }, + result = "bi-bio-farm", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + subgroup = "bio-bio-farm-fluid-entity", + order = "b[bi]", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + + -- Woodpulp-- + { + type = "recipe", + name = "bi-woodpulp", + icon = ICONPATH .. "Woodpulp_raw-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Woodpulp_raw-wood.png", + icon_size = 64, + } + }, + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-a[bi-1-woodpulp]", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + energy_required = 2, + ingredients = {{"wood", 2}}, + result = "bi-woodpulp", + result_count = 4, + main_product = "", + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + allow_intermediates = true, -- Added for 0.18.35/1.1.5 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = false, -- Added for 0.18.34/1.1.4 + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Resin recipe Pulp + { + type = "recipe", + name = "bi-resin-pulp", + icon = ICONPATH .. "bi_resin_pulp.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_resin_pulp.png", + icon_size = 64, + } + }, + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-ba[bi-2-resin-2-pulp]", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + energy_required = 1, + ingredients = { + {type = "item", name = "bi-woodpulp", amount = 3}, + }, + result = "resin", + result_count = 1, + main_product = "", + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = false, -- Added for 0.18.34/1.1.4 + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + + -- Wood from pulp-- + { + type = "recipe", + name = "bi-wood-from-pulp", + icon = ICONPATH .. "wood_from_pulp.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "wood_from_pulp.png", + icon_size = 64, + } + }, + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-c[bi-3-wood_from_pulp]", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + energy_required = 2.5, + ingredients = { + {type = "item", name = "bi-woodpulp", amount = 8}, + {type = "item", name = "resin", amount = 2}, + }, + result = "wood", + result_count = 4, + main_product = "", + --~ allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = false, -- Added for 0.18.34/1.1.4 + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + + -- Wood Fuel Brick + { + type = "recipe", + name = "bi-wood-fuel-brick", + --~ localised_name = {"item-name.wood-bricks"}, + --~ localised_description = {"item-description.wood-bricks"}, + icon = ICONPATH .. "Fuel_Brick.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Fuel_Brick.png", + icon_size = 64, + } + }, + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-bx[bi-4-woodbrick]", + energy_required = 2, + ingredients = {{"bi-woodpulp", 24}}, + result = "wood-bricks", + result_count = 1, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Changed for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + -- ASH -- + { + type = "recipe", + name = "bi-ash-1", + icon = ICONPATH .. "ash_raw-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "ash_raw-wood.png", + icon_size = 64, + } + }, + category = "biofarm-mod-smelting", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-cb[bi-5-ash-1]", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + energy_required = 3, + ingredients = {{"wood", 5}}, + result = "bi-ash", + result_count = 5, + main_product = "", + allow_as_intermediate = true, -- Changed for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + -- ASH 2-- + { + type = "recipe", + name = "bi-ash-2", + icon = ICONPATH .. "ash_woodpulp.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "ash_woodpulp.png", + icon_size = 64, + } + }, + category = "biofarm-mod-smelting", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-ca[bi-5-ash-2]", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + + energy_required = 2.5, + ingredients = {{"bi-woodpulp", 12}}, + result = "bi-ash", + result_count = 6, + main_product = "", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + -- CHARCOAL 1 + { + type = "recipe", + name = "bi-charcoal-1", + icon = ICONPATH .. "charcoal_woodpulp.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "charcoal_woodpulp.png", + icon_size = 64, + } + }, + category = "biofarm-mod-smelting", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-d[bi-6-charcoal-1]", + energy_required = 15, + ingredients = {{"bi-woodpulp", 24}}, + result = "wood-charcoal", + result_count = 5, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + -- CHARCOAL 2 + { + type = "recipe", + name = "bi-charcoal-2", + icon = ICONPATH .. "charcoal_raw-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "charcoal_raw-wood.png", + icon_size = 64, + } + }, + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-d[bi-6-charcoal-2]", + category = "biofarm-mod-smelting", + energy_required = 20, + ingredients = {{"wood", 20}}, + result = "wood-charcoal", + result_count = 8, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + -- COAL 1 -- + { + type = "recipe", + name = "bi-coal-1", + icon = ICONPATH .. "coal_mk1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "coal_mk1.png", + icon_size = 64, + } + }, + category = "biofarm-mod-smelting", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-ea[bi-6-coal-1]", + energy_required = 20, + ingredients = {{"wood-charcoal", 10}}, + result = "coal", + result_count = 12, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + + }, + + + -- COAL 2 -- + { + type = "recipe", + name = "bi-coal-2", + icon = ICONPATH .. "coal_mk2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "coal_mk2.png", + icon_size = 64, + } + }, + category = "biofarm-mod-smelting", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-eb[bi-6-coal-2]", + energy_required = 20, + ingredients = {{"wood-charcoal", 10}}, + result = "coal", + result_count = 16, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + + }, + + + -- Solid Fuel + { + type = "recipe", + name = "bi-solid-fuel", + icon = ICONPATH .. "bi_solid_fuel_wood_brick.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_solid_fuel_wood_brick.png", + icon_size = 64, + } + }, + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-fa[bi-7-solid_fuel]", + category = "chemistry", + energy_required = 2, + ingredients = {{"wood-bricks", 3}}, + result = "solid-fuel", + result_count = 2, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Changed for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + + }, + + + -- Pellet-Coke from Coal -- Used to be Coke-Coal + { + type = "recipe", + name = "bi-coke-coal", + --~ localised_name = {"item-name.pellet-coke"}, + --~ localised_description = {"item-description.pellet-coke"}, + icon = ICONPATH .. "pellet_coke_coal.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "pellet_coke_coal.png", + icon_size = 64, + } + }, + category = "biofarm-mod-smelting", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-g[bi-8-coke-coal]-1", + energy_required = 20, + ingredients = {{"coal", 12}}, + result = "pellet-coke", + result_count = 2, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_as_intermediate = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + + }, + + + -- Pellet-Coke from Solid Fuel -- Used to be Coke-Coal + { + type = "recipe", + name = "bi-pellet-coke", + --~ localised_name = {"item-name.pellet-coke"}, + --~ localised_description = {"item-description.pellet-coke"}, + icon = ICONPATH .. "pellet_coke_solid.png", + --icon = "__Bio_Industries__/graphics/icons/pellet_coke_c.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "pellet_coke_solid.png", + icon_size = 64, + } + }, + category = "biofarm-mod-smelting", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-g[bi-8-coke-coal]-3", + energy_required = 6, + ingredients = {{"solid-fuel", 5}}, + result = "pellet-coke", + result_count = 3, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_as_intermediate = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + -- CRUSHED STONE from stone -- + { + type = "recipe", + name = "bi-crushed-stone-1", + icon = ICONPATH .. "crushed-stone-stone.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "crushed-stone-stone.png", + icon_size = 64, + } + }, + category = "biofarm-mod-crushing", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-z[bi-9-stone-crushed-1]", + energy_required = 1.5, + ingredients = {{"stone", 1}}, + result = "stone-crushed", + result_count = 2, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + + }, + + -- CRUSHED STONE from concrete -- + { + type = "recipe", + name = "bi-crushed-stone-2", + localised_description = {"recipe-description.bi-crushed-stone"}, + icon = ICONPATH .. "crushed-stone-concrete.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "crushed-stone-concrete.png", + icon_size = 64, + } + }, + category = "biofarm-mod-crushing", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-z[bi-9-stone-crushed-2]", + energy_required = 2.5, -- Increased crafting time + ingredients = {{"concrete", 1}}, + result = "stone-crushed", + result_count = 2, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + -- CRUSHED STONE from hazard concrete -- + { + type = "recipe", + name = "bi-crushed-stone-3", + localised_description = {"recipe-description.bi-crushed-stone"}, + icon = ICONPATH .. "crushed-stone-hazard-concrete.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "crushed-stone-hazard-concrete.png", + icon_size = 64, + } + }, + category = "biofarm-mod-crushing", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-z[bi-9-stone-crushed-3]", + energy_required = 2.5, -- Increased crafting time + ingredients = {{"hazard-concrete", 1}}, + result = "stone-crushed", + result_count = 2, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + + }, + + -- CRUSHED STONE from refined concrete -- + { + type = "recipe", + name = "bi-crushed-stone-4", + localised_description = {"recipe-description.bi-crushed-stone"}, + icon = ICONPATH .. "crushed-stone-refined-concrete.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "crushed-stone-refined-concrete.png", + icon_size = 64, + } + }, + category = "biofarm-mod-crushing", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-z[bi-9-stone-crushed-4]", + energy_required = 5, -- Increased crafting time + ingredients = {{"refined-concrete", 1}}, + result = "stone-crushed", + result_count = 4, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + -- CRUSHED STONE from refined hazard concrete -- + { + type = "recipe", + name = "bi-crushed-stone-5", + localised_description = {"recipe-description.bi-crushed-stone"}, + icon = ICONPATH .. "crushed-stone-refined-hazard-concrete.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "crushed-stone-refined-hazard-concrete.png", + icon_size = 64, + } + }, + category = "biofarm-mod-crushing", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-z[bi-9-stone-crushed-5]", + energy_required = 5, -- Increased crafting time + ingredients = {{"refined-hazard-concrete", 1}}, + result = "stone-crushed", + result_count = 4, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + -- STONE Brick-- + { + type = "recipe", + name = "bi-stone-brick", + icon = ICONPATH .. "bi_stone_brick.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_stone_brick.png", + icon_size = 64, + } + }, + --category = "smelting", + category = "chemistry", + subgroup = "bio-bio-farm-raw", + order = "a[bi]-a-z2[bi-9-stone-brick]", + energy_required = 5, + ingredients = { + {type = "item", name = "stone-crushed", amount = 6}, + {type = "item", name = "bi-ash", amount = 2}, + }, + results = { + {type = "item", name = "stone-brick", amount = 2}, + }, + enabled = false, + main_product = "", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + -- COKERY (ENTITY)-- + { + type = "recipe", + name = "bi-cokery", + localised_name = {"entity-name.bi-cokery"}, + localised_description = {"entity-description.bi-cokery"}, + icon = ICONPATH .. "cokery.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "cokery.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + energy_required = 8, + ingredients = { + {"stone-furnace", 3}, + {"steel-plate", 10}, + }, + result = "bi-cokery", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 10, + ingredients = { + {"stone-furnace", 3}, + {"steel-plate", 12}, + }, + result = "bi-cokery", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + subgroup = "bio-bio-farm-raw-entity", + order = "a[bi]", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + + -- STONE CRUSHER (ENTITY) -- + { + type = "recipe", + name = "bi-stone-crusher", + localised_name = {"entity-name.bi-stone-crusher"}, + localised_description = {"entity-description.bi-stone-crusher"}, + icon = ICONPATH .. "stone_crusher.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "stone_crusher.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + energy_required = 3, + ingredients = { + {"iron-plate", 10}, + {"steel-plate", 10}, + {"iron-gear-wheel", 5}, + }, + result = "bi-stone-crusher", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 5, + ingredients = { + {"iron-plate", 12}, + {"steel-plate", 12}, + {"iron-gear-wheel", 8}, + }, + result = "bi-stone-crusher", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + subgroup = "bio-bio-farm-raw-entity", + order = "b[bi]", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + + + -- LIQUID-AIR -- + { + type = "recipe", + name = "bi-liquid-air", + icon = ICONPATH .. "liquid-air.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "liquid-air.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 1, + ingredients = {}, + results = { + {type = "fluid", name = "liquid-air", amount = 10} + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + subgroup = "bio-bio-farm-intermediate-product", + order = "aa", + }, + + ---NITROGEN -- + { + type = "recipe", + name = "bi-nitrogen", + icon = ICONPATH .. "nitrogen.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "nitrogen.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 10, + ingredients = { + {type = "fluid", name = "liquid-air", amount = 20} + }, + results = { + {type = "fluid", name = "nitrogen", amount = 20}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + --main_product= "nitrogen", + subgroup = "bio-bio-farm-intermediate-product", + order = "ab", + }, + + + -- fertilizer- Sulfur- + { + type = "recipe", + name = "bi-fertilizer-1", + icon = ICONPATH .. "fertilizer_sulfur.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "fertilizer_sulfur.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 5, + ingredients = { + {type = "item", name = "sulfur", amount = 1}, + {type = "fluid", name = "nitrogen", amount = 10}, + {type = "item", name = "bi-ash", amount = 10} + }, + results = { + {type = "item", name = "fertilizer", amount = 5} + }, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Changed for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "bio-bio-farm-intermediate-product", + order = "b[bi-fertilizer]", + }, + + + -- Advanced fertilizer 1 -- + { + type = "recipe", + name = "bi-adv-fertilizer-1", + icon = ICONPATH .. "advanced_fertilizer_64.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "advanced_fertilizer_64.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 50, + ingredients = { + {type = "item", name = "fertilizer", amount = 25}, + {type = "fluid", name = "bi-biomass", amount = 10}, -- <== Need to add during Data Updates + --{type = "fluid", name = "NE_enhanced-nutrient-solution", amount = 5}, -- Will be added if you have Natural Evolution Buildings Mod installed. + }, + results = { + {type = "item", name = "bi-adv-fertilizer", amount = 50} + }, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Changed for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "bio-bio-farm-intermediate-product", + order = "b[bi-fertilizer]-b[bi-adv-fertilizer-1]", + }, + + + -- Advanced fertilizer 2-- + { + type = "recipe", + name = "bi-adv-fertilizer-2", + icon = ICONPATH .. "advanced_fertilizer_64.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "advanced_fertilizer_64.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 50, + ingredients = { + {type = "item", name = "fertilizer", amount = 20}, + {type = "fluid", name = "bi-biomass", amount = 10}, + {type = "item", name = "bi-woodpulp", amount = 10}, + }, + results = { + {type = "item", name = "bi-adv-fertilizer", amount = 20} + }, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, + allow_as_intermediate = true, -- Changed for 0.18.34/1.1.4 + always_show_made_in = true, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "bio-bio-farm-intermediate-product", + order = "b[bi-fertilizer]-b[bi-adv-fertilizer-2]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Seed Bomb - Basic + { + type = "recipe", + name = "bi-seed-bomb-basic", + --~ localised_name = {"item-name.bi-seed-bomb-basic"}, + --~ localised_description = {"item-description.bi-seed-bomb-basic"}, + icon = ICONPATH .. "Seed_bomb_icon_b.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seed_bomb_icon_b.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + energy_required = 8, + ingredients = { + {"bi-seed", 400}, + {"rocket", 1}, + }, + result = "bi-seed-bomb-basic", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 8, + ingredients = { + {"bi-seed", 400}, + {"rocket", 2}, + }, + result = "bi-seed-bomb-basic", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Changed for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + subgroup = "bi-ammo", + order = "a[rocket-launcher]-x[seed-bomb]-a", + }, + + + --- Seed Bomb - Standard + { + type = "recipe", + name = "bi-seed-bomb-standard", + --~ localised_name = {"item-name.bi-seed-bomb-standard"}, + --~ localised_description = {"item-description.bi-seed-bomb-standard"}, + icon = ICONPATH .. "Seed_bomb_icon_s.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seed_bomb_icon_s.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + energy_required = 8, + ingredients = { + {"bi-seed", 400}, + {"fertilizer", 200}, + {"rocket", 1}, + }, + result = "bi-seed-bomb-standard", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 8, + ingredients = { + {"bi-seed", 400}, + {"fertilizer", 200}, + {"rocket", 2}, + }, + result = "bi-seed-bomb-standard", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Changed for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + subgroup = "bi-ammo", + order = "a[rocket-launcher]-x[seed-bomb]-b", + }, + + + --- Seed Bomb - Advanced + { + type = "recipe", + name = "bi-seed-bomb-advanced", + --~ localised_name = {"item-name.bi-seed-bomb-advanced"}, + --~ localised_description = {"item-description.bi-seed-bomb-advanced"}, + icon = ICONPATH .. "Seed_bomb_icon_a.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seed_bomb_icon_a.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + energy_required = 8, + ingredients = { + {"bi-seed", 400}, + {"bi-adv-fertilizer", 200}, + {"rocket", 1}, + }, + result = "bi-seed-bomb-advanced", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 8, + ingredients = { + {"bi-seed", 400}, + {"bi-adv-fertilizer", 200}, + {"rocket", 2}, + }, + result = "bi-seed-bomb-advanced", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Changed for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + subgroup = "bi-ammo", + order = "a[rocket-launcher]-x[seed-bomb]-c", + }, + + + --- Arboretum (ENTITY) + { + type = "recipe", + name = "bi-arboretum", + localised_name = {"entity-name.bi-arboretum"}, + localised_description = {"entity-description.bi-arboretum"}, + icon = ICONPATH .. "Arboretum_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Arboretum_Icon.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + energy_required = 10, + ingredients = { + {"bi-bio-greenhouse", 4}, + {"assembling-machine-2", 2}, + {"stone-brick", 10}, + }, + result = "bi-arboretum-area", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 15, + ingredients = { + {"bi-bio-greenhouse", 4}, + {"assembling-machine-2", 4}, + {"stone-brick", 20}, + }, + result = "bi-arboretum-area", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + subgroup = "bio-arboretum-fluid", + order = "1-a[bi]", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + + --- Arboretum - Plant Trees + { + type = "recipe", + name = "bi-arboretum-r1", + icon = ICONPATH .. "Seedling_b.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Seedling_b.png", + icon_size = 64, + } + }, + category = "bi-arboretum", + energy_required = 10000, + ingredients = { + {type = "item", name = "seedling", amount = 1}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "item", name = "bi-arboretum-r1", amount = 1, probability = 0}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + subgroup = "bio-arboretum-fluid", + order = "a[bi]-ssw-a1[bi-arboretum-r1]", + }, + + + --- Arboretum - Change Terrain + { + type = "recipe", + name = "bi-arboretum-r2", + icon = ICONPATH .. "bi_change_1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_change_1.png", + icon_size = 64, + } + }, + category = "bi-arboretum", + energy_required = 10000, + ingredients = { + {type = "item", name = "fertilizer", amount = 1}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "item", name = "bi-arboretum-r2", amount = 1, probability = 0}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + subgroup = "bio-arboretum-fluid", + order = "a[bi]-ssw-a1[bi-arboretum-r2]", + }, + + + --- Arboretum - Change Terrain - Advanced + { + type = "recipe", + name = "bi-arboretum-r3", + icon = ICONPATH .. "bi_change_2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_change_2.png", + icon_size = 64, + } + }, + category = "bi-arboretum", + energy_required = 10000, + ingredients = { + {type = "item", name = "bi-adv-fertilizer", amount = 1}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "item", name = "bi-arboretum-r3", amount = 1, probability = 0}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + subgroup = "bio-arboretum-fluid", + order = "a[bi]-ssw-a1[bi-arboretum-r3]", + }, + + + --- Arboretum - Plant Trees & Change Terrain + { + type = "recipe", + name = "bi-arboretum-r4", + icon = ICONPATH .. "bi_change_plant_1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_change_plant_1.png", + icon_size = 64, + } + }, + category = "bi-arboretum", + energy_required = 10000, + ingredients = { + {type = "item", name = "seedling", amount = 1}, + {type = "item", name = "fertilizer", amount = 1}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "item", name = "bi-arboretum-r4", amount = 1, probability = 0}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + subgroup = "bio-arboretum-fluid", + order = "a[bi]-ssw-a1[bi-arboretum-r4]", + }, + + + --- Arboretum - Plant Trees & Change Terrain Advanced + { + type = "recipe", + name = "bi-arboretum-r5", + icon = ICONPATH .. "bi_change_plant_2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_change_plant_2.png", + icon_size = 64, + } + }, + category = "bi-arboretum", + energy_required = 10000, + ingredients = { + {type = "item", name = "seedling", amount = 1}, + {type = "item", name = "bi-adv-fertilizer", amount = 1}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "item", name = "bi-arboretum-r5", amount = 1, probability = 0}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + subgroup = "bio-arboretum-fluid", + order = "a[bi]-ssw-a1[bi-arboretum-r5]", + }, +}) diff --git a/Bio_Industries_2/prototypes/Bio_Farm/technology.lua b/Bio_Industries_2/prototypes/Bio_Farm/technology.lua new file mode 100644 index 0000000..25ebad9 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Farm/technology.lua @@ -0,0 +1,296 @@ +local BioInd = require('common')('Bio_Industries') +local coal_processing = require("prototypes.Bio_Farm.coal_processing") + +local ICONPATH = BioInd.modRoot .. "/graphics/technology/" + +---- Bio Farm +data:extend({ + { + type = "technology", + name = "bi-tech-bio-farming", + icon_size = 128, + icon = ICONPATH .. "Bio_Farm_Tech_128.png", + icons = { + { + icon = ICONPATH .. "Bio_Farm_Tech_128.png", + icon_size = 128, + } + }, + effects = { + { + type = "unlock-recipe", + recipe = "bi-seed-1" + }, + { + type = "unlock-recipe", + recipe = "bi-seedling-1" + }, + { + type = "unlock-recipe", + recipe = "bi-logs-1" + }, + { + type = "unlock-recipe", + recipe = "bi-bio-greenhouse" + }, + { + type = "unlock-recipe", + recipe = "bi-bio-farm" + }, + { + type = "unlock-recipe", + recipe = "bi-arboretum" + }, + { + type = "unlock-recipe", + recipe = "bi-arboretum-r1" + }, + { + type = "unlock-recipe", + recipe = "bi-woodpulp" + }, + { + type = "unlock-recipe", + recipe = "bi-resin-pulp" + }, + { + type = "unlock-recipe", + recipe = "bi-wood-from-pulp" + }, + }, + prerequisites = {"optics"}, + unit = { + count = 25, + ingredients = { + {"automation-science-pack", 1} + }, + time = 20 + }, + }, + + { + type = "technology", + name = "bi-tech-coal-processing-1", + localised_name = {"technology-name.bi-tech-coal-processing-1"}, + localised_description = {"technology-description.bi-tech-coal-processing-1"}, + icon_size = 128, + icon = ICONPATH .. "Coal_128.png", + icons = { + { + icon = ICONPATH .. "Coal_128.png", + icon_size = 128, + } + }, + --~ effects = { + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-charcoal-1" + --~ }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-charcoal-2" + --~ }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-ash-2" + --~ }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-ash-1" + --~ }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-wood-fuel-brick" + --~ }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-seed-2" + --~ }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-seedling-2" + --~ }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-logs-2" + --~ }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-cokery" + --~ }, + --~ }, + effects = coal_processing[1], + prerequisites = {"advanced-material-processing"}, + unit = { + count = 150, + ingredients = { + {"automation-science-pack", 1}, + {"logistic-science-pack", 1} + }, + time = 30 + }, + }, + + { + type = "technology", + name = "bi-tech-coal-processing-2", + localised_name = {"technology-name.bi-tech-coal-processing-2"}, + localised_description = {"technology-description.bi-tech-coal-processing-2"}, + icon_size = 128, + icon = ICONPATH .. "Coal_128.png", + icons = { + { + icon = ICONPATH .. "Coal_128.png", + icon_size = 128, + } + }, + --~ effects = { + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-coal-1" + --~ }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-pellet-coke" + --~ }, + --~ -- Moved here from "bi-tech-coal-processing-1" (0.18.29): + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-solid-fuel" + --~ }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-stone-brick" + --~ }, + --~ }, + effects = coal_processing[2], + --~ prerequisites = {"bi-tech-coal-processing-1"}, + prerequisites = {"bi-tech-coal-processing-1", "chemical-science-pack"}, + unit = { + count = 150, + ingredients = { + {"automation-science-pack", 1}, + {"logistic-science-pack", 1}, + {"chemical-science-pack", 1}, + }, + time = 35 + }, + -- Changed for 0.18.34/1.1.4 (Fixes that tech is not listed among researched techs.) + --~ upgrade = true, + }, + + { + type = "technology", + name = "bi-tech-coal-processing-3", + localised_name = {"technology-name.bi-tech-coal-processing-3"}, + localised_description = {"technology-description.bi-tech-coal-processing-3"}, + icon_size = 128, + icon = ICONPATH .. "Coal_128.png", + icons = { + { + icon = ICONPATH .. "Coal_128.png", + icon_size = 128, + } + }, + --~ effects = { + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-coal-2" + --~ }, + --~ { + --~ type = "unlock-recipe", + --~ recipe = "bi-coke-coal" + --~ }, + --~ }, + effects = coal_processing[3], + --~ prerequisites = {"bi-tech-coal-processing-2"}, + prerequisites = {"bi-tech-coal-processing-2", "production-science-pack"}, + unit = { + count = 250, + ingredients = { + {"automation-science-pack", 1}, + {"logistic-science-pack", 1}, + {"chemical-science-pack", 1}, + {"production-science-pack", 1}, + }, + time = 40 + }, + -- Changed for 0.18.34/1.1.4 (Fixes that tech is not listed among researched techs.) + --~ upgrade = true, + }, + + { + type = "technology", + name = "bi-tech-fertilizer", + icon_size = 128, + icon = ICONPATH .. "Fertilizer_128.png", + icons = { + { + icon = ICONPATH .. "Fertilizer_128.png", + icon_size = 128, + } + }, + effects = { + { + type = "unlock-recipe", + recipe = "bi-liquid-air" + }, + { + type = "unlock-recipe", + recipe = "bi-nitrogen" + }, + { + type = "unlock-recipe", + recipe = "bi-fertilizer-1" + }, + { + type = "unlock-recipe", + recipe = "bi-seed-3" + }, + { + type = "unlock-recipe", + recipe = "bi-seedling-3" + }, + { + type = "unlock-recipe", + recipe = "bi-logs-3" + }, + { + type = "unlock-recipe", + recipe = "bi-bio-garden" + }, + { + type = "unlock-recipe", + recipe = "bi-purified-air-1" + }, + { + type = "unlock-recipe", + recipe = "bi-seed-bomb-basic" + }, + { + type = "unlock-recipe", + recipe = "bi-seed-bomb-standard" + }, + { + type = "unlock-recipe", + recipe = "bi-arboretum-r2" + }, + { + type = "unlock-recipe", + recipe = "bi-arboretum-r4" + }, + }, + prerequisites = { + "fluid-handling", + "bi-tech-bio-farming" + }, + unit = { + count = 250, + ingredients = { + {"automation-science-pack", 1}, + {"logistic-science-pack", 1} + }, + time = 30 + } + } +}) diff --git a/Bio_Industries_2/prototypes/Bio_Farm/technology2.lua b/Bio_Industries_2/prototypes/Bio_Farm/technology2.lua new file mode 100644 index 0000000..92c4165 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Farm/technology2.lua @@ -0,0 +1,88 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/technology/" + +--~ if BI.Settings.BI_Bio_Fuel or mods["Natural_Evolution_Buildings"] then + + data:extend( + { + { + type = "technology", + name = "bi-tech-advanced-biotechnology", + icon_size = 128, + icon = ICONPATH .. "Biomass_128.png", + icons = { + { + icon = ICONPATH .. "Biomass_128.png", + icon_size = 128, + } + }, + effects = { + { + type = "unlock-recipe", + recipe = "bi-seed-4" + }, + { + type = "unlock-recipe", + recipe = "bi-seedling-4" + }, + { + type = "unlock-recipe", + recipe = "bi-logs-4" + }, + { + type = "unlock-recipe", + recipe = "bi-adv-fertilizer-2" + }, + { + type = "unlock-recipe", + recipe = "bi-seed-bomb-advanced" + }, + { + type = "unlock-recipe", + recipe = "bi-arboretum-r3" + }, + { + type = "unlock-recipe", + recipe = "bi-arboretum-r5" + }, + -- Added for 0.18.29: We always want to make advanced fertilizer, so we need to + -- unlock the bio-reactor and the most basic recipe for algae biomass even if + -- BI.Settings.BI_Bio_Fuel has been turned off! + { + type = "unlock-recipe", + recipe = "bi-bio-reactor" + }, + { + type = "unlock-recipe", + recipe = "bi-biomass-1" + }, + --~ thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", "bi-bio-reactor") + --~ thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", "bi-biomass-1") + + -- Added for 0.18.29: Now that we always make advanced fertilizer, we can also add + -- the advanced recipe for purified air even if BI.Settings.BI_Bio_Fuel has been + -- turned off! + { + type = "unlock-recipe", + recipe = "bi-purified-air-2" + }, + + --~ thxbob.lib.tech.add_recipe_unlock("bi-tech-advanced-biotechnology", "bi-purified-air-2") + + }, + prerequisites = { + "bi-tech-fertilizer" + }, + unit = { + count = 200, + ingredients = { + {"automation-science-pack", 1}, + {"logistic-science-pack", 1}, + {"chemical-science-pack", 1}, + }, + time = 30 + } + }, + }) +--~ end diff --git a/Bio_Industries_2/prototypes/Bio_Farm/tree_entities.lua b/Bio_Industries_2/prototypes/Bio_Farm/tree_entities.lua new file mode 100644 index 0000000..8040851 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Farm/tree_entities.lua @@ -0,0 +1,240 @@ +local BioInd = require('common')('Bio_Industries') + +--[[ + +Big thanks to OwnlyMe and his "Robot Tree Farm" code! +https://mods.factorio.com/mod/robot_tree_farm +License: CC BY-SA 4.0 + +]] + +-- Don't create prototypes for trees in this table! +local ignore_trees = BioInd.get_tree_ignore_list() +BioInd.show("Ignoring these trees", ignore_trees) + +local COLLISION_BOX = {{-0.1, -0.1}, {0.1, 0.1}} +local TREE_LEVELS = 4 +local extend = {} +local wooden, branch, leaf + +for i = 1, TREE_LEVELS do + wooden = table.deepcopy(data.raw["optimized-particle"]["wooden-particle"]) + wooden.name = "bio-" .. wooden.name .. "-" .. i + for _, pic in pairs(wooden.pictures) do + pic.scale = (pic.scale or 1)/TREE_LEVELS*i + pic.hr_version.scale = (pic.hr_version.scale or 1)/TREE_LEVELS*i + end + for _, pic in pairs(wooden.shadows) do + pic.scale = (pic.scale or 1)/TREE_LEVELS*i + pic.hr_version.scale = (pic.hr_version.scale or 1)/TREE_LEVELS*i + end + + branch = table.deepcopy(data.raw["optimized-particle"]["branch-particle"]) + branch.name = "bio-" .. branch.name .. "-" .. i + for _, pic in pairs(branch.pictures) do + pic.scale = (pic.scale or 1)/TREE_LEVELS*i + pic.hr_version.scale = (pic.hr_version.scale or 1)/TREE_LEVELS*i + end + for _, pic in pairs(branch.shadows) do + pic.scale = (pic.scale or 1)/TREE_LEVELS*i + pic.hr_version.scale = (pic.hr_version.scale or 1)/TREE_LEVELS*i + end + + leaf = table.deepcopy(data.raw["optimized-particle"]["leaf-particle"]) + leaf.name = "bio-" .. leaf.name .. "-" .. i + for _, pic in pairs(leaf.pictures) do + pic.scale = (pic.scale or 1)/TREE_LEVELS*math.max(2, i) + --pic.hr_version.scale = (pic.hr_version.scale or 1)/TREE_LEVELS*i + end + for _, pic in pairs(leaf.shadows) do + pic.scale = (pic.scale or 1)/TREE_LEVELS*math.max(2, i) + --pic.hr_version.scale = (pic.hr_version.scale or 1)/TREE_LEVELS*i + end + + data:extend({wooden, branch, leaf}) +end + + +local tree, stump +for id, prototype in pairs(data.raw.tree) do +--~ BioInd.show("id", id) + if prototype.variations and not ignore_trees[id] then + for i = 1, TREE_LEVELS do + tree = table.deepcopy(prototype) + tree.name = "bio-tree-" .. tree.name .. "-" .. i + if i < (TREE_LEVELS-1) then + tree.localised_name = {"bi-misc.growing-tree"} + tree.localised_description = {"bi-misc.growing-tree-desc"} + else + tree.localised_name = {"bi-misc.young-tree"} + tree.localised_description = {"bi-misc.young-tree-desc"} + end + tree.max_health = math.floor(50 * i/TREE_LEVELS) + tree.flags = {"placeable-neutral", "breaths-air"} + tree.collision_mask = {"item-layer", "object-layer", "player-layer", "water-tile", "layer-13"} + tree.autoplace = nil + tree.selection_box = { + {-0.9/TREE_LEVELS * i, -2.2/TREE_LEVELS * i}, + {0.9/TREE_LEVELS * i, 0.6/TREE_LEVELS * i} + } + if BI.Settings.BI_Game_Tweaks_Small_Tree_Collisionbox then + tree.collision_box = COLLISION_BOX + end + tree.minable.mining_particle = "bio-wooden-particle-" .. i + -- The longer a tree has grown, the harder it is to mine + --~ tree.minable.mining_time = 0.25 + tree.minable.mining_time = 0.25 * i + --~ tree.minable.count = nil + + -- Now the tree-level thingie starts to make sense: higher growing stages correspond + -- to a higher probability of getting something when the tree is mined! + --~ tree.minable.results = {} + + --~ if i < (TREE_LEVELS) then + --~ table.insert(tree.minable.results, { + --~ name = "seedling", + --~ probability = i/4, + --~ amount = 1, + --~ }) + --~ else + --~ table.insert(tree.minable.results, { + --~ name = "wood", + --~ amount = 1, + --~ probability = 1 + --~ }) + --~ end + tree.minable.results = { + { + name = (i < TREE_LEVELS) and "seedling" or "wood", + probability = i/TREE_LEVELS, + amount = 1, + } + } + -- minable.result will be ignored by Factorio if minable.results exists, but + -- in data-final-fixes, we check for minable.result == "wood" before setting + -- minable.results to yield a random number of wood. We therefore must remove + -- tree.minable.result! + tree.minable.result = nil + + for var_id, variation in pairs(tree.variations) do + variation.trunk.scale = (variation.trunk.scale or 1) * i / TREE_LEVELS + if variation.trunk.shift then + variation.trunk.shift[1] = variation.trunk.shift[1]/TREE_LEVELS*i + variation.trunk.shift[2] = variation.trunk.shift[2]/TREE_LEVELS*i + end + + if variation.trunk.hr_version then + variation.trunk.hr_version.scale = (variation.trunk.hr_version.scale or 1) * i / TREE_LEVELS + + if variation.trunk.hr_version.shift then + variation.trunk.hr_version.shift[1] = (variation.trunk.hr_version.shift[1] or 0)/TREE_LEVELS*i + variation.trunk.hr_version.shift[2] = (variation.trunk.hr_version.shift[2] or 0)/TREE_LEVELS*i + + end + end + + -- This doesn't make sense, the condition can never be true! Either more + -- than 4 levels have been used originally, or it should be compared to just + -- TREE_LEVELS, not TREE_LEVELS/10 (i.e. typo) + -- EDIT: OwnlyMe's Robot Tree Farm has 20 grow stages per default (min 3, max 200), + -- so we should use a limit of i<=2.) + --~ local max = TREE_LEVELS /10 + local max = 2 + if i <= max then + variation.trunk.layers = {{ + filename = "__Bio_Industries__/graphics/icons/Seedling_a.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 0.5, + frame_count = 1, + tint= { + --~ r = 0.7-0.5*i/(TREE_LEVELS/10), + --~ g = 0.7-0.5*i/(TREE_LEVELS/10), + --~ b = 0.7-0.5*i/(TREE_LEVELS/10), + --~ a = 0.7-0.5*i/(TREE_LEVELS/10) + r = 0.7-0.5*i/max, + g = 0.7-0.5*i/max, + b = 0.7-0.5*i/max, + a = 0.7-0.5*i/max + } + }} + variation.trunk.frame_count = 1 + end + + variation.leaves.scale = (variation.leaves.scale or 1) * i / TREE_LEVELS + if variation.leaves.shift then + variation.leaves.shift[1] = (variation.leaves.shift[1] or 0)/TREE_LEVELS*i + variation.leaves.shift[2] = (variation.leaves.shift[2] or 0)/TREE_LEVELS*i + end + + if variation.leaves.hr_version then + variation.leaves.hr_version.scale = (variation.leaves.hr_version.scale or 1) * i / TREE_LEVELS + if variation.leaves.hr_version.shift then + variation.leaves.hr_version.shift[1] = (variation.leaves.hr_version.shift[1] or 0)/TREE_LEVELS*i + variation.leaves.hr_version.shift[2] = (variation.leaves.hr_version.shift[2] or 0)/TREE_LEVELS*i + end + end + + variation.leaf_generation.scale = (variation.leaf_generation.scale or 1) * i / TREE_LEVELS + variation.leaf_generation.offset_deviation = {{-0.5, -0.5}, {0.5, 0.5}} + variation.leaf_generation.initial_height = 2/TREE_LEVELS*i + variation.leaf_generation.initial_height_deviation = 1/TREE_LEVELS*i + variation.leaf_generation.entity_name = "bio-leaf-particle-" .. i + variation.branch_generation.scale = (variation.branch_generation.scale or 1) * i / TREE_LEVELS + variation.branch_generation.offset_deviation = { + {0.5*i/TREE_LEVELS, 0.5*i/TREE_LEVELS}, + {0.5*i/TREE_LEVELS, 0.5*i/TREE_LEVELS} + } + variation.branch_generation.initial_height = 2/TREE_LEVELS*i + variation.branch_generation.initial_height_deviation = 2/TREE_LEVELS*i + variation.branch_generation.entity_name = "bio-branch-particle-" .. i + variation.shadow.scale = (variation.shadow.scale or 1) * i / TREE_LEVELS + + if variation.shadow.shift then + variation.shadow.shift[1] = (variation.shadow.shift[1] or 0)/TREE_LEVELS*i + variation.shadow.shift[2] = (variation.shadow.shift[2] or 0)/TREE_LEVELS*i + end + + if variation.shadow.hr_version then + variation.shadow.hr_version.scale = (variation.shadow.hr_version.scale or 1) * i / TREE_LEVELS + if variation.shadow.hr_version.shift then + variation.shadow.hr_version.shift[1] = (variation.shadow.hr_version.shift[1] or 0)/TREE_LEVELS*i + variation.shadow.hr_version.shift[2] = (variation.shadow.hr_version.shift[2] or 0)/TREE_LEVELS*i + end + end + end + + + stump = table.deepcopy(data.raw.corpse[tree.remains_when_mined]) + + if stump then + stump.name = "bio-tree-" .. stump.name .. "-" .. i + stump.time_before_removed = 60 * 5 -- 5 secs + + tree.remains_when_mined = stump.name + tree.corpse = stump.name + table.insert(extend, tree) + + for _, variation in pairs(stump.animation) do + variation.scale = (variation.scale or 1) * i / TREE_LEVELS + variation.hr_version = nil + variation.shift[1] = variation.shift[1]/TREE_LEVELS*i + variation.shift[2] = variation.shift[2]/TREE_LEVELS*i + + end + + table.insert(extend, stump) + + end + end + end +end + +data:extend(extend) +--~ BioInd.writeDebug("Trees known to the game:") + +--~ for t, tree in pairs(data.raw.tree) do +--~ BioInd.show("Treename", t) +--~ BioInd.writeDebug("Treename: %s\tAutoplace: %s", {t, t.autoplace or "nil"}) +--~ end diff --git a/Bio_Industries_2/prototypes/Bio_Fuel/entities.lua b/Bio_Industries_2/prototypes/Bio_Fuel/entities.lua new file mode 100644 index 0000000..f596f0c --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Fuel/entities.lua @@ -0,0 +1,552 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" +local ENTITYPATH = "__base__/graphics/entity/boiler/" + +require ("util") +require ("prototypes.Bio_Fuel.pipeConnectors") + +--~ if BI.Settings.BI_Bio_Fuel then + +-- demo-sounds has been removed in Factorio 1.1, so we need to check the game version! +local sound_def = BioInd.check_version("base", "<", "1.1.0") and + require("__base__.prototypes.entity.demo-sounds") or + require("__base__.prototypes.entity.sounds") +local sounds = {} +sounds.generic_impact = sound_def.generic_impact +for _, sound in ipairs(sounds.generic_impact) do + sound.volume = 0.65 +end + + + +bio_boiler_tint = {r = 0.5, g = 0.5, b = 0.1, a = 0.7} + +-- Changed for 0.18.29: We always want to make advanced fertilizer, so we need to +-- unlock the bio-reactor and the most basic recipe for algae biomass even if +-- BI.Settings.BI_Bio_Fuel has been turned off! +data:extend({ + -- BIOREACTOR + { + type = "assembling-machine", + name = "bi-bio-reactor", + icon = ICONPATH .. "bioreactor.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bioreactor.png", + icon_size = 64, + } + }, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-bio-reactor"}, + max_health = 100, + corpse = "big-remnants", + fluid_boxes = { + { + production_type = "input", + pipe_picture = assembler2pipepicturesBioreactor(), + pipe_covers = pipecoverspicturesBioreactor(), + base_area = 10, + base_level = -1, + pipe_connections = {{ type = "input", position = {0, -2} }} + }, + { + production_type = "input", + pipe_picture = assembler2pipepicturesBioreactor(), + pipe_covers = pipecoverspicturesBioreactor(), + base_area = 10, + base_level = -1, + pipe_connections = {{ type = "input", position = {2, 0} }} + }, + { + production_type = "input", + pipe_picture = assembler2pipepicturesBioreactor(), + pipe_covers = pipecoverspicturesBioreactor(), + base_area = 10, + base_level = -1, + pipe_connections = {{ type = "input", position = {0, 2} }} + }, + { + production_type = "output", + pipe_picture = assembler2pipepicturesBioreactor(), + pipe_covers = pipecoverspicturesBioreactor(), + base_area = 10, + base_level = 1, + pipe_connections = {{ type = "output", position = {-2, -1} }} + }, + { + production_type = "output", + pipe_picture = assembler2pipepicturesBioreactor(), + pipe_covers = pipecoverspicturesBioreactor(), + base_area = 10, + base_level = 1, + pipe_connections = {{ type = "output", position = {-2, 1} }} + }, + off_when_no_fluid_recipe = false + }, + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + animation = { + filename = "__Bio_Industries__/graphics/entities/bioreactor/bioreactor.png", + priority = "high", + width = 128, + height = 150, + frame_count = 26, + line_length = 13, + animation_speed = 0.4, + shift = {0.55, -0.33} + }, + energy_source = { + type = "electric", + usage_priority = "secondary-input" + }, + crafting_categories = {"biofarm-mod-bioreactor"}, + ingredient_count = 3, + crafting_speed = 1, + energy_usage = "10kW", + module_specification = { + module_slots = 3 + }, + allowed_effects = {"consumption", "speed", "productivity", "pollution"}, + }, +}) + +if BI.Settings.BI_Bio_Fuel then + data:extend({ + --- Bio Boiler + { + type = "boiler", + name = "bi-bio-boiler", + localised_name = {"entity-name.bi-bio-boiler"}, + localised_description = {"entity-description.bi-bio-boiler"}, + icon = ICONPATH .. "bio_boiler.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_boiler.png", + icon_size = 64, + } + }, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-bio-boiler"}, + max_health = 300, + corpse = "small-remnants", + vehicle_impact_sound = sounds.generic_impact, + mode = "output-to-separate-pipe", + resistances = { + { + type = "fire", + percent = 100 + }, + { + type = "explosion", + percent = 100 + }, + { + type = "impact", + percent = 35 + } + }, + collision_box = {{-1.29, -0.79}, {1.29, 0.79}}, + selection_box = {{-1.5, -1}, {1.5, 1}}, + target_temperature = 165, + fluid_box = { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = { + {type = "input-output", position = {-2, 0.5}}, + {type = "input-output", position = {2, 0.5}} + }, + production_type = "input-output", + filter = "water" + }, + output_fluid_box = { + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = { + {type = "output", position = {0, -1.5}} + }, + production_type = "output", + filter = "steam" + }, + energy_consumption = "3.6MW", + energy_source = { + type = "burner", + fuel_category = "chemical", + effectivity = 1, + fuel_inventory_size = 2, + emissions_per_minute = 15, + smoke = { + { + name = "smoke", + north_position = util.by_pixel(-38, -47.5), + south_position = util.by_pixel(38.5, -32), + east_position = util.by_pixel(20, -70), + west_position = util.by_pixel(-19, -8.5), + frequency = 20, + starting_vertical_speed = 0.0, + starting_frame_deviation = 60 + } + } + }, + working_sound = { + sound = { + filename = "__base__/sound/boiler.ogg", + volume = 0.8 + }, + max_sounds_per_type = 3 + }, + structure = { + north = { + layers = { + { + filename = ENTITYPATH .. "boiler-N-idle.png", + priority = "extra-high", + width = 131, + height = 108, + tint = bio_boiler_tint, + shift = util.by_pixel(-0.5, 4), + hr_version = { + filename = ENTITYPATH .. "hr-boiler-N-idle.png", + priority = "extra-high", + width = 269, + height = 221, + shift = util.by_pixel(-1.25, 5.25), + scale = 0.5, + tint = bio_boiler_tint, + } + }, + { + filename = ENTITYPATH .. "boiler-N-shadow.png", + priority = "extra-high", + width = 137, + height = 82, + shift = util.by_pixel(20.5, 9), + draw_as_shadow = true, + hr_version = { + filename = ENTITYPATH .. "hr-boiler-N-shadow.png", + priority = "extra-high", + width = 274, + height = 164, + scale = 0.5, + shift = util.by_pixel(20.5, 9), + draw_as_shadow = true, + } + } + } + }, + east = { + layers = { + { + filename = ENTITYPATH .. "boiler-E-idle.png", + priority = "extra-high", + width = 105, + height = 147, + tint = bio_boiler_tint, + shift = util.by_pixel(-3.5, -0.5), + hr_version = { + filename = ENTITYPATH .. "hr-boiler-E-idle.png", + priority = "extra-high", + width = 216, + height = 301, + shift = util.by_pixel(-3, 1.25), + scale = 0.5, + tint = bio_boiler_tint, + } + }, + { + filename = ENTITYPATH .. "boiler-E-shadow.png", + priority = "extra-high", + width = 92, + height = 97, + shift = util.by_pixel(30, 9.5), + draw_as_shadow = true, + hr_version = { + filename = ENTITYPATH .. "hr-boiler-E-shadow.png", + priority = "extra-high", + width = 184, + height = 194, + scale = 0.5, + shift = util.by_pixel(30, 9.5), + draw_as_shadow = true, + } + } + } + }, + south = { + layers = { + { + filename = ENTITYPATH .. "boiler-S-idle.png", + priority = "extra-high", + width = 128, + height = 95, + tint = bio_boiler_tint, + shift = util.by_pixel(3, 12.5), + hr_version = { + filename = ENTITYPATH .. "hr-boiler-S-idle.png", + priority = "extra-high", + width = 260, + height = 192, + shift = util.by_pixel(4, 13), + scale = 0.5, + tint = bio_boiler_tint, + } + }, + { + filename = ENTITYPATH .. "boiler-S-shadow.png", + priority = "extra-high", + width = 156, + height = 66, + shift = util.by_pixel(30, 16), + draw_as_shadow = true, + hr_version = { + filename = ENTITYPATH .. "hr-boiler-S-shadow.png", + priority = "extra-high", + width = 311, + height = 131, + scale = 0.5, + shift = util.by_pixel(29.75, 15.75), + draw_as_shadow = true, + } + } + } + }, + west = { + layers = { + { + filename = ENTITYPATH .. "boiler-W-idle.png", + priority = "extra-high", + width = 96, + height = 132, + tint = bio_boiler_tint, + shift = util.by_pixel(1, 5), + hr_version = { + filename = ENTITYPATH .. "hr-boiler-W-idle.png", + priority = "extra-high", + width = 196, + height = 273, + shift = util.by_pixel(1.5, 7.75), + scale = 0.5, + tint = bio_boiler_tint, + } + }, + { + filename = ENTITYPATH .. "boiler-W-shadow.png", + priority = "extra-high", + width = 103, + height = 109, + shift = util.by_pixel(19.5, 6.5), + draw_as_shadow = true, + hr_version = { + filename = ENTITYPATH .. "hr-boiler-W-shadow.png", + priority = "extra-high", + width = 206, + height = 218, + scale = 0.5, + shift = util.by_pixel(19.5, 6.5), + draw_as_shadow = true, + } + } + } + } + }, + patch = { + east = { + filename = ENTITYPATH .. "boiler-E-patch.png", + priority = "extra-high", + width = 3, + height = 17, + tint = bio_boiler_tint, + shift = util.by_pixel(33.5, -13.5), + hr_version = { + filename = ENTITYPATH .. "hr-boiler-E-patch.png", + width = 6, + height = 36, + shift = util.by_pixel(33.5, -13.5), + scale = 0.5, + tint = bio_boiler_tint, + } + }, + }, + fire_flicker_enabled = true, + fire = { + north = { + filename = ENTITYPATH .. "boiler-N-fire.png", + priority = "extra-high", + frame_count = 64, + line_length = 8, + width = 12, + height = 13, + animation_speed = 0.5, + shift = util.by_pixel(0, -8.5), + hr_version = { + filename = ENTITYPATH .. "hr-boiler-N-fire.png", + priority = "extra-high", + frame_count = 64, + line_length = 8, + width = 26, + height = 26, + animation_speed = 0.5, + shift = util.by_pixel(0, -8.5), + scale = 0.5 + } + }, + east = { + filename = ENTITYPATH .. "boiler-E-fire.png", + priority = "extra-high", + frame_count = 64, + line_length = 8, + width = 14, + height = 14, + animation_speed = 0.5, + shift = util.by_pixel(-10, -22), + hr_version = { + filename = ENTITYPATH .. "hr-boiler-E-fire.png", + priority = "extra-high", + frame_count = 64, + line_length = 8, + width = 28, + height = 28, + animation_speed = 0.5, + shift = util.by_pixel(-9.5, -22), + scale = 0.5 + } + }, + south = { + filename = ENTITYPATH .. "boiler-S-fire.png", + priority = "extra-high", + frame_count = 64, + line_length = 8, + width = 12, + height = 9, + animation_speed = 0.5, + shift = util.by_pixel(-1, -26.5), + hr_version = { + filename = ENTITYPATH .. "hr-boiler-S-fire.png", + priority = "extra-high", + frame_count = 64, + line_length = 8, + width = 26, + height = 16, + animation_speed = 0.5, + shift = util.by_pixel(-1, -26.5), + scale = 0.5 + } + }, + west = { + filename = ENTITYPATH .. "boiler-W-fire.png", + priority = "extra-high", + frame_count = 64, + line_length = 8, + width = 14, + height = 14, + animation_speed = 0.5, + shift = util.by_pixel(13, -23), + hr_version = { + filename = ENTITYPATH .. "hr-boiler-W-fire.png", + priority = "extra-high", + frame_count = 64, + line_length = 8, + width = 30, + height = 29, + animation_speed = 0.5, + shift = util.by_pixel(13, -23.25), + scale = 0.5 + } + } + }, + fire_glow_flicker_enabled = true, + fire_glow = { + north = { + filename = ENTITYPATH .. "boiler-N-light.png", + priority = "extra-high", + frame_count = 1, + width = 100, + height = 87, + shift = util.by_pixel(-1, -6.5), + blend_mode = "additive", + hr_version = { + filename = ENTITYPATH .. "hr-boiler-N-light.png", + priority = "extra-high", + frame_count = 1, + width = 200, + height = 173, + shift = util.by_pixel(-1, -6.75), + blend_mode = "additive", + scale = 0.5 + } + }, + east = { + filename = ENTITYPATH .. "boiler-E-light.png", + priority = "extra-high", + frame_count = 1, + width = 70, + height = 122, + shift = util.by_pixel(0, -13), + blend_mode = "additive", + hr_version = { + filename = ENTITYPATH .. "hr-boiler-E-light.png", + priority = "extra-high", + frame_count = 1, + width = 139, + height = 244, + shift = util.by_pixel(0.25, -13), + blend_mode = "additive", + scale = 0.5 + } + }, + south = { + filename = ENTITYPATH .. "boiler-S-light.png", + priority = "extra-high", + frame_count = 1, + width = 100, + height = 81, + shift = util.by_pixel(1, 5.5), + blend_mode = "additive", + hr_version = { + filename = ENTITYPATH .. "hr-boiler-S-light.png", + priority = "extra-high", + frame_count = 1, + width = 200, + height = 162, + shift = util.by_pixel(1, 5.5), + blend_mode = "additive", + scale = 0.5 + } + }, + west = { + filename = ENTITYPATH .. "boiler-W-light.png", + priority = "extra-high", + frame_count = 1, + width = 68, + height = 109, + shift = util.by_pixel(2, -6.5), + blend_mode = "additive", + hr_version = { + filename = ENTITYPATH .. "hr-boiler-W-light.png", + priority = "extra-high", + frame_count = 1, + width = 136, + height = 217, + shift = util.by_pixel(2, -6.25), + blend_mode = "additive", + scale = 0.5 + } + } + }, + burning_cooldown = 20 + }, + + }) +end diff --git a/Bio_Industries_2/prototypes/Bio_Fuel/fluid.lua b/Bio_Industries_2/prototypes/Bio_Fuel/fluid.lua new file mode 100644 index 0000000..af82675 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Fuel/fluid.lua @@ -0,0 +1,27 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +data:extend({ + { + type = "fluid", + name = "bi-Bio_Fuel", + icon = ICONPATH .. "bio-fuel.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_boiler.png", + icon_size = 64, + } + }, + default_temperature = 25, + max_temperature = 100, + heat_capacity = "1KJ", + base_color = {r = 1.00, g = 0.35, b = 0.35}, + flow_color = {r = 1.00, g = 0.35, b = 0.35}, + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + }, + + +}) diff --git a/Bio_Industries_2/prototypes/Bio_Fuel/item.lua b/Bio_Industries_2/prototypes/Bio_Fuel/item.lua new file mode 100644 index 0000000..f0c0afe --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Fuel/item.lua @@ -0,0 +1,85 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + + +-- Changed for 0.18.29: We always want to make advanced fertilizer, so we need to +-- unlock the bio-reactor and the most basic recipe for algae biomass even if +-- BI.Settings.BI_Bio_Fuel has been turned off! +data:extend({ + --- BioReactor + { + type = "item", + name = "bi-bio-reactor", + icon = ICONPATH .. "bioreactor.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bioreactor.png", + icon_size = 64, + } + }, + subgroup = "production-machine", + order = "z[bi]-a[bi-bio-reactor]", + place_result = "bi-bio-reactor", + stack_size = 10 + }, +}) + + +if BI.Settings.BI_Bio_Fuel then + data:extend({ + ---- Cellulose + { + type = "item", + name = "bi-cellulose", + icon = ICONPATH .. "cellulose.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "cellulose.png", + icon_size = 64, + } + }, + subgroup = "intermediate-product", + order = "b[cellulose]", + stack_size = 200 + }, + + --~ --- BioReactor + --~ { + --~ type = "item", + --~ name = "bi-bio-reactor", + --~ icon = ICONPATH .. "bioreactor.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "bioreactor.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ --flags = {"goes-to-quickbar"}, + --~ subgroup = "production-machine", + --~ order = "z[bi]-a[bi-bio-reactor]", + --~ place_result = "bi-bio-reactor", + --~ stack_size = 10 + --~ }, + --- Bio Boiler + { + type = "item", + name = "bi-bio-boiler", + icon = ICONPATH .. "bio_boiler.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_boiler.png", + icon_size = 64, + } + }, + subgroup = "energy", + order = "b[steam-power]-b[boiler]", + place_result = "bi-bio-boiler", + stack_size = 50 + }, + }) +end diff --git a/Bio_Industries_2/prototypes/Bio_Fuel/pipeConnectors.lua b/Bio_Industries_2/prototypes/Bio_Fuel/pipeConnectors.lua new file mode 100644 index 0000000..a52f45f --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Fuel/pipeConnectors.lua @@ -0,0 +1,128 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" +local ENTITYPATH = "__base__/graphics/entity/assembling-machine-2/" +local PIPEPATH = "__base__/graphics/entity/pipe-covers/" + +function assembler2pipepicturesBioreactor() + return { + north = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + shift = util.by_pixel(2.5, 14), + hr_version = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + shift = util.by_pixel(2.25, 13.5), + scale = 0.5, + } + }, + east = { + filename = ENTITYPATH .. "assembling-machine-2-pipe-E.png", + priority = "extra-high", + width = 20, + height = 38, + shift = util.by_pixel(-25, 1), + hr_version = { + filename = ENTITYPATH .. "hr-assembling-machine-2-pipe-E.png", + priority = "extra-high", + width = 42, + height = 76, + shift = util.by_pixel(-24.5, 1), + scale = 0.5, + } + }, + south = { + filename = ENTITYPATH .. "assembling-machine-2-pipe-S.png", + priority = "extra-high", + width = 44, + height = 31, + shift = util.by_pixel(0, -31.5), + hr_version = { + filename = ENTITYPATH .. "hr-assembling-machine-2-pipe-S.png", + priority = "extra-high", + width = 88, + height = 61, + shift = util.by_pixel(0, -31.25), + scale = 0.5, + } + }, + west = { + filename = ENTITYPATH .. "assembling-machine-2-pipe-W.png", + priority = "extra-high", + width = 19, + height = 37, + shift = util.by_pixel(25.5, 1.5), + hr_version = { + filename = ENTITYPATH .. "hr-assembling-machine-2-pipe-W.png", + priority = "extra-high", + width = 39, + height = 73, + shift = util.by_pixel(25.75, 1.25), + scale = 0.5, + } + } + } +end + + +function pipecoverspicturesBioreactor() + return { + north = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + hr_version = { + filename = ICONPATH .. "empty.png", + priority = "extra-high", + width = 1, + height = 1, + scale = 0.5 + } + }, + east = { + filename = PIPEPATH .. "pipe-cover-east.png", + priority = "extra-high", + width = 64, + height = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-cover-east.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5 + } + }, + south = { + filename = PIPEPATH .. "pipe-cover-south.png", + priority = "extra-high", + width = 64, + height = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-cover-south.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5 + } + }, + west = { + filename = PIPEPATH .. "pipe-cover-west.png", + priority = "extra-high", + width = 64, + height = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-cover-west.png", + priority = "extra-high", + width = 128, + height = 128, + scale = 0.5 + } + } + } +end diff --git a/Bio_Industries_2/prototypes/Bio_Fuel/recipe.lua b/Bio_Industries_2/prototypes/Bio_Fuel/recipe.lua new file mode 100644 index 0000000..4aca9c3 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Fuel/recipe.lua @@ -0,0 +1,677 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" +--~ local new_battery_icon = BioInd.check_base_version("0.18.47") + +-- Changed for 0.18.29: We always want to make advanced fertilizer, so we need to +-- unlock the bio-reactor and the most basic recipe for algae biomass even if +-- BI.Settings.BI_Bio_Fuel has been turned off! +data:extend({ + -- BIO Reactor (ENTITY)-- + { + type = "recipe", + name = "bi-bio-reactor", + localised_name = {"entity-name.bi-bio-reactor"}, + localised_description = {"entity-description.bi-bio-reactor"}, + icon = ICONPATH .. "bioreactor.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bioreactor.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + energy_required = 20, + ingredients = { + {"assembling-machine-1", 1}, + {"steel-plate", 5}, + {"electronic-circuit", 5}, + }, + result = "bi-bio-reactor", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 30, + ingredients = { + {"assembling-machine-1", 2}, + {"steel-plate", 5}, + {"electronic-circuit", 5}, + }, + result = "bi-bio-reactor", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + subgroup = "bio-bio-fuel-fluid", + order = "a", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Changed for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 }, + }, + -- BIOMASS 1 -- + { + type = "recipe", + name = "bi-biomass-1", + localised_name = {"recipe-name.bi-biomass-1"}, + localised_description = {"recipe-description.bi-biomass-1"}, + icon = ICONPATH .. "biomass_1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "biomass_1.png", + icon_size = 64, + } + }, + category = "biofarm-mod-bioreactor", + energy_required = 10, + ingredients = { + {type = "fluid", name = "water", amount = 100}, + {type = "item", name = "fertilizer", amount = 10}, + }, + results = { + {type = "fluid", name = "bi-biomass", amount = 50}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = true, + subgroup = "bio-bio-fuel-fluid", + order = "x[oil-processing]-z1[bi-biomass]" + }, +}) + + +if BI.Settings.BI_Bio_Fuel then + data:extend({ + -- Basic petroleum-gas processing + -- (Added for 0.17.49/0.18.17) + { + type = "recipe", + name = "bi-basic-gas-processing", + icon = ICONPATH .. "bi_basic_gas_processing.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_basic_gas_processing.png", + icon_size = 64, + } + }, + category = "chemistry", + enabled = false, + energy_required = 5, + ingredients = { + {type = "item", name = "coal", amount = 20}, + {type = "item", name = "resin", amount = 10}, + {type = "fluid", name ="steam", amount = 50} + }, + results = { + --~ {type = "fluid", name = "petroleum-gas", amount = 15, fluidbox_index = 3}, + {type = "fluid", name = "petroleum-gas", amount = 15}, + {type = "item", name = "bi-ash", amount = 15} + }, + subgroup = "bio-bio-fuel-other", + order = "[bi_basic_gas_processing]", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = true, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + + --- Bio Boiler (ENTITY) --- + { + type = "recipe", + name = "bi-bio-boiler", + localised_name = {"entity-name.bi-bio-boiler"}, + localised_description = {"entity-description.bi-bio-boiler"}, + icon = ICONPATH .. "bio_boiler.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_boiler.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + energy_required = 10, + ingredients = { + {"boiler", 1}, + {"steel-plate", 5}, + {"concrete", 5}, + }, + result = "bi-bio-boiler", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 15, + ingredients = { + {"boiler", 2}, + {"steel-plate", 5}, + {"concrete", 5}, + }, + result = "bi-bio-boiler", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + allow_as_intermediate = false, -- Changed for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + --~ subgroup = "bio-energy-boiler", + subgroup = "energy", -- Changed for 0.18.34/1.1.4 + order = "b-[steam-power]-a[boiler]-a[bi-bio-boiler]" -- Changed for 0.18.34/1.1.4 + }, + + + -- CELLULOSE 1 -- + { + type = "recipe", + name = "bi-cellulose-1", + localised_name = {"recipe-name.bi-cellulose-1"}, + localised_description = {"recipe-description.bi-cellulose-1"}, + icon = ICONPATH .. "cellulose.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "cellulose.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 20, + ingredients = { + {type = "item", name = "bi-woodpulp", amount = 10}, + {type = "fluid", name = "sulfuric-acid", amount = 10}, + }, + results= { + {type = "item", name = "bi-cellulose", amount = 10 } + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-fuel-other", + order = "[bi-cellulose-1]", + --~ subgroup = "intermediate-product", + --~ order = "b[cellulose-1]", + }, + + -- CELLULOSE 2 -- + { + type = "recipe", + name = "bi-cellulose-2", + localised_name = {"recipe-name.bi-cellulose-2"}, + localised_description = {"recipe-description.bi-cellulose-2"}, + icon = ICONPATH .. "cellulose_2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "cellulose_2.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 5, + ingredients = { + {type = "fluid", name = "steam", amount = 10}, + {type = "item", name = "bi-woodpulp", amount = 10}, + {type = "fluid", name = "sulfuric-acid", amount = 20}, + }, + results = { + {type = "item", name = "bi-cellulose", amount = 10 } + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-fuel-other", + order = "[bi-cellulose-2]", + --~ subgroup = "intermediate-product", + --~ order = "b[cellulose-2]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + -- PLASTIC 1 -- + { + type = "recipe", + name = "bi-plastic-1", + localised_name = {"recipe-name.bi-plastic-1"}, + localised_description = {"recipe-description.bi-plastic-1"}, + icon = ICONPATH .. "plastic_bar_1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "plastic_bar_1.png", + icon_size = 64, + } + }, + category = "chemistry", + --subgroup = "raw-material", + energy_required = 1, + ingredients = { + {type = "fluid", name = "steam", amount = 10}, + -- Let's use woodpulp instead of wood for the new version! Not changing this + -- for 0.18.34/1.1.4 to avoid an additional (potentially factory-breaking) + -- change shortly before the new release will change so many things anyway! + {type = "item", name = "wood", amount = 10}, + --~ {type = "item", name = "bi-woodpulp", amount = 20}, + {type = "fluid", name = "light-oil", amount = 20}, + }, + results = { + {type = "item", name = "plastic-bar", amount = 2} + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-fuel-solid", + order = "g[plastic-bar-1]", + --~ subgroup = "intermediate-product", + --~ order = "b[bi-plastic-1]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + -- PLASTIC 2 -- + { + type = "recipe", + name = "bi-plastic-2", + localised_name = {"recipe-name.bi-plastic-2"}, + localised_description = {"recipe-description.bi-plastic-2"}, + icon = ICONPATH .. "plastic_bar_2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "plastic_bar_2.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 1, + ingredients = { + {type = "item", name = "bi-cellulose", amount = 1}, + {type = "fluid", name = "petroleum-gas", amount = 10}, + }, + results = { + {type = "item", name = "plastic-bar", amount = 2} + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-fuel-solid", + order = "g[plastic-bar-2]", + --~ subgroup = "intermediate-product", + --~ order = "b[bi-plastic-2]", + }, + + -- BIOMASS 2 -- + { + type = "recipe", + name = "bi-biomass-2", + localised_name = {"recipe-name.bi-biomass-2"}, + localised_description = {"recipe-description.bi-biomass-2"}, + icon = ICONPATH .. "biomass_2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "biomass_2.png", + icon_size = 64, + } + }, + category = "biofarm-mod-bioreactor", + energy_required = 60, + ingredients = { + {type = "fluid", name = "water", amount = 90}, + {type = "fluid", name = "liquid-air", amount = 10}, + {type = "fluid", name = "bi-biomass", amount = 10}, + }, + results = { + {type = "fluid", name = "bi-biomass", amount = 35}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + --~ subgroup = "bio-bio-fuel-fluid", + --~ order = "x[oil-processing]-z3[bi-biomass]" + subgroup = "bio-bio-fuel-fluid", + order = "x[oil-processing]-z2[bi-biomass]" -- This recipe is not as good as bi_biomass_2! + }, + + -- BIOMASS 3 -- + { + type = "recipe", + name = "bi-biomass-3", + localised_name = {"recipe-name.bi-biomass-3"}, + localised_description = {"recipe-description.bi-biomass-3"}, + icon = ICONPATH .. "biomass_3.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "biomass_3.png", + icon_size = 64, + } + }, + category = "biofarm-mod-bioreactor", + energy_required = 10, + ingredients = { + {type = "fluid", name = "water", amount = 90}, + {type = "fluid", name = "liquid-air", amount = 10}, + {type = "fluid", name = "bi-biomass", amount = 10}, + {type = "item", name = "bi-ash", amount = 10}, + }, + results = { + {type = "fluid", name = "bi-biomass", amount = 100}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + --~ subgroup = "bio-bio-fuel-fluid", + --~ order = "x[oil-processing]-z2[bi-biomass]" + subgroup = "bio-bio-fuel-fluid", + order = "x[oil-processing]-z3[bi-biomass]" -- This recipe is more powerful than bi_biomass_3! + }, + + ---- Biomass to Light-oil + { + type = "recipe", + name = "bi-biomass-conversion-1", + localised_name = {"recipe-name.bi-biomass-conversion-1"}, + localised_description = {"recipe-description.bi-biomass-conversion-1"}, + icon = ICONPATH .. "bio_conversion_1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_conversion_1.png", + icon_size = 64, + } + }, + category = "oil-processing", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 5, + ingredients = { + {type = "fluid", name = "bi-biomass", amount = 100}, + {type = "fluid", name = "water", amount = 10}, + }, + results = { + {type = "item", name = "bi-cellulose", amount = 2}, + {type = "fluid", name = "light-oil", amount = 80}, + }, + main_product = "", + subgroup = "bio-bio-fuel-other", + order = "a[oil-processing]-b[advanced-oil-processing]-y[bi-Fuel_Conversion-1]", + }, + + ---- Biomass to PG + { + type = "recipe", + name = "bi-biomass-conversion-2", + localised_name = {"recipe-name.bi-biomass-conversion-2"}, + localised_description = {"recipe-description.bi-biomass-conversion-2"}, + icon = ICONPATH .. "bio_conversion_2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_conversion_2.png", + icon_size = 64, + } + }, + category = "oil-processing", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 5, + ingredients = { + {type = "fluid", name = "bi-biomass", amount = 10}, + {type = "fluid", name = "water", amount = 10}, + }, + results = { + {type = "fluid", name = "petroleum-gas", amount = 20} + }, + main_product = "", + subgroup = "bio-bio-fuel-other", + order = "a[oil-processing]-b[advanced-oil-processing]-y[bi-Fuel_Conversion-2]", + }, + + ---- Biomass to Lube + { + type = "recipe", + name = "bi-biomass-conversion-3", + localised_name = {"recipe-name.bi-biomass-conversion-3"}, + localised_description = {"recipe-description.bi-biomass-conversion-3"}, + icon = ICONPATH .. "bio_conversion_3.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_conversion_3.png", + icon_size = 64, + } + }, + category = "oil-processing", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 2.5, + ingredients = { + {type = "fluid", name = "bi-biomass", amount = 10}, + {type = "fluid", name = "water", amount = 10}, + }, + results = { + {type = "fluid", name = "lubricant", amount = 10} + }, + main_product ="", + crafting_machine_tint = { + primary = {r = 0.000, g = 0.260, b = 0.010, a = 0.000}, -- #00420200 + secondary = {r = 0.071, g = 0.640, b = 0.000, a = 0.000}, -- #12a30000 + tertiary = {r = 0.026, g = 0.520, b = 0.000, a = 0.000}, -- #06840000 + }, + subgroup = "bio-bio-fuel-other", + order = "a[oil-processing]-b[advanced-oil-processing]-y[bi-Fuel_Conversion-3]", + }, + + ---- Biomass to Crude + { + type = "recipe", + name = "bi-biomass-conversion-4", + localised_name = {"recipe-name.bi-biomass-conversion-4"}, + localised_description = {"recipe-description.bi-biomass-conversion-4"}, + icon = ICONPATH .. "bio_conversion_4.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_conversion_4.png", + icon_size = 64, + } + }, + category = "oil-processing", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 10, + ingredients = { + {type = "item", name = "coal", amount = 20}, + {type = "fluid", name = "bi-biomass", amount = 10}, + {type = "fluid", name = "steam", amount = 50} + }, + results = { + {type = "fluid", name = "crude-oil", amount = 50}, + {type = "fluid", name = "water", amount = 50}, + }, + main_product = "", + crafting_machine_tint = { + primary = {r = 0.000, g = 0.260, b = 0.010, a = 0.000}, -- #00420200 + secondary = {r = 0.071, g = 0.640, b = 0.000, a = 0.000}, -- #12a30000 + tertiary = {r = 0.026, g = 0.520, b = 0.000, a = 0.000}, -- #06840000 + }, + subgroup = "bio-bio-fuel-other", + order = "a[oil-processing]-b[advanced-oil-processing]-y[bi-Fuel_Conversion-4]", + }, + + --- Bio Battery + { + type = "recipe", + name = "bi-battery", + icon = ICONPATH .. "bio_battery.png", + icon_size = 64, + icon_mipmaps = 4, + icons = { + { + icon = ICONPATH .. "bio_battery.png", + icon_size = 64, + icon_mipmaps = 4, + } + }, + category = "chemistry", + energy_required = 5, + ingredients = { + {type = "item", name = "plastic-bar", amount = 1}, + {type = "fluid", name = "bi-biomass", amount = 10}, + {type = "item", name = "bi-cellulose", amount = 1}, + }, + results = { + {type = "item", name = "battery", amount = 1}, + }, + main_product = "", + enabled = false, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Changed for 0.18.34/1.1.4 + always_show_made_in = true, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + crafting_machine_tint = { + primary = {r = 0.970, g = 0.611, b = 0.000, a = 0.000}, -- #f79b0000 + secondary = {r = 0.000, g = 0.680, b = 0.894, a = 0.357}, -- #00ade45b + tertiary = {r = 0.430, g = 0.805, b = 0.726, a = 0.000}, -- #6dcdb900 + }, + subgroup = "bio-bio-fuel-solid", + order = "h", + --~ subgroup = "raw-material", + --~ order = "h[bi-battery]", + }, + + --- Bio Acid + { + type = "recipe", + name = "bi-acid", + icon = ICONPATH .. "bio_acid.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_acid.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 10, + ingredients = { + {type = "fluid", name = "water", amount = 90}, + {type = "fluid", name = "bi-biomass", amount = 10}, + {type = "item", name = "bi-cellulose", amount = 5}, + }, + results = { + {type = "fluid", name = "sulfuric-acid", amount = 50}, + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + crafting_machine_tint = { + primary = {r = 0.875, g = 0.735, b = 0.000, a = 0.000}, -- #dfbb0000 + secondary = {r = 0.103, g = 0.940, b = 0.000, a = 0.000}, -- #1aef0000 + tertiary = {r = 0.564, g = 0.795, b = 0.000, a = 0.000}, -- #8fca0000 + }, + subgroup = "bio-bio-fuel-other", + order = "a", + --~ subgroup = "fluid-recipes", + --~ order = "a", + }, + + -- Sulfuric acid to Sulfur -- + { + type = "recipe", + name = "bi-sulfur", + icon = ICONPATH .. "bio_sulfur.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_sulfur.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 10, + ingredients = { + {type = "fluid", name = "sulfuric-acid", amount = 10}, + {type = "item", name = "bi-ash", amount = 10}, + }, + results = { + {type = "item", name = "sulfur", amount = 10} + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-fuel-solid", + order = "i1", + --~ subgroup = "raw-material", + --~ order = "g[sulfur]-[bi-sulfur]", + }, + + -- Sulfuric acid to Sulfur --IF ANGELS INSTALLED (More Expensice) + { + type = "recipe", + name = "bi-sulfur-angels", + icon = ICONPATH .. "bio_sulfur.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_sulfur.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 10, + ingredients = { + {type = "fluid", name = "sulfuric-acid", amount = 50}, + {type = "item", name = "bi-ash", amount = 10}, + }, + results = { + {type = "item", name = "sulfur", amount = 10} + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + subgroup = "bio-bio-fuel-solid", + order = "i2", + }, + + + }) +end +--~ log("recipe.lua: data.raw.recipe[\"bi-sulfur\"]: " .. serpent.block(data.raw.recipe["bi-sulfur"])) diff --git a/Bio_Industries_2/prototypes/Bio_Fuel/technology.lua b/Bio_Industries_2/prototypes/Bio_Fuel/technology.lua new file mode 100644 index 0000000..2e87622 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Fuel/technology.lua @@ -0,0 +1,45 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/technology/" + +if BI.Settings.BI_Bio_Fuel then + + data:extend({ + { + type = "technology", + name = "bi-tech-organic-plastic", + icon_size = 128, + icon = ICONPATH .. "Cellulose_128.png", + icons = { + { + icon = ICONPATH .. "Cellulose_128.png", + icon_size = 128, + } + }, + effects = { + { + type = "unlock-recipe", + recipe = "bi-plastic-1" + }, + { + type = "unlock-recipe", + recipe = "bi-plastic-2" + } + }, + prerequisites = { + "bi-tech-advanced-biotechnology" + }, + unit = { + count = 200, + ingredients = { + {"automation-science-pack", 1}, + {"logistic-science-pack", 1}, + {"chemical-science-pack", 1}, + {"production-science-pack", 1}, + }, + time = 30 + } + }, + }) + +end diff --git a/Bio_Industries_2/prototypes/Bio_Garden/entities.lua b/Bio_Industries_2/prototypes/Bio_Garden/entities.lua new file mode 100644 index 0000000..4d88a02 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Garden/entities.lua @@ -0,0 +1,135 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +require ("util") + + +--- Bio Garden +data:extend({ + { + type = "assembling-machine", + name = "bi-bio-garden", + icon = ICONPATH .. "bio_garden_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_garden_icon.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-bio-garden"}, + fast_replaceable_group = "bi-bio-garden", + max_health = 150, + corpse = "medium-remnants", + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + fluid_boxes = { + { + production_type = "input", + pipe_picture = assembler3pipepictures(), + pipe_covers = pipecoverspictures(), + base_area = 10, + base_level = -1, + pipe_connections = {{ type = "input", position = {0, -2} }} + }, + off_when_no_fluid_recipe = true + }, + animation = { + filename = "__Bio_Industries__/graphics/entities/biogarden/bio_garden_x.png", + width = 160, + height = 160, + frame_count = 12, + line_length = 4, + animation_speed = 0.025, + shift = {0.45, 0} + }, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + working_sound = { + sound = { { filename = "__Bio_Industries__/sound/rainforest_ambience.ogg", volume = 0.8 } }, + idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.6 }, + apparent_volume = 1.5, + }, + crafting_categories = {"clean-air"}, + source_inventory_size = 1, + result_inventory_size = 1, + crafting_speed = 1.0, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = -45, -- Negative value: pollution is absorbed! + }, + energy_usage = "200kW", + ingredient_count = 1, + -- Changed for 0.18.34/1.1.4 -- Modules don't make sense for the gardens! + -- (Efficiency modules are also meant to reduce pollution, but as the base value + -- is negative, the resulting value is greater than the base value! ) + module_specification = { + module_slots = 1 + }, + --~ module_specification = { + --~ module_slots = 0 + --~ }, + -- Changed for 0.18.34/1.1.4 -- We need to use an empty table here, so the gardens + -- won't be affected by beacons! + allowed_effects = {"consumption", "speed"}, + --~ allowed_effects = {}, + }, +}) + + +--~ -- We only need the hidden pole if the "Easy Gardens" setting is active! +--~ if BI.Settings.BI_Easy_Bio_Gardens then + --~ local hidden_pole = table.deepcopy(data.raw["electric-pole"]["small-electric-pole"]) + --~ hidden_pole.name = "bi-bio-garden-hidden-pole" + --~ hidden_pole.icon = "__base__/graphics/icons/small-electric-pole.png" + --~ hidden_pole.icon_size = 64 + --~ hidden_pole.icons = { + --~ { + --~ icon = "__base__/graphics/icons/small-electric-pole.png", + --~ icon_size = 64, + --~ } + --~ } + --~ hidden_pole.flags = { + --~ "not-deconstructable", + --~ "not-on-map", + --~ "placeable-off-grid", + --~ "not-repairable", + --~ "not-blueprintable", + --~ } + --~ hidden_pole.selectable_in_game = false + --~ hidden_pole.draw_copper_wires = BioInd.is_debug + --~ hidden_pole.max_health = 1 + --~ hidden_pole.minable = nil + --~ hidden_pole.collision_mask = {} + --~ hidden_pole.collision_box = {{-0, -0}, {0, 0}} + --~ hidden_pole.selection_box = {{0, 0}, {0, 0}} + --~ hidden_pole.maximum_wire_distance = 4 + --~ hidden_pole.supply_area_distance = 1 + --~ hidden_pole.pictures = BioInd.is_debug and hidden_pole.pictures or { + --~ filename = ICONPATH .. "empty.png", + --~ priority = "low", + --~ width = 1, + --~ height = 1, + --~ frame_count = 1, + --~ axially_symmetrical = false, + --~ direction_count = 1, + --~ } + --~ hidden_pole.connection_points = BioInd.is_debug and hidden_pole.connection_points or { + --~ { + --~ shadow = {}, + --~ wire = { copper_wire_tweak = {-0, -0} } + --~ } + --~ } + --~ hidden_pole.radius_visualisation_picture = BioInd.is_debug and + --~ hidden_pole.radius_visualisation_picture or { + --~ filename = ICONPATH .. "empty.png", + --~ width = 1, + --~ height = 1, + --~ priority = "low" + --~ } + + --~ data:extend({hidden_pole}) +--~ end diff --git a/Bio_Industries_2/prototypes/Bio_Garden/fluid_fertilizer.lua b/Bio_Industries_2/prototypes/Bio_Garden/fluid_fertilizer.lua new file mode 100644 index 0000000..4915896 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Garden/fluid_fertilizer.lua @@ -0,0 +1,204 @@ +------------------------------------------------------------------------------------ +-- Create fluid fertilizers, recipes, and unlocks if the setting requires it! -- +------------------------------------------------------------------------------------ +local BioInd = require('common')('Bio_Industries') +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +--~ BioInd.show("fluid_fertilizer.lua -- BI.Settings.BI_Easy_Bio_Gardens", BI.Settings.BI_Easy_Bio_Gardens) +--~ if BI.Settings.BI_Easy_Bio_Gardens then + +local function make_colors(color) + local r, g, b = color.r, color.g, color.b + local black = {r = 0, g = 0, b = 0, a = .25} + + local function mult(v, f) + return (v * f) % 1 + end + + ret = { + base = color, + flow = {r = mult(r, 3), g = mult(g, 3), b = mult(b, 3), a = .25}, + primary = {r = r, g = g, b = b, a = .5}, + secondary = {r = mult(r, .5), g = mult(g, .5), b = mult(b, .5), a = .25}, + tertiary = {r = mult(r, 2), g = mult(g, 2), b = mult(b, 2), a = .25}, + secondary = black, + } + return ret +end + +local fertilizer_fluid_colors = make_colors({r = 0.098, g = 0.811, b = 0.269, a = .5}) +local adv_fertilizer_fluid_colors = make_colors({r = 0, g = 1, b = 0.071, a = .5}) + +data:extend({ + ------------------------------------------------------------------------------------ + -- FLUIDS -- + ------------------------------------------------------------------------------------ + + -- Fertilizer fluid + { + type = "fluid", + name = "bi-fertilizer-fluid", + icon = ICONPATH .. "fluid_fertilizer_64.png", + icon_size = 64, + icon_mipmaps = 1, + icons = { + { + icon = ICONPATH .. "fluid_fertilizer_64.png", + icon_size = 64, + icon_mipmaps = 1, + } + }, + default_temperature = 25, + max_temperature = 100, + heat_capacity = "1KJ", + --~ base_color = {r = 0.478, g = 0.341, b = 0.118}, + -- 19cf44 + --~ base_color = {r = 0.098, g = 0.811, b = 0.269}, + base_color = fertilizer_fluid_colors.base, + --~ flow_color = {r = 0, g = 0, b = 0}, + flow_color = fertilizer_fluid_colors.flow, + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-b[fertilizer]" + }, + + -- Advanced fertilizer fluid + { + type = "fluid", + name = "bi-adv-fertilizer-fluid", + icon = ICONPATH .. "fluid_advanced_fertilizer_64.png", + icon_size = 64, + icon_mipmaps = 1, + icons = { + { + icon = ICONPATH .. "fluid_advanced_fertilizer_64.png", + icon_size = 64, + icon_mipmaps = 1, + } + }, + default_temperature = 25, + max_temperature = 100, + heat_capacity = "1KJ", + --00ff12 + --~ base_color = {r = 0.465, g = 0.306, b = 0.272}, + --~ base_color = {r = 0, g = 1, b = 0.071}, + base_color = adv_fertilizer_fluid_colors.base, + --~ flow_color = {r = 0, g = 0, b = 0}, + flow_color = adv_fertilizer_fluid_colors.flow, + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-b[fertilizer-advanced]" + }, + + + ------------------------------------------------------------------------------------ + -- RECIPES -- + ------------------------------------------------------------------------------------ + + -- Fertilizer fluid + { + type = "recipe", + name = "bi-fertilizer-fluid", + icon = ICONPATH .. "fluid_fertilizer_recipe_64.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "fluid_fertilizer_recipe_64.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 5, + ingredients = { + {type = "item", name = "fertilizer", amount = 3}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "fluid", name = "bi-fertilizer-fluid", amount = 100} + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + subgroup = "bio-bio-farm-intermediate-product", + order = "b[bi-fertilizer]-b[bi-fertilizer-fluid-1]", + crafting_machine_tint = { + -- Kettle + primary = fertilizer_fluid_colors.primary, + secondary = fertilizer_fluid_colors.secondary, + -- Chimney + tertiary = fertilizer_fluid_colors.tertiary, + quaternary = fertilizer_fluid_colors.quaternary, + }, + }, + + -- Advanced fertilizer fluid + { + type = "recipe", + name = "bi-adv-fertilizer-fluid", + icon = ICONPATH .. "fluid_advanced_fertilizer_recipe_64.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "fluid_advanced_fertilizer_recipe_64.png", + icon_size = 64, + } + }, + category = "chemistry", + energy_required = 5, + ingredients = { + {type = "item", name = "bi-adv-fertilizer", amount = 3}, + {type = "fluid", name = "water", amount = 100}, + }, + results = { + {type = "fluid", name = "bi-adv-fertilizer-fluid", amount = 100} + }, + main_product = "", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + allow_as_intermediate = false, + subgroup = "bio-bio-farm-intermediate-product", + order = "b[bi-fertilizer]-b[bi-fertilizer-fluid-2]", + crafting_machine_tint = { + primary = adv_fertilizer_fluid_colors.primary, + secondary = adv_fertilizer_fluid_colors.secondary, + -- Chimney + tertiary = adv_fertilizer_fluid_colors.tertiary, + quaternary = adv_fertilizer_fluid_colors.quaternary, + }, + }, +}) + +------------------------------------------------------------------------------------ +-- UNLOCKS -- +------------------------------------------------------------------------------------ +BioInd.writeDebug("Unlocking fluid fertilizers!") +thxbob.lib.tech.add_recipe_unlock ("bi-tech-fertilizer", "bi-fertilizer-fluid") +thxbob.lib.tech.add_recipe_unlock ("bi-tech-advanced-biotechnology", "bi-adv-fertilizer-fluid") + + + +------------------------------------------------------------------------------------ +-- CHANGE RECIPES -- +------------------------------------------------------------------------------------ +-- Purified air (fertilizer) +thxbob.lib.recipe.remove_ingredient("bi-purified-air-1", "fertilizer") +thxbob.lib.recipe.remove_ingredient("bi-purified-air-1", "water") +thxbob.lib.recipe.add_new_ingredient("bi-purified-air-1", { + type = "fluid", + name = "bi-fertilizer-fluid", + amount = 50 +}) +data.raw.recipe["bi-purified-air-1"].localised_description = {"recipe-description.bi-purified-air-1-fluid"} + +-- Purified air (advanced fertilizer) +thxbob.lib.recipe.remove_ingredient("bi-purified-air-2", "bi-adv-fertilizer") +thxbob.lib.recipe.remove_ingredient("bi-purified-air-2", "water") +thxbob.lib.recipe.add_new_ingredient("bi-purified-air-2", { + type = "fluid", + name = "bi-adv-fertilizer-fluid", + amount = 50 +}) +data.raw.recipe["bi-purified-air-2"].localised_description = {"recipe-description.bi-purified-air-2-fluid"} diff --git a/Bio_Industries_2/prototypes/Bio_Garden/item.lua b/Bio_Industries_2/prototypes/Bio_Garden/item.lua new file mode 100644 index 0000000..edea9f3 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Garden/item.lua @@ -0,0 +1,42 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +-------- Bio Garden + +data:extend({ + + { + type = "item", + name = "bi-bio-garden", + icon = ICONPATH .. "bio_garden_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_garden_icon.png", + icon_size = 64, + } + }, + subgroup = "production-machine", + order = "x[bi]-b[bi-bio-garden]", + place_result = "bi-bio-garden", + stack_size = 10 + }, + + { + type = "item", + name = "bi-purified-air", + icon = ICONPATH .. "Clean_Air2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Clean_Air2.png", + icon_size = 64, + } + }, + flags = {"hidden"}, + subgroup = "bio-bio-gardens-fluid", + order = "bi-purified-air", + stack_size = 100 + }, +}) diff --git a/Bio_Industries_2/prototypes/Bio_Garden/recipe-categories.lua b/Bio_Industries_2/prototypes/Bio_Garden/recipe-categories.lua new file mode 100644 index 0000000..f4137b0 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Garden/recipe-categories.lua @@ -0,0 +1,9 @@ +data:extend({ + + -- Bio Garden + { + type = "recipe-category", + name = "clean-air" + } + +}) diff --git a/Bio_Industries_2/prototypes/Bio_Garden/recipe.lua b/Bio_Industries_2/prototypes/Bio_Garden/recipe.lua new file mode 100644 index 0000000..4cda3a4 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Garden/recipe.lua @@ -0,0 +1,110 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +--- Bio Gardens +data:extend({ + + --- Garden (ENTITY) + { + type = "recipe", + name = "bi-bio-garden", + localised_name = {"entity-name.bi-bio-garden"}, + localised_description = {"entity-description.bi-bio-garden"}, + icon = ICONPATH .. "bio_garden_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_garden_icon.png", + icon_size = 64, + } + }, + enabled = false, + energy_required = 10, + ingredients = { + {"stone-wall", 12}, + {"stone-crushed", 50}, + {"seedling", 50} + }, + result = "bi-bio-garden", + main_product = "", + subgroup = "bio-bio-gardens-fluid", + order = "a[bi]", + --~ subgroup = "production-machine", + --~ order = "x[bi]-b[bi_bio_garden]", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Changed for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + + --- Clean Air 1 + { + type = "recipe", + name = "bi-purified-air-1", + --~ localised_name = {"recipe-name.bi-purified-air-1"}, + --~ localised_description = {"recipe-description.bi-purified-air-1"}, + icon = ICONPATH .. "clean-air_mk1.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "clean-air_mk1.png", + icon_size = 64, + } + }, + order = "zzz-clean-air", + category = "clean-air", + subgroup = "bio-bio-gardens-fluid", + order = "bi-purified-air-1", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 40, + ingredients = { + {type = "fluid", name = "water", amount = 50}, + {type = "item", name = "fertilizer", amount = 1} + }, + results = { + {type = "item", name = "bi-purified-air", amount = 1, probability = 0}, + }, + main_product = "", + }, + + + --- Clean Air 2 + { + type = "recipe", + name = "bi-purified-air-2", + --~ localised_name = {"recipe-name.bi-purified-air-2"}, + --~ localised_description = {"recipe-description.bi-purified-air-2"}, + icon = ICONPATH .. "clean-air_mk2.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "clean-air_mk2.png", + icon_size = 64, + } + }, + order = "zzz-clean-air2", + category = "clean-air", + subgroup = "bio-bio-gardens-fluid", + order = "bi-purified-air-2", + enabled = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 100, + ingredients = { + {type = "fluid", name = "water", amount = 50}, + {type = "item", name = "bi-adv-fertilizer", amount = 1}, + }, + results = { + {type = "item", name = "bi-purified-air", amount = 1, probability = 0}, + }, + main_product = "", + }, + +}) diff --git a/Bio_Industries_2/prototypes/Bio_Solar_Farm/entities.lua b/Bio_Industries_2/prototypes/Bio_Solar_Farm/entities.lua new file mode 100644 index 0000000..733d43c --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Solar_Farm/entities.lua @@ -0,0 +1,756 @@ +local BioInd = require('common')('Bio_Industries') +require ("util") + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" +local ENTITYPATH = "__Bio_Industries__/graphics/entities/bio_solar_farm/" + +--~ local BIGICONS = BioInd.check_base_version("0.18.0") + + +if BI.Settings.BI_Solar_Additions then + + +-- demo-sounds has been removed in Factorio 1.1, so we need to check the game version! +local sound_def = BioInd.check_version("base", "<", "1.1.0") and + require("__base__.prototypes.entity.demo-sounds") or + require("__base__.prototypes.entity.sounds") +local sounds = {} +sounds.car_wood_impact = sound_def.car_wood_impact(1) +sounds.generic_impact = sound_def.generic_impact +for _, sound in ipairs(sounds.generic_impact) do + sound.volume = 0.65 +end + +sounds.walking_sound = {} +for i = 1, 11 do + sounds.walking_sound[i] = { + filename = "__base__/sound/walking/concrete-" .. (i < 10 and "0" or "") .. i ..".ogg", + volume = 1.2 + } +end + +data:extend({ + ------- Bio Farm Solar Panel + { + type = "solar-panel", + name = "bi-bio-solar-farm", + icon = ICONPATH .. "Bio_Solar_Farm_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Bio_Solar_Farm_Icon.png", + icon_size = 64, + } + }, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.25, mining_time = 0.5, result = "bi-bio-solar-farm"}, + max_health = 600, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + resistances = {{type = "fire", percent = 80}}, + collision_box = {{-4.2, -4.2}, {4.2, 4.2}}, + selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, + energy_source = { + type = "electric", + usage_priority = "solar" + }, + picture = { + filename = ENTITYPATH .. "Bio_Solar_Farm_On.png", + priority = "low", + width = 312, + height = 289, + frame_count = 1, + direction_count = 1, + --scale = 3/2, + shift = {0.30, 0} + }, + production = "3600kW" + }, + + + ---- BI Accumulator + { + type = "accumulator", + name = "bi-bio-accumulator", + icon = ICONPATH .. "bi_LargeAccumulator.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_LargeAccumulator.png", + icon_size = 64, + } + }, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-bio-accumulator"}, + max_health = 500, + corpse = "big-remnants", + collision_box = {{-1.75, -1.75}, {1.75, 1.75}}, + selection_box = {{-2, -2}, {2, 2}}, + --collision_box = {{-2, -2}, {2, 2}}, + --selection_box = {{-2.5, -2.5}, {2.5, 2.5}}, + energy_source = { + type = "electric", + buffer_capacity = "300MJ", + usage_priority = "tertiary", + input_flow_limit = "20MW", + output_flow_limit = "20MW" + }, + picture = { + filename = ENTITYPATH .. "bi_LargeAccumulator.png", + priority = "extra-high", + width = 245, + height = 245, + shift = {0.75, -0.5}, + scale = 0.75, + }, + charge_animation = { + filename = ENTITYPATH .. "bi_LargeAccumulatorAnimated.png", + width = 250, + height = 250, + line_length = 8, + frame_count = 24, + shift = {0.75, -0.5}, + scale = 0.75, + animation_speed = 0.5 + }, + charge_cooldown = 30, + charge_light = {intensity = 0.3, size = 7, color = {r = 1.0, g = 1.0, b = 1.0}}, + discharge_animation = { + filename = ENTITYPATH .. "bi_LargeAccumulatorAnimated.png", + width = 250, + height = 250, + line_length = 8, + frame_count = 24, + shift = {0.75, -0.5}, + scale = 0.75, + animation_speed = 0.5 + }, + discharge_cooldown = 60, + discharge_light = {intensity = 0.7, size = 7, color = {r = 1.0, g = 1.0, b = 1.0}}, + vehicle_impact_sound = sounds.generic_impact, + working_sound = { + sound = { + filename = "__base__/sound/accumulator-working.ogg", + volume = 1 + }, + idle_sound = { + filename = "__base__/sound/accumulator-idle.ogg", + volume = 0.4 + }, + max_sounds_per_type = 5 + }, + circuit_wire_connection_point = { + shadow = { + red = {0.984375, 1.10938}, + green = {0.890625, 1.10938} + }, + wire = { + red = {0.6875, 0.59375}, + green = {0.6875, 0.71875} + } + }, + --circuit_connector_sprites = get_circuit_connector_sprites({0.46875, 0.5}, {0.46875, 0.8125}, 26), + circuit_wire_max_distance = 9, + default_output_signal = {type = "virtual", name = "signal-A"} + }, + + + ---- Large Substation + { + type = "electric-pole", + name = "bi-large-substation", + localised_name = {"entity-name.bi-large-substation"}, + localised_description = {"entity-description.bi-large-substation"}, + icon = ICONPATH .. "bi_LargeSubstation_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_LargeSubstation_icon.png", + icon_size = 64, + } + }, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-large-substation"}, + max_health = 600, + corpse = "big-remnants", + dying_explosion = "big-explosion", + track_coverage_during_build_by_moving = true, + resistances = { + { + type = "fire", + percent = 90 + } + }, + collision_box = {{-2.4, -2.4}, {2.4, 2.4}}, + selection_box = {{-2.5, -2.5}, {2.5, 2.5}}, + drawing_box = {{-2.5, -5}, {2.5, 2.5}}, + maximum_wire_distance = 25, + -- Changed for 0.18.34/1.1.4 + --~ supply_area_distance = 50, + supply_area_distance = 50.5, + pictures = { + filename = ENTITYPATH .. "bi_LargeSubstation.png", + priority = "high", + width = 450, + height = 380, + shift = {1, -0.5}, + direction_count = 1, + scale = 0.5, + }, + vehicle_impact_sound = sounds.generic_impact, + working_sound = { + sound = { filename = "__base__/sound/substation.ogg" }, + apparent_volume = 1.8, + audible_distance_modifier = 0.5, + probability = 1 / (3 * 60) -- average pause between the sound is 3 seconds + }, + connection_points = { + { + shadow = { + copper = {1.9, -0.6}, + green = {1.3, -0.6}, + red = {2.65, -0.6} + }, + wire = { + copper = {-0.25, -2.71875}, + green = {-0.84375, -2.71875}, + red = {0.34375, -2.71875} + } + }, + }, + radius_visualisation_picture = { + filename = "__base__/graphics/entity/small-electric-pole/electric-pole-radius-visualization.png", + width = 12, + height = 12, + --scale = 3, + --shift = {0.6, -0.6}, + priority = "extra-high-no-scale" + }, + }, + + + ---- Solar Floor + { + type = "tile", + name = "bi-solar-mat", + localised_name = {"entity-name.bi-solar-mat"}, + localised_description = {"entity-description.bi-solar-mat"}, + icon = ICONPATH .. "solar-mat.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "solar-mat.png", + icon_size = 64, + } + }, + needs_correction = false, + minable = {hardness = 0.1, mining_time = 0.25, result = "bi-solar-mat"}, + mined_sound = { filename = "__base__/sound/deconstruct-bricks.ogg" }, + --collision_mask = {"ground-tile", "not-colliding-with-itself"}, + collision_mask = {"ground-tile"}, + collision_box = {{-0.5, -0.5}, {0.5, 0.5}}, + walking_speed_modifier = 1.45, + layer = 62, + decorative_removal_probability = 1, + variants = { + main = { + { + picture = ENTITYPATH .. "solar1.png", + count = 1, + size = 1, + probability = 1, + }, + --[[ + { + picture = ENTITYPATH .. "solar2.png", + count = 1, + size = 2, + probability = 1, + }, + ]] + }, + inner_corner = { + picture = ENTITYPATH .. "solar-inner-corner.png", + count = 8 + }, + outer_corner = { + picture = ENTITYPATH .. "solar-outer-corner.png", + count = 8 + }, + side = { + picture = ENTITYPATH .. "solar-side.png", + count = 8 + }, + u_transition = { + picture = ENTITYPATH .. "solar-u.png", + count = 8 + }, + o_transition = { + picture = ENTITYPATH .. "solar-o.png", + count = 1 + } + }, + walking_sound = sounds.walking_sound, + map_color = {r = 93, g = 138, b = 168}, + pollution_absorption_per_second = 0, + vehicle_friction_modifier = dirt_vehicle_speed_modifer + }, +}) + + --~ ------- Hidden Electric pole for Solar Mat +--~ local hidden_pole = table.deepcopy(data.raw["electric-pole"]["small-electric-pole"]) +--~ { +-- type = "electric-pole", +-- name = "bi-musk-mat-hidden-pole", +-- icon = ICONPATH .. "solar-mat.png", +-- icon_size = 64, +-- icons = { +-- { +-- icon = ICONPATH .. "solar-mat.png", +-- icon_size = 64, +-- } +-- }, +-- flags = {"not-blueprintable", "not-deconstructable", "placeable-off-grid", "not-on-map", "not-repairable"}, +-- selectable_in_game = false, +-- draw_copper_wires = false, +-- max_health = 10, +-- resistances = {{type = "fire", percent = 100}}, +-- collision_mask = {"ground-tile"}, +-- collision_box = {{-0.0, -0.0}, {0.0, 0.0}}, +-- selection_box = {{0, 0}, {0, 0}}, +-- maximum_wire_distance = 1, +-- supply_area_distance = 3, +-- pictures = { +-- filename = ICONPATH .. "empty.png", +-- filename = "__base__/graphics/icons/small-electric-pole.png", +-- filename = BioInd.is_debug and +-- "__base__/graphics/icons/small-electric-pole.png" or +-- ICONPATH .. "empty.png", +-- priority = "low", +-- width = 1, +-- height = 1, +-- frame_count = 1, +-- axially_symmetrical = false, +-- direction_count = 4, +-- shift = {0.75, 0}, +-- }, +-- connection_points = { +-- { +-- shadow = { +-- +-- }, +-- wire = { +-- copper_wire = {-0, -0}, +-- } +-- }, +-- { +-- shadow = { +-- +-- }, +-- wire = { +-- copper_wire = {-0, -0}, +-- } +-- }, +-- { +-- shadow = { +-- +-- }, +-- wire = { +-- copper_wire = {-0, -0}, +-- } +-- }, +-- { +-- shadow = { +-- +-- }, +-- wire = { +-- copper_wire = {-0, -0}, +-- } +-- } +-- }, +-- +-- radius_visualisation_picture = { +-- filename = ICONPATH .. "empty.png", +-- width = 1, +-- height = 1, +-- priority = "low" +-- }, +-- }, +--~ hidden_pole.name = "bi-musk-mat-hidden-pole" +--~ hidden_pole.icon = ICONPATH .. "solar-mat.png" +--~ hidden_pole.icon_size = 64 +--~ hidden_pole.icons = { + --~ { + --~ icon = ICONPATH .. "solar-mat.png", + --~ icon_size = 64, + --~ } +--~ } +--~ hidden_pole.flags = {"not-blueprintable", "not-deconstructable", "placeable-off-grid", "not-on-map", "not-repairable"} +--~ hidden_pole.selectable_in_game = false +--~ hidden_pole.draw_copper_wires = BioInd.is_debug +--~ hidden_pole.max_health = 10 +--~ hidden_pole.resistances = {{type = "fire", percent = 100}} +--~ hidden_pole.collision_mask = {"ground-tile"} +--~ hidden_pole.collision_box = {{-0.0, -0.0}, {0.0, 0.0}} +--~ hidden_pole.selection_box = {{0, 0}, {0, 0}} +--~ hidden_pole.maximum_wire_distance = 1 +--~ hidden_pole.supply_area_distance = 3 +--~ hidden_pole.pictures = BioInd.is_debug and hidden_pole.pictures or { + --~ filename = ICONPATH .. "empty.png", + --~ priority = "low", + --~ width = 1, + --~ height = 1, + --~ frame_count = 1, + --~ axially_symmetrical = false, + --~ direction_count = 1, + --~ shift = {0.75, 0}, +--~ } +--~ hidden_pole.connection_points = BioInd.is_debug and hidden_pole.connection_points or { + --~ { + --~ shadow = {}, + --~ wire = { copper_wire = {-0, -0} } + --~ }, +--~ } +--~ hidden_pole.radius_visualisation_picture = { + --~ filename = ICONPATH .. "empty.png", + --~ width = 1, + --~ height = 1, + --~ priority = "low" +--~ } +--~ data:extend({hidden_pole}) + +data:extend({ + --~ ------- Hidden Solar Panel for Solar Mat + --~ { + --~ type = "solar-panel", + --~ name = "bi-musk-mat-hidden-panel", + --~ icon = ICONPATH .. "solar-mat.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "solar-mat.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ flags = {"not-blueprintable", "not-deconstructable", "placeable-off-grid", "not-on-map", "not-repairable"}, + --~ selectable_in_game = false, + --~ max_health = 1, + --~ resistances = {{type = "fire", percent = 100}}, + --~ collision_mask = {"ground-tile"}, + --~ collision_box = {{-0.0, -0.0}, {0.0, 0.0}}, + --~ selection_box = {{0, 0}, {0, 0}}, + --~ energy_source = { + --~ type = "electric", + --~ usage_priority = "solar" + --~ }, + --~ picture = { + --~ -- filename = ICONPATH .. "empty.png", + --~ filename = "__base__/graphics/icons/solar-panel.png", + --~ priority = "low", + --~ width = 1, + --~ height = 1, + --~ }, + --~ production = "10kW" + --~ }, + + + --~ ------- Solar Panel for Solar Plant / Boiler + --~ { + --~ type = "solar-panel", + --~ name = "bi-solar-boiler-hidden-panel", + --~ localised_name = {"entity-name.bi-solar-boiler"}, + --~ localised_description = {"entity-description.bi-solar-boiler"}, + --~ icon = ICONPATH .. "Bio_Solar_Boiler_Panel_Icon.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "Bio_Solar_Boiler_Panel_Icon.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ flags = {"not-blueprintable", "not-deconstructable", "placeable-off-grid", "not-on-map", "not-repairable"}, + --~ max_health = 400, + --~ render_no_power_icon = true, + --~ resistances = {{type = "fire", percent = 100}}, + --~ -- collision_box = {{-4.2, -4.2}, {4.2, 4.2}}, + --~ -- selection_box = {{-1.2, -1.2}, {1.2, 1.2}}, + --~ collision_box = {{0, 0}, {0, 0}}, + --~ selection_box = {{0, 0}, {0, 0}}, +--~ collision_mask = {}, + --~ energy_source = { + --~ type = "electric", + --~ usage_priority = "solar" + --~ }, + --~ -- picture = { + --~ -- filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + --~ -- priority = "low", + --~ -- width = 288, + --~ -- height = 288, + --~ -- hr_version = { + --~ -- filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + --~ -- priority = "low", + --~ -- width = 288, + --~ -- height = 288, + --~ -- } + --~ -- }, + --~ picture = { + --~ filename = ICONPATH .. "empty.png", + --~ priority = "low", + --~ size = 1, + --~ }, + + --~ overlay = { + --~ layers = { + --~ { + --~ filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + --~ priority = "high", + --~ width = 288, + --~ height = 288, + --~ hr_version = { + --~ filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + --~ priority = "high", + --~ width = 288, + --~ height = 288, + --~ } + --~ }, + --~ } + --~ }, + --~ production = "1.8MW" + --~ }, + + + ------- Boiler for Solar Plant / Boiler + { + type = "boiler", + name = "bi-solar-boiler", + icon = ICONPATH .. "Bio_Solar_Boiler_Boiler_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Bio_Solar_Boiler_Boiler_Icon.png", + icon_size = 64, + } + }, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 1, result = "bi-solar-boiler"}, + max_health = 400, + corpse = "small-remnants", + vehicle_impact_sound = sounds.generic_impact, + mode = "output-to-separate-pipe", + resistances = { + { + type = "fire", + percent = 100 + }, + { + type = "explosion", + percent = 30 + }, + { + type = "impact", + percent = 30 + } + }, + collision_box = {{-4.2, -4.2}, {4.2, 4.2}}, + selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, + target_temperature = 235, + fluid_box = { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = { + {type = "input-output", position = {5, 0}}, + {type = "input-output", position = {-5, 0}}, + }, + production_type = "input-output", + filter = "water" + }, + output_fluid_box = { + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = { + {type = "input-output", position = {0, 5}}, + {type = "input-output", position = {0, -5}}, + }, + production_type = "output", + filter = "steam" + }, + energy_consumption = "1.799MW", + energy_source = { + type = "electric", + input_priority = "primary", + usage_priority = "primary-input", + --emissions_per_minute = 0 -- NO Emmisions + }, + working_sound = { + sound = { + filename = "__base__/sound/boiler.ogg", + volume = 0.9 + }, + max_sounds_per_type = 3 + }, + structure = { + north = { + layers = { + { + filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + priority = "high", + width = 288, + height = 288, + hr_version = { + filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + priority = "high", + width = 288, + height = 288, + } + }, + } + }, + east = { + layers = { + { + filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + priority = "high", + width = 288, + height = 288, + hr_version = { + filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + priority = "high", + width = 288, + height = 288, + } + }, + }, + }, + south = { + layers = { + { + filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + priority = "high", + width = 288, + height = 288, + hr_version = { + filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + priority = "high", + width = 288, + height = 288, + } + }, + } + }, + west = { + layers = { + { + filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + priority = "high", + width = 288, + height = 288, + hr_version = { + filename = ENTITYPATH .. "Bio_Solar_Boiler.png", + priority = "high", + width = 288, + height = 288, + } + }, + } + } + }, + fire_flicker_enabled = false, + fire = {}, + fire_glow_flicker_enabled = false, + fire_glow = { + north = { + filename = "__Bio_Industries__/graphics/entities/small-lamp/light-on-patch.png", + priority = "extra-high", + frame_count = 1, + width = 62, + height = 62, + shift = {0.09, -2.8}, + scale = 1.5, + blend_mode = "additive", + hr_version = { + filename = "__Bio_Industries__/graphics/entities/small-lamp/light-on-patch.png", + priority = "extra-high", + frame_count = 1, + width = 62, + height = 62, + shift = {0.09, -2.8}, + scale = 1.5, + blend_mode = "additive", + } + }, + east = { + filename = "__Bio_Industries__/graphics/entities/small-lamp/light-on-patch.png", + priority = "extra-high", + frame_count = 1, + width = 62, + height = 62, + shift = {0, -3}, + blend_mode = "additive", + hr_version = { + filename = "__Bio_Industries__/graphics/entities/small-lamp/light-on-patch.png", + priority = "extra-high", + frame_count = 1, + width = 62, + height = 62, + shift = {0, -3}, + blend_mode = "additive", + } + }, + south = { + filename = "__Bio_Industries__/graphics/entities/small-lamp/light-on-patch.png", + priority = "extra-high", + frame_count = 1, + width = 62, + height = 62, + shift = {0, -3}, + blend_mode = "additive", + hr_version = { + filename = "__Bio_Industries__/graphics/entities/small-lamp/light-on-patch.png", + priority = "extra-high", + frame_count = 1, + width = 62, + height = 62, + shift = {0, -3}, + blend_mode = "additive", + } + }, + west = { + filename = "__Bio_Industries__/graphics/entities/small-lamp/light-on-patch.png", + priority = "extra-high", + frame_count = 1, + width = 62, + height = 62, + shift = {0, -3}, + blend_mode = "additive", + hr_version = { + filename = "__Bio_Industries__/graphics/entities/small-lamp/light-on-patch.png", + priority = "extra-high", + frame_count = 1, + width = 62, + height = 62, + shift = {0, -3}, + blend_mode = "additive", + } + }, + }, + burning_cooldown = 20 + }, +}) + +end diff --git a/Bio_Industries_2/prototypes/Bio_Solar_Farm/item.lua b/Bio_Industries_2/prototypes/Bio_Solar_Farm/item.lua new file mode 100644 index 0000000..488eab5 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Solar_Farm/item.lua @@ -0,0 +1,114 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +if BI.Settings.BI_Solar_Additions then + + data:extend({ + -- Solar Farm + { + type = "item", + name = "bi-bio-solar-farm", + localised_name = {"entity-name.bi-bio-solar-farm"}, + localised_description = {"entity-description.bi-bio-solar-farm"}, + icon = ICONPATH .. "Bio_Solar_Farm_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Bio_Solar_Farm_Icon.png", + icon_size = 64, + } + }, + subgroup = "energy", + order = "d[solar-panel]-a[solar-panel]-a[bi-bio-solar-farm]", + place_result = "bi-bio-solar-farm", + stack_size = 10, + }, + + --- Solar Mat + { + type = "item", + name = "bi-solar-mat", + localised_name = {"entity-name.bi-solar-mat"}, + localised_description = {"entity-description.bi-solar-mat"}, + icon = ICONPATH .. "solar-mat.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "solar-mat.png", + icon_size = 64, + } + }, + subgroup = "energy", + order = "d[solar-panel]-aa[solar-panel-1-a]", + stack_size = 400, + place_as_tile = { + result = "bi-solar-mat", + condition_size = 4, + condition = { "water-tile" } + } + }, + + + --- BI Accumulator + { + type = "item", + name = "bi-bio-accumulator", + localised_name = {"entity-name.bi-bio-accumulator"}, + localised_description = {"entity-description.bi-bio-accumulator"}, + icon = ICONPATH .. "bi_LargeAccumulator.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_LargeAccumulator.png", + icon_size = 64, + } + }, + subgroup = "energy", + order = "e[accumulator]-a[bi-accumulator]", + place_result = "bi-bio-accumulator", + stack_size = 5 + }, + + + --- Large Substation + { + type = "item", + name = "bi-large-substation", + localised_name = {"entity-name.bi-large-substation"}, + localised_description = {"entity-description.bi-large-substation"}, + icon = ICONPATH .. "bi_LargeSubstation_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_LargeSubstation_icon.png", + icon_size = 64, + } + }, + subgroup = "energy-pipe-distribution", + order = "a[energy]-d[substation]-b[large-substation]", + place_result = "bi-large-substation", + stack_size = 10 + }, + + ----- Solar Boiler - Boiler + { + type = "item", + name = "bi-solar-boiler", + localised_name = {"entity-name.bi-solar-boiler"}, + localised_description = {"entity-description.bi-solar-boiler"}, + icon = ICONPATH .. "Bio_Solar_Boiler_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Bio_Solar_Boiler_Icon.png", + icon_size = 64, + } + }, + subgroup = "energy", + order = "b[steam-power]-c[steam-engine]", + place_result = "bi-solar-boiler", + stack_size = 20, + }, + }) +end diff --git a/Bio_Industries_2/prototypes/Bio_Solar_Farm/recipe.lua b/Bio_Industries_2/prototypes/Bio_Solar_Farm/recipe.lua new file mode 100644 index 0000000..ba73178 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Solar_Farm/recipe.lua @@ -0,0 +1,178 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +if BI.Settings.BI_Solar_Additions then + + data:extend({ + + --- Bio Solar Farm + { + type = "recipe", + name = "bi-bio-solar-farm", + localised_name = {"entity-name.bi-bio-solar-farm"}, + localised_description = {"entity-description.bi-bio-solar-farm"}, + icon = ICONPATH .. "Bio_Solar_Farm_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Bio_Solar_Farm_Icon.png", + icon_size = 64, + } + }, + enabled = false, + energy_required = 60, + ingredients = { + {"solar-panel", 50}, + {"medium-electric-pole", 25}, + {"concrete", 400}, + }, + result = "bi-bio-solar-farm", + main_product = "", + --~ subgroup = "bio-bio-solar-entity", + --~ order = "a[bi]", + subgroup = "energy", + order = "d[solar-panel]-a[solar-panel]-a[bi-bio-solar-farm]", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + -- solar boiler + { + type = "recipe", + name = "bi-solar-boiler-hidden-panel", + --~ name = "bi-solar-boiler", + localised_name = {"entity-name.bi-solar-boiler"}, + localised_description = {"entity-description.bi-solar-boiler"}, + icon = ICONPATH .. "Bio_Solar_Boiler_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Bio_Solar_Boiler_Icon.png", + icon_size = 64, + } + }, + enabled = false, + energy_required = 15, + ingredients = { + {"solar-panel", 30}, + {"storage-tank", 4}, + {"boiler", 1}, + }, + result = "bi-solar-boiler", + main_product = "", + subgroup = "energy", + order = "b[steam-power]-c[steam-engine]", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + -- solar mat + { + type = "recipe", + name = "bi-solar-mat", + localised_name = {"entity-name.bi-solar-mat"}, + localised_description = {"entity-description.bi-solar-mat"}, + icon = ICONPATH .. "solar-mat.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "solar-mat.png", + icon_size = 64, + } + }, + enabled = false, + energy_required = 5, + ingredients = { + {"steel-plate", 1}, + {"advanced-circuit", 3}, + {"copper-cable", 4} + }, + result = "bi-solar-mat", + main_product = "", + --~ subgroup = "bio-bio-solar-entity", + --~ order = "c[bi]", + subgroup = "energy", + order = "d[solar-panel]-aa[solar-panel-1-a]", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + --- BI Accumulator + { + type = "recipe", + name = "bi-bio-accumulator", + localised_name = {"entity-name.bi-bio-accumulator"}, + localised_description = {"entity-description.bi-bio-accumulator"}, + icon = ICONPATH .. "bi_LargeAccumulator.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_LargeAccumulator.png", + icon_size = 64, + } + }, + energy_required = 60, + enabled = false, + ingredients = { + {"accumulator", 50}, + {"copper-cable", 50}, + {"concrete", 200}, + }, + result = "bi-bio-accumulator", + main_product = "", + --~ subgroup = "bio-bio-solar-entity", + --~ order = "d[bi]", + subgroup = "energy", + order = "e[accumulator]-a[bi-accumulator]", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + -- Large Substation + { + type = "recipe", + --~ name = "bi-huge-substation", + name = "bi-large-substation", + localised_name = {"entity-name.bi-large-substation"}, + localised_description = {"entity-description.bi-large-substation"}, + icon = ICONPATH .. "bi_LargeSubstation_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_LargeSubstation_icon.png", + icon_size = 64, + } + }, + enabled = false, + ingredients = { + {"steel-plate", 10}, + {"concrete", 200}, + {"substation", 4} + }, + result = "bi-large-substation", + main_product = "", + --~ subgroup = "bio-bio-solar-entity", + --~ order = "e[bi]", + subgroup = "energy-pipe-distribution", + order = "a[energy]-d[substation]-b[large-substation]", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + }) +end diff --git a/Bio_Industries_2/prototypes/Bio_Solar_Farm/tmp_bio-farm-panel.lua b/Bio_Industries_2/prototypes/Bio_Solar_Farm/tmp_bio-farm-panel.lua new file mode 100644 index 0000000..e479dc4 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Solar_Farm/tmp_bio-farm-panel.lua @@ -0,0 +1,36 @@ + ------- Bio Farm Solar Panel + { + type = "solar-panel", + name = "bi-bio-solar-farm", + icon = ICONPATH .. "Bio_Solar_Farm_Icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "Bio_Solar_Farm_Icon.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.25, mining_time = 0.5, result = "bi-bio-solar-farm"}, + max_health = 600, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + resistances = {{type = "fire", percent = 80}}, + collision_box = {{-4.2, -4.2}, {4.2, 4.2}}, + selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, + energy_source = { + type = "electric", + usage_priority = "solar" + }, + picture = { + filename = ENTITYPATH .. "Bio_Solar_Farm_On.png", + priority = "low", + width = 312, + height = 289, + frame_count = 1, + direction_count = 1, + --scale = 3/2, + shift = {0.30, 0} + }, + production = "3600kW" + }, diff --git a/Bio_Industries_2/prototypes/Bio_Solar_Farm/tmp_solar-mat-panel.lua b/Bio_Industries_2/prototypes/Bio_Solar_Farm/tmp_solar-mat-panel.lua new file mode 100644 index 0000000..ac69a28 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Solar_Farm/tmp_solar-mat-panel.lua @@ -0,0 +1,31 @@ + ------- Hidden Solar Panel for Solar Mat + { + type = "solar-panel", + name = "bi-musk-mat-hidden-panel", + icon = ICONPATH .. "solar-mat.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "solar-mat.png", + icon_size = 64, + } + }, + flags = {"not-blueprintable", "not-deconstructable", "placeable-off-grid", "not-on-map", "not-repairable"}, + selectable_in_game = false, + max_health = 1, + resistances = {{type = "fire", percent = 100}}, + collision_mask = {"ground-tile"}, + collision_box = {{-0.0, -0.0}, {0.0, 0.0}}, + selection_box = {{0, 0}, {0, 0}}, + energy_source = { + type = "electric", + usage_priority = "solar" + }, + picture = { + filename = ICONPATH .. "empty.png", + priority = "low", + width = 1, + height = 1, + }, + production = "10kW" + }, diff --git a/Bio_Industries_2/prototypes/Bio_Turret/damage-type.lua b/Bio_Industries_2/prototypes/Bio_Turret/damage-type.lua new file mode 100644 index 0000000..1f66075 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Turret/damage-type.lua @@ -0,0 +1,10 @@ +data:extend({ + +--- Damage for Dart Turret Ammo + + { + type = "damage-type", + name = "bob-pierce" + }, + +}) diff --git a/Bio_Industries_2/prototypes/Bio_Turret/entity.lua b/Bio_Industries_2/prototypes/Bio_Turret/entity.lua new file mode 100644 index 0000000..c2b14c9 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Turret/entity.lua @@ -0,0 +1,329 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +-- demo-sounds has been removed in Factorio 1.1, so we need to check the game version! +local sound_def = BioInd.check_version("base", "<", "1.1.0") and + require("__base__.prototypes.entity.demo-sounds") or + require("__base__.prototypes.entity.sounds") +local sounds = {} +sounds.car_wood_impact = sound_def.car_wood_impact(0.8) +sounds.generic_impact = sound_def.generic_impact +for _, sound in ipairs(sounds.generic_impact) do + sound.volume = 0.65 +end + +data:extend({ + --- Basic Dart + { + type = "ammo", + name = "bi-dart-magazine-basic", + icon = ICONPATH .. "basic_dart_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "basic_dart_icon.png", + icon_size = 64, + } + }, + ammo_type = { + category = "Bio_Turret_Ammo", + action = { + type = "direct", + action_delivery = { + type = "instant", + source_effects = { + type = "create-explosion", + entity_name = "explosion-gunshot", + }, + target_effects = { + { + type = "create-entity", + entity_name = "explosion-hit" + }, + { + type = "damage", + damage = { amount = 3 , type = "physical"} + }, + } + } + } + }, + magazine_size = 10, + subgroup = "ammo", + order = "[aaa]-a[basic-clips]-aa[firearm-magazine]", + stack_size = 400 + }, + + --- Standard Dart + { + type = "ammo", + name = "bi-dart-magazine-standard", + icon = ICONPATH .. "standard_dart_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "standard_dart_icon.png", + icon_size = 64, + } + }, + ammo_type = { + category = "Bio_Turret_Ammo", + action = { + type = "direct", + action_delivery = { + type = "instant", + source_effects = { + type = "create-explosion", + entity_name = "explosion-gunshot", + }, + target_effects = { + { + type = "create-entity", + entity_name = "explosion-hit" + }, + { + type = "damage", + damage = { amount = 3 , type = "physical"} + }, + { + type = "damage", + damage = { amount = 2 , type = "bob-pierce"} + }, + } + } + } + }, + magazine_size = 10, + subgroup = "ammo", + order = "[aab]-a[basic-clips]-ab[firearm-magazine]", + stack_size = 400 + }, + + + --- Enhanced Dart + { + type = "ammo", + name = "bi-dart-magazine-enhanced", + icon = ICONPATH .. "enhanced_dart_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "enhanced_dart_icon.png", + icon_size = 64, + } + }, + ammo_type = { + category = "Bio_Turret_Ammo", + action = { + type = "direct", + action_delivery = { + type = "instant", + source_effects = { + type = "create-explosion", + entity_name = "explosion-gunshot", + }, + target_effects = { + { + type = "create-entity", + entity_name = "explosion-hit" + }, + { + type = "damage", + damage = { amount = 3 , type = "physical"} + }, + { + type = "damage", + damage = { amount = 2 , type = "bob-pierce"} + }, + { + type = "damage", + damage = { amount = 2 , type = "acid"} + }, + } + } + } + }, + magazine_size = 10, + subgroup = "ammo", + order = "[aac]-a[basic-clips]-ac[firearm-magazine]", + stack_size = 400 + }, + + + --- Poison Dart + { + type = "ammo", + name = "bi-dart-magazine-poison", + icon = ICONPATH .. "poison_dart_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "poison_dart_icon.png", + icon_size = 64, + } + }, + ammo_type = { + category = "Bio_Turret_Ammo", + action = { + type = "direct", + action_delivery = { + type = "instant", + source_effects = { + type = "create-explosion", + entity_name = "explosion-gunshot", + }, + target_effects = { + { + type = "create-entity", + entity_name = "explosion-hit" + }, + { + type = "damage", + damage = { amount = 3 , type = "physical"} + }, + { + type = "damage", + damage = { amount = 2 , type = "bob-pierce"} + }, + { + type = "damage", + damage = { amount = 2 , type = "acid"} + }, + { + type = "damage", + damage = { amount = 2 , type = "poison"} + }, + } + } + } + }, + magazine_size = 10, + subgroup = "ammo", + order = "[aad]-a[basic-clips]-ad[firearm-magazine]", + stack_size = 400 + }, + +}) + + + + +function turret_pic(inputs) +return +{ + layers = { + { + filename = "__Bio_Industries__/graphics/entities/bio_turret/bio_turret.png", + priority = "medium", + scale = 0.5, + width = 224, + height = 160, + direction_count = inputs.direction_count and inputs.direction_count or 64, + frame_count = 1, + line_length = inputs.line_length and inputs.line_length or 8, + axially_symmetrical = false, + run_mode = inputs.run_mode and inputs.run_mode or "forward", + shift = { 0.25, -0.25 }, + } + } +} +end + + +--- Dart Turret +data:extend({ + { + type = "ammo-turret", + name = "bi-dart-turret", + icon = ICONPATH .. "bio_turret_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_turret_icon.png", + icon_size = 64, + } + }, + flags = {"placeable-player", "player-creation"}, + minable = {mining_time = 0.25, result = "bi-dart-turret"}, + max_health = 300, + corpse = "medium-remnants", + collision_box = {{-0.2, -0.2 }, {0.2, 0.2}}, + selection_box = {{-0.4, -0.4 }, {0.4, 0.4}}, + rotation_speed = 0.05, + preparing_speed = 0.08, + folding_speed = 0.08, + dying_explosion = "medium-explosion", + inventory_size = 1, + automated_ammo_count = 14, + attacking_speed = 1, -- makes nothing, it's animation's parameter + + folded_animation = turret_pic{direction_count = 8, line_length = 1}, + preparing_animation = turret_pic{direction_count = 8, line_length = 1}, + prepared_animation = turret_pic{}, + attacking_animation = turret_pic{}, + folding_animation = turret_pic{direction_count = 8, line_length = 1, run_mode = "backward"}, + + -- darkfrei: wood impact sound for woods! + vehicle_impact_sound = sounds.car_wood_impact, + attack_parameters = { + type = "projectile", + ammo_category = "Bio_Turret_Ammo", + cooldown = 3.6, -- cooldown = 6 -- darkfrei: means cooldown 6/60 sec or 10 shoots at second; = 60 is one shoot/sec + projectile_creation_distance = 1.41, + projectile_center = {-0.0625, 0.55}, + -- darkfrei: darts haven't shells :) +--[[ shell_particle = { + name = "shell-particle", + direction_deviation = 0.1, + speed = 0.15, + speed_deviation = 0.03, + center = {-0.0625, 0}, + creation_distance = -1.925, + starting_frame_speed = 0.2, + starting_frame_speed_deviation = 0.1 + }, ]] + range = 20, + sound = { + filename = "__Bio_Industries__/sound/dart-turret.ogg", + volume = 0.85 + }, + }, + call_for_help_radius = 40 + }, + + +}) + + +--- Dart Rifle +data:extend({ + { + type = "gun", + name = "bi-dart-rifle", + icon = ICONPATH .. "bi_dart_rifle_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_dart_rifle_icon.png", + icon_size = 64, + } + }, + subgroup = "gun", + order = "a[basic-clips]-ab[submachine-gun]", + attack_parameters = { + type = "projectile", + ammo_category = "Bio_Turret_Ammo", + cooldown = 5, + movement_slow_down_factor = 0.5, + --shell_particle = {}, + projectile_creation_distance = 1.125, + range = 17, + sound = { + filename = "__Bio_Industries__/sound/dart-turret.ogg", + volume = 0.65 + }, + }, + stack_size = 5 + }, +}) diff --git a/Bio_Industries_2/prototypes/Bio_Turret/item-group.lua b/Bio_Industries_2/prototypes/Bio_Turret/item-group.lua new file mode 100644 index 0000000..7ad24f6 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Turret/item-group.lua @@ -0,0 +1,11 @@ +--~ local BioInd = require('common')('Bio_Industries') + +--~ local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +data:extend({ + { + type = "ammo-category", + name = "Bio_Turret_Ammo", + order = "1" + }, +}) diff --git a/Bio_Industries_2/prototypes/Bio_Turret/item.lua b/Bio_Industries_2/prototypes/Bio_Turret/item.lua new file mode 100644 index 0000000..6339a29 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Turret/item.lua @@ -0,0 +1,24 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +data:extend({ + + --- Conversion Turret + { + type = "item", + name = "bi-dart-turret", + icon = ICONPATH .. "bio_turret_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_turret_icon.png", + icon_size = 64, + } + }, + subgroup = "defensive-structure", + order = "aa[turret]-a[gun-turret]", + place_result = "bi-dart-turret", + stack_size = 50 + }, +}) diff --git a/Bio_Industries_2/prototypes/Bio_Turret/recipe.lua b/Bio_Industries_2/prototypes/Bio_Turret/recipe.lua new file mode 100644 index 0000000..a353b97 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Turret/recipe.lua @@ -0,0 +1,319 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +data:extend({ + --- Basic Dart Ammo + { + type = "recipe", + name = "bi-dart-magazine-basic", + localised_name = {"item-name.bi-dart-magazine-basic"}, + localised_description = {"item-description.bi-dart-magazine-basic"}, + icon = ICONPATH .. "basic_dart_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "basic_dart_icon.png", + icon_size = 64, + } + }, + normal = { + enabled = true, + energy_required = 4, + ingredients = { + {"wood", 10}, + }, + result = "bi-dart-magazine-basic", + result_count = 10, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = true, + energy_required = 6, + ingredients = { + {"wood", 10}, + }, + result = "bi-dart-magazine-basic", + result_count = 8, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "bi-ammo", + order = "[bio-ammo]-a-[darts]-1", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + --- Standard Dart Ammo + { + type = "recipe", + name = "bi-dart-magazine-standard", + localised_name = {"item-name.bi-dart-magazine-standard"}, + localised_description = {"item-description.bi-dart-magazine-standard"}, + icon = ICONPATH .. "standard_dart_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "standard_dart_icon.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + energy_required = 5, + ingredients = { + {"bi-dart-magazine-basic", 10}, + {"copper-plate", 5}, + }, + result = "bi-dart-magazine-standard", + result_count = 10, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 8, + ingredients = { + {"bi-dart-magazine-basic", 8}, + {"copper-plate", 5}, + }, + result = "bi-dart-magazine-standard", + result_count = 8, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "bi-ammo", + order = "[bio-ammo]-a-[darts]-2", + }, + + --- Enhanced Dart Ammo + { + type = "recipe", + name = "bi-dart-magazine-enhanced", + localised_name = {"item-name.bi-dart-magazine-enhanced"}, + localised_description = {"item-description.bi-dart-magazine-enhanced"}, + icon = ICONPATH .. "enhanced_dart_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "enhanced_dart_icon.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + energy_required = 6, + ingredients = { + {"bi-dart-magazine-standard", 10}, + {"plastic-bar", 5}, + }, + result = "bi-dart-magazine-enhanced", + result_count = 10, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 9, + ingredients = { + {"bi-dart-magazine-standard", 8}, + {"plastic-bar", 5}, + }, + result = "bi-dart-magazine-enhanced", + result_count = 8, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "bi-ammo", + order = "[bio-ammo]-a-[darts]-3", + }, + + --- Poison Dart Ammo + { + type = "recipe", + name = "bi-dart-magazine-poison", + localised_name = {"item-name.bi-dart-magazine-poison"}, + localised_description = {"item-description.bi-dart-magazine-poison"}, + icon = ICONPATH .. "poison_dart_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "poison_dart_icon.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + energy_required = 8, + ingredients = { + {"bi-dart-magazine-enhanced", 10}, + {"poison-capsule", 5}, + }, + result = "bi-dart-magazine-poison", + result_count = 10, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + energy_required = 12, + ingredients = { + {"bi-dart-magazine-enhanced", 8}, + {"poison-capsule", 5}, + }, + result = "bi-dart-magazine-poison", + result_count = 8, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "bi-ammo", + order = "[bio-ammo]-a-[darts]-4", + }, + + --- Dart Turret + { + type = "recipe", + name = "bi-dart-turret", + localised_name = {"entity-name.bi-dart-turret"}, + localised_description = {"entity-description.bi-dart-turret"}, + icon = ICONPATH .. "bio_turret_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bio_turret_icon.png", + icon_size = 64, + } + }, + normal = { + enabled = true, + energy_required = 8, + ingredients = { + {"iron-gear-wheel", 5}, + {"wood", 20}, + }, + result = "bi-dart-turret", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = true, + energy_required = 16, + ingredients = { + {"iron-gear-wheel", 10}, + {"wood", 25}, + }, + result = "bi-dart-turret", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "defensive-structure", + order = "b[turret]-e[bi-dart-turret]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + --- Dart Rifle + { + type = "recipe", + name = "bi-dart-rifle", + localised_name = {"item-name.bi-dart-rifle"}, + localised_description = {"item-description.bi-dart-rifle"}, + icon = ICONPATH .. "bi_dart_rifle_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "bi_dart_rifle_icon.png", + icon_size = 64, + } + }, + normal = { + enabled = true, + energy_required = 8, + ingredients = { + {"copper-plate", 5}, + {"wood", 15}, + }, + result = "bi-dart-rifle", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = true, + energy_required = 16, + ingredients = { + {"copper-plate", 10}, + {"wood", 25}, + }, + result = "bi-dart-rifle", + result_count = 1, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "gun", + --~ order = "[bi-dart-rifle]" + order = "a[basic-clips]-b[bi-dart-rifle]" + }, + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", +}) diff --git a/Bio_Industries_2/prototypes/Bio_Turret/technology-updates.lua b/Bio_Industries_2/prototypes/Bio_Turret/technology-updates.lua new file mode 100644 index 0000000..d098594 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Turret/technology-updates.lua @@ -0,0 +1,59 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +if not mods["Natural_Evolution_Buildings"] then + -- Simplified code in 0.17.39/0.18.6 + local techs = data.raw.technology + -- Turret attack modifier + for index, modifier in pairs({ + -- Keeping indices isn't really necessary here (and in the following), but should help + -- to avoid mistakes if this file is edited in the future. + [1] = 0.1, + [2] = 0.1, + [3] = 0.2, + [4] = 0.2, + [5] = 0.2, + [6] = 0.4, + [7] = 0.7, + }) do + table.insert(techs["physical-projectile-damage-" .. tostring(index)].effects, { + type = "turret-attack", + turret_id = "bi-dart-turret", + modifier = modifier + }) + end + + -- Shooting speed modifier + for index, modifier in pairs({ + [1] = 0.1, + [2] = 0.2, + [3] = 0.2, + [4] = 0.2, + [5] = 0.2, + [6] = 0.4, + }) do + table.insert(techs["weapon-shooting-speed-" .. tostring(index)].effects, { + type = "gun-speed", + ammo_category = "Bio_Turret_Ammo", + modifier = modifier + }) + end + + -- Ammo damage modifier + for index, modifier in pairs({ + [1] = 0.1, + [2] = 0.1, + [3] = 0.2, + [4] = 0.2, + [5] = 0.2, + [6] = 0.4, + [7] = 0.4, + }) do + table.insert(techs["physical-projectile-damage-" .. tostring(index)].effects, { + type = "ammo-damage", + ammo_category = "Bio_Turret_Ammo", + modifier = modifier + }) + end +end diff --git a/Bio_Industries_2/prototypes/Bio_Tweaks/recipe.lua b/Bio_Industries_2/prototypes/Bio_Tweaks/recipe.lua new file mode 100644 index 0000000..662f7e2 --- /dev/null +++ b/Bio_Industries_2/prototypes/Bio_Tweaks/recipe.lua @@ -0,0 +1,198 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +log("BI.Settings.BI_Game_Tweaks_Disassemble: " .. tostring(BI.Settings.BI_Game_Tweaks_Disassemble)) + +if BI.Settings.BI_Game_Tweaks_Disassemble then +log("Enabling disassemble recipes!") + --- Bio Tweaks + data:extend({ + -- Item subgroup + { + type = "item-subgroup", + name = "bio-disassemble", + group = "bio-industries", + order = "zzzz", + }, + + -- Recipes + { + type = "recipe", + name = "bi-burner-mining-drill-disassemble", + localised_description = {"recipe-description.bi-disassemble-recipes"}, + icon = ICONPATH .. "burner-mining-drill_disassemble.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "burner-mining-drill_disassemble.png", + icon_size = 64, + } + }, + category = "advanced-crafting", + subgroup = "bio-disassemble", + order = "a[Disassemble]-a[bi-burner-mining-drill-disassemble]", + enabled = false, + allow_as_intermediate = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 2, + ingredients = { + {type = "item", name = "burner-mining-drill", amount = 1}, + }, + results = { + {"stone", 4}, + {"iron-plate", 4} + }, + main_product = "", + }, + + { + type = "recipe", + name = "bi-burner-inserter-disassemble", + localised_description = {"recipe-description.bi-disassemble-recipes"}, + icon = ICONPATH .. "burner_inserter_disassemble.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "burner_inserter_disassemble.png", + icon_size = 64, + } + }, + category = "advanced-crafting", + subgroup = "bio-disassemble", + order = "a[Disassemble]-b[bi-burner-inserter-disassemble]", + enabled = false, + allow_as_intermediate = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 2, + ingredients = { + {type = "item", name = "burner-inserter", amount = 1}, + }, + results = { + {"iron-plate", 2}, + }, + main_product = "", + }, + + { + type = "recipe", + name = "bi-long-handed-inserter-disassemble", + localised_description = {"recipe-description.bi-disassemble-recipes"}, + icon = ICONPATH .. "long_handed_inserter_disassemble.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "long_handed_inserter_disassemble.png", + icon_size = 64, + } + }, + category = "advanced-crafting", + subgroup = "bio-disassemble", + order = "a[Disassemble]-c[bi-long-handed-inserter-disassemble]", + enabled = false, + allow_as_intermediate = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 2, + ingredients = { + {type = "item", name = "long-handed-inserter", amount = 1}, + }, + results = { + {"iron-gear-wheel", 1}, + {"iron-plate", 1}, + {"electronic-circuit", 1}, + }, + main_product = "", + }, + + { + type = "recipe", + name = "bi-stone-furnace-disassemble", + localised_description = {"recipe-description.bi-disassemble-recipes"}, + icon = ICONPATH .. "stone_furnace_disassemble.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "stone_furnace_disassemble.png", + icon_size = 64, + } + }, + category = "advanced-crafting", + subgroup = "bio-disassemble", + order = "a[Disassemble]-d[bi-stone-furnace-disassemble]", + enabled = false, + allow_as_intermediate = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 2, + ingredients = { + {type = "item", name = "stone-furnace", amount = 1}, + }, + results = { + {"stone", 3}, + }, + main_product = "", + }, + + { + type = "recipe", + name = "bi-steel-furnace-disassemble", + localised_description = {"recipe-description.bi-disassemble-recipes"}, + icon = ICONPATH .. "steel-furnace_disassemble.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "steel-furnace_disassemble.png", + icon_size = 64, + } + }, + category = "advanced-crafting", + subgroup = "bio-disassemble", + order = "a[Disassemble]-e[bi-steel-furnace-disassemble]", + enabled = false, + allow_as_intermediate = false, + always_show_made_in = true, + allow_decomposition = false, + energy_required = 2, + ingredients = { + {type = "item", name = "steel-furnace", amount = 1}, + }, + results = { + {"steel-plate", 4}, + {"stone-brick", 4} + }, + main_product = "", + }, + }) +end + + +-- Add alternative Production Science Pack using Wooden rails instead of regular rails. +-- This will only be created if "Krastorio 2" IS NOT active (new recipe would break the +-- balance then) and if the setting for the recipe IS enabled. +local KRAS = (mods["Krastorio2"] or mods["Krastorio"]) and true or false +local SET = settings.startup["BI_Game_Tweaks_Production_Science"].value +if SET and not KRAS then + data:extend({ + { + type = "recipe", + name = "bi-production-science-pack", + enabled = false, + energy_required = 21, + ingredients = { + {"electric-furnace", 1}, + {"productivity-module", 1}, + {"bi-rail-wood", 40} + }, + result_count = 3, + result = "production-science-pack" + }, + }) + --~ BI_Functions.lib.allow_productivity("bi-production-science-pack") + --~ thxbob.lib.tech.add_recipe_unlock("production-science-pack", "bi-production-science-pack") + BioInd.writeDebug("Added alternative recipe for Production science packs.") +else + BioInd.writeDebug("Didn't add alternative recipe for Production science packs! (\"Krastorio\": %s\tSetting: %s", {(KRAS and "active" or "not active"), (SET and "enabled" or "disabled")}) +end diff --git a/Bio_Industries_2/prototypes/Industrial_Revolution.lua b/Bio_Industries_2/prototypes/Industrial_Revolution.lua new file mode 100644 index 0000000..dd26b2c --- /dev/null +++ b/Bio_Industries_2/prototypes/Industrial_Revolution.lua @@ -0,0 +1,114 @@ +local BioInd = require('common')('Bio_Industries') + +if mods["IndustrialRevolution"] then + ------------------------------------------------------------------------------------ + -- Our large wooden poles are unlocked by the "Logistics" research and require small + -- electric poles, which are unlocked by IR2 after the Iron Age has been reached. So, + -- if IR2 is active, we won't unlock our poles and use IR2's large wooden poles for + -- our huge poles instead. + ------------------------------------------------------------------------------------ + local big_pole = "bi-wooden-pole-big" + thxbob.lib.tech.remove_recipe_unlock ("logistics", big_pole) + thxbob.lib.tech.add_recipe_unlock ("electric-energy-distribution-1", big_pole) + --~ thxbob.lib.tech.add_recipe_unlock ("electric-energy-distribution-2", "bi-wooden-pole-huge") + + -- Adjust localizations + for k, v in ipairs({"electric-pole", "item", "recipe"}) do +BioInd.show("Changing localization for", v) + data.raw[v][big_pole].localised_name = {"entity-name.bi-wooden-pole-bigger"} + data.raw[v][big_pole].localised_description = {"entity-description.bi-wooden-pole-bigger"} + end + + ------------------------------------------------------------------------------------ + -- IR2 disables the "solar-energy" technology, so our Solar boiler, Solar farm, and + -- Musk floor will never be unlocked. Move the unlocks to IR2's technologies! + ------------------------------------------------------------------------------------ + thxbob.lib.tech.add_recipe_unlock ("ir2-solar-energy-1", "bi-solar-boiler-hidden-panel") + thxbob.lib.tech.add_recipe_unlock ("ir2-solar-energy-2", "bi-bio-solar-farm") + thxbob.lib.tech.add_recipe_unlock ("ir2-solar-energy-2", "bi-solar-mat") + + ------------------------------------------------------------------------------------ + -- Put recipe for Bio stone bricks in the same subgroup as concrete! + ------------------------------------------------------------------------------------ + data.raw.recipe["bi-stone-brick"].subgroup = "ir2-tiles" + + ------------------------------------------------------------------------------------ + -- Replace "crushed stone" with "gravel"! + ------------------------------------------------------------------------------------ + local i_old = "stone-crushed" + local i_new = "gravel" + local replaced, check, add + + for recipe_name, recipe in pairs(data.raw.recipe) do + -- Ingredients + replaced = thxbob.lib.recipe.replace_ingredient(recipe_name, i_old, i_new) +BioInd.writeDebug("Replaced ingredient %s with %s in recipe %s: %s", {i_old, i_new, recipe_name, replaced}) + + -- Results + for t, tab in ipairs({"", "normal", "expensive"}) do +--~ BioInd.show("tab", tab) + check = (tab == "") and recipe or recipe[tab] + thxbob.lib.result_check(check) -- Make sure we have results! +BioInd.writeDebug("Recipe%s: %s", {tab == "" and "" or " for difficulty " .. tab, check or "nil"}) +--~ BioInd.show("check", check) + for r, result in ipairs(check and check.results or {}) do +--~ BioInd.show("result", result) + if result.name == i_old then +--~ BioInd.show("Must replace", result.name) + -- Store the properties of the original result + add = { + type = result.type, + name = i_new, + amount = result.amount + } +--~ BioInd.show("Must add", add) + thxbob.lib.recipe.remove_result(recipe_name, i_old) +--~ BioInd.show("Removed results", recipe) + thxbob.lib.item.add(check.results, add) +BioInd.writeDebug("Exchanged %s in %sresults of %s with %s:\t%s", + {i_old, tab == "" and tab or " " .. tab .. " ", recipe_name, i_new, recipe}) + else +BioInd.show("Skipping", result.name) + end + end + + -- Don't forget to change main_product as well! + if check and check.main_product and check.main_product == i_old then + check.main_product = i_new +BioInd.writeDebug("Exchanged %s in main_product%s of %s with %s:\t%s", + {i_old, tab == "" and tab or " (" .. tab .. ")", recipe_name, i_new, recipe}) + end + end + end + + -- Add recipe unlocks + local crushing = { + ["bi-crushed-stone-1"] = "grinding-1", + ["bi-crushed-stone-2"] = "grinding-2", + ["bi-crushed-stone-3"] = "grinding-2", + ["bi-crushed-stone-4"] = "grinding-3", + ["bi-crushed-stone-5"] = "grinding-3", + } + local r + for recipe, category in pairs(crushing) do + r = data.raw.recipe[recipe] + r.category = category + r.localised_name = {"recipe-name." .. recipe .. "_IR"} + if recipe == "bi-crushed-stone-1" then + r.localised_description = {"recipe-description.bi-crushed-stone-1_IR"} + else + r.localised_description = {"recipe-description.bi-crushed-stone_IR"} + end + thxbob.lib.tech.add_recipe_unlock("ir2-" .. category, recipe) + end + + -- Our stone crusher should be able to craft the recipes that can be made by + -- IR2's Copper crusher ("grinding-1") and Electric crusher ("grinding-2")! + local crusher = data.raw.furnace["bi-stone-crusher"] + if crusher then + table.insert(crusher.crafting_categories, "grinding-1") + table.insert(crusher.crafting_categories, "grinding-2") + table.insert(crusher.crafting_categories, "powdering-1") + table.insert(crusher.crafting_categories, "powdering-2") + end +end diff --git a/Bio_Industries_2/prototypes/Wood_Products/containers-entities.lua b/Bio_Industries_2/prototypes/Wood_Products/containers-entities.lua new file mode 100644 index 0000000..f6c9cdb --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/containers-entities.lua @@ -0,0 +1,181 @@ +if not BI.Settings.BI_Bigger_Wooden_Chests then + return +end + +local BioInd = require('common')('Bio_Industries') + + +BioInd.writeDebug("Creating bigger wooden chests!") + + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" +local WOODPATH = BioInd.modRoot .. "/graphics/entities/wood_products/" + +local ENTITYPATH = "__base__/graphics/entity/" +local PIPEPATH = ENTITYPATH .. "pipe/" + +local SNDPATH = "__base__/sound/" +--~ local BIGICONS = BioInd.check_base_version("0.18.0") + + +require("prototypes.Wood_Products.demo-remnants-wood") + +-- demo-sounds has been removed in Factorio 1.1, so we need to check the game version! +local sound_def = BioInd.check_version("base", "<", "1.1.0") and + require("__base__.prototypes.entity.demo-sounds") or + require("__base__.prototypes.entity.sounds") +local sounds = {} +sounds.car_wood_impact = sound_def.car_wood_impact(0.8) +sounds.generic_impact = sound_def.generic_impact +for _, sound in ipairs(sounds.generic_impact) do + sound.volume = 0.65 +end +sounds.open_sound = { filename = "__base__/sound/wooden-chest-open.ogg" } +sounds.close_sound = { filename = SNDPATH .. "wooden-chest-close.ogg" } + +sounds.walking_sound = {} +for i = 1, 11 do + sounds.walking_sound[i] = { + filename = SNDPATH .. "walking/concrete-" .. (i < 10 and "0" or "") .. i ..".ogg", + volume = 1.2 + } +end + + +------------------------------------------------------------------------------------ +-- Rename the vanill wooden chest! -- +------------------------------------------------------------------------------------ +data.raw.container["wooden-chest"].localised_name = {"entity-name.bi-wooden-chest"} + + +------------------------------------------------------------------------------------ +-- Create the bigger wooden chests! -- +------------------------------------------------------------------------------------ + +------- Large Wooden Chest +data:extend({ + { + type = "container", + name = "bi-wooden-chest-large", + icon = ICONPATH .. "large_wooden_chest_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "large_wooden_chest_icon.png", + icon_size = 64, + } + }, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 1, result = "bi-wooden-chest-large"}, + max_health = 200, + corpse = "small-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1.0, -1.0}, {1.0, 1.0}}, + fast_replaceable_group = "container", + inventory_size = 128, -- 64 + open_sound = { filename = "__base__/sound/wooden-chest-open.ogg" }, + close_sound = { filename = "__base__/sound/wooden-chest-close.ogg" }, + --~ vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, + vehicle_impact_sound = sounds.car_wood_impact, + picture = { + filename = WOODPATH .. "large_wooden_chest.png", + priority = "extra-high", + width = 184, + height = 132, + shift = {0.5, 0}, + scale = 0.5, + }, + circuit_wire_connection_point = circuit_connector_definitions["chest"].points, + circuit_connector_sprites = circuit_connector_definitions["chest"].sprites, + circuit_wire_max_distance = default_circuit_wire_max_distance + }, +}) + +------- Huge Wooden Chest +data:extend({ + { + type = "container", + name = "bi-wooden-chest-huge", + icon = ICONPATH .. "huge_wooden_chest_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "huge_wooden_chest_icon.png", + icon_size = 64, + } + }, + scale_info_icons = true, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 1.5, result = "bi-wooden-chest-huge"}, + max_health = 350, + corpse = "small-remnants", + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + fast_replaceable_group = "container", + inventory_size = 432, --144 + open_sound = { filename = "__base__/sound/wooden-chest-open.ogg" }, + close_sound = { filename = "__base__/sound/wooden-chest-close.ogg" }, + --~ vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, + vehicle_impact_sound = sounds.car_wood_impact, + picture = { + filename = WOODPATH .. "huge_wooden_chest.png", + priority = "extra-high", + width = 184, + height = 132, + shift = {0.5, 0}, + scale = 0.75, + }, + circuit_wire_connection_point = circuit_connector_definitions["chest"].points, + circuit_connector_sprites = circuit_connector_definitions["chest"].sprites, + circuit_wire_max_distance = default_circuit_wire_max_distance + }, +}) + +------- Giga Wooden Chest +data:extend({ + { + type = "container", + name = "bi-wooden-chest-giga", + icon = ICONPATH .. "giga_wooden_chest_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "giga_wooden_chest_icon.png", + icon_size = 64, + } + }, + scale_info_icons = true, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 3.5, result = "bi-wooden-chest-giga"}, + max_health = 350, + corpse = "big-remnants", + collision_box = {{-2.8, -2.8}, {2.8, 2.8}}, + selection_box = {{-3, -3}, {3, 3}}, + fast_replaceable_group = "container", + inventory_size = 1728, --576 + open_sound = { filename = "__base__/sound/wooden-chest-open.ogg" }, + close_sound = { filename = "__base__/sound/wooden-chest-close.ogg" }, + --~ vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, + vehicle_impact_sound = sounds.car_wood_impact, + picture = { + filename = WOODPATH .. "giga_wooden_chest.png", + priority = "extra-high", + width = 501, + height = 366, + shift = {0.88, -0.170}, + scale = 0.5, + }, + circuit_wire_connection_point = circuit_connector_definitions["chest"].points, + circuit_connector_sprites = circuit_connector_definitions["chest"].sprites, + circuit_wire_max_distance = default_circuit_wire_max_distance + }, +}) diff --git a/Bio_Industries_2/prototypes/Wood_Products/containers-item.lua b/Bio_Industries_2/prototypes/Wood_Products/containers-item.lua new file mode 100644 index 0000000..f58e2d0 --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/containers-item.lua @@ -0,0 +1,77 @@ +if not BI.Settings.BI_Bigger_Wooden_Chests then + return +end + +local BioInd = require('common')('Bio_Industries') +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + + +BioInd.writeDebug("Creating items for bigger wooden chests!") + +data:extend({ + --- Large wooden chest 2 x 2 + { + type = "item", + name = "bi-wooden-chest-large", + localised_name = {"entity-name.bi-wooden-chest-large"}, + localised_description = {"entity-description.bi-wooden-chest-large"}, + icon = ICONPATH .. "large_wooden_chest_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "large_wooden_chest_icon.png", + icon_size = 64, + } + }, + fuel_category = "chemical", + fuel_value = "32MJ", + subgroup = "storage", + order = "a[items]-aa[wooden-chest]", + place_result = "bi-wooden-chest-large", + stack_size = 48 + }, + + --- Huge wooden chest 3 x 3 + { + type = "item", + name = "bi-wooden-chest-huge", + localised_name = {"entity-name.bi-wooden-chest-huge"}, + localised_description = {"entity-description.bi-wooden-chest-huge"}, + icon = ICONPATH .. "huge_wooden_chest_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "huge_wooden_chest_icon.png", + icon_size = 64, + } + }, + fuel_category = "chemical", + fuel_value = "200MJ", + subgroup = "storage", + order = "a[items]-ab[wooden-chest]", + place_result = "bi-wooden-chest-huge", + stack_size = 32 + }, + + --- Giga wooden chest 6 x 6 + { + type = "item", + name = "bi-wooden-chest-giga", + localised_name = {"entity-name.bi-wooden-chest-giga"}, + localised_description = {"entity-description.bi-wooden-chest-giga"}, + icon = ICONPATH .. "giga_wooden_chest_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "giga_wooden_chest_icon.png", + icon_size = 64, + } + }, + fuel_category = "chemical", + fuel_value = "400MJ", + subgroup = "storage", + order = "a[items]-ac[wooden-chest]", + place_result = "bi-wooden-chest-giga", + stack_size = 16 + }, +}) diff --git a/Bio_Industries_2/prototypes/Wood_Products/containers-recipe.lua b/Bio_Industries_2/prototypes/Wood_Products/containers-recipe.lua new file mode 100644 index 0000000..701feb1 --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/containers-recipe.lua @@ -0,0 +1,176 @@ +if not BI.Settings.BI_Bigger_Wooden_Chests then + return +end + +local BioInd = require('common')('Bio_Industries') +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + + +BioInd.writeDebug("Creating recipes for bigger wooden chests!") +data:extend({ + --- Large Wooden Chest + { + type = "recipe", + name = "bi-wooden-chest-large", + localised_name = {"entity-name.bi-wooden-chest-large"}, + localised_description = {"entity-description.bi-wooden-chest-large"}, + icon = ICONPATH .. "large_wooden_chest_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "large_wooden_chest_icon.png", + icon_size = 64, + } + }, + normal = { + energy_required = 2, + enabled = false, + ingredients = { + {"copper-plate", 16}, + {"resin", 24}, + {"wooden-chest", 8} + }, + result = "bi-wooden-chest-large", + result_count = 1, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + energy_required = 4, + enabled = false, + ingredients = { + {"copper-plate", 24}, + {"resin", 32}, + {"wooden-chest", 8} + }, + result = "bi-wooden-chest-large", + result_count = 1, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "storage", + order = "a[items]-aa[wooden-chest]", + }, + + --- Huge Wooden Chest + { + type = "recipe", + name = "bi-wooden-chest-huge", + localised_name = {"entity-name.bi-wooden-chest-huge"}, + localised_description = {"entity-description.bi-wooden-chest-huge"}, + icon = ICONPATH .. "huge_wooden_chest_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "huge_wooden_chest_icon.png", + icon_size = 64, + } + }, + normal = { + energy_required = 2, + enabled = false, + ingredients = { + {"iron-stick", 32}, + {"stone-brick", 32}, + {"bi-wooden-chest-large", 16} + }, + result = "bi-wooden-chest-huge", + result_count = 1, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + energy_required = 4, + enabled = false, + ingredients = { + {"iron-stick", 48}, + {"stone-brick", 48}, + {"bi-wooden-chest-large", 16} + }, + result = "bi-wooden-chest-huge", + result_count = 1, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "storage", + order = "a[items]-ab[wooden-chest]", + }, + + --- Giga Wooden Chest + { + type = "recipe", + name = "bi-wooden-chest-giga", + localised_name = {"entity-name.bi-wooden-chest-giga"}, + localised_description = {"entity-description.bi-wooden-chest-giga"}, + icon = ICONPATH .. "giga_wooden_chest_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "giga_wooden_chest_icon.png", + icon_size = 64, + } + }, + normal = { + energy_required = 4, + enabled = false, + ingredients = { + {"steel-plate", 32}, + {"concrete", 32}, + {"bi-wooden-chest-huge", 16} + }, + result = "bi-wooden-chest-giga", + result_count = 1, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + energy_required = 6, + enabled = false, + ingredients = { + {"steel-plate", 48}, + {"concrete", 48}, + {"bi-wooden-chest-huge", 16} + }, + main_product = "", + result = "bi-wooden-chest-giga", + result_count = 1, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "storage", + order = "a[items]-ac[wooden-chest]", + }, + }) diff --git a/Bio_Industries_2/prototypes/Wood_Products/demo-remnants-concrete.lua b/Bio_Industries_2/prototypes/Wood_Products/demo-remnants-concrete.lua new file mode 100644 index 0000000..0e8a26d --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/demo-remnants-concrete.lua @@ -0,0 +1,74 @@ +local BioInd = require('common')('Bio_Industries') + +--~ local ICONPATH = BioInd.modRoot .. "__base__/graphics/icons/" +local ICONPATH = "__base__/graphics/icons/" +--~ local BIGICONS = BioInd.check_base_version("0.18.0") + +--[[ +destroyed_rail_pictures_c = function() + return rail_pictures_internal({{"metals", "metals-remnants", mipmap = true, variations = 3, priority = "high"}, + {"backplates", "backplates-remnants", mipmap = true, variations = 3, priority = "high"}, + {"ties", "ties-remnants", variations = 3, priority = "high"}, + {"stone_path", "stone-path-remnants", variations = 3, priority = "high"}, + {"stone_path_background", "stone-path-background-remnants", variations = 3, priority = "high"}}) +end + +]] +data:extend( +{ + + { + type = "rail-remnants", + name = "straight-rail-remnants", + localised_name = {"entity-name.rail-remnants"}, + localised_description = {"entity_description.rail-remnants"}, + icon = ICONPATH .. "straight-rail-remnants.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "straight-rail-remnants.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "building-direction-8-way", "not-on-map"}, + subgroup = "remnants", + order = "d[remnants]-b[rail]-a[straight]", + collision_box = {{-0.7, -0.8}, {0.7, 0.8}}, + selection_box = {{-0.6, -0.8}, {0.6, 0.8}}, + selectable_in_game = false, + tile_width = 2, + tile_height = 2, + bending_type = "straight", + pictures = destroyed_rail_pictures(), + --pictures = destroyed_rail_pictures_c(), + time_before_removed = 60 * 60 * 45, + time_before_shading_off = 60 * 60 * 1 + }, + { + type = "rail-remnants", + name = "curved-rail-remnants", + localised_name = {"entity-name.rail-remnants"}, + localised_description = {"entity_description.rail-remnants"}, + icon = ICONPATH .. "curved-rail-remnants.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "curved-rail-remnants.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "building-direction-8-way", "not-on-map"}, + subgroup = "remnants", + order = "d[remnants]-b[rail]-b[curved]", + collision_box = {{-1, -1}, {1, 1}}, + selection_box = {{-1.7, -0.8}, {1.7, 0.8}}, + selectable_in_game = false, + tile_width = 4, + tile_height = 8, + bending_type = "turn", + pictures = destroyed_rail_pictures(), + --pictures = destroyed_rail_pictures_c(), + time_before_removed = 60 * 60 * 45, + time_before_shading_off = 60 * 60 * 1 + }, +}) diff --git a/Bio_Industries_2/prototypes/Wood_Products/demo-remnants-wood.lua b/Bio_Industries_2/prototypes/Wood_Products/demo-remnants-wood.lua new file mode 100644 index 0000000..b8c5219 --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/demo-remnants-wood.lua @@ -0,0 +1,129 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = "__base__/graphics/icons/" +--~ local BIGICONS = BioInd.check_base_version("0.18.0") + +--[[ +destroyed_rail_pictures = function() + return rail_pictures_internal({{"metals", "metals-remnants", mipmap = true, variations = 3, priority = "high"}, + {"backplates", "backplates-remnants", mipmap = true, variations = 3, priority = "high"}, + {"ties", "ties-remnants", variations = 3, priority = "high"}, + {"stone_path", "stone-path-remnants", variations = 3, priority = "high"}, + {"stone_path_background", "stone-path-background-remnants", variations = 3, priority = "high"}}) +end +]] + +data:extend( +{ + { + type = "rail-remnants", + name = "straight-rail-remnants-wood", + localised_name = {"entity-name.rail-remnants-wood"}, + localised_description = {"entity_description.rail-remnants-wood"}, + icon = ICONPATH .. "straight-rail-remnants.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "straight-rail-remnants.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "building-direction-8-way", "not-on-map"}, + subgroup = "remnants", + order = "d[remnants]-b[rail]-a[straight]", + collision_box = {{-0.7, -0.8}, {0.7, 0.8}}, + selection_box = {{-0.6, -0.8}, {0.6, 0.8}}, + selectable_in_game = false, + tile_width = 2, + tile_height = 2, + bending_type = "straight", + --pictures = destroyed_rail_pictures_w(), + pictures = destroyed_rail_pictures(), + time_before_removed = 60 * 60 * 45, + time_before_shading_off = 60 * 60 * 1 + }, + { + type = "rail-remnants", + name = "curved-rail-remnants-wood", + localised_name = {"entity-name.rail-remnants-wood"}, + localised_description = {"entity_description.rail-remnants-wood"}, + icon = ICONPATH .. "curved-rail-remnants.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "curved-rail-remnants.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "building-direction-8-way", "not-on-map"}, + subgroup = "remnants", + order = "d[remnants]-b[rail]-b[curved]", + collision_box = {{-0.75, -0.55}, {0.75, 1.6}}, + secondary_collision_box = {{-0.65, -2.43}, {0.65, 2.43}}, + selection_box = {{-1.7, -0.8}, {1.7, 0.8}}, + selectable_in_game = false, + tile_width = 4, + tile_height = 8, + bending_type = "turn", + --pictures = destroyed_rail_pictures_w(), + pictures = destroyed_rail_pictures(), + time_before_removed = 60 * 60 * 45, + time_before_shading_off = 60 * 60 * 1 + }, + + { + type = "rail-remnants", + name = "straight-rail-remnants-wood-bridge", + localised_name = {"entity-name.rail-remnants-wood-bridge"}, + localised_description = {"entity_description.rail-remnants-wood-bridge"}, + icon = ICONPATH .. "straight-rail-remnants.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "straight-rail-remnants.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "building-direction-8-way", "not-on-map"}, + subgroup = "remnants", + order = "d[remnants]-b[rail]-a[straight]", + collision_box = {{-0.7, -0.8}, {0.7, 0.8}}, + selection_box = {{-0.6, -0.8}, {0.6, 0.8}}, + selectable_in_game = false, + tile_width = 2, + tile_height = 2, + bending_type = "straight", + --pictures = destroyed_rail_pictures_w(), + pictures = destroyed_rail_pictures(), + time_before_removed = 60 * 60 * 45, + time_before_shading_off = 60 * 60 * 1 + }, + { + type = "rail-remnants", + name = "curved-rail-remnants-wood-bridge", + localised_name = {"entity-name.rail-remnants-wood-bridge"}, + localised_description = {"entity_description.rail-remnants-wood-bridge"}, + icon = ICONPATH .. "curved-rail-remnants.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "curved-rail-remnants.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "building-direction-8-way", "not-on-map"}, + subgroup = "remnants", + order = "d[remnants]-b[rail]-b[curved]", + collision_box = {{-0.75, -0.55}, {0.75, 1.6}}, + secondary_collision_box = {{-0.65, -2.43}, {0.65, 2.43}}, + selection_box = {{-1.7, -0.8}, {1.7, 0.8}}, + selectable_in_game = false, + tile_width = 4, + tile_height = 8, + bending_type = "turn", + --pictures = destroyed_rail_pictures_w(), + pictures = destroyed_rail_pictures(), + time_before_removed = 60 * 60 * 45, + time_before_shading_off = 60 * 60 * 1 + }, +}) diff --git a/Bio_Industries_2/prototypes/Wood_Products/entities.lua b/Bio_Industries_2/prototypes/Wood_Products/entities.lua new file mode 100644 index 0000000..b73395a --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/entities.lua @@ -0,0 +1,1429 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" +local WOODPATH = BioInd.modRoot .. "/graphics/entities/wood_products/" + +local ENTITYPATH = "__base__/graphics/entity/" +local PIPEPATH = ENTITYPATH .. "pipe/" + +local SNDPATH = "__base__/sound/" +--~ local BIGICONS = BioInd.check_base_version("0.18.0") + + +require("prototypes.Wood_Products.demo-remnants-wood") + +-- demo-sounds has been removed in Factorio 1.1, so we need to check the game version! +local sound_def = BioInd.check_version("base", "<", "1.1.0") and + require("__base__.prototypes.entity.demo-sounds") or + require("__base__.prototypes.entity.sounds") +local sounds = {} +sounds.car_wood_impact = sound_def.car_wood_impact(0.8) +sounds.generic_impact = sound_def.generic_impact +for _, sound in ipairs(sounds.generic_impact) do + sound.volume = 0.65 +end +--~ sounds.open_sound = { filename = "__base__/sound/wooden-chest-open.ogg" } +--~ sounds.close_sound = { filename = SNDPATH .. "wooden-chest-close.ogg" } + +sounds.walking_sound = {} +for i = 1, 11 do + sounds.walking_sound[i] = { + filename = SNDPATH .. "walking/concrete-" .. (i < 10 and "0" or "") .. i ..".ogg", + volume = 1.2 + } +end + +-- Used for Wooden Pipe Pictures +pipepictures_w = function() + return { + straight_vertical_single = { + filename = PIPEPATH .. "pipe-straight-vertical-single.png", + priority = "extra-high", + width = 80, + height = 80, + hr_version = { + filename = PIPEPATH .. "hr-pipe-straight-vertical-single.png", + priority = "extra-high", + width = 160, + height = 160, + scale = 0.5 + } + }, + straight_vertical = { + filename = PIPEPATH .. "pipe-straight-vertical.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-straight-vertical.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + straight_vertical_window = { + filename = PIPEPATH .. "pipe-straight-vertical-window.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-straight-vertical-window.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + straight_horizontal_window = { + filename = PIPEPATH .. "pipe-straight-horizontal-window.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-straight-horizontal-window.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + straight_horizontal = { + filename = PIPEPATH .. "pipe-straight-horizontal.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-straight-horizontal.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + corner_up_right = { + filename = PIPEPATH .. "pipe-corner-up-right.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-corner-up-right.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + corner_up_left = { + filename = PIPEPATH .. "pipe-corner-up-left.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-corner-up-left.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + corner_down_right = { + filename = PIPEPATH .. "pipe-corner-down-right.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-corner-down-right.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + corner_down_left = { + filename = PIPEPATH .. "pipe-corner-down-left.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-corner-down-left.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + t_up = { + filename = PIPEPATH .. "pipe-t-up.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-t-up.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + t_down = { + filename = PIPEPATH .. "pipe-t-down.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-t-down.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + t_right = { + filename = PIPEPATH .. "pipe-t-right.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-t-right.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + t_left = { + filename = PIPEPATH .. "pipe-t-left.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-t-left.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + cross = { + filename = PIPEPATH .. "pipe-cross.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-cross.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + ending_up = { + filename = PIPEPATH .. "pipe-ending-up.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-ending-up.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + ending_down = { + filename = PIPEPATH .. "pipe-ending-down.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-ending-down.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + ending_right = { + filename = PIPEPATH .. "pipe-ending-right.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-ending-right.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + ending_left = { + filename = PIPEPATH .. "pipe-ending-left.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-ending-left.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + horizontal_window_background = { + filename = PIPEPATH .. "pipe-horizontal-window-background.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-horizontal-window-background.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + vertical_window_background = { + filename = PIPEPATH .. "pipe-vertical-window-background.png", + priority = "extra-high", + size = 64, + hr_version = { + filename = PIPEPATH .. "hr-pipe-vertical-window-background.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + fluid_background = { + filename = PIPEPATH .. "fluid-background.png", + priority = "extra-high", + width = 32, + height = 20, + hr_version = { + filename = PIPEPATH .. "hr-fluid-background.png", + priority = "extra-high", + width = 64, + height = 40, + scale = 0.5 + } + }, + low_temperature_flow = { + filename = PIPEPATH .. "fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + middle_temperature_flow = { + filename = PIPEPATH .. "fluid-flow-medium-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + high_temperature_flow = { + filename = PIPEPATH .. "fluid-flow-high-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + gas_flow = { + filename = PIPEPATH .. "steam.png", + priority = "extra-high", + line_length = 10, + width = 24, + height = 15, + frame_count = 60, + axially_symmetrical = false, + direction_count = 1, + hr_version = { + filename = PIPEPATH .. "hr-steam.png", + priority = "extra-high", + line_length = 10, + width = 48, + height = 30, + frame_count = 60, + axially_symmetrical = false, + direction_count = 1 + } + } + } +end + +---- Wood Floor +data:extend({ + { + type = "tile", + name = "bi-wood-floor", + needs_correction = false, + --~ minable = {hardness = 0.2, mining_time = 0.5, result = "wood"}, + minable = {hardness = 0.2, mining_time = 0.25, result = "wood"}, + mined_sound = { filename = "__base__/sound/deconstruct-bricks.ogg" }, + collision_mask = {"ground-tile"}, + walking_speed_modifier = 1.2, + layer = 62, + decorative_removal_probability = 0.4, + variants = { + main = { + { + picture = WOODPATH .. "wood_floor/wood1.png", + count = 4, + size = 1 + }, + { + picture = WOODPATH .. "wood_floor/wood2.png", + count = 1, + size = 2, + probability = 1, + }, + }, + inner_corner = { + picture = WOODPATH .. "wood_floor/wood-inner-corner.png", + count = 8 + }, + outer_corner = { + picture = WOODPATH .. "wood_floor/wood-outer-corner.png", + count = 8 + }, + side = { + picture = WOODPATH .. "wood_floor/wood-side.png", + count = 8 + }, + u_transition = { + picture = WOODPATH .. "wood_floor/wood-u.png", + count = 8 + }, + o_transition = { + picture = WOODPATH .. "wood_floor/wood-o.png", + count = 1 + } + }, + --~ walking_sound = { + --~ { + --~ filename = "__base__/sound/walking/concrete-01.ogg", + --~ volume = 1.2 + --~ }, + --~ { + --~ filename = "__base__/sound/walking/concrete-02.ogg", + --~ volume = 1.2 + --~ }, + --~ { + --~ filename = "__base__/sound/walking/concrete-03.ogg", + --~ volume = 1.2 + --~ }, + --~ { + --~ filename = "__base__/sound/walking/concrete-04.ogg", + --~ volume = 1.2 + --~ } + --~ }, + walking_sound = sounds.walking_sound, + map_color = {r = 139, g = 115, b = 85}, + pollution_absorption_per_second = 0, + vehicle_friction_modifier = dirt_vehicle_speed_modifer + }, +}) + +---- Big Wooden Pole +data:extend({ + { + type = "electric-pole", + name = "bi-wooden-pole-big", + icon = ICONPATH .. "big-wooden-pole.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "big-wooden-pole.png", + icon_size = 64, + } + }, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-wooden-pole-big"}, + max_health = 150, + corpse = "medium-remnants", + resistances = { + { + type = "fire", + percent = 100 + }, + { + type = "physical", + percent = 10 + } + }, + collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + drawing_box = {{-1, -6}, {1, 0.5}}, + maximum_wire_distance = 24, + --~ supply_area_distance = 2, + supply_area_distance = 1.5, -- This is the radius, so the supply area is 3x3. + pictures = { + filename = WOODPATH .. "big-wooden-pole-01.png", + priority = "high", + width = 180, + height = 180, + axially_symmetrical = false, + direction_count = 1, + shift = {2.2, -2.5} + }, + connection_points = { + { + shadow = { + copper = {3.3, -0.1}, + green = {3.3, -0.2}, + red = {3.3, -0.3} + }, + wire = { + copper = {0.7, -4.3}, + green = {0.7, -4.3}, + red = {0.7, -4.3} + } + } + }, + copper_wire_picture = { + filename = ENTITYPATH .. "/small-electric-pole/copper-wire.png", + priority = "extra-high-no-scale", + width = 224, + height = 46, + }, + green_wire_picture = { + filename = ENTITYPATH .. "/small-electric-pole/green-wire.png", + priority = "extra-high-no-scale", + width = 224, + height = 46 + }, + red_wire_picture = { + filename = ENTITYPATH .. "/small-electric-pole/red-wire.png", + priority = "extra-high-no-scale", + width = 224, + height = 46 + }, + wire_shadow_picture = { + filename = ENTITYPATH .. "/small-electric-pole/wire-shadow.png", + priority = "extra-high-no-scale", + width = 224, + height = 46 + }, + radius_visualisation_picture = { + filename = ENTITYPATH .. "/small-electric-pole/electric-pole-radius-visualization.png", + width = 12, + height = 12 + }, + } +}) + +---- Huge Wooden Pole +data:extend({ + { + type = "electric-pole", + name = "bi-wooden-pole-huge", + icon = ICONPATH .. "huge-wooden-pole.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "huge-wooden-pole.png", + icon_size = 64, + } + }, + -- This is necessary for "Space Exploration" (if not true, the entity can only be + -- placed on Nauvis)! + se_allow_in_space = true, + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-wooden-pole-huge"}, + max_health = 250, + corpse = "medium-remnants", + resistances = { + { + type = "fire", + percent = 100 + }, + { + type = "physical", + percent = 10 + } + }, + collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + drawing_box = {{-1, -7}, {1, 0.5}}, + maximum_wire_distance = 64, -- Factorio Max + --~ supply_area_distance = 2, + supply_area_distance = 1, -- This is the radius, so the supply area is 2x2. + pictures = { + filename = WOODPATH .. "huge-wooden-pole.png", + priority = "high", + width = 182, + height = 167, + direction_count = 4, + shift = {3, -3.45}, + scale = 1.5, + }, + connection_points = { + { + shadow = { + copper = {5.7, -1.5}, + green = {4.8, -1.5}, + red = {6.6, -1.50} + }, + wire = { + copper = {0, -6.125}, + green = {-0.59375, -6.125}, + red = {0.625, -6.125} + } + }, + { + shadow = { + copper = {6.1, -1.3}, + green = {5.3, -1.8}, + red = {6.8, -0.9} + }, + wire = { + copper = {-0.0625, -6.125}, + green = {-0.5, -6.4375}, + red = {0.34375, -5.8125} + } + }, + { + shadow = { + copper = {5.9, -1.44}, + green = {6.0, -2.1}, + red = {6.0, -0.7} + }, + wire = { + copper = {-0.09375, -6.09375}, + green = {-0.09375, -6.53125}, + red = {-0.09375, -5.65625} + } + }, + { + shadow = { + copper = {6.1, -1.3}, + green = {6.8, -1.8}, + red = {5.35, -0.9} + }, + wire = { + copper = {-0.0625, -6.1875}, + green = {0.375, -6.5}, + red = {-0.46875, -5.90625} + } + } + }, + radius_visualisation_picture = { + filename = ENTITYPATH .. "/small-electric-pole/electric-pole-radius-visualization.png", + width = 12, + height = 12, + priority = "extra-high-no-scale" + }, + }, +}) + +---- Wood Fence +data:extend({ + { + type = "wall", + name = "bi-wooden-fence", + icon = ICONPATH .. "wooden-fence.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "wooden-fence.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "player-creation"}, + collision_box = {{-0.29, -0.09}, {0.29, 0.49}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + minable = {mining_time = 1, result = "bi-wooden-fence"}, + fast_replaceable_group = "wall", + max_health = 150, + repair_speed_modifier = 2, + corpse = "wall-remnants", + repair_sound = { filename = "__base__/sound/manual-repair-simple.ogg" }, + --~ vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, + vehicle_impact_sound = sounds.car_wood_impact, + resistances = { + { + type = "physical", + decrease = 2, + percent = 15 + }, + { + type = "fire", + percent = -25 + }, + { + type = "impact", + decrease = 15, + percent = 20 + } + }, + pictures = { + single = { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-single-1.png", + priority = "extra-high", + width = 7, + height = 46, + shift = {0, -0.15625} + }, + { + filename = WOODPATH .. "wood_fence/fence-single-shadow.png", + priority = "extra-high", + width = 38, + height = 25, + shift = {0.459375, 0.75}, + draw_as_shadow = true + } + } + }, + straight_vertical = { + { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-straight-vertical-1.png", + priority = "extra-high", + width = 7, + height = 53, + shift = {0, -0.15625} + }, + { + filename = WOODPATH .. "wood_fence/fence-straight-vertical-shadow.png", + priority = "extra-high", + width = 39, + height = 66, + shift = {0.490625, 1.425}, + draw_as_shadow = true + } + } + }, + { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-straight-vertical-1.png", + priority = "extra-high", + width = 7, + height = 53, + shift = {0, -0.15625} + }, + { + filename = WOODPATH .. "wood_fence/fence-straight-vertical-shadow.png", + priority = "extra-high", + width = 39, + height = 66, + shift = {0.490625, 1.425}, + draw_as_shadow = true + } + } + }, + { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-straight-vertical-1.png", + priority = "extra-high", + width = 7, + height = 53, + shift = {0, -0.15625} + }, + { + filename = WOODPATH .. "wood_fence/fence-straight-vertical-shadow.png", + priority = "extra-high", + width = 39, + height = 66, + shift = {0.490625, 1.425}, + draw_as_shadow = true + } + } + } + }, + straight_horizontal = { + { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-straight-horizontal-1.png", + priority = "extra-high", + width = 34, + height = 47, + shift = {0, -0.15625} + }, + { + filename = WOODPATH .. "wood_fence/fence-straight-horizontal-shadow.png", + priority = "extra-high", + width = 84, + height = 28, + shift = {0.421875, 0.85}, + draw_as_shadow = true + } + } + }, + { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-straight-horizontal-2.png", + priority = "extra-high", + width = 34, + height = 47, + shift = {0, -0.15625} + }, + { + filename = WOODPATH .. "wood_fence/fence-straight-horizontal-shadow.png", + priority = "extra-high", + width = 84, + height = 28, + shift = {0.421875, 0.85}, + draw_as_shadow = true + } + } + }, + { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-straight-horizontal-3.png", + priority = "extra-high", + width = 34, + height = 47, + shift = {0, -0.15625} + }, + { + filename = WOODPATH .. "wood_fence/fence-straight-horizontal-shadow.png", + priority = "extra-high", + width = 84, + height = 28, + shift = {0.421875, 0.85}, + draw_as_shadow = true + } + } + } + }, + corner_right_down = { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-corner-right-down.png", + priority = "extra-high", + width = 23, + height = 53, + shift = {0.248125, -0.07625} + }, + { + filename = WOODPATH .. "wood_fence/fence-corner-right-down-shadow.png", + priority = "extra-high", + width = 52, + height = 56, + shift = {0.724375, 1.30625}, + draw_as_shadow = true + } + } + }, + corner_left_down = { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-corner-left-down.png", + priority = "extra-high", + width = 21, + height = 53, + shift = {-0.248125, -0.07625} + }, + { + filename = WOODPATH .. "wood_fence/fence-corner-left-down-shadow.png", + priority = "extra-high", + width = 60, + height = 56, + shift = {0.128125, 1.30625}, + draw_as_shadow = true + } + } + }, + t_up = { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-t-down.png", + priority = "extra-high", + width = 34, + height = 53, + shift = {0, -0.07625} + }, + { + filename = WOODPATH .. "wood_fence/fence-t-down-shadow.png", + priority = "extra-high", + width = 71, + height = 55, + shift = {0.286875, 1.280625}, + draw_as_shadow = true + } + } + }, + ending_right = { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-ending-right.png", + priority = "extra-high", + width = 23, + height = 47, + shift = {0.248125, -0.15625} + }, + { + filename = WOODPATH .. "wood_fence/fence-ending-right-shadow.png", + priority = "extra-high", + width = 49, + height = 27, + shift = {0.684375, 0.85}, + draw_as_shadow = true + } + } + }, + ending_left = { + layers = { + { + filename = WOODPATH .. "wood_fence/fence-ending-left.png", + priority = "extra-high", + width = 21, + height = 47, + shift = {-0.248125, -0.15625} + }, + { + filename = WOODPATH .. "wood_fence/fence-ending-left-shadow.png", + priority = "extra-high", + width = 63, + height = 27, + shift = {0.128125, 0.85}, + draw_as_shadow = true + } + } + } + } + }, +}) + + +local RAIL_FLAGS = { + "placeable-neutral", + "player-creation", + "building-direction-8-way", + "fast-replaceable-no-cross-type-while-moving" +} + +---- Rail straight (Wood) +data:extend({ + { + type = "straight-rail", + name = "bi-straight-rail-wood", + localised_name = {"entity-name.bi-rail-wood"}, + localised_description = {"entity-description.bi-rail-wood"}, + icon = ICONPATH .. "straight-rail-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "straight-rail-wood.png", + icon_size = 64, + } + }, + --~ flags = { + --~ "placeable-neutral", + --~ "player-creation", + --~ "building-direction-8-way", + --~ "fast-replaceable-no-cross-type-while-moving", + --~ }, + flags = RAIL_FLAGS, + --~ collision_mask = {"object-layer"}, + --~ collision_mask = BioInd.RAIL_MASK, + minable = {mining_time = 0.25, result = "bi-rail-wood"}, + max_health = 60, + corpse = "straight-rail-remnants-wood", + resistances = { + { + type = "fire", + percent = 80 + }, + { + type = "acid", + percent = 60 + } + }, + collision_box = {{-0.7, -0.8}, {0.7, 0.8}}, + selection_box = {{-0.7, -0.8}, {0.7, 0.8}}, + rail_category = "regular", + --fast_replaceable_group = "rail", + --next_upgrade = "straight-rail", + pictures = rail_pictures(), + }, +}) + + +---- Rail curved (Wood) +data:extend({ + { + type = "curved-rail", + name = "bi-curved-rail-wood", + localised_name = {"entity-name.bi-rail-wood"}, + localised_description = {"entity-description.bi-rail-wood"}, + icon = ICONPATH .. "curved-rail-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "curved-rail-wood.png", + icon_size = 64, + } + }, + --~ flags = { + --~ "placeable-neutral", + --~ "player-creation", + --~ "building-direction-8-way", + --~ "fast-replaceable-no-cross-type-while-moving" + --~ }, + flags = RAIL_FLAGS, + --~ collision_mask = {"object-layer"}, + --~ collision_mask = BioInd.RAIL_MASK, + minable = {mining_time = 0.25, result = "bi-rail-wood", count = 4}, + max_health = 120, + corpse = "curved-rail-remnants-wood", + resistances = { + { + type = "fire", + percent = 80 + }, + { + type = "acid", + percent = 60 + } + }, + collision_box = {{-0.75, -0.55}, {0.75, 1.6}}, + secondary_collision_box = {{-0.65, -2.43}, {0.65, 2.43}}, + selection_box = {{-1.7, -0.8}, {1.7, 0.8}}, + rail_category = "regular", + pictures = rail_pictures(), + placeable_by = { item = "bi-rail-wood", count = 4} + }, +}) + + --Wooden straight rail for Bridge +data:extend({ + { + type = "straight-rail", + name = "bi-straight-rail-wood-bridge", + localised_name = {"entity-name.bi-rail-wood-bridge"}, + localised_description = {"entity-description.bi-rail-wood-bridge"}, + icon = ICONPATH .. "straight-rail-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "straight-rail-wood.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "player-creation", "building-direction-8-way"}, + --~ collision_mask = {"object-layer"}, +--~ collision_mask = { "item-layer", "object-layer"}, + --~ collision_mask = {"ground-tile", "floor-layer", "object-layer", "consider-tile-transitions"}, + --~ collision_mask = BioInd.RAIL_BRIDGE_MASK, + minable = {mining_time = 0.5, result = "bi-rail-wood-bridge"}, + max_health = 60, + corpse = "straight-rail-remnants-wood-bridge", + collision_box = {{-0.7, -0.8}, {0.7, 0.8}}, + selection_box = {{-0.7, -0.8}, {0.7, 0.8}}, + rail_category = "regular", + pictures = rail_pictures(), + }, +}) + +--Wooden curved rail for Bridge +data:extend({ + { + type = "curved-rail", + name = "bi-curved-rail-wood-bridge", + localised_name = {"entity-name.bi-rail-wood-bridge"}, + localised_description = {"entity-description.bi-rail-wood-bridge"}, + icon = ICONPATH .. "rail-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "rail-wood.png", + icon_size = 64, + } + }, + flags = { + "placeable-neutral", + "player-creation", + "building-direction-8-way" + }, + --~ collision_mask = {"object-layer"}, +--~ collision_mask = { "floor-layer", "item-layer", "object-layer"}, + --~ collision_mask = {"ground-tile", "floor-layer", "object-layer", "consider-tile-transitions"}, + --~ collision_mask = BioInd.RAIL_BRIDGE_MASK, + minable = {mining_time = 0.5, result = "bi-rail-wood-bridge", count = 4}, + max_health = 120, + corpse = "curved-rail-remnants-wood-bridge", + collision_box = {{-0.75, -0.55}, {0.75, 1.6}}, + secondary_collision_box = {{-0.65, -2.43}, {0.65, 2.43}}, + selection_box = {{-1.7, -0.8}, {1.7, 0.8}}, + rail_category = "regular", + pictures = rail_pictures(), + placeable_by = { item = "bi-rail-wood-bridge", count = 4} + }, +}) + +--- Power straight Rail +data:extend({ + { + type = "straight-rail", + name = "bi-straight-rail-power", + localised_name = {"entity-name.bi-rail-power"}, + localised_description = {"entity-description.bi-rail-power"}, + icon = ICONPATH .. "rail-concrete-power.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "rail-concrete-power.png", + icon_size = 64, + } + }, + flags = { + "placeable-neutral", + "player-creation", + "building-direction-8-way" + }, + --~ collision_mask = {"object-layer"}, + --~ collision_mask = BioInd.RAIL_MASK, + minable = {mining_time = 0.5, result = "bi-rail-power"}, + max_health = 60, + corpse = "straight-rail-remnants", + collision_box = {{-0.7, -0.8}, {0.7, 0.8}}, + selection_box = {{-0.7, -0.8}, {0.7, 0.8}}, + rail_category = "regular", + pictures = rail_pictures(), + }, +}) + +--- Power curved Rail +data:extend({ + { + type = "curved-rail", + name = "bi-curved-rail-power", + icon = ICONPATH .. "rail-concrete-power.png", + localised_name = {"entity-name.bi-rail-power"}, + localised_description = {"entity-description.bi-rail-power"}, + icon_size = 64, + icons = { + { + icon = ICONPATH .. "rail-concrete-power.png", + icon_size = 64, + } + }, + flags = { + "placeable-neutral", + "player-creation", + "building-direction-8-way", + }, + --~ collision_mask = {"object-layer"}, + --~ collision_mask = BioInd.RAIL_MASK, + minable = {mining_time = 0.5, result = "bi-rail-power", count = 4}, + max_health = 120, + corpse = "curved-rail-remnants", + collision_box = {{-0.75, -0.55}, {0.75, 1.6}}, + secondary_collision_box = {{-0.65, -2.43}, {0.65, 2.43}}, + selection_box = {{-1.7, -0.8}, {1.7, 0.8}}, + rail_category = "regular", + pictures = rail_pictures(), + placeable_by = { item = "bi-rail-power", count = 4} + }, +}) + + +--~ ------- Power Rail Pole - Hidden +--~ local hidden_pole = table.deepcopy(data.raw["electric-pole"]["small-electric-pole"]) +--~ hidden_pole.name = "bi-power-rail-hidden-pole" +--~ hidden_pole.flags = { + --~ "not-deconstructable", + --~ "not-on-map", + --~ "placeable-off-grid", + --~ "not-repairable", + --~ "not-blueprintable", +--~ } +--~ hidden_pole.selectable_in_game = false +--~ hidden_pole.draw_copper_wires = BioInd.is_debug +--~ hidden_pole.max_health = 1 +--~ hidden_pole.resistances = {{type = "fire", percent = 100}} +--~ hidden_pole.collision_mask = {} +--~ hidden_pole.collision_box = {{-0, -0}, {0, 0}} +--~ hidden_pole.selection_box = {{0, 0}, {0, 0}} +--~ hidden_pole.maximum_wire_distance = 9 +--~ hidden_pole.supply_area_distance = 2 +--~ hidden_pole.pictures = BioInd.is_debug and hidden_pole.pictures or { + --~ filename = ICONPATH .. "empty.png", + --~ priority = "low", + --~ width = 1, + --~ height = 1, + --~ frame_count = 1, + --~ axially_symmetrical = false, + --~ direction_count = 1, +--~ } +--~ hidden_pole.connection_points = BioInd.is_debug and hidden_pole.connection_points or { + --~ { + --~ shadow = {}, + --~ wire = { copper_wire_tweak = {-0, -0} } + --~ } +--~ } +--~ hidden_pole.radius_visualisation_picture = BioInd.is_debug and + --~ hidden_pole.radius_visualisation_picture or { + --~ filename = ICONPATH .. "empty.png", + --~ width = 1, + --~ height = 1, + --~ priority = "low" + --~ } +--~ data:extend({hidden_pole}) + + +---- Wood Pipe +data:extend({ + { + type = "pipe", + name = "bi-wood-pipe", + icon = ICONPATH .. "wood_pipe.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "wood_pipe.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.075, result = "bi-wood-pipe"}, + max_health = 100, + corpse = "small-remnants", + resistances = { + { + type = "fire", + percent = 20 + }, + { + type = "impact", + percent = 30 + } + }, + fast_replaceable_group = "pipe", + collision_box = {{-0.29, -0.29}, {0.29, 0.29}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + fluid_box = { + base_area = 1, + pipe_connections = { + { position = {0, -1} }, + { position = {1, 0} }, + { position = {0, 1} }, + { position = {-1, 0} } + }, + }, + --~ vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + vehicle_impact_sound = sounds.generic_impact, + pictures = pipepictures_w(), + --pictures = pipe_pictures, + working_sound = { + sound = { + { + filename = "__base__/sound/pipe.ogg", + volume = 0.85 + }, + }, + match_volume_to_activity = true, + max_sounds_per_type = 3 + }, + horizontal_window_bounding_box = {{-0.25, -0.28125}, {0.25, 0.15625}}, + vertical_window_bounding_box = {{-0.28125, -0.5}, {0.03125, 0.125}} + }, +}) + +---- Wood Pipe to Ground +data:extend({ + { + type = "pipe-to-ground", + name = "bi-wood-pipe-to-ground", + icon = ICONPATH .. "pipe-to-ground-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "pipe-to-ground-wood.png", + icon_size = 64, + } + }, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.075, result = "bi-wood-pipe-to-ground"}, + max_health = 150, + corpse = "small-remnants", + resistances = { + { + type = "fire", + percent = 20 + }, + { + type = "impact", + percent = 40 + } + }, + fast_replaceable_group = "pipe", + collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + fluid_box = { + base_area = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = { + { position = {0, -1} }, + { + position = {0, 1}, + max_underground_distance = 10 + } + }, + }, + underground_sprite = { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "extra-high-no-scale", + size = 64, + scale = 0.5 + }, + --~ vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + vehicle_impact_sound = sounds.generic_impact, + pictures = { + up = { + filename = ENTITYPATH .. "/pipe-to-ground/pipe-to-ground-up.png", + priority = "high", + size = 64, --, shift = {0.10, -0.04} + hr_version = { + filename = ENTITYPATH .. "/pipe-to-ground/hr-pipe-to-ground-up.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + down = { + filename = ENTITYPATH .. "/pipe-to-ground/pipe-to-ground-down.png", + priority = "high", + size = 64, --, shift = {0.05, 0} + hr_version = { + filename = ENTITYPATH .. "/pipe-to-ground/hr-pipe-to-ground-down.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + left = { + filename = ENTITYPATH .. "/pipe-to-ground/pipe-to-ground-left.png", + priority = "high", + size = 64, --, shift = {-0.12, 0.1} + hr_version = { + filename = ENTITYPATH .. "/pipe-to-ground/hr-pipe-to-ground-left.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + right = { + filename = ENTITYPATH .. "/pipe-to-ground/pipe-to-ground-right.png", + priority = "high", + size = 64, --, shift = {0.1, 0.1} + hr_version = { + filename = ENTITYPATH .. "/pipe-to-ground/hr-pipe-to-ground-right.png", + priority = "extra-high", + size = 128, + scale = 0.5 + } + }, + }, + }, +}) + +--~ ------- Large Wooden Chest +--~ data:extend({ + --~ { + --~ type = "container", + --~ name = "bi-wooden-chest-large", + --~ icon = ICONPATH .. "large_wooden_chest_icon.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "large_wooden_chest_icon.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ flags = {"placeable-neutral", "player-creation"}, + --~ minable = {mining_time = 1, result = "bi-wooden-chest-large"}, + --~ max_health = 200, + --~ corpse = "small-remnants", + --~ collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + --~ selection_box = {{-1.0, -1.0}, {1.0, 1.0}}, + --~ fast_replaceable_group = "container", + --~ inventory_size = 128, -- 64 + --~ open_sound = { filename = "__base__/sound/wooden-chest-open.ogg" }, + --~ close_sound = { filename = "__base__/sound/wooden-chest-close.ogg" }, + --~ vehicle_impact_sound = sounds.car_wood_impact, + --~ picture = { + --~ filename = WOODPATH .. "large_wooden_chest.png", + --~ priority = "extra-high", + --~ width = 184, + --~ height = 132, + --~ shift = {0.5, 0}, + --~ scale = 0.5, + --~ }, + --~ circuit_wire_connection_point = circuit_connector_definitions["chest"].points, + --~ circuit_connector_sprites = circuit_connector_definitions["chest"].sprites, + --~ circuit_wire_max_distance = default_circuit_wire_max_distance + --~ }, +--~ }) + +--~ ------- Huge Wooden Chest +--~ data:extend({ + --~ { + --~ type = "container", + --~ name = "bi-wooden-chest-huge", + --~ icon = ICONPATH .. "huge_wooden_chest_icon.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "huge_wooden_chest_icon.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ scale_info_icons = true, + --~ flags = {"placeable-neutral", "player-creation"}, + --~ minable = {mining_time = 1.5, result = "bi-wooden-chest-huge"}, + --~ max_health = 350, + --~ corpse = "small-remnants", + --~ collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + --~ selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + --~ fast_replaceable_group = "container", + --~ inventory_size = 432, --144 + --~ open_sound = { filename = "__base__/sound/wooden-chest-open.ogg" }, + --~ close_sound = { filename = "__base__/sound/wooden-chest-close.ogg" }, + --~ vehicle_impact_sound = sounds.car_wood_impact, + --~ picture = { + --~ filename = WOODPATH .. "huge_wooden_chest.png", + --~ priority = "extra-high", + --~ width = 184, + --~ height = 132, + --~ shift = {0.5, 0}, + --~ scale = 0.75, + --~ }, + --~ circuit_wire_connection_point = circuit_connector_definitions["chest"].points, + --~ circuit_connector_sprites = circuit_connector_definitions["chest"].sprites, + --~ circuit_wire_max_distance = default_circuit_wire_max_distance + --~ }, +--~ }) + +--~ ------- Giga Wooden Chest +--~ data:extend({ + --~ { + --~ type = "container", + --~ name = "bi-wooden-chest-giga", + --~ icon = ICONPATH .. "giga_wooden_chest_icon.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "giga_wooden_chest_icon.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ scale_info_icons = true, + --~ flags = {"placeable-neutral", "player-creation"}, + --~ minable = {mining_time = 3.5, result = "bi-wooden-chest-giga"}, + --~ max_health = 350, + --~ corpse = "big-remnants", + --~ collision_box = {{-2.8, -2.8}, {2.8, 2.8}}, + --~ selection_box = {{-3, -3}, {3, 3}}, + --~ fast_replaceable_group = "container", + --~ inventory_size = 1728, --576 + --~ open_sound = { filename = "__base__/sound/wooden-chest-open.ogg" }, + --~ close_sound = { filename = "__base__/sound/wooden-chest-close.ogg" }, + --~ vehicle_impact_sound = sounds.car_wood_impact, + --~ picture = { + --~ filename = WOODPATH .. "giga_wooden_chest.png", + --~ priority = "extra-high", + --~ width = 501, + --~ height = 366, + --~ shift = {0.88, -0.170}, + --~ scale = 0.5, + --~ }, + --~ circuit_wire_connection_point = circuit_connector_definitions["chest"].points, + --~ circuit_connector_sprites = circuit_connector_definitions["chest"].sprites, + --~ circuit_wire_max_distance = default_circuit_wire_max_distance + --~ }, +--~ }) + +------ Power to Rail Pole +-- Changed to medium-electric pole so the built entity resembles the icon (0.18.1) +--~ local my_pole = util.table.deepcopy(data.raw["electric-pole"]["small-electric-pole"]) +local my_pole = util.table.deepcopy(data.raw["electric-pole"]["medium-electric-pole"]) +my_pole.name = "bi-power-to-rail-pole" +my_pole.icon = ICONPATH .. "electric-to-rail.png" +my_pole.icon_size = 64 +my_pole.icons = { + { + icon = ICONPATH .. "electric-to-rail.png", + icon_size = 64, + } +} +my_pole.icon_mipmaps = 1 +my_pole.minable = {mining_time = 1, result = "bi-power-to-rail-pole"} +--~ my_pole.maximum_wire_distance = 4 +my_pole.maximum_wire_distance = BioInd.POWER_TO_RAIL_WIRE_DISTANCE +my_pole.supply_area_distance = 3.5 -- 3 doesn't look right, 2.5 is too small +my_pole.pictures.tint = {r = 183/255, g = 125/255, b = 62/255, a = 1} +data:extend({my_pole}) diff --git a/Bio_Industries_2/prototypes/Wood_Products/item.lua b/Bio_Industries_2/prototypes/Wood_Products/item.lua new file mode 100644 index 0000000..5485d03 --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/item.lua @@ -0,0 +1,204 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +data:extend({ + + --- Big Wooden Electric Pole + { + type = "item", + name = "bi-wooden-pole-big", + localised_name = {"entity-name.bi-wooden-pole-big"}, + localised_description = {"entity-description.bi-wooden-pole-big"}, + icon = ICONPATH .. "big-wooden-pole.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "big-wooden-pole.png", + icon_size = 64, + } + }, + subgroup = "energy-pipe-distribution", + order = "a[energy]-b[small-electric-pole]", + place_result = "bi-wooden-pole-big", + fuel_value = "14MJ", + fuel_category = "chemical", + stack_size = 50 + }, + + --- Huge Wooden Pole + { + type = "item", + name = "bi-wooden-pole-huge", + localised_name = {"entity-name.bi-wooden-pole-huge"}, + localised_description = {"entity-description.bi-wooden-pole-huge"}, + icon = ICONPATH .. "huge-wooden-pole.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "huge-wooden-pole.png", + icon_size = 64, + } + }, + subgroup = "energy-pipe-distribution", + order = "a[energy]-d[big-electric-pole]", + place_result = "bi-wooden-pole-huge", + fuel_value = "90MJ", + fuel_category = "chemical", + stack_size = 50 + }, + + -- Wooden Fence + { + type = "item", + name = "bi-wooden-fence", + localised_name = {"entity-name.bi-wooden-fence"}, + localised_description = {"entity-description.bi-wooden-fence"}, + icon = ICONPATH .. "wooden-fence.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "wooden-fence.png", + icon_size = 64, + } + }, + subgroup = "defensive-structure", + order = "a-a[stone-wall]-a[wooden-fence]", + place_result = "bi-wooden-fence", + fuel_value = "4MJ", + fuel_category = "chemical", + stack_size = 50 + }, + + --- Wood Rail Planner + { + type = "rail-planner", + name = "bi-rail-wood", + localised_name = {"entity-name.bi-rail-wood"}, + localised_description = {"entity-description.bi-rail-wood"}, + icon = ICONPATH .. "rail-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "rail-wood.png", + icon_size = 64, + } + }, + subgroup = "transport", + order = "a[train-system]-a[rail]", + place_result = "bi-straight-rail-wood", + stack_size = 100, + straight_rail = "bi-straight-rail-wood", + curved_rail = "bi-curved-rail-wood" + }, + + --- Wooden Bridge Rail + { + type = "rail-planner", + name = "bi-rail-wood-bridge", + localised_name = {"entity-name.bi-rail-wood-bridge"}, + localised_description = {"entity-description.bi-rail-wood-bridge"}, + icon = ICONPATH .. "rail-wood-bridge.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "rail-wood-bridge.png", + icon_size = 64, + } + }, + subgroup = "transport", + order = "a[train-system]-aa[rail]", + place_result = "bi-straight-rail-wood-bridge", + stack_size = 100, + straight_rail = "bi-straight-rail-wood-bridge", + curved_rail = "bi-curved-rail-wood-bridge" + }, + + --- Electric Rail Planner + { + type = "rail-planner", + name = "bi-rail-power", + localised_name = {"entity-name.bi-rail-power"}, + localised_description = {"entity-description.bi-rail-power"}, + icon = ICONPATH .. "rail-concrete-power.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "rail-concrete-power.png", + icon_size = 64, + } + }, + subgroup = "transport", + order = "a[train-system]-ab[rail]", + place_result = "bi-straight-rail-power", + stack_size = 100, + straight_rail = "bi-straight-rail-power", + curved_rail = "bi-curved-rail-power" + }, + + --- Wood Pipe + { + type = "item", + name = "bi-wood-pipe", + localised_name = {"entity-name.bi-wood-pipe"}, + localised_description = {"entity-description.bi-wood-pipe"}, + icon = ICONPATH .. "wood_pipe.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "wood_pipe.png", + icon_size = 64, + } + }, + subgroup = "energy-pipe-distribution", + order = "a[pipe]-1a[pipe]", + place_result = "bi-wood-pipe", + fuel_value = "4MJ", + fuel_category = "chemical", + stack_size = 100 + }, + + --- Wood Pipe to Ground + { + type = "item", + name = "bi-wood-pipe-to-ground", + localised_name = {"entity-name.bi-wood-pipe-to-ground"}, + localised_description = {"entity-description.bi-wood-pipe-to-ground"}, + icon = ICONPATH .. "pipe-to-ground-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "pipe-to-ground-wood.png", + icon_size = 64, + } + }, + subgroup = "energy-pipe-distribution", + order = "a[pipe]-1b[pipe-to-ground]", + place_result = "bi-wood-pipe-to-ground", + fuel_value = "20MJ", + fuel_category = "chemical", + stack_size = 50 + }, + + + ---- Power pole to connect Rail to Power Grid + { + type = "item", + name = "bi-power-to-rail-pole", + localised_name = {"entity-name.bi-power-to-rail-pole"}, + localised_description = {"entity-description.bi-power-to-rail-pole"}, + icon = ICONPATH .. "electric-to-rail.png", + icon_size = 64, + icon_mipmaps = 1, + icons = { + { + icon = ICONPATH .. "electric-to-rail.png", + icon_size = 64, + } + }, + subgroup = "transport", + order = "a[train-system]-ac[rail]", + place_result = "bi-power-to-rail-pole", + stack_size = 50 + }, +}) diff --git a/Bio_Industries_2/prototypes/Wood_Products/pipes.lua b/Bio_Industries_2/prototypes/Wood_Products/pipes.lua new file mode 100644 index 0000000..ce4358f --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/pipes.lua @@ -0,0 +1,208 @@ +--~ local BioInd = require('common')('Bio_Industries') + +--~ local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +local pipes_sheet = { + straight_vertical_single = { + number = 11, + position = {x = 0, y = 0}, + size = {x = 8, y = 8}, + }, + + ending_right = { + number = 12, + position = {x = 8, y = 0}, + size = {x = 6, y = 8}, + shift = {x = 1, y = 0}, --where must be center + }, + straight_horizontal_window = { + number = 13, + position = {x = 14, y = 0}, + size = {x = 4, y = 8}, + }, + straight_horizontal = { + number = 14, + position = {x = 18, y = 0}, + size = {x = 4, y = 8}, + }, + ending_left = { + number = 15, + position = {x = 22, y = 0}, + size = {x = 6, y = 8}, + shift = {x = -1, y = 0}, + }, + ending_down = { + number = 21, + position = {x = 0, y = 8}, + size = {x = 8, y = 6}, + shift = {x = 0, y = 1}, + }, + straight_vertical_window = { + number = 31, + position = {x = 0, y = 14}, + size = {x = 8, y = 4}, + }, + straight_vertical = { + number = 41, + position = {x = 0, y = 18}, + size = {x = 8, y = 4}, + }, + ending_up = { + number = 51, + position = {x = 0, y = 22}, + size = {x = 8, y = 6}, + shift = {x = 0, y = -1}, + }, + corner_down_right = { + number = 22, + position = {x = 8, y = 8}, + size = {x = 6, y = 6}, + shift = {x = 1, y = 1}, + }, + t_down = { + number = 23, + position = {x = 14, y = 8}, + size = {x = 4, y = 6}, + shift = {x = 0, y = 1}, + }, + corner_down_left = { + number = 24, + position = {x = 18, y = 8}, + size = {x = 6, y = 6}, + shift = {x = -1, y = 1}, + }, + t_right = { + number = 32, + position = {x = 8, y = 14}, + size = {x = 6, y = 4}, + shift = {x = 1, y = 0}, + }, + cross = { + number = 33, + position = {x = 14, y = 14}, + size = {x = 4, y = 4}, + }, + t_left = { + number = 34, + position = {x = 18, y = 14}, + size = {x = 6, y = 4}, + shift = {x = -1, y = 0}, + }, + corner_up_right = { + number = 42, + position = {x = 8, y = 18}, + size = {x = 6, y = 6}, + shift = {x = 1, y = -1}, + }, + t_up = { + number = 43, + position = {x = 14, y = 18}, + size = {x = 4, y = 6}, + shift = {x = 0, y = -1}, + }, + corner_up_left = { + number = 44, + position = {x = 18, y = 18}, + size = {x = 6, y = 6}, + shift = {x = -1, y = -1}, + }, + + --data.raw[pipe-to-ground][pipe-to-ground].pictures.up + down = { + number = 25, + position = {x = 24, y = 8}, + size = {x = 8, y = 6}, + shift = {x = 0, y = 1}, + }, + up = { + number = 35, + position = {x = 24, y = 14}, + size = {x = 8, y = 6}, + shift = {x = 0, y = -1}, -- not 26 + }, + right = { + number = 52, + position = {x = 8, y = 24}, + size = {x = 6, y = 8}, + shift = {x = 1, y = 0}, + }, + left = { + number = 53, + position = {x = 14, y = 24}, + size = {x = 6, y = 8}, + shift = {x = -1, y = 0}, + } +} + +local sheet_path = "__Bio_Industries__/graphics/entities/wood_products/wood_pipe/" +local sheet_name = "pipe_sheet.png" + +function change_graphics (was_picture, sheet_element, quality) + local picture = {} + local k = 1 + if not sheet_element.shift then + sheet_element.shift = {x = 0, y = 0} + end + if (quality == "hq") and (was_picture.hr_version) then + --BioInd.writeDebug("hq") + picture = was_picture.hr_version + k = 2 + else + --BioInd.writeDebug("lq") + picture = was_picture + k = 1 + end + --BioInd.writeDebug("%s Quality: %s", {sheet_element.number, quality}) + + if not (picture) then + return + end + + local size = sheet_element.size + if type(size) == "number" then + size = {x = size, y = size} + elseif type(size) == "table" and not (size.x and size.y) then + size = {x = size[1], y = size[2]} + end + + picture.filename = sheet_path .. quality .. "_" .. sheet_name + --~ picture.width = 8 * k * size.x + --~ picture.height = 8 * k * size.y + picture.size = {8 * k * size.x, 8 * k * size.y} + picture.scale = 1/k + picture.x = 8 * k * (sheet_element.position.x or sheet_element.position[1]) + picture.y = 8 * k * (sheet_element.position.y or sheet_element.position[2]) + picture.shift = {} + --picture.shift.x = -8/32 * k * sheet_element.shift.x + --picture.shift.y = -8/32 * k * sheet_element.shift.y + picture.shift.x = -8/32 * (sheet_element.shift.x or sheet_element.shift[1]) + picture.shift.y = -8/32 * (sheet_element.shift.y or sheet_element.shift[2]) + --BioInd.writeDebug("%s Quality: %s - Success", {sheet_element.number, quality}) +end + + +-------------------------------pipes +--local pipe_pictures = data.raw.pipe.pipe.pictures +local pipe_pictures = data.raw.pipe["bi-wood-pipe"].pictures +for i, was_picture in pairs (pipe_pictures) do + for j, sheet_element in pairs (pipes_sheet) do + if i == j then + --BioInd.writeDebug("%s", {i})) + change_graphics (was_picture, sheet_element, "hq") + change_graphics (was_picture, sheet_element, "lq") + end + end +end + +--------------------------------underground pipes +local pipe_to_ground_pictures = data.raw["pipe-to-ground"]["bi-wood-pipe-to-ground"].pictures + +for i, was_picture in pairs (pipe_to_ground_pictures) do + for j, sheet_element in pairs (pipes_sheet) do + if i == j then + --BioInd.writeDebug("%s", {i}) + change_graphics (was_picture, sheet_element, "hq") + change_graphics (was_picture, sheet_element, "lq") + end + end +end diff --git a/Bio_Industries_2/prototypes/Wood_Products/rail_updates.lua b/Bio_Industries_2/prototypes/Wood_Products/rail_updates.lua new file mode 100644 index 0000000..060d5a4 --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/rail_updates.lua @@ -0,0 +1,96 @@ +local BioInd = require('common')('Bio_Industries') + + +local vanilla, rail_group, bridge_group + +-- "Transport drones" ruins rails by removing object-layer from the collision mask. That +-- causes problems for our "Wooden rail bridges" as they will also pass through cliffs. +local BI_rails = { + ["bi-straight-rail-wood"] = true, + ["bi-curved-rail-wood"] = true, + ["bi-straight-rail-power"] = true, + ["bi-curved-rail-power"] = true, + --~ ["bi-straight-rail-wood-bridge"] = true, + --~ ["bi-curved-rail-wood-bridge"] = true, +} + +-- We may need to adjust the collision_masks of bridges, so we want to be able to check +-- if all layers are set. Let's make a lookup list of the layers we need for bridges! +local bridge_collision_layers = {} +for _, layer in ipairs(BioInd.RAIL_BRIDGE_MASK) do + bridge_collision_layers[layer] = true +end + +-- Name patterns for bridges from other mods should be inserted here. +local bridge_name_patterns = { + "bi%-.+-rail%-wood%-bridge", + -- Beautiful Bridge Railway + "bbr%-[^-]+%-rail%-.+", +} + +-- Make lookup lists of all bridges in the game! +local bridges = { + curved = {}, + straight = {}, +} +for f, form in ipairs({"straight", "curved"}) do + for r, rail in pairs(data.raw[form .. "-rail"]) do + for p, pattern in ipairs(bridge_name_patterns) do + if r:match(pattern) then + bridges[form][r] = true + end + end + end +end +BioInd.show("bridges", bridges) + +local mask, found_layer + +for f, form in ipairs({"straight", "curved"}) do + + vanilla = data.raw[form .. "-rail"][form .. "-rail"] + rail_group = vanilla and vanilla.fast_replaceable_group or "rail" + vanilla.fast_replaceable_group = rail_group + vanilla.collision_mask = BioInd.RAIL_MASK + + for rail_name, rail in pairs(data.raw[form .. "-rail"]) do + -- Look for our own rails + if BI_rails[rail_name] then + -- Add collision masks to our rails + rail.collision_mask = BioInd.RAIL_MASK + BioInd.writeDebug("Set collision_mask of %s to %s", {rail_name, rail.collision_mask}) + + -- Add fast_replaceable_group to our rails + rail.fast_replaceable_group = rail_group + end + + -- Look for all known bridges + if bridges[form][rail_name] then +BioInd.show("Bridge found", rail_name) + + rail.collision_mask = rail.collision_mask or {} + + -- Adjust or create collision mask + for need_layer, _ in pairs(bridge_collision_layers) do + found_layer = false + + for l, layer in ipairs(rail.collision_mask) do + -- Stop if the layer we're looking for already is in the collision mask! + if need_layer == layer then + found_layer = true + break + end + end + -- Add layer to collision mask + if not found_layer then + table.insert(rail.collision_mask, need_layer) + BioInd.writeDebug("Added %s to collision mask of %s", {need_layer, rail_name}) + end + end +BioInd.show("Collision mask", rail.collision_mask) + -- Add fast_replaceable_group to the bridges + rail.fast_replaceable_group = rail_group + end + end + +end diff --git a/Bio_Industries_2/prototypes/Wood_Products/recipe.lua b/Bio_Industries_2/prototypes/Wood_Products/recipe.lua new file mode 100644 index 0000000..cac70de --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/recipe.lua @@ -0,0 +1,691 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +data:extend({ + + --- Big Electric Pole + { + type = "recipe", + name = "bi-wooden-pole-big", + localised_name = {"entity-name.bi-wooden-pole-big"}, + localised_description = {"entity-description.bi-wooden-pole-big"}, + icon = ICONPATH .. "big-wooden-pole.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "big-wooden-pole.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + ingredients = { + {"wood", 5}, + {"small-electric-pole", 2}, + }, + result = "bi-wooden-pole-big", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + ingredients = { + {"wood", 10}, + {"small-electric-pole", 4}, + }, + result = "bi-wooden-pole-big", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "energy-pipe-distribution", + order = "a[energy]-b[small-electric-pole]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + --- Huge Wooden Pole + { + type = "recipe", + name = "bi-wooden-pole-huge", + localised_name = {"entity-name.bi-wooden-pole-huge"}, + localised_description = {"entity-description.bi-wooden-pole-huge"}, + icon = ICONPATH .. "huge-wooden-pole.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "huge-wooden-pole.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + ingredients = { + {"wood", 5}, + {"concrete", 100}, + {"bi-wooden-pole-big", 6}, + }, + result = "bi-wooden-pole-huge", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + ingredients = { + {"wood", 10}, + {"concrete", 150}, + {"bi-wooden-pole-big", 10}, + }, + result = "bi-wooden-pole-huge", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "energy-pipe-distribution", + order = "a[energy]-d[big-electric-pole]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + --- Wooden Fence + { + type = "recipe", + name = "bi-wooden-fence", + localised_name = {"entity-name.bi-wooden-fence"}, + localised_description = {"entity-description.bi-wooden-fence"}, + icon = ICONPATH .. "wooden-fence.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "wooden-fence.png", + icon_size = 64, + } + }, + normal = { + enabled = true, + ingredients = { + {"wood", 2}, + }, + result = "bi-wooden-fence", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = true, + ingredients = { + {"wood", 4}, + }, + result = "bi-wooden-fence", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "defensive-structure", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + --- Wooden Rail + { + type = "recipe", + name = "bi-rail-wood", + localised_name = {"entity-name.bi-rail-wood"}, + localised_description = {"entity-description.bi-rail-wood"}, + icon = ICONPATH .. "rail-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "rail-wood.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + ingredients = { + {"wood", 6}, + {"stone", 1}, + {"steel-plate", 1}, + {"iron-stick", 1}, + }, + result = "bi-rail-wood", + result_count = 2, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + ingredients = { + {"wood", 6}, + {"stone", 1}, + {"steel-plate", 1}, + {"iron-stick", 1}, + }, + result = "bi-rail-wood", + result_count = 1, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "transport", + order = "a[train-system]-a[rail]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + --- Wooden Rail to Concrete Rail + { + type = "recipe", + name = "bi-rail-wood-to-concrete", + icon = ICONPATH .. "rail-wood-to-concrete.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "rail-wood-to-concrete.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + ingredients = { + {"bi-rail-wood", 3}, + {"stone-brick", 10}, + }, + result = "rail", + result_count = 2, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + ingredients = { + {"bi-rail-wood", 2}, + {"stone-brick", 10}, + }, + result = "rail", + result_count = 1, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + subgroup = "transport", + order = "a[train-system]-aa1[rail-upgrade]", + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + }, + + --- Wooden Bridge Rail + { + type = "recipe", + name = "bi-rail-wood-bridge", + localised_name = {"entity-name.bi-rail-wood-bridge"}, + localised_description = {"entity-description.bi-rail-wood-bridge"}, + name = "bi-rail-wood-bridge", + icon = ICONPATH .. "rail-wood-bridge.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "rail-wood-bridge.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + ingredients = { + {"bi-rail-wood", 1}, + {"steel-plate", 1}, + {"wood", 32} + }, + result = "bi-rail-wood-bridge", + result_count = 2, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + ingredients = { + {"bi-rail-wood", 1}, + {"steel-plate", 1}, + {"wood", 32} + }, + result = "bi-rail-wood-bridge", + result_count = 1, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "transport", + order = "a[train-system]-aa[rail]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + --- Power Rail + { + type = "recipe", + name = "bi-rail-power", + localised_name = {"entity-name.bi-rail-power"}, + localised_description = {"entity-description.bi-rail-power"}, + icon = ICONPATH .. "rail-concrete-power.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "rail-concrete-power.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + ingredients = { + {"rail", 2}, + {"copper-cable", 4}, + }, + result = "bi-rail-power", + result_count = 2, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + ingredients = { + {"rail", 1}, + {"copper-cable", 4}, + }, + result = "bi-rail-power", + result_count = 1, + main_product = "", + requester_paste_multiplier = 4, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "transport", + order = "a[train-system]-ab[rail]", + }, + + --- Wood Pipe + { + type = "recipe", + name = "bi-wood-pipe", + localised_name = {"entity-name.bi-wood-pipe"}, + localised_description = {"entity-description.bi-wood-pipe"}, + icon = ICONPATH .. "wood_pipe.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "wood_pipe.png", + icon_size = 64, + } + }, + normal = { + energy_required = 1, + enabled = true, + ingredients = { + {"copper-plate", 1}, + {"wood", 8} + }, + result = "bi-wood-pipe", + result_count = 4, + main_product = "", + requester_paste_multiplier = 15, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + energy_required = 2, + enabled = true, + ingredients = { + {"copper-plate", 1}, + {"wood", 12} + }, + result = "bi-wood-pipe", + result_count = 4, + main_product = "", + requester_paste_multiplier = 15, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "energy-pipe-distribution", + order = "a[pipe]-1a[pipe]", + -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries", + }, + + -- Wood Pipe to Ground + { + type = "recipe", + name = "bi-wood-pipe-to-ground", + localised_name = {"entity-name.bi-wood-pipe-to-ground"}, + localised_description = {"entity-description.bi-wood-pipe-to-ground"}, + icon = ICONPATH .. "pipe-to-ground-wood.png", + icon_size = 64, + icons = { + { + icon = ICONPATH .. "pipe-to-ground-wood.png", + icon_size = 64, + } + }, + normal = { + energy_required = 2, + enabled = true, + ingredients = { + {"copper-plate", 4}, + {"bi-wood-pipe", 5} + }, + result = "bi-wood-pipe-to-ground", + result_count = 2, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + energy_required = 4, + enabled = true, + ingredients = { + {"copper-plate", 5}, + {"bi-wood-pipe", 6} + }, + result = "bi-wood-pipe-to-ground", + result_count = 2, + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "energy-pipe-distribution", + order = "a[pipe]-1b[pipe-to-ground]", + }, + + --- Rail to Power Pole + { + type = "recipe", + name = "bi-power-to-rail-pole", + localised_name = {"entity-name.bi-power-to-rail-pole"}, + localised_description = {"entity-description.bi-power-to-rail-pole"}, + icon = ICONPATH .. "electric-to-rail.png", + icon_size = 64, + icon_mipmaps = 1, + icons = { + { + icon = ICONPATH .. "electric-to-rail.png", + icon_size = 64, + } + }, + normal = { + enabled = false, + ingredients = { + {"copper-cable", 2}, + {"medium-electric-pole", 1}, + }, + result = "bi-power-to-rail-pole", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + expensive = { + enabled = false, + ingredients = { + {"copper-cable", 4}, + {"medium-electric-pole", 1}, + }, + result = "bi-power-to-rail-pole", + main_product = "", + allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Added for 0.18.34/1.1.4 + allow_decomposition = true, -- Added for 0.18.34/1.1.4 + }, + --~ always_show_made_in = true, + --~ allow_decomposition = false, + --~ allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + subgroup = "transport", + order = "a[train-system]-ac[rail]", + }, + + --~ --- Large Wooden Chest + --~ { + --~ type = "recipe", + --~ name = "bi-wooden-chest-large", + --~ localised_name = {"entity-name.bi-wooden-chest-large"}, + --~ localised_description = {"entity-description.bi-wooden-chest-large"}, + --~ icon = ICONPATH .. "large_wooden_chest_icon.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "large_wooden_chest_icon.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ normal = { + --~ energy_required = 2, + --~ enabled = false, + --~ ingredients = { + --~ {"copper-plate", 16}, + --~ {"resin", 24}, + --~ {"wooden-chest", 8} + --~ }, + --~ result = "bi-wooden-chest-large", + --~ result_count = 1, + --~ main_product = "", + --~ requester_paste_multiplier = 4, + --~ allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + --~ always_show_made_in = false, -- Added for 0.18.34/1.1.4 + --~ allow_decomposition = true, -- Added for 0.18.34/1.1.4 + --~ }, + --~ expensive = { + --~ energy_required = 4, + --~ enabled = false, + --~ ingredients = { + --~ {"copper-plate", 24}, + --~ {"resin", 32}, + --~ {"wooden-chest", 8} + --~ }, + --~ result = "bi-wooden-chest-large", + --~ result_count = 1, + --~ main_product = "", + --~ requester_paste_multiplier = 4, + --~ allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + --~ always_show_made_in = false, -- Added for 0.18.34/1.1.4 + --~ allow_decomposition = true, -- Added for 0.18.34/1.1.4 + --~ }, + --~ -- always_show_made_in = true, + --~ -- allow_decomposition = false, + --~ allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + --~ always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + --~ allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + --~ subgroup = "storage", + --~ order = "a[items]-aa[wooden-chest]", + --~ }, + + --~ --- Huge Wooden Chest + --~ { + --~ type = "recipe", + --~ name = "bi-wooden-chest-huge", + --~ localised_name = {"entity-name.bi-wooden-chest-huge"}, + --~ localised_description = {"entity-description.bi-wooden-chest-huge"}, + --~ icon = ICONPATH .. "huge_wooden_chest_icon.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "huge_wooden_chest_icon.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ normal = { + --~ energy_required = 2, + --~ enabled = false, + --~ ingredients = { + --~ {"iron-stick", 32}, + --~ {"stone-brick", 32}, + --~ {"bi-wooden-chest-large", 16} + --~ }, + --~ result = "bi-wooden-chest-huge", + --~ result_count = 1, + --~ main_product = "", + --~ requester_paste_multiplier = 4, + --~ allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + --~ always_show_made_in = false, -- Added for 0.18.34/1.1.4 + --~ allow_decomposition = true, -- Added for 0.18.34/1.1.4 + --~ }, + --~ expensive = { + --~ energy_required = 4, + --~ enabled = false, + --~ ingredients = { + --~ {"iron-stick", 48}, + --~ {"stone-brick", 48}, + --~ {"bi-wooden-chest-large", 16} + --~ }, + --~ result = "bi-wooden-chest-huge", + --~ result_count = 1, + --~ main_product = "", + --~ requester_paste_multiplier = 4, + --~ allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + --~ always_show_made_in = false, -- Added for 0.18.34/1.1.4 + --~ allow_decomposition = true, -- Added for 0.18.34/1.1.4 + --~ }, + --~ -- always_show_made_in = true, + --~ -- allow_decomposition = false, + --~ allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + --~ always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + --~ allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + --~ subgroup = "storage", + --~ order = "a[items]-ab[wooden-chest]", + --~ }, + + --~ --- Giga Wooden Chest + --~ { + --~ type = "recipe", + --~ name = "bi-wooden-chest-giga", + --~ localised_name = {"entity-name.bi-wooden-chest-giga"}, + --~ localised_description = {"entity-description.bi-wooden-chest-giga"}, + --~ icon = ICONPATH .. "giga_wooden_chest_icon.png", + --~ icon_size = 64, + --~ icons = { + --~ { + --~ icon = ICONPATH .. "giga_wooden_chest_icon.png", + --~ icon_size = 64, + --~ } + --~ }, + --~ normal = { + --~ energy_required = 4, + --~ enabled = false, + --~ ingredients = { + --~ {"steel-plate", 32}, + --~ {"concrete", 32}, + --~ {"bi-wooden-chest-huge", 16} + --~ }, + --~ result = "bi-wooden-chest-giga", + --~ result_count = 1, + --~ main_product = "", + --~ requester_paste_multiplier = 4, + --~ allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + --~ always_show_made_in = false, -- Added for 0.18.34/1.1.4 + --~ allow_decomposition = true, -- Added for 0.18.34/1.1.4 + --~ }, + --~ expensive = { + --~ energy_required = 6, + --~ enabled = false, + --~ ingredients = { + --~ {"steel-plate", 48}, + --~ {"concrete", 48}, + --~ {"bi-wooden-chest-huge", 16} + --~ }, + --~ main_product = "", + --~ result = "bi-wooden-chest-giga", + --~ result_count = 1, + --~ main_product = "", + --~ requester_paste_multiplier = 4, + --~ allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + --~ always_show_made_in = false, -- Added for 0.18.34/1.1.4 + --~ allow_decomposition = true, -- Added for 0.18.34/1.1.4 + --~ }, + --~ -- always_show_made_in = true, + --~ -- allow_decomposition = false, + --~ allow_as_intermediate = false, -- Added for 0.18.34/1.1.4 + --~ always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + --~ allow_decomposition = true, -- Changed for 0.18.34/1.1.4 + --~ subgroup = "storage", + --~ order = "a[items]-ac[wooden-chest]", + --~ }, + }) diff --git a/Bio_Industries_2/prototypes/Wood_Products/tint_rails_remnants_function.lua b/Bio_Industries_2/prototypes/Wood_Products/tint_rails_remnants_function.lua new file mode 100644 index 0000000..a87c438 --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/tint_rails_remnants_function.lua @@ -0,0 +1,92 @@ +local BioInd = require('common')('Bio_Industries') + +--~ local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +function find_ties (table_name, table, entity_type) + if not (type(table) == "table") then + return + end + -- only tables + if table_name == "ties" then + -- we have found ties + return true + end + for i, v in pairs (table) do + -- probably lower can be ties + local cash = find_ties(i, v, entity_type) + -- if we have found ties then + if cash then + local new_name = string.gsub(table_name, '_', '-') -- ohh! All names have '-' in the name + global[entity_type][#global[entity_type]+1] = {name = new_name, table = v} + end + end +end + + +------------------------------------ +------------------------------------ rails +------------------------------------ + + +function set_tint_to_rails (rails_entities, tint) + -- two tables: + -- first table is a list of elements + -- second is a tint + --local wood_tint = {r = 183/255, g = 125/255, b = 62/255, a = 1} + --local concrete_tint = {r = 183/255, g = 183/255, b = 183/255, a = 1} + --~ local tint = tint + local sheet_path_ties = "__Bio_Industries__/graphics/entities/wood_products/rails/ties/" + local rails_entities = rails_entities or -- or vanilla + { + data.raw["straight-rail"]["straight-rail"], + data.raw["curved-rail"]["curved-rail"] + } + global = global or {} + global["rails"] = {} + --BioInd.writeDebug("Start rails") --------------------- + for i, v in pairs (rails_entities) do + local r_table = serpent.block(find_ties(i, v, "rails")) + end + --BioInd.writeDebug("global table of rails is complete: %s", {#global.rails}) + for i, handler in pairs (global.rails) do + --handler.name = "straight_rail_horizontal" + local was_filename = handler.table.filename + handler.table.filename = sheet_path_ties .. handler.name .. "-ties.png" + handler.table.hr_version.filename = sheet_path_ties .. "hr-" .. handler.name .. "-ties.png" + BioInd.writeDebug('Replaced: %s ===>>> %s', {was_filename, handler.table.filename}) + handler.table.tint = tint + handler.table.hr_version.tint = tint -- oops, i've forgot it, added in 0.0.3 + end + --BioInd.writeDebug("End rails") --------------------- +end + + +------------------------------------ +------------------------------------ remnants +------------------------------------ + +function set_tint_to_remnants(remnants_entities, tint) -- tha same function, actually +--~ local tint = tint +local sheet_path_ties = "__Bio_Industries__/graphics/entities/wood_products/rails/ties/" +local remnants_entities = remnants_entities or { -- or vanilla { + data.raw["rail-remnants"]["straight-rail-remnants"], + data.raw["rail-remnants"]["curved-rail-remnants"] +} +global = global or {} +global["remnants"] = {} +--BioInd.writeDebug("Start remnants") --------------------- +for i, v in pairs (remnants_entities) do + local r_table = serpent.block(find_ties(i, v, "remnants")) +end +--BioInd.writeDebug("global table of remnants is complete: %s", {#global.remnants}) +for i, handler in pairs (global.remnants) do + --remnants.name = "straight_rail_horizontal" + local was_filename = handler.table.filename + handler.table.filename = sheet_path_ties .. handler.name .. "-ties-remnants.png" + handler.table.hr_version.filename = sheet_path_ties .. "hr-" .. handler.name .. "-ties-remnants.png" + BioInd.writeDebug('Replaced: %s ===>>> %s', {was_filename, handler.table.filename}) + handler.table.tint = tint + handler.table.hr_version.tint = tint -- oops, i'mm forgot it, added in 0.0.3 +end +--BioInd.writeDebug("End remnants") --------------------- +end diff --git a/Bio_Industries_2/prototypes/Wood_Products/update_bridge_rails_remnants.lua b/Bio_Industries_2/prototypes/Wood_Products/update_bridge_rails_remnants.lua new file mode 100644 index 0000000..afbddc2 --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/update_bridge_rails_remnants.lua @@ -0,0 +1,77 @@ +--~ local BioInd = require('common')('Bio_Industries') + +--~ local ICONPATH = BioInd.modRoot .. "/graphics/entities/wood_products/rails/remnants/" +--~ local PIX + +--~ local rails_c_remnants = data.raw["rail-remnants"]["straight-rail-remnants-wood-bridge"] +--~ rails_c_remnants.localised_name = {"entity-name.rail-remnants-wood-bridge"} +--~ rails_c_remnants.localised_description = {"entity-description.rail-remnants-wood-bridge"} + +--~ PIX = rails_c_remnants.pictures + +--~ PIX.straight_rail_horizontal.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_horizontal.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.straight_rail_vertical.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_vertical.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.straight_rail_diagonal_left_top.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_diagonal_left_top.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.straight_rail_diagonal_right_top.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_diagonal_right_top.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.straight_rail_diagonal_right_bottom.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_diagonal_right_bottom.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.straight_rail_diagonal_left_bottom.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_diagonal_left_bottom.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" + +--~ PIX.straight_rail_horizontal.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_horizontal.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.straight_rail_vertical.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_vertical.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.straight_rail_diagonal_left_top.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_diagonal_left_top.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.straight_rail_diagonal_right_top.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_diagonal_right_top.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.straight_rail_diagonal_right_bottom.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_diagonal_right_bottom.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.straight_rail_diagonal_left_bottom.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.straight_rail_diagonal_left_bottom.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" + + + +--~ local rails_curved_c_remnants = data.raw["rail-remnants"]["curved-rail-remnants-wood-bridge"] +--~ rails_curved_c_remnants.localised_name = {"entity-name.rail-remnants-wood-bridge"} +--~ rails_curved_c_remnants.localised_description = {"entity-description.rail-remnants-wood-bridge"} +--~ PIX = rails_curved_c_remnants.pictures + +--~ PIX.curved_rail_vertical_left_top.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_vertical_left_top.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_vertical_left_bottom.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_vertical_left_bottom.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_vertical_right_top.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_vertical_right_top.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_vertical_right_bottom.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_vertical_right_bottom.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_horizontal_left_top.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_horizontal_left_top.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_horizontal_right_top.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_horizontal_right_top.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_horizontal_right_bottom.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_horizontal_right_bottom.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_horizontal_left_bottom.stone_path_background.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_horizontal_left_bottom.stone_path_background.hr_version.filename = ICONPATH .. "hr-remnants.png" + +--~ PIX.curved_rail_vertical_left_top.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_vertical_left_top.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_vertical_left_bottom.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_vertical_left_bottom.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_vertical_right_top.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_vertical_right_top.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_vertical_right_bottom.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_vertical_right_bottom.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_horizontal_left_top.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_horizontal_left_top.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_horizontal_right_top.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_horizontal_right_top.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_horizontal_right_bottom.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_horizontal_right_bottom.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" +--~ PIX.curved_rail_horizontal_left_bottom.stone_path.filename = ICONPATH .. "remnants.png" +--~ PIX.curved_rail_horizontal_left_bottom.stone_path.hr_version.filename = ICONPATH .. "hr-remnants.png" diff --git a/Bio_Industries_2/prototypes/Wood_Products/wooden_rail_bridge_update.lua b/Bio_Industries_2/prototypes/Wood_Products/wooden_rail_bridge_update.lua new file mode 100644 index 0000000..6d936db --- /dev/null +++ b/Bio_Industries_2/prototypes/Wood_Products/wooden_rail_bridge_update.lua @@ -0,0 +1,82 @@ +local BioInd = require('common')('Bio_Industries') + +local ICONPATH = BioInd.modRoot .. "/graphics/entities/wood_products/rails/" + +--~ local type = { + --~ straight_rail_horizontal = { prefix = "straight-rail", dir = "horizontal" }, + --~ straight_rail_vertical = { prefix = "straight-rail", dir = "vertical" }, + --~ straight_rail_diagonal_left_top = { prefix = "straight-rail", dir = "diagonal-left-top" }, + --~ straight_rail_diagonal_right_top = { prefix = "straight-rail", dir = "diagonal-right-top" }, + --~ straight_rail_diagonal_left_bottom = { prefix = "straight-rail", dir = "diagonal-left-bottom" }, + --~ straight_rail_diagonal_right_bottom = { prefix = "straight-rail", dir = "diagonal-right-bottom" }, + + --~ curved_rail_horizontal_left_bottom = { prefix = "curved-rail", dir = "horizontal-left-bottom" }, + --~ curved_rail_horizontal_right_bottom = { prefix = "curved-rail", dir = "horizontal-right-bottom" }, + --~ curved_rail_horizontal_left_top = { prefix = "curved-rail", dir = "horizontal-left-top" }, + --~ curved_rail_horizontal_right_top = { prefix = "curved-rail", dir = "horizontal-right-top" }, + --~ curved_rail_vertical_left_bottom = { prefix = "curved-rail", dir = "vertical-left-bottom" }, + --~ curved_rail_vertical_right_bottom = { prefix = "curved-rail", dir = "vertical-right-bottom" }, + --~ curved_rail_vertical_left_top = { prefix = "curved-rail", dir = "vertical-left-top" }, + --~ curved_rail_vertical_right_top = { prefix = "curved-rail", dir = "vertical-right-top" } +--~ } + +--~ for class, info in pairs(type) do + --~ local proto = data.raw[info.prefix] + --~ data.raw[info.prefix]["bi-" .. info.prefix .. "-wood-bridge"].pictures[class].stone_path.hr_version.filename = ICONPATH .. info.prefix .. "-bridge/hr-" .. info.prefix .. "-" .. info.dir .. "-stone-path.png" + --~ data.raw[info.prefix]["bi-" .. info.prefix .. "-wood-bridge"].pictures[class].stone_path_background.hr_version.filename = ICONPATH .. info.prefix .. "-bridge/hr-" .. info.prefix .. "-" .. info.dir .. "-stone-path-background.png" + --~ data.raw[info.prefix]["bi-" .. info.prefix .. "-wood-bridge"].pictures[class].stone_path.filename = ICONPATH ..info.prefix .. "-bridge/" .. info.prefix .. "-" .. info.dir .. "-stone-path.png" + --~ data.raw[info.prefix]["bi-" .. info.prefix .. "-wood-bridge"].pictures[class].stone_path_background.filename = ICONPATH .. info.prefix .. "-bridge/" .. info.prefix .. "-" .. info.dir .. "-stone-path-background.png" +--~ end + +local pix = { + "straight_rail_horizontal", + "straight_rail_vertical", + "straight_rail_diagonal_left_bottom", "straight_rail_diagonal_left_top", + "straight_rail_diagonal_right_bottom", "straight_rail_diagonal_right_top", + + "curved_rail_horizontal_left_bottom", "curved_rail_horizontal_left_top", + "curved_rail_horizontal_right_bottom", "curved_rail_horizontal_right_top", + "curved_rail_vertical_left_bottom", "curved_rail_vertical_left_top", + "curved_rail_vertical_right_bottom", "curved_rail_vertical_right_top", +} +local PATH, FILE, HR_FILE +local rail_type, direction, img, proto + +for p, pic in ipairs(pix) do + -- Extract rail_type and direction from the string and replace underscores with "-" + rail_type = pic:match("^([^_]+_rail)_.+$"):gsub("_", "-") + direction = pic:match("^.+_rail_(.+)$"):gsub("_", "-") +BioInd.show("rail_type", rail_type) +BioInd.show("direction", direction) + + -- Rails + PATH = ICONPATH .. rail_type .. "-bridge" + FILE = PATH .. "/" .. rail_type .. "-" .. direction .. "-" + HR_FILE = PATH .. "/hr-" .. rail_type .. "-" .. direction .. "-" + + img = data.raw[rail_type]["bi-" .. rail_type .. "-wood-bridge"].pictures[pic] + + img.stone_path.filename = FILE .. "stone-path.png" + img.stone_path.hr_version.filename = HR_FILE .. "stone-path.png" + + img.stone_path_background.filename = FILE.."stone-path-background.png" + img.stone_path_background.hr_version.filename = HR_FILE.."stone-path-background.png" + + -- Remnants + img = data.raw["rail-remnants"][rail_type .. "-remnants-wood-bridge"].pictures[pic] + + img.stone_path.filename = ICONPATH .. "remnants/remnants.png" + img.stone_path.hr_version.filename = ICONPATH .. "remnants/hr-remnants.png" + + img.stone_path_background.filename = ICONPATH .. "remnants/remnants.png" + img.stone_path_background.hr_version.filename = ICONPATH .. "remnants/hr-remnants.png" +end + +-- Localize remnants! +local remnants +for f, form in ipairs({"straight", "curved"}) do + remnants = data.raw["rail-remnants"][form .. "-rail-remnants-wood-bridge"] + + remnants.localised_name = {"entity-name.rail-remnants-wood-bridge"} + remnants.localised_description = {"entity-description.rail-remnants-wood-bridge"} +end diff --git a/Bio_Industries_2/prototypes/category.lua b/Bio_Industries_2/prototypes/category.lua new file mode 100644 index 0000000..f0a900b --- /dev/null +++ b/Bio_Industries_2/prototypes/category.lua @@ -0,0 +1,256 @@ +--~ local BioInd = require('common')('Bio_Industries') + +data:extend( + { + + { + type = "item-group", + name = "bio-industries", + order = "vaa-a", + inventory_order = "v-a", + icon = "__Bio_Industries__/graphics/technology/BioIndustries_64.png", + icon_size = 64, + icons = { + { + icon = "__Bio_Industries__/graphics/technology/BioIndustries_64.png", + icon_size = 64, + } + }, + }, + + { + type = "item-subgroup", + name = "bio-bio-farm", + group = "bio-industries", + order = "a-a", + }, + + + --- Bio Farm and Nursery + { + type = "item-subgroup", + name = "bio-bio-farm-fluid-1", + group = "bio-industries", + order = "a-a", + }, + { + type = "item-subgroup", + name = "bio-bio-farm-fluid-2", + group = "bio-industries", + order = "a-b", + }, + { + type = "item-subgroup", + name = "bio-bio-farm-fluid-3", + group = "bio-industries", + order = "a-c", + }, + { + type = "item-subgroup", + name = "bio-bio-farm-fluid-entity", + group = "bio-industries", + order = "a-d", + }, + + ---- Solar Entities + { + type = "item-subgroup", + name = "bio-bio-solar-entity", + group = "bio-industries", + order = "a-solar", + }, + + + --- Coals and Cokery and Crushed Stone and Crusher + { + type = "item-subgroup", + name = "bio-bio-farm-raw", + group = "bio-industries", + order = "b-a", + }, + { + type = "item-subgroup", + name = "bio-bio-farm-raw-entity", + group = "bio-industries", + order = "b-b", + }, + + ----- Other Int Products + { + type = "item-subgroup", + name = "bio-bio-farm-intermediate-product", + group = "bio-industries", + order = "c-a", + }, + + ---- Arboretum + { + type = "item-subgroup", + name = "bio-arboretum-fluid", + group = "bio-industries", + order = "c-c", + }, + { + type = "item-subgroup", + name = "bio-arboretum-fluid-entity", + group = "bio-industries", + order = "c-d", + }, + + --- Bio Reactor and Bio-Mass + { + type = "item-subgroup", + name = "bio-bio-fuel-fluid", + group = "bio-industries", + order = "d-a-1" + }, + { + type = "item-subgroup", + name = "bio-bio-fuel-fluid-entity", + group = "bio-industries", + order = "d-a-2" + }, + ---- Bio Fuel Solids + { + type = "item-subgroup", + name = "bio-bio-fuel-solid", + group = "bio-industries", + order = "e" + }, + ---- Bio Fuel OTHER + { + type = "item-subgroup", + name = "bio-bio-fuel-other", + group = "bio-industries", + order = "f" + }, + + ---- Garden + { + type = "item-subgroup", + name = "bio-bio-gardens-fluid", + group = "bio-industries", + order = "x-a" + }, + { + type = "item-subgroup", + name = "bio-bio-gardens-fluid-entity", + group = "bio-industries", + order = "x-b" + }, + + { + type = "item-subgroup", + name = "bio-transport", + group = "bio-industries", + order = "e-a", + }, + { + type = "item-subgroup", + name = "bio-logistic-robots", + group = "bio-industries", + order = "f-a", + }, + { + type = "item-subgroup", + name = "bio-logistic-roboport", + group = "bio-industries", + order = "f-b", + }, + + + { + type = "item-subgroup", + name = "bio-tool", + group = "production", + order = "a-1", + }, + { + type = "item-subgroup", + name = "bio-energy-boiler", + group = "production", + order = "b-a" + }, + { + type = "item-subgroup", + name = "bio-energy-steam-engine", + group = "production", + order = "b-b" + }, + { + type = "item-subgroup", + name = "bio-energy-solar-panel", + group = "production", + order = "b-c" + }, + { + type = "item-subgroup", + name = "bio-energy-accumulator", + group = "production", + order = "b-d" + }, + { + type = "item-subgroup", + name = "bio-extraction-machine", + group = "production", + order = "c-a", + }, + { + type = "item-subgroup", + name = "bio-pump", + group = "production", + order = "c-b", + }, + { + type = "item-subgroup", + name = "bio-smelting-machine", + group = "production", + order = "d-a", + }, + { + type = "item-subgroup", + name = "bio-production-machine", + group = "production", + order = "e-a", + }, + { + type = "item-subgroup", + name = "bio-assembly-machine", + group = "production", + order = "e-b", + }, + { + type = "item-subgroup", + name = "bio-chemical-machine", + group = "production", + order = "e-c", + }, + { + type = "item-subgroup", + name = "bio-electrolyser-machine", + group = "production", + order = "e-d", + }, + { + type = "item-subgroup", + name = "bio-refinery-machine", + group = "production", + order = "e-e", + }, + + ---- Ammo for Bio Turrets/Bio Cannon + { + type = "item-subgroup", + name = "bi-ammo", + group = "combat", + order = "b-[bi-ammo]" + }, + + --[[ + { + type = "recipe-category", + name = "crafting-machine" + }, + ]] + } +) diff --git a/Bio_Industries_2/prototypes/compound_entities/hidden_entities.lua b/Bio_Industries_2/prototypes/compound_entities/hidden_entities.lua new file mode 100644 index 0000000..e3f5c2c --- /dev/null +++ b/Bio_Industries_2/prototypes/compound_entities/hidden_entities.lua @@ -0,0 +1,239 @@ +-- Add functions that are also used in other files (debugging output etc.) +local BioInd = require('common')('Bio_Industries') +--~ local ICONPATH = BioInd.modRoot .. "/graphics/icons/" +local ICONPATH = "__core__/graphics/" + +local HIDDENPATH = BioInd.modRoot .. "/prototypes/compound_entities/" +BioInd.writeDebug("Entered prototypes.hidden_entities.lua of \"%s\".", {BioInd.modName}) + +------------------------------------------------------------------------------------ +-- Keep a list of all hidden entities we create, so we can modify them easily in -- +-- data-updates.lua or data-final-fixes.lua. -- +------------------------------------------------------------------------------------ +BI.hidden_entities = {} +BI.hidden_entities.types = {} + +local no_sound = { + filename = "__base__/sound/silence-1sec.ogg", + +} +------------------------------------------------------------------------------------ +-- Some common properties that should be used by all hidden entity types -- +------------------------------------------------------------------------------------ +BI.hidden_entities.flags = { + "hidden", + "hide-alt-info", + "no-copy-paste", + "not-blueprintable", + "not-deconstructable", + "not-flammable", + "not-in-kill-statistics", + "not-on-map", + "not-repairable", + --~ "not-selectable-in-game", + "not-upgradable", + "placeable-off-grid", +} +if not BioInd.is_debug then + table.insert(BI.hidden_entities.flags, "not-selectable-in-game") +end + +BI.hidden_entities.collision_mask = BioInd.is_debug and {"ground-tile"} or {} +BI.hidden_entities.collision_box = {{0, 0}, {0, 0}} +BI.hidden_entities.selection_box = BioInd.is_debug and + {{-0.5, -0.5}, {0.5, 0.5}} or + {{0, 0}, {0, 0}} +BI.hidden_entities.selectable_in_game = BioInd.is_debug +BI.hidden_entities.max_health = 1 + +BI.hidden_entities.icon = ICONPATH .. "empty.png" +BI.hidden_entities.icon_size = 1 +BI.hidden_entities.icon_mipmaps = 0 + +BI.hidden_entities.icons = { + { + icon = BI.hidden_entities.icon, + icon_size = BI.hidden_entities.icon_size, + icon_mipmaps = BI.hidden_entities.icon_mipmaps + } +} +BI.hidden_entities.picture = { + --~ filename = ICONPATH .. "blank.png", + filename = ICONPATH .. "empty.png", + priority = "low", + size = 1, + frame_count = 1, + axially_symmetrical = false, + direction_count = 1, +} +BI.hidden_entities.overlay = BI.hidden_entities.picture + +-- The resistances will be set in data-updates.lua, when all mods have had +-- a chance to create their damage types! +BI.hidden_entities.hide_resistances = true + +BI.hidden_entities.sounds = { + build_sound = no_sound, + close_sound = no_sound, + mined_sound = no_sound, + open_sound = no_sound, + repair_sound = no_sound, + rotated_sound = no_sound, + vehicle_impact_sound = no_sound, + working_sound = no_sound, +} + +BI.hidden_entities.misc = { + active_picture = BI.hidden_entities.picture, + circuit_wire_max_distance = 0, + corpse = "", + created_effect = nil, + created_smoke = nil, + --~ damaged_trigger_effect = { + --~ { + --~ type = "damage", + --~ damage = { + --~ type = "fire", + --~ amount = 0 + --~ } + --~ } + --~ }, + damaged_trigger_effect = nil, + --~ dying_explosion = nil, + energy_source = { + render_no_network_icon = false, + render_no_power_icon = false, + }, + fast_replaceable_group = "", + light = nil, + --~ minable = nil, + next_upgrade = "", + remove_decoratives = "false", + water_reflection = {pictures = BI.hidden_entities.picture}, +} + + +------------------------------------------------------------------------------------ +-- Apply the common properties to this hidden-entity prototype! -- +------------------------------------------------------------------------------------ +BI.set_common_properties = function(h_entity) + for s, sound in pairs(BI.hidden_entities.sounds) do + h_entity[s] = sound + end + + for s, setting in pairs(BI.hidden_entities.misc) do + h_entity[s] = setting + end + + h_entity.icon = BI.hidden_entities.icon + h_entity.icon_size = BI.hidden_entities.icon_size + h_entity.icon_mipmaps = BI.hidden_entities.icon_mipmaps + + if BioInd.is_debug then + h_entity.icons = h_entity.icons or { + { + icon = h_entity.icon, + icon_size = h_entity.icon_size or 1, + --~ icon_mipmaps = h_entity.icon_mipmaps or 1 + icon_mipmaps = h_entity.icon_mipmaps + } + } + else + h_entity.icons = BI.hidden_entities.icons + end + + h_entity.picture = BioInd.is_debug and h_entity.picture or BI.hidden_entities.picture + h_entity.pictures = BioInd.is_debug and h_entity.pictures or BI.hidden_entities.picture + --~ h_entity.pictures = BI.hidden_entities.picture + h_entity.overlay = BioInd.is_debug and h_entity.overlay or BI.hidden_entities.overlay + h_entity.flags = BI.hidden_entities.flags + h_entity.selectable_in_game = BI.hidden_entities.selectable_in_game + h_entity.max_health = BI.hidden_entities.max_health + + --~ h_entity.resistances = {{type = "fire", percent = 100}} + h_entity.collision_mask = BI.hidden_entities.collision_mask + h_entity.collision_box = BI.hidden_entities.collision_box + h_entity.selection_box = BI.hidden_entities.selection_box +end + + +------------------------------------------------------------------------------------ +-- Compile a list of the hidden-entity prototype of this compound entity! -- +------------------------------------------------------------------------------------ +-- The list of compound entities contains duplicate data for related entities (e.g. +-- curved and straight rails, or entities where an overlay is placed first). So, we +-- should look for the tables instead: They are guaranteed to be unique! +BI.make_hidden_entity_list = function(hidden_type) + BioInd.check_args(hidden_type, "string", "valid handle for hidden entities") + + local name, entity_locale + for c_name, c_data in pairs(BioInd.compound_entities) do + BioInd.writeDebug("Checking %s for hidden %ss", {c_name, hidden_type}) +--~ BioInd.show("c_name", c_name) +--~ BioInd.show("c_data", c_data) + local h_type = c_data.hidden[hidden_type] + if h_type then + --~ name = c_data.tab:gsub("_table$", ""):gsub("_", "-") .. "-hidden-" .. hidden_type + name = h_type and h_type.name or c_data.base and c_data.base.name .. "-hidden-" .. hidden_type + -- Store the name of the compound entity -- we'll need it for the localization! + BI.hidden_entities.types[hidden_type] = BI.hidden_entities.types[hidden_type] or {} + -- If the base entity is just an overlay, it won't have its own localization key + -- but use the same localizations as the final entity. So, we'll check for the + -- "new_base_name" property first and use the base entity's name if it hasn't been + -- set. + BI.hidden_entities.types[hidden_type][name] = h_type.localize_entity or + c_data.new_base_name or + c_name + BioInd.writeDebug("Must create %s!", {name}) + end + end +end + + +------------------------------------------------------------------------------------ +-- Add a layer to a picture -- +------------------------------------------------------------------------------------ +-- The hidden entities DO need to have images, so that they can be identified in the +-- production tab! +BI.add_layer = function(layers, data) + --~ BioInd.check_args(layers, "table", "layer") + BioInd.check_args(data, "table", "layer data") + layers = layers or {} + + local name = data.name + local hr_name = data.hr_name + local priority = data.priority + local height = data.height + local width = data.width + local size = data.size + local shadow = data.shadow + + --~ size = size or + --~ (height and width and height == width) and height + layers[#layers + 1] = { + filename = name, + priority = priority or "low", + width = width, + height = height, + size = size, + draw_as_shadow = shadow, + hr_version = hr_name and { + filename = hr_name, + priority = priority or "low", + width = width and width * 2, + height = height and height * 2, + size = size and size * 2, + draw_as_shadow = shadow, + scale = 0.5, + } + } + return layers +end + +require(HIDDENPATH .. "hidden_lamps") +require(HIDDENPATH .. "hidden_panels") +require(HIDDENPATH .. "hidden_poles") +require(HIDDENPATH .. "hidden_radars") + +--~ BioInd.show("BI.hidden_entities.types", BI.hidden_entities.types) +--~ error("Break!") diff --git a/Bio_Industries_2/prototypes/compound_entities/hidden_lamps.lua b/Bio_Industries_2/prototypes/compound_entities/hidden_lamps.lua new file mode 100644 index 0000000..0473ee4 --- /dev/null +++ b/Bio_Industries_2/prototypes/compound_entities/hidden_lamps.lua @@ -0,0 +1,81 @@ +-- Add functions that are also used in other files (debugging output etc.) +local BioInd = require('common')('Bio_Industries') +BioInd.writeDebug("Entered prototypes.hidden_lamps.lua of \"%s\".", {BioInd.modName}) + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +------------------------------------------------------------------------------------ +-- Create the main prototype for hidden lamps. All others will be based on this! -- +------------------------------------------------------------------------------------ +--~ local h_type = "lamp" +--~ local h_entity = table.deepcopy(data.raw[h_type]["small-lamp"]) +-- The short name of the hidden entity (e.g. "lamp" or "pole") +local h_key = "lamp" +-- The actual prototype type, identified by h_key +local h_type = BioInd.HE_map[h_key] +local h_entity = table.deepcopy(data.raw[h_type]["small-lamp"]) + +BI.set_common_properties(h_entity) + +------------------------------------------------------------------------------------ +-- Lamp specific attributes! +h_entity.energy_source.type = "void" +h_entity.energy_source.usage_priority = "lamp" + +h_entity.energy_usage_per_tick = "100kW" +h_entity.light = {intensity = 1, size = 45} +h_entity.light_when_colored= {intensity = 0, size = 0} +h_entity.signal_to_color_mapping = {} + +h_entity.circuit_connector_sprites = {} +for l, led in ipairs({"red", "green", "blue", "light"}) do + h_entity.circuit_connector_sprites["led_" .. led] = BI.hidden_entities.picture + h_entity.circuit_connector_sprites["led_" .. led].intensity = 0 +end + +h_entity.picture_off = BI.hidden_entities.picture +--~ h_entity.picture_off.shift = {0.75, 0} + +h_entity.picture_on = BI.hidden_entities.picture +--~ h_entity.picture_on.shift = {0.75, 0} + + +------------------------------------------------------------------------------------ +-- Make a copy of the hidden-entity prototype for each compound entity! -- +------------------------------------------------------------------------------------ + +------------------------------------------------------------------------------------ +-- Compile a list of the hidden entities we'll need +BI.make_hidden_entity_list(h_key) + +------------------------------------------------------------------------------------ +-- Make the copies! +local lamp +local c_entities = BioInd.compound_entities + +for lamp_name, locale_name in pairs(BI.hidden_entities.types[h_key]) do + lamp = table.deepcopy(h_entity) + lamp.name = lamp_name + lamp.localised_name = {"entity-name." .. locale_name} + lamp.localised_description = {"entity-description." .. locale_name} + + -- Adjust properties for hidden lamp of Bio farm + if c_entities["bi-bio-farm"] and + lamp_name == c_entities["bi-bio-farm"].hidden[h_type].name then + + lamp.icon = ICONPATH .. "Bio_Farm_Lamp.png" + lamp.icon_size = 64 + lamp.BI_add_icon = true + BioInd.show("Adjusted properties of", lamp_name) + end + data:extend({lamp}) + + BioInd.show("Created", lamp_name) +end + + +------------------------------------------------------------------------------------ +-- Testing +--~ for k, v in pairs(data.raw[h_entity.type]) do + --~ BioInd.writeDebug("%s: %s", {k, v}) +--~ end diff --git a/Bio_Industries_2/prototypes/compound_entities/hidden_panels.lua b/Bio_Industries_2/prototypes/compound_entities/hidden_panels.lua new file mode 100644 index 0000000..df8bc80 --- /dev/null +++ b/Bio_Industries_2/prototypes/compound_entities/hidden_panels.lua @@ -0,0 +1,106 @@ +-- Add functions that are also used in other files (debugging output etc.) +local BioInd = require('common')('Bio_Industries') +BioInd.writeDebug("Entered prototypes.hidden_panels.lua of \"%s\".", {BioInd.modName}) + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +------------------------------------------------------------------------------------ +-- Create the main prototype for hidden lamps. All others will be based on this! -- +------------------------------------------------------------------------------------ +-- The short name of the hidden entity (e.g. "lamp" or "pole") +local h_key = "panel" +-- The actual prototype type, identified by h_key +local h_type = BioInd.HE_map[h_key] +local h_entity = table.deepcopy(data.raw[h_type]["solar-panel"]) + +BioInd.show("Panel data", h_entity) + +BI.set_common_properties(h_entity) + +BioInd.show("Panel data after set_common_properties", h_entity) +------------------------------------------------------------------------------------ +-- Panel specific attributes! +h_entity.energy_source = { + type = "electric", + usage_priority = "solar" +} + + +------------------------------------------------------------------------------------ +-- Make a copy of the hidden-entity prototype for each compound entity! -- +------------------------------------------------------------------------------------ + +------------------------------------------------------------------------------------ +-- Compile a list of the hidden entities we'll need +BI.make_hidden_entity_list(h_key) + +-- Musk floor is not an entity, but a tile, so we don't have a compound-entity table +-- for it and must add it manually! +local Musk_name = "bi-musk-mat-hidden-panel" +BI.hidden_entities.types[h_key][Musk_name] = "bi-solar-mat" + + +------------------------------------------------------------------------------------ +-- Make the copies! +local tmp, panel +local c_entities = BioInd.compound_entities + +for panel_name, locale_name in pairs(BI.hidden_entities.types[h_key]) do + panel = table.deepcopy(h_entity) + panel.name = panel_name + panel.localised_name = {"entity-name." .. locale_name} + panel.localised_description = {"entity-description." .. locale_name} + + + -- Adjust properties for hidden panel of Solar boiler + if c_entities["bi-solar-boiler"] and + panel_name == c_entities["bi-solar-boiler"].hidden[h_key].name then + + panel.icon = ICONPATH .. "Bio_Solar_Boiler_Icon.png" + panel.icon_size = 64 + panel.BI_add_icon = true + + panel.picture = {} + panel.picture.layers = BI.add_layer(panel.picture.layers, { + name = BioInd.modRoot .. "/graphics/entities/bio_solar_farm/Bio_Solar_Boiler.png", + size = 288 + }) + panel.overlay = {} + panel.overlay.layers = table.deepcopy(panel.picture.layers) + + panel.max_health = 400 + panel.render_no_power_icon = true + panel.collision_box = {{-4.2, -4.2}, {4.2, 4.2}} + panel.production = "1.8MW" + BioInd.show("Adjusted properties of", panel_name) + + -- Adjust properties for hidden panel of bio farms + elseif c_entities["bi-bio-farm"] and + c_entities["bi-bio-farm"].hidden[h_key] and + panel_name == c_entities["bi-bio-farm"].hidden[h_key].name then + panel.icon = ICONPATH .. "Bio_Farm_Solar.png" + panel.icon_size = 64 + panel.BI_add_icon = true + panel.production = "100kW" + BioInd.show("Adjusted properties of", panel_name) + + -- Adjust properties for hidden panel of Musk floor + elseif panel_name == Musk_name then + panel.icon = ICONPATH .. "solar-mat.png" + panel.icon_size = 64 + panel.BI_add_icon = true + panel.production = "10kW" + BioInd.show("Adjusted properties of", panel_name) + end + + data:extend({panel}) + + BioInd.show("Created", panel_name) +end + + +------------------------------------------------------------------------------------ +--~ -- Testing +--~ for k, v in pairs(data.raw[h_entity.type]) do + --~ BioInd.writeDebug("%s: %s", {k, v}) +--~ end diff --git a/Bio_Industries_2/prototypes/compound_entities/hidden_poles.lua b/Bio_Industries_2/prototypes/compound_entities/hidden_poles.lua new file mode 100644 index 0000000..8b18dc5 --- /dev/null +++ b/Bio_Industries_2/prototypes/compound_entities/hidden_poles.lua @@ -0,0 +1,201 @@ +-- Add functions that are also used in other files (debugging output etc.) +local BioInd = require('common')('Bio_Industries') +BioInd.writeDebug("Entered prototypes.hidden_poles.lua of \"%s\".", {BioInd.modName}) + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +------------------------------------------------------------------------------------ +-- Create the main prototype for hidden poles. All others will be based on this! -- +------------------------------------------------------------------------------------ +--~ local h_type = "electric-pole" +--~ local h_entity = table.deepcopy(data.raw[h_type]["small-electric-pole"]) +-- The short name of the hidden entity (e.g. "lamp" or "pole") +local h_key = "pole" +-- The actual prototype type, identified by h_key +local h_type = BioInd.HE_map[h_key] +local h_entity = table.deepcopy(data.raw[h_type]["small-electric-pole"]) + +BI.set_common_properties(h_entity) + +------------------------------------------------------------------------------------ +-- Pole specific attributes! +h_entity.draw_copper_wires = BioInd.is_debug +h_entity.draw_circuit_wires = BioInd.is_debug + +h_entity.maximum_wire_distance = 10 +h_entity.supply_area_distance = 5 + +--~ hidden_pole.resistances = {} +--~ for damage, d in pairs(data.raw["damage-type"]) do + --~ hidden_pole.resistances[#hidden_pole.resistances +1] = { + --~ type = damage, + --~ percent = 100 + --~ } +--~ end +--~ BioInd.show("hidden_pole.resistances", hidden_pole.resistances) + +h_entity.connection_points = BioInd.is_debug and + h_entity.connection_points or { + { + shadow = {}, + wire = { copper_wire_tweak = {0, 0} } + } + } +--~ h_entity.connection_points = h_entity.connection_points +h_entity.radius_visualisation_picture = BioInd.is_debug and + h_entity.radius_visualisation_picture or + BI.hidden_entities.picture + + +h_entity.energy_source = { + type = "electric", + usage_priority = "solar" +} + + +------------------------------------------------------------------------------------ +-- Make a copy of the hidden-entity prototype for each compound entity! -- +------------------------------------------------------------------------------------ + +------------------------------------------------------------------------------------ +-- Compile a list of the hidden entities we'll need +BI.make_hidden_entity_list(h_key) + +-- Musk floor is not an entity, but a tile, so we don't have a compound-entity table +-- for it and must add it manually! +local Musk_name = "bi-musk-mat-hidden-pole" +BI.hidden_entities.types[h_key][Musk_name] = "bi-solar-mat" + +-- We only have one "connector" at the moment. No need to add another file just for that, +-- so let's add this connector manually to the list! +BI.hidden_entities.types[h_key]["bi-bio-farm-hidden-connector_pole"] = "bi-bio-farm" + +local function shift_picture(pole, offset) + if not BioInd.is_debug then + pole.pictures.shift = offset or {0, 0} + end +end + +------------------------------------------------------------------------------------ +-- Make the copies! +local tmp, pole +local c_entities = BioInd.compound_entities + +BioInd.writeDebug("BI.hidden_entities.types[%s]: %s", {h_key, BI.hidden_entities.types[h_key]}) +--~ for pole_name, locale_name in pairs(pole_list) do +for pole_name, locale_name in pairs(BI.hidden_entities.types[h_key]) do +BioInd.show("pole_name", pole_name) +BioInd.show("locale_name", locale_name) + --~ pole = table.deepcopy(data.raw["electric-pole"]["bi-hidden-power-pole"]) + pole = table.deepcopy(h_entity) + pole.name = pole_name + pole.localised_name = {"entity-name." .. locale_name} + pole.localised_description = {"entity-description." .. locale_name} + pole.icon_size = BioInd.is_debug and pole.icon_size or 64 + + ------------------------------------------------------------------------------------ + -- Adjust properties for hidden biofarm poles + ------------------------------------------------------------------------------------ + --~ if c_entities["bi-bio-farm"] then + --~ -- We have connectors on the roof of Bio farms, so we want to display connections + --~ if c_entities["bi-bio-farm"].hidden["connector"] and + --~ pole_name == c_entities["bi-bio-farm"].hidden["connector"].name then + local biofarm_connector = c_entities["bi-bio-farm"].hidden["connector"] and + pole_name == c_entities["bi-bio-farm"].hidden["connector"].name + local biofarm_pole = (c_entities["bi-bio-farm"].hidden[h_key] and + pole_name == c_entities["bi-bio-farm"].hidden[h_key].name) + if c_entities["bi-bio-farm"] and biofarm_connector or biofarm_pole then + + -- We have connectors on the roof of Bio farms, so we want to display connections + --~ if (c_entities["bi-bio-farm"].hidden["connector"] and + --~ pole_name == c_entities["bi-bio-farm"].hidden["connector"].name) then + if biofarm_connector then + + pole.draw_copper_wires = true + local vanilla = table.deepcopy(data.raw[h_type]["small-electric-pole"]) + local cp = vanilla.connection_points[1] + local offset_y = 2.7 + + for img, img_data in ipairs({"shadow", "wire"}) do + cp[img_data].green = nil + cp[img_data].red = nil + + cp[img_data].copper[1] = cp[img_data].copper[1] + (offset_x or 0) + cp[img_data].copper[2] = cp[img_data].copper[2] + (offset_y or 0) + end + pole.connection_points = BioInd.is_debug and vanilla.connection_points or {cp} + pole.pictures = BioInd.is_debug and vanilla.pictures or pole.pictures + --~ pole.supply_area_distance = 1 + pole.supply_area_distance = 5 + pole.maximum_wire_distance = 5 + + shift_picture(pole) + BioInd.show("Adjusted properties of", pole_name) + + -- Hidden center pole for supplying the area around the building + --~ elseif pole_name == c_entities["bi-bio-farm"].hidden[h_key].name then + + --~ elseif (c_entities["bi-bio-farm"].hidden[h_key] and + --~ pole_name == c_entities["bi-bio-farm"].hidden[h_key].name) then + else + --~ pole.draw_copper_wires = true + pole.maximum_wire_distance = 2 + pole.supply_area_distance = 5 + --~ pole.selection_box = {{-.25, -.25}, {.25, .25}} + --~ pole.selectable_in_game = true + + shift_picture(pole) + BioInd.show("Adjusted properties of", pole_name) + end + + ------------------------------------------------------------------------------------ + -- Adjust properties for hidden power-rail pole + ------------------------------------------------------------------------------------ + elseif (c_entities["bi-straight-rail-power"] and + c_entities["bi-straight-rail-power"].hidden[h_key] and + pole_name == c_entities["bi-straight-rail-power"].hidden[h_key].name) or + (c_entities["bi-curved-rail-power"] and + c_entities["bi-curved-rail-power"].hidden[h_key] and + pole_name == c_entities["bi-curved-rail-power"].hidden[h_key].name) then + --~ elseif pole_name == c_entities["bi-straight-rail-power"].hidden[h_key].name then + + --~ pole.localised_name = {"entity-name.bi-rail-power"} + --~ pole.localised_description = {"entity-description.bi-rail-power"} + pole.maximum_wire_distance = 9 + pole.supply_area_distance = 2 + shift_picture(pole) + BioInd.show("Adjusted properties of", pole_name) + + ------------------------------------------------------------------------------------ + -- Adjust properties for hidden pole of bio gardens + ------------------------------------------------------------------------------------ + elseif c_entities["bi-bio-garden"] and + -- This pole may have been removed because "Easy Gardens" is disabled! + c_entities["bi-bio-garden"].hidden[h_key] and + pole_name == c_entities["bi-bio-garden"].hidden[h_key].name then + pole.maximum_wire_distance = 4 + pole.supply_area_distance = 1 + shift_picture(pole) + BioInd.show("Adjusted properties of", pole_name) + + ------------------------------------------------------------------------------------ + -- Adjust properties for hidden pole of Musk floor + ------------------------------------------------------------------------------------ + elseif pole_name == Musk_name then + pole.icon = ICONPATH .. "solar-mat.png" + pole.icon_size = 64 + pole.maximum_wire_distance = 1 + pole.supply_area_distance = 3 + BioInd.show("Adjusted properties of", pole_name) + end + + data:extend({pole}) + BioInd.show("Created", pole_name) +end + + +------------------------------------------------------------------------------------ +--~ -- Testing +--~ for k, v in pairs(data.raw[h_entity.type]) do + --~ BioInd.writeDebug("%s: %s", {k, v}) +--~ end diff --git a/Bio_Industries_2/prototypes/compound_entities/hidden_radars.lua b/Bio_Industries_2/prototypes/compound_entities/hidden_radars.lua new file mode 100644 index 0000000..c9e5cc6 --- /dev/null +++ b/Bio_Industries_2/prototypes/compound_entities/hidden_radars.lua @@ -0,0 +1,151 @@ +-- Add functions that are also used in other files (debugging output etc.) +local BioInd = require('common')('Bio_Industries') +BioInd.writeDebug("Entered prototypes.hidden_radars.lua of \"%s\".", {BioInd.modName}) + +local ICONPATH = BioInd.modRoot .. "/graphics/icons/" + +require ("util") + + +------------------------------------------------------------------------------------ +-- Create the main prototype for hidden radars. All others will be based on this! -- +------------------------------------------------------------------------------------ +--~ local h_type = "radar" +--~ local h_entity = table.deepcopy(data.raw[h_type]["radar"]) +-- The short name of the hidden entity (e.g. "lamp" or "pole") +local h_key = "radar" +-- The actual prototype type, identified by h_key +local h_type = BioInd.HE_map[h_key] +local h_entity = table.deepcopy(data.raw[h_type]["radar"]) + +BI.set_common_properties(h_entity) + +------------------------------------------------------------------------------------ +-- Lamp specific attributes! +h_entity.energy_source.type = "electric" +h_entity.energy_source.usage_priority = "secondary-input" + + +------------------------------------------------------------------------------------ +-- Make a copy of the hidden-entity prototype for each compound entity! -- +------------------------------------------------------------------------------------ + +------------------------------------------------------------------------------------ +-- Compile a list of the hidden entities we'll need +BI.make_hidden_entity_list(h_key) + + +------------------------------------------------------------------------------------ +-- Make the copies! +local radar +local c_entities = BioInd.compound_entities + +for radar_name, locale_name in pairs(BI.hidden_entities.types[h_key]) do + radar = table.deepcopy(h_entity) + +BioInd.show("radar_name", radar_name) +BioInd.show("locale_name", locale_name) + radar.name = radar_name + radar.localised_name = {"entity-name." .. locale_name} + radar.localised_description = {"entity-description." .. locale_name} + +BioInd.show("radar_name", radar_name) +BioInd.show("radar.name", c_entities["bi-arboretum"].hidden[h_key].name) + -- Adjust properties for hidden radar of Bio cannon + if c_entities["bi-bio-cannon"] and + radar_name == c_entities["bi-bio-cannon"].hidden[h_key].name then + + local base = c_entities["bi-bio-cannon"].base + base = data.raw[base.type][base.name] + + radar.icon = ICONPATH .. "biocannon_icon.png" + radar.icon_size = 64 + radar.BI_add_icon = true + + radar.energy_per_sector = "22MJ" + radar.energy_per_nearby_scan = "400kW" + radar.energy_usage = "6kW" + + -- The cannon can only shoot if the radar has power, so we need to show + -- if it is connected. Also, the collision_box of the radar should be big + -- enough that it is within reach even of poles with a small supply_area. + radar.collision_box = base.collision_box + radar.energy_source.render_no_network_icon = true + radar.energy_source.render_no_power_icon = true + + radar.max_distance_of_nearby_sector_revealed = 5 + radar.max_distance_of_sector_revealed = 5 + BioInd.show("Adjusted properties of", radar_name) + + -- Adjust properties for hidden radar of Terraformer + elseif c_entities["bi-arboretum"] and + radar_name == c_entities["bi-arboretum"].hidden[h_key].name then + + radar.localised_name = {"entity-name." .. radar.name} + + radar.icon = ICONPATH .. "Arboretum_Icon.png" + radar.icon_size = 64 + radar.BI_add_icon = true + + -- We want to be able to see the scanning progress of this radar! + for f, flag in pairs(radar.flags) do + if flag == "not-selectable-in-game" then + radar.flags[f] = nil + end + end + radar.selectable_in_game = true + -- For some reason, the default collision_mask (unset properties will be + -- set to the default value automatically at the end of the data stage) + -- must be set to make the radar selectable! + radar.collision_mask = nil + radar.collision_box = {{-0.70, -0.70}, {0.70, 0.70}} + radar.selection_box = {{-0.75, -0.75}, {0.75, 0.75}} + + radar.energy_per_sector = "2MJ" + radar.energy_per_nearby_scan = "200kW" + radar.energy_source.emissions_per_minute = 0 + radar.energy_usage = "150kW" + radar.max_distance_of_nearby_sector_revealed = 2 + radar.max_distance_of_sector_revealed = 5 + + radar.max_health = 250 + radar.pictures = { + layers = { + { + filename = "__base__/graphics/entity/radar/radar.png", + priority = "extra-high", + width = 98, + height = 128, + apply_projection = false, + direction_count = 64, + line_length = 8, + shift = util.by_pixel(1, -16), + scale = 0.5, + hr_version = { + filename = "__base__/graphics/entity/radar/hr-radar.png", + priority = "extra-high", + width = 196, + height = 254, + apply_projection = false, + direction_count = 64, + line_length = 8, + shift = util.by_pixel(1, -16), + scale = 0.25 + } + } + } + } + BioInd.show("Adjusted properties of", radar_name) + end + + data:extend({radar}) + + BioInd.show("Created", radar_name) +end + + +------------------------------------------------------------------------------------ +--~ -- Testing +--~ for k, v in pairs(data.raw[h_entity.type]) do + --~ BioInd.writeDebug("%s: %s", {k, v}) +--~ end diff --git a/Bio_Industries_2/prototypes/compound_entities/main_list.lua b/Bio_Industries_2/prototypes/compound_entities/main_list.lua new file mode 100644 index 0000000..ba6849d --- /dev/null +++ b/Bio_Industries_2/prototypes/compound_entities/main_list.lua @@ -0,0 +1,281 @@ +--~ log("Entered file prototypes/compound_entities.lua") +------------------------------------------------------------------------------------ +-- This file contains the data of all compound entities. It will be used in the -- +-- data stage to create the prototypes for the hidden enitities, and during the -- +-- control stage to combine the compound entities and pass on any optional data -- +-- that may be required by the scripts. +------------------------------------------------------------------------------------ +require("util") + +-- During the data stage, we want to remove compound entities (or some of their +-- hidden entities) that have been disabled via startup setting, so that we don't +-- spam the game with unnecessary prototypes. +-- During the control stage, we build a separate list of all the compound entities +-- that are available and store it in a global table. We'll need a complete list in +-- this case, so that we can keep track of the removed prototypes and clean out the +-- obsolete tables. We can achieve this by checking for "script" or "data". +-- However, we may also need a complete list during the data stage (e.g. for finding +-- recipes, items etc. of removed compound entity parts). In this case, we'll need +-- to pass on a valid argument (anything not nil) to this function. + +local ret = {} + +-- Map short handles for hidden entities in the table to actual prototype types +ret.HE_map = { + ammo_turret = "ammo-turret", + assembler = "assembling-machine", + boiler = "boiler", + lamp = "lamp", + panel = "solar-panel", + connector = "electric-pole", + pole = "electric-pole", + radar = "radar" +} + +ret.HE_map_reverse = {} +for k, v in pairs(ret.HE_map) do + ret.HE_map_reverse[v] = k +end +--~ log("ret.HE_map_reverse: " .. serpent.block(ret.HE_map_reverse)) +------------------------------------------------------------------------------------ +-- List of compound entities +-- Key: name of the base entity +-- tab: name of the global table where data of these entity are stored +-- hidden: table containing the hidden entities needed by this entity +-- Key: handle of the hidden entity +-- Value: data needed when placing the hidden entity +-- localize_entity: Pointer to an entity name -- e.g. {"entity-name.NAME"} -- that +-- will be used to localize this entity. This is needed when the +-- same string is used for differently named entity names, such +-- as "straight-rail"/"curved-rail"/"rail-planner". +-- new_base_name: If the placed entity is used as overlay, it will be replaced +-- with this entity. +-- add_global_tables table of names of other tables in global that are needed by +-- this entity +-- add_global_values table of names and values of variables that should be added to +-- the global table if this compound entity is used +-- optional: Any optional data affecting the compound entity that must be + -- stored in the global table. +------------------------------------------------------------------------------------ +-- Data of hidden entities +-- name: name of the entity prototype +-- type: prototype type +-- base_offset: Position of the hidden entity relative to the base entity +------------------------------------------------------------------------------------ + +-- We add full data for the base entities because their type can't be deduced from +-- their name. For the hidden entities, we just create the fields and fill in any +-- optional data that may be needed. Name and type of the prototypes will be added +-- later automatically. +ret.compound_entities = { + ["bi-bio-farm"] = { + tab = "bi_bio_farm_table", + base = { + name = "bi-bio-farm", + type = ret.HE_map.assembler, + }, + hidden = { + connector = { + name = "bi-bio-farm-hidden-connector_pole", + type = ret.HE_map.pole, + -- base_offset = {x = 1.0, y = 1.0}, + -- base_offset = (script and script.active_mods["_debug"] or mods and mods["_debug"]) and + --~ {x = 1.0, y = 1.0} or {x = 0, y = 0}, + }, + --~ pole = { + --~ -- name = "bi-bio-farm-hidden-pole", + --~ -- type = ret.HE_map.pole, + --~ -- base_offset = {x = 1.0, y = 1.0}, + --~ base_offset = (script and script.active_mods["_debug"] or + --~ mods and mods["_debug"]) and + --~ {x = 1.0, y = 1.0} or {x = 0, y = 0}, + --~ }, + panel = { + -- name = "bi-bio-farm-hidden-panel", + -- type = ret.HE_map.panel, + }, + lamp = { + -- name = "bi-bio-farm-hidden-lamp", + -- type = ret.HE_map.lamp + }, + } + }, + ["bi-bio-garden"] = { + tab = "bi_bio_garden_table", + base = { + name = "bi-bio-garden", + type = ret.HE_map.assembler, + }, + hidden = { + pole = { + -- name = "bi-bio-garden-hidden-pole", + -- type = ret.HE_map.pole, + }, + } + }, + ["bi-bio-solar-farm"] = { + tab = "bi_solar_farm_table", + base = { + name = "bi-bio-solar-farm", + type = ret.HE_map.panel, + }, + hidden = { + pole = { + -- name = "bi-solar-farm-hidden-pole", + -- type = ret.HE_map.pole, + }, + } + }, + ["bi-solar-boiler"] = { + tab = "bi_solar_boiler_table", + base = { + name = "bi-solar-boiler", + type = ret.HE_map.boiler, + }, + hidden = { + panel = { + -- name = "bi-solar-boiler-hidden-panel", + -- type = ret.HE_map.panel, + }, + pole = { + -- name = "bi-solar-boiler-hidden-pole", + -- type = ret.HE_map.pole, + }, + } + }, + ["bi-straight-rail-power"] = { + tab = "bi_power_rail_table", + base = { + name = "bi-straight-rail-power", + type = "straight-rail", + }, + hidden = { + pole = { + name = "bi-rail-power-hidden-pole", + localize_entity = "bi-rail-power" + -- type = ret.HE_map.pole, + }, + } + }, + -- Built from blueprint + ["bi-arboretum"] = { + tab = "bi_arboretum_table", + base = { + name = "bi-arboretum", + type = ret.HE_map.assembler, + }, + hidden = { + radar = { + -- name = "bi-arboretum-hidden-radar", + -- type = ret.HE_map.radar, + base_offset = {x = -3.5, y = 3.5}, + }, + pole = { + -- name = "bi-arboretum-hidden-pole", + -- type = ret.HE_map.pole, + }, + lamp = { + -- name = "bi-arboretum-hidden-lamp", + -- type = ret.HE_map.lamp, + }, + }, + add_global_tables = {"bi_arboretum_radar_table", "bi_arboretum_recipe_table"}, + new_base_name = "bi-arboretum", + }, + -- Built from blueprint + ["bi-bio-cannon"] = { + tab = "bi_bio_cannon_table", + base = { + name = "bi-bio-cannon", + type = "ammo-turret", + }, + hidden = { + radar = { + -- name = "bi-bio-cannon-hidden-radar", + -- type = ret.HE_map.radar, + }, + }, + add_global_values = { Bio_Cannon_Counter = 0 }, + optional = {delay = 0}, + new_base_name = "bi-bio-cannon", + }, +} + +------------------------------------------------------------------------------------ +-- Fill in the missing names and types of the hidden entities' prototypes! -- +------------------------------------------------------------------------------------ +for c_name, c_data in pairs(ret.compound_entities) do +--~ log("c_name: " .. serpent.block(c_name)) + for h_key, h_data in pairs(c_data.hidden) do +--~ log(string.format("h_key: %s\th_data: %s", h_key, serpent.block(h_data))) + h_data.name = h_data.name or c_name .. "-hidden-" .. h_key + h_data.type = h_data.type or ret.HE_map[h_key] + end +end +--~ log("ret.compound_entities: " .. serpent.block(ret.compound_entities)) + +------------------------------------------------------------------------------------ +-- Remove entries for disabled compound entities. Do this before making copies! -- +------------------------------------------------------------------------------------ +ret.get_HE_list = function(get_complete_list) + if get_complete_list or script then + --~ log("Preserving complete list!") + + else + --~ log("Removing obsolete entities from the list!") + + local settings = settings.startup + local function get_settings(name) + return settings[name] and settings[name].value + end + + -- Bio Cannon + --~ if not BI.Settings.Bio_Cannon then + if not get_settings("BI_Bio_Cannon") then + --~ log("Bio cannon has been disabled!") + ret.compound_entities["bi-bio-cannon"] = nil + --~ log("Removed \"bi-bio-cannon\" from compound_entity list!") + end + + -- Solar additions + --~ if not BI.Settings.BI_Solar_Additions then + if not get_settings("BI_Solar_Additions") then + --~ log("Solar additions have been disabled!") + for e, entry in ipairs({"bi-bio-solar-farm", "bi-solar-boiler"}) do + ret.compound_entities[entry] = nil + --~ log("Removed " .. entry .. " from compound_entity list!") + end + end + + -- Easy Bio gardens: We only need the hidden pole if the setting is enabled. (But we + -- want to keep the rest of the table even if the setting is disabled.) + --~ if not BI.Settings.BI_Easy_Bio_Gardens then + if not get_settings("BI_Easy_Bio_Gardens") then + --~ log("\"Easy Bio gardens\" are disabled!") + ret.compound_entities["bi-bio-garden"].hidden.pole = nil + --~ log("Removed hidden pole from list of hidden entities!") + end + end + + + -- Some entities share almost the same data, so we can copy them + local make_copies = { + -- Rails + ["bi-straight-rail-power"] = { name = "bi-curved-rail-power", type = "curved-rail" }, + -- Overlay entities + ["bi-arboretum"] = { name = "bi-arboretum-area", type = ret.HE_map.ammo_turret }, + ["bi-bio-cannon"] = { name = "bi-bio-cannon-area", type = ret.HE_map.ammo_turret }, + } + for old, new in pairs(make_copies) do + if ret.compound_entities[old] then + ret.compound_entities[new.name] = util.table.deepcopy(ret.compound_entities[old]) + ret.compound_entities[new.name].base.type = new.type + ret.compound_entities[new.name].base.name = new.name + --~ log("Added " .. new.name .. " to list of compound entities!") + end + end + + return ret.compound_entities +end + +return ret diff --git a/Bio_Industries_2/settings.lua b/Bio_Industries_2/settings.lua new file mode 100644 index 0000000..0dc8865 --- /dev/null +++ b/Bio_Industries_2/settings.lua @@ -0,0 +1,236 @@ +--~ data:extend( +--~ { +local setting_list = {} + -- Add/enable stuff +setting_list.BI_Solar_Additions = { + type = "bool-setting", + name = "BI_Solar_Additions", + setting_type = "startup", + default_value = true, + order = "a[modifier]-a[Solar_Farm]", +} + +setting_list.BI_Bio_Fuel = { + type = "bool-setting", + name = "BI_Bio_Fuel", + setting_type = "startup", + default_value = true, + order = "a[modifier]-b[Bio_Fuel]", +} + +setting_list.BI_Bio_Cannon = { + type = "bool-setting", + name = "BI_Bio_Cannon", + setting_type = "startup", + default_value = true, + order = "a[modifier]-c[Bio_Cannon]", +} + +setting_list.BI_Show_musk_floor_in_mapview = { + type = "bool-setting", + name = "BI_Show_musk_floor_in_mapview", + setting_type = "startup", + default_value = true, + order = "a[modifier]-d[Musk_floor]", +} + +setting_list.BI_Easy_Bio_Gardens = { + type = "bool-setting", + name = "BI_Easy_Bio_Gardens", + setting_type = "startup", + default_value = false, + order = "a[modifier]-e[Fluid_fertilizer]", +} + +setting_list.BI_Bigger_Wooden_Chests = { + type = "bool-setting", + name = "BI_Bigger_Wooden_Chests", + setting_type = "startup", + default_value = true, + order = "a[modifier]-b[Bigger_Wooden_Chests]", +} + + -- Game tweaks +setting_list.BI_Game_Tweaks_Emissions_Multiplier = { + type = "bool-setting", + name = "BI_Game_Tweaks_Emissions_Multiplier", + setting_type = "startup", + default_value = true, + order = "b[tweaks]-a[Fuel_emission_multiplier]", + per_user = true, +} +setting_list.BI_Game_Tweaks_Stack_Size = { + type = "bool-setting", + name = "BI_Game_Tweaks_Stack_Size", + setting_type = "startup", + default_value = true, + order = "b[tweaks]-b[Stack_size]", +} +setting_list.BI_Game_Tweaks_Recipe = { + type = "bool-setting", + name = "BI_Game_Tweaks_Recipe", + setting_type = "startup", + default_value = true, + order = "b[tweaks]-c1[Recipe]", +} +--~ if not mods["IndustrialRevolution"] then + --~ setting_list.BI_Game_Tweaks_Disassemble = { + --~ type = "bool-setting", + --~ name = "BI_Game_Tweaks_Disassemble", + --~ setting_type = "startup", + --~ default_value = true, + --~ order = "b[tweaks]-c2[Disassemble]", + --~ } +--~ end +setting_list.BI_Game_Tweaks_Production_Science = { + type = "bool-setting", + name = "BI_Game_Tweaks_Production_Science", + setting_type = "startup", + default_value = true, + order = "b[tweaks]-c3[Production_science]", +} +setting_list.BI_Game_Tweaks_Tree = { + type = "bool-setting", + name = "BI_Game_Tweaks_Tree", + setting_type = "startup", + default_value = true, + order = "b[tweaks]-d1[Trees]", +} +setting_list.BI_Game_Tweaks_Small_Tree_Collisionbox = { + type = "bool-setting", + name = "BI_Game_Tweaks_Small_Tree_Collisionbox", + setting_type = "startup", + default_value = true, + order = "b[tweaks]-d2[Tree_collision_box]", +} +setting_list.BI_Game_Tweaks_Player = { + type = "bool-setting", + name = "BI_Game_Tweaks_Player", + setting_type = "startup", + default_value = false, + order = "b[tweaks]-e[Player_tweaks]", +} +setting_list.BI_Game_Tweaks_Bot = { + type = "bool-setting", + name = "BI_Game_Tweaks_Bot", + setting_type = "startup", + default_value = false, + order = "b[tweaks]-f[Bot_tweaks]", +} + + +-- Compatibility with other mods (optional) + -- Industrial Revolution + AAI Industry +if not (mods["IndustrialRevolution"] or mods["aai-industry"]) then + setting_list.BI_Game_Tweaks_Disassemble = { + type = "bool-setting", + name = "BI_Game_Tweaks_Disassemble", + setting_type = "startup", + default_value = true, + order = "b[tweaks]-c2[Disassemble]", + } +end + +--~ if not ( + --~ -- mods["ArchdruidsChests"] or -- "Archdruid's Chest Mod" + --~ mods["Juicy_mods"] or -- "Advanced storage +" + --~ mods["Warehousing"] or -- "Warehousing Mod" + --~ mods["aai-containers"] or -- "AAI Containers & Warehouses" + --~ mods["angelsaddons-storage"] or -- "Angel's Addons - Storage Options" + --~ mods["boblogistics"] or -- "Bob's Logistics mod" + --~ mods["cruxchests"] -- "Crux Chests" + --~ ) then + --~ setting_list.BI_Bigger_Wooden_Chests = { + --~ type = "bool-setting", + --~ name = "BI_Bigger_Wooden_Chests", + --~ setting_type = "startup", + --~ default_value = true, + --~ order = "a[modifier]-b[Bigger_Wooden_Chests]", + --~ } +--~ end + + -- Lua API global Variable Viewer (gvv) +if mods["gvv"] then + setting_list.BI_Enable_gvv_support = { + type = "bool-setting", + name = "BI_Enable_gvv_support", + setting_type = "startup", + default_value = false, + order = "c[compatibility]-c1[debugging_gvv]", + } +end + +local list = {} +for name, setting in pairs(setting_list) do + --~ list[#list + 1] = setting + data:extend({setting}) +end +--~ log("Setting list: " .. serpent.block(list)) +--~ data:extend({list}) +--[[ +Types of settings: + startup - game must be restarted if changed (such a setting may affect prototypes' changes) + runtime-global - per-world setting + runtime-per-user - per-user setting + +Types of values: + bool-setting + double-setting + int-setting + string-setting + +Files being processed by the game: + settings.lua + settings-updates.lua + settings-final-fixes.lua + +Using in DATA.lua: +data:extend({ + { + type = "int-setting", + name = "setting-name1", + setting_type = "runtime-per-user", + default_value = 25, + minimum_value = -20, + maximum_value = 100, + per_user = true, + }, + { + type = "bool-setting", + name = "setting-name2", + setting_type = "runtime-per-user", + default_value = true, + per_user = true, + }, + { + type = "double-setting", + name = "setting-name3", + setting_type = "runtime-per-user", + default_value = -23, + per_user = true, + }, + { + type = "string-setting", + name = "setting-name4", + setting_type = "runtime-per-user", + default_value = "Hello", + allowed_values = {"Hello", "foo", "bar"}, + per_user = true, + }, +}) + +Using in LOCALE.cfg: + [mod-setting-name] + setting-name1=Seting name + [mod-setting-description] + setting-name1=Seting description + +Using in CONTROL.lua and in other code for reading: + EVENT: on_runtime_mod_setting_changed - called when a player changed its setting + event.player_index + event.setting + GET: settings.startup["setting-name"].value - current value of startup setting; can be used in DATA.lua + GET: settings.global["setting-name"].value - current value of per-world setting + GET: set = settings.get_player_settings(LuaPlayer) - current values for per-player settings; then use set["setting-name"].value + GET: settings.player - default values +]] diff --git a/Bio_Industries_2/settings_changed.lua b/Bio_Industries_2/settings_changed.lua new file mode 100644 index 0000000..629dc28 --- /dev/null +++ b/Bio_Industries_2/settings_changed.lua @@ -0,0 +1,234 @@ +-------------------------------------------------------------------- +-- If startup settings have been changed, we need to check some stuff. +-- Keep that in a separate file so the main control.lua is easier to +-- read! +-------------------------------------------------------------------- + +--~ local BioInd = require('common')('Bio_Industries') + +local settings_changed = {} + +-- Adjust the force of hidden poles on Musk floor! +settings_changed.musk_floor = function() +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" + local sm_pole_name = "bi-musk-mat-hidden-pole" + + -- If dummy force is not used, force of a hidden pole should be that of the hidden solar panel. + -- That force will be "enemy" for poles/solar panels created with versions of Bio Industries + -- prior to 0.17.45/0.18.13 because of the bug. We can fix that for singleplayer games by setting + -- the force to player force. In multiplayer games, we can do this as well if all players are + -- on the same force. If there are several forces that have players, it's impossible to find out + -- which force built a certain musk floor tile, so "enemy" will still be used. + -- (Only fix in this case: Players must remove and rebuild all existing musk floor tiles!) + + --~ local single_player_force = game.is_multiplayer() and nil or game.players[1].force.name + local force = nil + + -- Always use dummy force if option is set + if BioInd.UseMuskForce then + force = BioInd.MuskForceName + -- Singleplayer mode: use force of first player + elseif not game.is_multiplayer() then + -- Apparently, this crashed for someone (https://mods.factorio.com/mod/Bio_Industries/discussion/649d41b778d997d29385b8cf). + -- Could it be that a game that was originally a multiplayer game has been saved and reused + -- as singleplayer game, but there was no player 1? Let's go over all players and break after + -- the first hit, so we make sure we'll get the single player whatever its index! + --~ force = game.players[1].force.name + for p, player in pairs(game.players) do + force = player.force.name + break + end + -- Still got no force? Fall back to "player" -- as one of the 3 default forces, + -- it can't be removed, so we can use it! + force = force or "player" + + -- Multiplayer game + else + local count = 0 + -- Count forces with players + for _, check_force in pairs(game.forces) do + if next(check_force.players) then + force = check_force.name + count = count + 1 + end + end + -- Several forces with players: reset force to nil now and use force of panel later + -- (If this happens in a game were musk floor was created the buggy way with "force == nil", + -- it will be impossible to determine which force built it, so the force will still be + -- the default, i.e. "enemy".) + if count > 1 then + force = nil + end + 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} + 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{ + 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}) + for i = 2, #sm_pole do +BioInd.writeDebug("Destroying pole number %g", {i}) + sm_pole[i].destroy() + end + end + + -- Set force of the pole + sm_pole[1].force = force or panel.force + end + end + BioInd.writeDebug("Electric grid overlay of musk floor will be %s in map view.", + {BioInd.UseMuskForce and "hidden" or "displayed"}) +end + + +settings_changed.bio_garden = function() + BioInd.writeDebug("Entered function settings_changed.bio_garden!") + + -- 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", global.mod_settings.BI_Easy_Bio_Gardens) +BioInd.show("Current state of BI_Easy_Bio_Gardens", current) + + if global.mod_settings.BI_Easy_Bio_Gardens ~= current then +BioInd.writeDebug("Setting has been changed!") + local pole, neighbours + -- This is the unmodified table! + local compound_entity = BioInd.compound_entities["bi-bio-garden"] + local hidden_entities = compound_entity.hidden + + -- Check that all gardens are still valid + for g, garden in pairs(global[compound_entity.tab]) do + -- Base entity doesn't exist -- remove hidden entities!'' + 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", { + 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"}) + BioInd.remove_entity(garden[hidden]) + garden[hidden] = nil + end + global[compound_entity.tab][garden.entity.unit_number] = nil + end + end + + + -- For whatever reason, there may be hidden poles that aren't associated + -- with any garden. We want to remove these, so lets' compile a list of all + -- hidden poles first. + local remove_poles = {} + local found_poles + local pole_type = "electric-pole" + for s, surface in pairs(game.surfaces) do + -- Find poles on surface + found_poles = surface.find_entities_filtered{ + name = compound_entity.hidden[pole_type].name, + type = "electric-pole", + } + -- Add them to list of removeable poles, indexed by unit_number + for p, pole in ipairs(found_poles) do + remove_poles[pole.unit_number] = pole + end + end + + -- 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(global.bi_bio_garden_table) }) + + -- Restore the list of hidden entities + global.compound_entities["bi-bio-garden"] = BioInd.compound_entities["bi-bio-garden"] + local base + for g, garden in pairs(global.bi_bio_garden_table or {}) do + -- Make sure the base entity exists! + base = garden.base + pole = base and garden[pole_type] +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 + BioInd.writeDebug("Pole exists -- keep it!") + remove_poles[pole.unit_number] = nil + + -- There is no valid pole, let's create one! + elseif base then + -- Create hidden poles + pole = BioInd.create_entities( + global[compound_entity.tab], + base, + {pole = hidden_entities[pole_type].name} + --~ base.position + ) + + -- Add the new pole to the table + if pole then + global[compound_entity.tab][base.unit_number][pole_type] = pole + BioInd.writeDebug("Stored %s %g in table: %s", { + base.name, + base.unit_number, + global[compound_entity.tab][base.unit_number] + }) + end + end + end + + -- Setting is off -- disconnect and remove hidden poles! + else + BioInd.writeDebug("%s Bio Gardens found -- try to disconnect hidden poles!", + {table_size(global.bi_bio_garden_table) }) + -- Find hidden poles of registered gardens +BioInd.show("global.bi_bio_garden_table", global.bi_bio_garden_table) + for g, garden in pairs(global.bi_bio_garden_table or {}) do + if garden[pole_type] then + -- Pole really exists: destroy the entity + if garden[pole_type].valid then + -- Disconnect to prevent random connections of other poles when + -- this one is removed + garden[pole_type].disconnect_neighbour() + -- Remove pole from the list of poles not associated with a garden + remove_poles[garden[pole_type].unit_number] = nil + -- Destroy pole + BioInd.remove_entity(garden[pole_type]) + BioInd.show("Removed pole of garden", garden.base.unit_number) + end + garden[pole_type] = nil + BioInd.show("Removed pole from table of garden", garden.base.unit_number) + end + end + + -- We don't want to create hidden poles if the setting is off, + -- so remove the pole from hidden entities! + global.compound_entities["bi-bio-garden"].hidden[pole_type] = nil +BioInd.show("global.compound_entities", global.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)}) + for p, pole in pairs(remove_poles) do + pole.destroy() + end + + -- Update setting! + global.mod_settings.BI_Easy_Bio_Gardens = current + BioInd.show("Updated setting to", global.mod_settings.BI_Easy_Bio_Gardens) + else + BioInd.writeDebug("Nothing to do!") + end +end + +return settings_changed diff --git a/Bio_Industries_2/sound/BI_garden_fan.ogg b/Bio_Industries_2/sound/BI_garden_fan.ogg new file mode 100644 index 0000000..46bb890 Binary files /dev/null and b/Bio_Industries_2/sound/BI_garden_fan.ogg differ diff --git a/Bio_Industries_2/sound/BI_sawmill.ogg b/Bio_Industries_2/sound/BI_sawmill.ogg new file mode 100644 index 0000000..16d502d Binary files /dev/null and b/Bio_Industries_2/sound/BI_sawmill.ogg differ diff --git a/Bio_Industries_2/sound/BI_stonecrusher.ogg b/Bio_Industries_2/sound/BI_stonecrusher.ogg new file mode 100644 index 0000000..0042e64 Binary files /dev/null and b/Bio_Industries_2/sound/BI_stonecrusher.ogg differ diff --git a/Bio_Industries_2/sound/boom.ogg b/Bio_Industries_2/sound/boom.ogg new file mode 100644 index 0000000..b1f2944 Binary files /dev/null and b/Bio_Industries_2/sound/boom.ogg differ diff --git a/Bio_Industries_2/sound/dart-turret.ogg b/Bio_Industries_2/sound/dart-turret.ogg new file mode 100644 index 0000000..2a53530 Binary files /dev/null and b/Bio_Industries_2/sound/dart-turret.ogg differ diff --git a/Bio_Industries_2/sound/launch.ogg b/Bio_Industries_2/sound/launch.ogg new file mode 100644 index 0000000..a087587 Binary files /dev/null and b/Bio_Industries_2/sound/launch.ogg differ diff --git a/Bio_Industries_2/sound/rainforest_ambience.ogg b/Bio_Industries_2/sound/rainforest_ambience.ogg new file mode 100644 index 0000000..8777e27 Binary files /dev/null and b/Bio_Industries_2/sound/rainforest_ambience.ogg differ diff --git a/Bio_Industries_2/thumbnail.png b/Bio_Industries_2/thumbnail.png new file mode 100644 index 0000000..43ea049 Binary files /dev/null and b/Bio_Industries_2/thumbnail.png differ